介紹:
STM32Cube的X-CUBE-NFC6軟體擴展為STM32提供了完整的中間件,可以支持NFC啟動器、目標、讀卡器和卡仿真模式的ST25R3916/ST25R3916B高性能NFC前端IC來控制應用。該擴展基於STM32Cube軟體技術構建,可簡化不同STM32微控制器之間的移植。該軟體基於NUCLEO-G0B1RE/NCULEO-L476RG開發板,搭配X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1拓展板,運行驅動程序的示例代碼。

適用於STM32Cube的X-CUBE-NFC6軟體擴展
概述:
X-CUBE-NFC6軟體包擴展了STM32Cube的功能。軟體包的主要功能包括:
完整的中間件,使用 ST25R3916/ST25R3916B 高性能 HF 讀卡器/NFC 前端 IC 構建應用。
檢測不同類型和支持 P2P、卡模擬模式和讀/寫的手機的 NFC 標籤的示例應用程序。
讀取和寫入 NDEF 消息的示例應用程序。
適用於插入 NUCLEO-G0B1RE 或 NUCLEO-L476RG 開發板的 X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1 擴展板的示例實現。
基於STM32Cube生態,可在不同MCU系列之間輕鬆移植。
適用於所有主要技術的完整 RF/NFC 抽象 (RFAL),包括完整的 ISO-DEP 和 NFC-DEP 層。
該軟體包含高性能HF讀卡器/NFC前端IC驅動程序,用於在STM32上運行的ST25R3916/ST25R3916B設備。它建立在STM32Cube軟體技術之上,可簡化不同STM32微控制器之間的可移植性。該固件包包括組件設備驅動程序、開發板支持包和示例應用程序,演示了 X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1 擴展板與 STM32 Nucleo 板的用法。示例應用程序在輪詢循環中配置 ST25R3916/ST25R3916B,以便進行主動和被動設備檢測。當檢測到無源標籤或有源設備時,讀卡器場通過打開相應的 LED 來向檢測到的技術發出信號。也可以通過按用戶按鈕將 ST25R3916/ST25R3916B 設置為感應喚醒模式。在此輪詢循環期間,示例應用程序還會在卡模擬模式下設置 ST25R3916/ST25R3916B,以檢測讀卡器的存在。
開發套件使用ST-LINK虛擬通信埠將所有活動記錄到主機系統。本演示中支持的 RFID 技術包括:
ISO14443A/NFCA
ISO14443B/NFCB
Felica/NFCF
ISO15693/NFCV
Active P2P
Card Emulation Type A and F
X-CUBE-NFC6軟體架構:
X-CUBE-NFC6軟體擴展包,允許使用ST25R3916/ST25R3916B高性能HF讀卡器/NFC啟動器IC開發應用。它基於STM32微控制器的STM32Cube HAL硬體抽象層,並通過X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1擴展板的板支持包(BSP)擴展了STM32Cube。應用軟體可以通過以下層訪問和使用 X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1擴展板:
STM32Cube HAL layer: HAL驅動程序層提供一組簡單的通用多實例API(Application Programming Interfaces),用於與上層(應用程序、庫和堆棧)進行交互。這些通用和擴展 API 直接構建在通用架構上,並允許中間件等覆蓋層實現其功能,而無需依賴特定的微控制器單元 (MCU/MPU) 硬體信息。這種結構提高了庫代碼的靈活性,並保證了在其他設備之間的輕鬆移植性。
Board support package (BSP) layer:板級支持包(BSP)為STM32 Nucleo板上的外設(MCU除外)提供支持。這組 API 為某些特定於電路板的外設(如 LED、用戶按鈕等)提供編程接口。此接口還可以幫助您識別特定的主板版本。
Middleware NRF abstraction layer (RFAL): 中間件 NRF 抽象層 (RFAL):RFAL 為 RF/NFC 通信提供了多種功能。它將不同的RF IC(現有ST25R3911B產品系列和未來的ST25R391x器件)分組在一個通用且易於使用的接口。
RFAL提供的協議包括:
- ISO-DEP (ISO14443-4 Data Link Layer, T=CL)
- NFC-DEP (ISO18092 Data Exchange Protocol)
- NFC-A \ ISO14443A (T1T[Note:Tag 1 Type], T2T, T4TA)
- NFC-B \ ISO14443B (T4TB)
- NFC-F \ FeliCa (T3T)
- NFC-V \ ISO15693 (T5T)
- P2P \ ISO18092 (NFCIP1, Passive-Active P2P)
- ST25TB (ISO14443-2 Type B with Proprietary Protocol)
Internally, the RFAL is divided into three sub layers:
- RF HL - RF higher layer
- RF HAL- RF hardware abstraction layer
- RF AL - RF abstraction layer
RFAL Block Diagram
|
RF HL |
RFAL NFC |
|||||||||
|
RF AL |
Protocols |
ISO DEP |
NFC DEP |
|||||||
|
Technologies |
NFC-A |
NFC-B |
NFC-F |
NFC-V |
T1T |
T2T |
T4T |
ST25TB |
|
|
|
RF HAL |
RF |
|||||||||
|
RF Configs |
||||||||||
|
ST25R3911 |
ST25R3916 |
ST25R95* |
||||||||
|
*Future devices added to the ST25R family |
||||||||||
RF HAL 中的模塊依賴於晶片,它們實現 RF IC 驅動器、配置表和硬體執行物理 RF 功能的特定指令。調用方的接口是一個共享的射頻頭文件,它為上層(所有晶片)提供相同的接口。RFAL可以再分為兩個子層:
技術(Technologies):實現所有細節、框架、時間等的技術模塊。
協議(Protocols): 協議實現、包括所有成幀、時序、錯誤處理等。
除此之外,應用層還使用RFAL功能,如NFC論壇Activities(NFCC)、EMVCo、DISCO/NUCLEO的Demo等。RFAL NFC模塊提供了一個接口,用於作為輪詢器/偵聽器設備執行常見活動。RF模塊允許訪問IC的最低功能。可以直接使用任何射頻技術或協議層,而無需任何特定的硬體配置數據。
X-CUBE-NFC6軟體架構:

