ไดร์เวอร์ลินุกซ์ UM2548
ลินุกซ์® ไดร์เวอร์สำหรับ ST25R3916/ST25R3916B
คู่มือการใช้งาน
ไดร์เวอร์ลินุกซ์ UM2548
การแนะนำ
รุ่น STSW-ST25R013 ไดรเวอร์ Linux® ช่วยให้ Raspberry Pi® 4 สามารถทำงานร่วมกับบอร์ด X-NUCLEO-NFCO6A1 และ X-NUCLEO-NFCO8A1 ซึ่งประกอบด้วยอุปกรณ์ ST25R3916 และ ST25R3916B ตามลำดับ
แพ็คเกจนี้พอร์ตเลเยอร์การแยก RF (RFAL) ไปยังแพลตฟอร์ม Raspberry Pi 4 Linux เพื่อทำงานร่วมกับเฟิร์มแวร์บอร์ด และให้บริการดังนี้ampแอปพลิเคชัน le ตรวจจับ NFC ประเภทต่างๆ tags และโทรศัพท์มือถือที่รองรับ P2P RFAL เป็นไดรเวอร์มาตรฐาน ST สำหรับอุปกรณ์ NFC สากลประสิทธิภาพสูง ST25R3916 และ ST25R3916B / เครื่องอ่าน EMVCo ใช้โดยเฟิร์มแวร์ ST25R3916-DISCO (STSW-ST25R010) และเฟิร์มแวร์ X-NUCLEO-NFCO06A1 (X-CUBE-NFC6) เป็นต้น
รุ่น STSW-ST25R013 รองรับโปรโตคอลชั้นล่าง ST25R3916/ST25R3916B ทั้งหมดและโปรโตคอลชั้นบนบางส่วนสำหรับการสื่อสาร RFAL เขียนขึ้นในลักษณะพกพาได้ จึงสามารถทำงานบนอุปกรณ์ต่างๆ ที่ใช้ Linux ได้หลากหลาย เอกสารนี้จะอธิบายว่าไลบรารี RFAL สามารถใช้งานได้บนระบบ Linux มาตรฐาน (ในกรณีนี้คือ Raspberry Pi 4) สำหรับการสื่อสาร NFC/RF อย่างไร โค้ดนี้พกพาได้มากและทำงานกับการเปลี่ยนแปลงเล็กน้อยบนแพลตฟอร์ม Linux ใดก็ได้

เกินview
1.1 คุณสมบัติ
- ไดร์เวอร์พื้นที่ผู้ใช้ Linux ที่สมบูรณ์ (เลเยอร์การแยก RF) เพื่อสร้างแอปพลิเคชันที่เปิดใช้งาน NFC โดยใช้เครื่องมือ ST25R3916 และ ST25R3916B
- การสื่อสารโฮสต์ Linux กับ ST25R3916/ST25R3916B โดยใช้อินเทอร์เฟซ SPI
- RF/NFC abstraction (RFAL) ที่สมบูรณ์สำหรับเทคโนโลยีหลักทั้งหมดและโปรโตคอลเลเยอร์ที่สูงกว่า:
– NFC-เอ (ISO14443-เอ)
– NFC-บี (ISO14443-บี)
– NFC-F (เฟลิกา™)
– NFC-V (ISO15693)
– P2P (ISO18092)
– ISO-DEP (โปรโตคอลการแลกเปลี่ยนข้อมูล ISO, ISO14443-4)
– NFC-DEP (โปรโตคอลการแลกเปลี่ยนข้อมูล NFC, ISO18092)
– เทคโนโลยีที่เป็นกรรมสิทธิ์ เช่น Kovio, B', iClass, Calypso® - Sampสามารถใช้งานได้กับบอร์ดขยาย X-NUCLEO-NFC06A1 และ X-NUCLEO-NFC08A1 โดยเสียบเข้ากับ Raspberry Pi 4
- Sampแอปพลิเคชันเพื่อตรวจจับ NFC . หลายตัว tag ประเภทและโทรศัพท์มือถือที่รองรับ P2P
- เงื่อนไขสิทธิ์การใช้งานที่เป็นมิตรกับผู้ใช้ฟรี
1.2 สถาปัตยกรรมซอฟต์แวร์
รูปที่ 2 แสดงรายละเอียดสถาปัตยกรรมซอฟต์แวร์ของไลบรารี RFAL บนแพลตฟอร์ม Linux
RFAL สามารถพกพาไปยังแพลตฟอร์มอื่นได้อย่างง่ายดายโดยการปรับแพลตฟอร์มที่เรียกว่า files.
ส่วนหัว file rfal_platform.h ประกอบด้วยคำจำกัดความของแมโคร ที่ต้องจัดทำและนำไปใช้โดยเจ้าของแพลตฟอร์ม
มีการตั้งค่าเฉพาะแพลตฟอร์มเช่น การกำหนด GPIO, ทรัพยากรระบบ, ล็อค และ IRQ ซึ่งจำเป็นสำหรับการทำงานที่ถูกต้องของ RFAL
การสาธิตนี้ใช้ฟังก์ชันของแพลตฟอร์มและจัดเตรียมพอร์ต RFAL เข้าสู่พื้นที่ผู้ใช้ของ Linux
ห้องสมุดที่ใช้ร่วมกัน file ถูกสร้างขึ้นซึ่งจะใช้โดยแอปพลิเคชันสาธิตเพื่อแสดงฟังก์ชันการทำงานที่จัดทำโดยเลเยอร์ RFAL
โฮสต์ Linux ใช้ส่วนต่อประสาน sysfs ที่มีให้จากพื้นที่ผู้ใช้ Linux เพื่อดำเนินการสื่อสาร SPI กับอุปกรณ์ ภายในเคอร์เนล Linux ส่วนต่อประสาน sysfs ของ SPI จะใช้ไดรเวอร์เคอร์เนล Linux spidev เพื่อส่ง/รับเฟรม SPI ไป/จากอุปกรณ์
ในการจัดการสาย INT ของอุปกรณ์ ST25R3916 และ ST25R3916B ไดรเวอร์จะใช้ libpiod sysfs เพื่อรับการแจ้งเตือนเกี่ยวกับการเปลี่ยนแปลงในสายนี้

การตั้งค่าฮาร์ดแวร์
2.1 แพลตฟอร์มที่ใช้
บอร์ด Raspberry Pi 4 ที่มีระบบปฏิบัติการ Raspberry Pi ใช้เป็นแพลตฟอร์ม Linux เพื่อสร้างไลบรารี RFAL และโต้ตอบกับ ST25R3916/ST25R3916B ผ่าน SPI
อุปกรณ์ดังกล่าวจะช่วยให้แอปพลิเคชันบนแพลตฟอร์ม Linux สามารถตรวจจับและสื่อสารกับอุปกรณ์ NFC ได้
2.2 ข้อกำหนดฮาร์ดแวร์
- ราสเบอร์รี่ Pi 4
- การ์ด micro SD ขนาด 8 GB เพื่อบูตระบบปฏิบัติการ Raspberry Pi (พร้อมข้อกำหนดล่าสุด)
- เครื่องอ่านการ์ด SD
- บอร์ด X-NUCLEO-NFC06A1 หรือ X-NUCLEO-NFC08A1
- สะพานเชื่อมต่อบอร์ดกับอะแดปเตอร์ Raspberry Pi Arduino™ สำหรับ Raspberry Pi (หมายเลขชิ้นส่วน ARPI600)
2.2.1 การเชื่อมต่อฮาร์ดแวร์
อะแดปเตอร์ ARPI600 Raspberry Pi ถึง Arduino ใช้สำหรับเชื่อมต่อบอร์ดกับ Raspberry Pi ต้องดัดแปลงจัมเปอร์ของบอร์ดอะแดปเตอร์เพื่อเชื่อมต่อกับบอร์ด X-NUCLEO-NFC06A1 หรือ X-NUCLEO-NFC08A1
คำเตือน:
ARPI600 จ่ายไฟ 5 V ให้กับพิน Arduino IOREF อย่างไม่ถูกต้อง การต่อบอร์ดโดยตรงจะจ่ายไฟ 5 V กลับไปยังพินบางตัว ซึ่งอาจทำให้บอร์ด Raspberry Pi เสียหายได้ มีรายงานว่าบอร์ดถูกทำลาย (โดยเฉพาะ Raspberry Pi 4B+)
เพื่อหลีกเลี่ยงปัญหานี้ ให้ปรับใช้ ARPI600 (การทำงานที่ค่อนข้างยาก) หรือบอร์ด X-NUCLEO-NFC06A1/X-NUCLEONFC08A1 (ง่ายกว่า)
การแก้ไขที่ง่ายที่สุดคือการตัดพิน CN6.2 (IOREF) บนบอร์ด X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1 ดังที่แสดงในรูปที่ 3
การตัดพินนี้จะไม่ส่งผลต่อการทำงานร่วมกับบอร์ด Nucleo (เช่น NUCLEO-L474RG, NUCLEO-F401RE, NUCLEO-8S208RB)