X-CUBE-NFC6文件夾結構:

軟體包中包含以下文件夾:
Documentation: 此文件夾包含從源代碼生成的編譯 HTML 文件,其中詳細介紹了軟體組件和 API。
Drivers: 此文件夾包含 HAL 驅動程序、每個受支持的主板或硬體平台(包括板載組件)的特定於主板的驅動程序,以及 Cortex-M 處理器系列的 CMSIS 獨立於供應商的硬體抽象層。
Middlewares: 此文件夾包含 RFAL(RF 抽象層)。RFAL 提供了執行 RF/NFC 通信所需的多種功能。RFAL將不同的RF IC(ST25R3911/ST25R3916和未來的ST25R391x器件)分組在一個通用且易於使用的接口下。
Projects: 此文件夾包含兩個示例應用程序示例:
(1)Tag Detect-Card emulation.
(2)Read and Write of NDEF messages.
它們適用於 NUCLEO-L476RG 平台,適用於三種開發環境(IAR Embedded Workbench for ARM、Keil 微控制器開發套件 (MDK-ARM) 和 STM32CubeIDE。
API&示例應用程序:
有關用戶可用的 API 的詳細技術信息可以在軟體包的“RFAL”文件夾內的編譯 CHM 文件中找到,其中完整描述了所有功能和參數。 NDEF API 的詳細技術信息,請參閱存儲在“doc”文件夾中的 .chm 文件。
在“Project”目錄中提供了使用X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1擴展板和NUCLEOG0B1RE/NUCLEO-L476RG開發板的示例應用程序。生成的項目可用於多個 IDE。在此應用中,支持P2P的不同類型的手機的NFC標籤由ST25R3916/ST25R3916B高性能HF讀寫器/NFC前端IC檢測(有關詳細信息,請參閱從源代碼生成的CHM文檔文件)。系統初始化和時鐘配置後,LED101、LED102、LED103、LED104、LED105、LED106閃爍3次。然後 LED106 亮起,表示讀卡器區域已激活。當在附近檢測到標籤時,LED 會亮起,如下所示。
|
NFC tag type |
LED lit on tag detection |
|
NFC TYPE F |
LED101/Type F |
|
NFC TYPE B |
LED102/Type B |
|
NFC TYPE A |
LED103/Type A |
|
NFC TYPE V |
LED104/Type V |
|
NFC TYPE AP2P |
LED105/Type AP2P |
如果讀卡器接近 X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1 擴展板,軟體將進入卡模擬模式,並根據發送的命令類型,打開 NFC TYPE A 和/或 NFC TYPE F LED。默認情況下,X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1 不會將任何數據寫入標籤,但這功能可以通過文件 demo.h 中定義的預處理器啟用。也可以使用相同的過程啟用/禁用卡仿真和輪詢器模式。ST虛擬通信埠接口也包含在軟體包中。板子上電後,板子被初始化並枚舉為STLink虛擬COM埠。
硬體描述:
TM32 Nucleo平台:
STM32 Nucleo開發板為用戶提供了一種經濟實惠且靈活的方式,可以使用任何STM32微控制器系列測試解決方案和構建原型。Arduino™連接支持和ST morpho連接器使STM32 Nucleo開放式開發平台的功能變得簡單,並有多種專用擴展板可供選擇。STM32 Nucleo板集成了ST-LINK/V2-1調試器,因此不需要單獨的Debug工具。STM32 Nucleo板附帶全面的STM32軟體HAL庫以及各種打包軟體示例。

X-NUCLEO-NFC06A1擴展板:
X-NUCLEO-NFC06A1 NFC讀卡器擴展板基於ST25R3916晶片。擴展板配置支持 ISO14443A/B、ISO15693、FeliCa™ 和 AP2P 通信。該ST25R3916以讀取器模式管理標準應用的幀編碼和解碼,例如 NFC、Proximity和Vicinity HF RFID 標準。它支持 ISO/IEC 14443 A 類和 B 類、ISO/IEC 15693(僅限單副載波)和 ISO/IEC 18092 通信協議,以及 NFC Forum Type 1、2、3、4 和 5 標籤的檢測、讀寫。板載低功耗電容式傳感器可執行超低功耗喚醒,無需打開讀卡器磁場,並可執行傳統的電感式喚醒以選擇幅度或相位測量。自動天線調諧 (AAT) 技術可在靠近金屬部件和/或不斷變化的環境中運行。

軟體描述:
為了設置合適的開發環境,為配備NFC擴展板的STM32 Nucleo創建應用程序,需要以下軟體組件:
X-CUBE-NFC6:STM32Cube的擴展,專用於NFC應用開發。X-CUBENFC6 固件和相關文檔可在 www.st.com 上找到。
開發工具鏈和編譯器。STM32Cube擴展軟體支持以下三種環境:
– IAR Embedded Workbench for ARM(EWARM)工具鏈 + ST-LINK
– Keil 微控制器開發套件(MDK-ARM)工具鏈 + ST-LINK
– STM32CubeIDE + ST-LINK
評論