การตั้งค่าจัมเปอร์
ต้องเปลี่ยนจัมเปอร์สำหรับ A5, A4, A3, A2, A1 และ A0 ตามที่แสดงในรูปที่ 4 เป็น P25, P24, P23, P22, P21 และ CE1 ตามลำดับ โดยการตั้งค่านี้ พิน GPIO หมายเลข 7 ของ Raspberry จะถูกใช้เป็นเส้นขัดจังหวะสำหรับ X-NUCLEONFC06A1/X-NUCLEO-NFC08A1

ปัจจุบัน พอร์ตไลบรารี RFAL นี้ใช้พิน GPIO7 เป็นสายขัดจังหวะ (ตามการตั้งค่าจัมเปอร์) หากมีข้อกำหนดในการเปลี่ยนสายขัดจังหวะจาก GPIO7 เป็น GPIO อื่น รหัสเฉพาะแพลตฟอร์ม (ใน file ต้องแก้ไข pltf_gpio.h) เพื่อเปลี่ยนคำจำกัดความของแมโคร ST25R_INT_PIN จาก 7 ไปเป็นพิน GPIO ใหม่ ซึ่งจะใช้เป็นสายขัดจังหวะ
ด้วยการตั้งค่าจัมเปอร์ข้างต้น สามารถใช้บอร์ดอะแดปเตอร์เพื่อเชื่อมต่อ X-NUCLEO NFC06A1 และ X-NUCLEO-NFC08A1 เข้ากับบอร์ด Raspberry Pi ได้ ดังที่แสดงในรูปต่อไปนี้

การตั้งค่าสภาพแวดล้อม Linux
3.1 การบูต Raspberry Pi
หากต้องการตั้งค่าสภาพแวดล้อม Linux ขั้นแรกให้ติดตั้งและบูต Raspberry Pi ด้วย Raspberry Pi OS ตามที่อธิบายไว้ด้านล่าง:
ขั้นตอนที่ 1
ดาวน์โหลดภาพ Raspberry Pi OS ล่าสุดจาก https://www.raspberrypi.comจากนั้นเลือก Raspberry Pi OS พร้อมเดสก์ท็อป สำหรับการทดสอบด้านล่าง เวอร์ชัน 2022-09-22-raspios-bullseye-armhf.img.xz (กันยายน 2022) ได้ถูกนำมาใช้แล้ว
ขั้นตอนที่ 2
แตกไฟล์อิมเมจ Raspberry Pi OS และเขียนลงในการ์ด SD โดยทำตามคำแนะนำในหัวข้อ "การเขียนอิมเมจลงในการ์ด SD"
ขั้นตอนที่ 3
เชื่อมต่อฮาร์ดแวร์:
- เชื่อมต่อ Raspberry Pi 4 เข้ากับจอภาพโดยใช้สาย HDMI มาตรฐาน
- เชื่อมต่อเมาส์และคีย์บอร์ดเข้ากับพอร์ต USB ของ Raspberry Pi
นอกจากนี้ยังสามารถทำงานกับ Raspberry Pi โดยใช้ ssh ได้อีกด้วย ในกรณีนี้ ไม่จำเป็นต้องเชื่อมต่อจอภาพ คีย์บอร์ด และเมาส์กับ Raspberry Pi ข้อกำหนดเพียงอย่างเดียวคือต้องมีพีซีที่มี ssh อยู่ในเครือข่ายเดียวกันกับ Raspberry Pi และกำหนดค่าที่อยู่ IP ให้เหมาะสม
ขั้นตอนที่ 4
บูต Raspberry Pi 4 ด้วยการ์ด SD หลังจากบูตแล้ว เดสก์ท็อป Linux ที่ใช้ Debian จะปรากฏบนจอภาพ
บันทึก:
บางครั้งหลังจากบูตระบบปฏิบัติการ Raspberry Pi แป้นคีย์บอร์ดบางแป้นอาจใช้งานไม่ได้ หากต้องการให้แป้นเหล่านี้ใช้งานได้ ให้เปิด file /etc/default/keyboard และตั้งค่า XKBLAYOUT=”us” และรีบูต Raspberry Pi
3.2 เปิดใช้งาน SPI บน Raspberry Pi
ไดรเวอร์ SPI ภายในเคอร์เนลสื่อสารกับบอร์ด X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1 ผ่าน SPI สิ่งสำคัญคือต้องตรวจสอบว่า SPI เปิดใช้งานอยู่ในคอนฟิกูเรชันเคอร์เนล Raspbian Pi OS แล้วหรือไม่
ตรวจสอบว่า /dev/spidev0.0 มองเห็นได้ในสภาพแวดล้อม Raspberry Pi หรือไม่ หากมองไม่เห็น ให้เปิดใช้งานอินเทอร์เฟซ SPI โดยใช้ยูทิลิตี้ “raspi-config” โดยทำตามขั้นตอนที่อธิบายไว้ด้านล่าง
ขั้นตอนที่ 1
เปิดเทอร์มินัลใหม่บน Raspberry Pi และรันคำสั่ง “raspi-config” ในฐานะรูท: sudo raspi-config
ขั้นตอนนี้จะเปิดอินเทอร์เฟซแบบกราฟิก
ขั้นตอนที่ 2
เลือกตัวเลือกชื่อ "ตัวเลือกการเชื่อมต่อ" ในอินเทอร์เฟซแบบกราฟิก
ขั้นตอนที่ 3
ขั้นตอนนี้แสดงรายการตัวเลือกต่างๆ
เลือกตัวเลือกชื่อ “SPI”
หน้าต่างใหม่จะปรากฏขึ้นพร้อมข้อความต่อไปนี้:
“คุณต้องการเปิดใช้งานอินเทอร์เฟซ SPI หรือไม่”
ขั้นตอนที่ 4
เลือก ในหน้าต่างนี้เพื่อเปิดใช้งาน SPI
ขั้นตอนที่ 5
รีบูท Raspberry Pi
ขั้นตอนข้างต้นจะเปิดใช้งานอินเทอร์เฟซ SPI ในสภาพแวดล้อม Raspberry Pi หลังจากรีบูต
สร้างไลบรารีและแอปพลิเคชัน RFAL
การสาธิต RFAL ของ Linux มีอยู่ในไฟล์เก็บถาวร เช่น ST25R3916_v2.8.0_Linux_demo_v1.0.tar.xz
ในการสร้างไลบรารีและแอปพลิเคชัน RFAL บน Raspberry Pi ให้ดำเนินการตามขั้นตอนต่อไปนี้:
ขั้นตอนที่ 1
แตกไฟล์แพ็กเกจบน Raspberry Pi โดยใช้คำสั่งต่อไปนี้จากไดเร็กทอรีโฮม
ทาร์ -xJvf ST25R3916_v2.8.0_Linux_demo_v1.0.tar.xz
ขั้นตอนที่ 2
ติดตั้ง cmake (หากยังไม่ได้ทำ) โดยใช้คำสั่ง
apt-get ติดตั้ง cmake
ระบบสร้างไลบรารีและแอปพลิเคชัน RFAL มีพื้นฐานมาจาก cmake ดังนั้นจึงจำเป็นต้องติดตั้ง cmake เพื่อคอมไพล์แพ็กเกจ
ขั้นตอนที่ 3
ในการสร้างไลบรารีและแอปพลิเคชัน RFAL ให้ไปที่ไดเร็กทอรีการสร้าง
ซีดี ST25R3916_v2.8.0_Linux_demo_v1.0/linux_demo/build
จากนั้นรันคำสั่ง
ซีเมค ..
ในคำสั่งด้านบน “..” ระบุว่ามี CMakeLists.txt ระดับบนสุดอยู่ในไดเร็กทอรีหลัก
(ST25R3916_v2.8.0_Linux_demo_v1.0)
คำสั่งนี้จะสร้างfile ใช้ในขั้นตอนต่อไปเพื่อสร้างไลบรารีและแอปพลิเคชัน จากนั้นเรียกใช้คำสั่งต่อไปนี้เพื่อสร้างการสาธิตสำหรับ ST25R3916B
คำสั่ง -DRFAL_VARIANT=st25r3916b ..
ขั้นตอนที่ 4
เรียกใช้คำสั่ง make เพื่อสร้างไลบรารีและแอปพลิเคชัน RFAL:
ทำ
คำสั่งนี้จะสร้างไลบรารี RFAL ก่อน จากนั้นจึงสร้างแอปพลิเคชันทับบนไลบรารีนั้น
วิธีเรียกใช้แอปพลิเคชัน
การสร้างที่ประสบความสำเร็จจะสร้างไฟล์ปฏิบัติการชื่อ “nfc_poller_st25r3916” หรือ “nfc_poller_st25r3916b” ที่ตำแหน่ง /build/demo
โดยค่าเริ่มต้น จำเป็นต้องรันแอปพลิเคชันด้วยสิทธิ์รูทจากเส้นทาง ST25R3916_v2.8.0_Linux_demo_v1.0/linux_demo/build/demo/:
ซูโด ./nfc_demo_st25r3916
แอปพลิเคชันเริ่มสำรวจหา NFC tags และโทรศัพท์มือถือ จากนั้นจะแสดงอุปกรณ์ที่พบพร้อม UID ดังแสดงในรูปที่ 7

หากต้องการยุติแอปพลิเคชันให้กด Ctrl + C
ประวัติการแก้ไข
ตารางที่ 1 ประวัติการแก้ไขเอกสาร
| วันที่ | การแก้ไข | การเปลี่ยนแปลง |
| 1 มี.ค. 19 | 1 | การเปิดตัวครั้งแรก |
| 4 เม.ย. 23 | 2 | ปรับปรุงหัวข้อเอกสาร บทนำส่วน ส่วนที่ 1.1 คุณสมบัติ ส่วนที่ 1.2 สถาปัตยกรรมซอฟต์แวร์ ส่วนที่ 2.1 แพลตฟอร์มที่ใช้ ส่วนที่ 2.2 ฮาร์ดแวร์ ข้อกำหนด ส่วนที่ 2.2.1 การเชื่อมต่อฮาร์ดแวร์ ส่วนที่ 3.1 การบูต Raspberry Pi ส่วนที่ 3.2 เปิดใช้งาน SPI บน Raspberry Pi ส่วนที่ 4 สร้างไลบรารีและแอปพลิเคชัน RFAL และส่วนที่ 5 วิธีการรันแอปพลิเคชัน อัพเดตรูปที่ 1 ไลบรารี RFAL บนแพลตฟอร์ม Linux รูปที่ 2 สถาปัตยกรรมซอฟต์แวร์ RFAL บน Linux และรูปที่ 5 การตั้งค่าฮาร์ดแวร์ด้านบน view. แก้ไขข้อความเล็กน้อยทั่วทั้งเอกสาร |
หมายเหตุสำคัญ - โปรดอ่านอย่างละเอียด
STMicroelectronics NV และบริษัทในเครือ (“ST”) ขอสงวนสิทธิ์ในการเปลี่ยนแปลง แก้ไข ปรับปรุง ปรับเปลี่ยน และปรับปรุงผลิตภัณฑ์ ST และ/หรือเอกสารนี้ได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบ ผู้ซื้อควรได้รับข้อมูลล่าสุดที่เกี่ยวข้องกับผลิตภัณฑ์ ST ก่อนทำการสั่งซื้อ ผลิตภัณฑ์ ST จะถูกขายตามข้อกำหนดและเงื่อนไขการขายของ ST ที่ใช้ในขณะที่ยืนยันคำสั่งซื้อ
ผู้ซื้อจะต้องรับผิดชอบแต่เพียงผู้เดียวในการเลือก การคัดเลือก และการใช้ผลิตภัณฑ์ ST และ ST จะไม่รับผิดชอบต่อความช่วยเหลือในการใช้งานหรือการออกแบบผลิตภัณฑ์ของผู้ซื้อ
ST ไม่อนุญาตให้มีใบอนุญาตใดๆ ไม่ว่าโดยชัดแจ้งหรือโดยนัยในสิทธิในทรัพย์สินทางปัญญาใดๆ
การขายต่อผลิตภัณฑ์ ST ที่มีข้อกำหนดแตกต่างจากข้อมูลที่กำหนดไว้ในที่นี้ จะทำให้การรับประกันใดๆ ที่ ST ให้ไว้สำหรับผลิตภัณฑ์ดังกล่าวเป็นโมฆะ
ST และโลโก้ ST เป็นเครื่องหมายการค้าของ ST สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเครื่องหมายการค้า ST โปรดดูที่ www.st.com/trademarksชื่อผลิตภัณฑ์หรือบริการอื่น ๆ ทั้งหมดเป็นทรัพย์สินของเจ้าของที่เกี่ยวข้อง
ข้อมูลในเอกสารฉบับนี้แทนที่และเปลี่ยนแทนข้อมูลที่เคยให้ไว้ก่อนหน้านี้ในเอกสารฉบับก่อนหน้าใดๆ
© 2023 STMicroelectronics – สงวนลิขสิทธิ์
UM2548 – รอบ 2
เอกสาร / แหล่งข้อมูล
![]() |
ไดร์เวอร์ลินุกซ์ STMicroelectronics UM2548 [พีดีเอฟ] คู่มือการใช้งาน ไดร์เวอร์ Linux UM2548, UM2548, ไดร์เวอร์ Linux, ไดร์เวอร์ |




