RFID讀寫器設計.ppt_第1頁
RFID讀寫器設計.ppt_第2頁
RFID讀寫器設計.ppt_第3頁
RFID讀寫器設計.ppt_第4頁
RFID讀寫器設計.ppt_第5頁
免費預覽已結(jié)束,剩余76頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、RFID讀寫器原理與設計,Jianguo Hu ,目錄,1、RFID讀寫器硬件電路設計 2、RFID讀寫器通訊設計 3、RFID讀寫器固件設計,目錄,1、RFID讀寫器硬件電路設計 2、RFID讀寫器通訊設計 3、RFID讀寫器固件設計,1、RFID讀寫器硬件電路設計,(1) RFID讀寫器介紹。 (2) RFID閱讀器整體結(jié)構(gòu)。 (3) RFID閱讀器硬件設計。,(1) RFID讀寫器介紹,射頻識別技術可利用射頻信號識別對象,利用電磁耦合原理交換信息。與傳統(tǒng)的識別技術相比,RFID技術具有讀卡器和射頻標簽無接觸的特點。 本課程介紹一款高頻RFID讀寫器的硬件電路設計,采用STM32F103R

2、BT6嵌入式處理器作為主控芯片,RC500作為射頻讀卡芯片,可以讀寫工作在1356MHz的多種射頻標簽,采用USB通信協(xié)議與上位機進行通信。,(2) RFID閱讀器整體結(jié)構(gòu),RFID閱讀器系統(tǒng)由微控制器、射頻讀卡、聲/光指示、通訊接口等部分組, RFID閱讀器的結(jié)構(gòu)框圖如下圖所示。,(3) RFID閱讀器硬件設計,主控器電路 射頻電路 天線設計 電源轉(zhuǎn)換電路 指示電路設計 USB接口設計 總電路圖 擴展應用,主控芯片及其最小系統(tǒng)設計,主控芯片: 主控芯片采用了ST公司生產(chǎn)的基于ARMCortex-M3內(nèi)核的嵌入式處理器STM32F103RBT6,該處理器的工作頻率為72MHz,128K字節(jié)的閃

3、存程序存儲器,高達20K字節(jié)的SRAM,支持多種通信總線,其中包括2個I2C總線接口、3個USART串行接口、2個SPI總線接口、CAN總線和USB總線。,主控芯片及其最小系統(tǒng)設計,最小系統(tǒng)設計 1 拉高復位引腳 NRST腳串聯(lián)一個10K的電阻 再接到3.3V電源。 2 外部晶振輸入外接一個12M(Hz)的晶振,晶振的匹配電容為27pF。,主控芯片及其最小系統(tǒng)設計,最小系統(tǒng)原理圖: 拉高主控器復位腳,加外部晶振輸入,給主控器供電即可以正常工作。,射頻讀卡芯片電路設計,本RFID讀寫器使用NXP公司生產(chǎn)的MFRC500作為射頻讀卡芯片,該芯片是一種應用于1356MHz的非接觸式射頻標簽的芯片,支

4、持符合ISOIEC14443標準的射頻標簽。該芯片支持10cm的最大操作距離,與NXP公司的其他射頻讀卡芯片CLRC63 、MFRC530、MFRC531、SLRC400引腳兼容。該芯片可以用8位并行接口或SPI總線方式與微控制器進行通信。,射頻讀卡芯片電路設計,MFRC500芯片主要引腳說明: 13.56M晶振輸入 (1、3) 射頻信號發(fā)射 (5、7) 8位雙向并行數(shù)據(jù)口 (13to20) SPI串行通訊 (13、21、22、24) 天線信號輸入腳 (29) 內(nèi)部參考電壓 (30) 重置、復位 (31) VCC (6、25、26) GND (8、12、28),射頻讀卡芯片電路設計,本RFID

5、讀寫器的MFRC500射頻讀卡芯片和主控器間的通訊采用串行通訊,其硬件原理圖如下:,天線網(wǎng)絡的設計,對于MFRC500 ,可以使用兩種方法將天線連接到讀寫器:直接匹配天線和50匹配天線。本文中采用直接匹配的方式將MFRC500與天線連接,包括了EMC低通濾波器、天線匹配電路與接收電路。其電路分別如下圖所示:,天線網(wǎng)絡的設計,RFID讀寫器采用PCB環(huán)形天線,其電感量由如上公式進行估算:式中長度單位為cm,電感值單位為nH。l1為一圈導線的長度,取值20cm;D1為導線的直徑,取值01cm;K為天線形狀常數(shù),本讀寫器是矩形天線,取值K=147;N為導線的圈數(shù),取值2。代入公式,計算得L1=185

6、7nH。對照芯片廠家提供的表格進行計算,得到與天線并聯(lián)的電容容值為1323pF,與天線串聯(lián)的電容容值為175pF。在實際電路設計中,與天線并聯(lián)的電容采100pF與22pF電容并聯(lián)得到,與天線串聯(lián)的電容采用18pF。接收電路使用了MFRC500內(nèi)部產(chǎn)牛的VMID引腳作為輸入電壓。在VMID和地線之間連接了一個01F電容,起到了減少干擾的作用。天線及其匹配電路原理圖如圖。,電源轉(zhuǎn)換電路,本RFID讀寫器才用USB接口的5V供電,讀寫器上有部分元器件使用的是3.3V電壓。 采用AMSIII7-33芯片提供33V電壓, AMSIII7系列芯片可以輸出1A的電流,輸入電壓調(diào)節(jié)率小于02,負載調(diào)節(jié)率小于0

7、4,輸出電壓穩(wěn)定。,聲光指示設計,1 蜂鳴器控制 讀寫器用一個蜂鳴器出聲音, 操作讀寫器或者刷卡時會發(fā)出 正確或錯誤的提示聲。 2 紅綠雙色LED燈 提示讀寫器的運行狀態(tài)。,USB接口設計,讀寫器通過USB與電腦端上位機通訊,同時也采用USB接口給整個系統(tǒng)供電。按照USB協(xié)議,全速設備在D+線路上拉1.5K到Vcc,上拉引腳加PNP三極管進行USB的開關控制。,總電路圖,擴展應用,門禁、考勤讀頭,會員管理發(fā)卡器,物聯(lián)網(wǎng)終端,金融POS機機,倉儲盤點機,智能水電表,目錄,1、RFID讀寫器硬件電路設計 2、RFID讀寫器通訊設計 3、RFID讀寫器固件設計,2、RFID讀寫器通訊設計,(1)HI

8、D概述 (2)開發(fā)環(huán)境介紹 (3)指定HID設備查找 (4)HID設備通訊,(1)HID概述,HID(Human Interface Device)人機接口設備 是Windows最早支持的USB類別。由其名稱可以了解HID設備是計算機直接與人交互的設備,例如鍵盤、鼠標和游戲桿等。 不過HID設備不一定要有人機接口,只要符合HID類別規(guī)范,就都是HID設備。,通過設備管理器了解USB HID設備 通過USBLyzer了解,(1)HID概述,鏈接知識: USB速度 低速:1.5Mbps 全速:12Mbps 高速:480Mbps,USB1.1,USB2.0,USB3.0 (5.0Gbps),(1)H

9、ID概述,HID數(shù)據(jù)傳輸能力 每一筆事務(USB事務是指主機和USB設備間數(shù)據(jù)傳輸?shù)幕締挝唬┛梢詳y帶小量或中量的數(shù)據(jù)。 低速設備每一筆事務最大是8個字節(jié),全速設備每一筆事務最大是64個字節(jié),高速設備每一筆事務最大是1024個字節(jié)。 最大的傳輸速度有限,特別是低速與全速的時候。 主機可以保證低速的中斷端點,每10ms內(nèi)不會有超過1筆事務,每一秒最多800個字節(jié)。 主機可以保證全速的中斷端點,每1ms內(nèi)不會有超過1筆事務,每一秒最多是64000個字節(jié)。 主機可以保證高速的中斷端點,每125us內(nèi)不會有超過1筆事務,每一秒最多24.576M個字節(jié)。,(1)HID概述,鏈接知識: API(Appli

10、cation Programming Interface,應用程序編程接口) 是一些預先定義的函數(shù),目的是提供應用程序與開發(fā)人員基于某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內(nèi)部工作機制的細節(jié)。 API函數(shù)包含在Windows系統(tǒng)目錄下的動態(tài)連接庫文件中。 如USB HID的API就封裝在hid.dll,setupapi.dll,kernal32.dll里面。,(1)HID概述,使用HID設備進行開發(fā)的優(yōu)點 作為Windows操作系統(tǒng)最先支持的USB設備,在Windows98以及后來的版本中內(nèi)置有 HID設備的驅(qū)動程序(API),應用程序可以直接使用這些驅(qū)動程序來與設備通信。

11、 在設計一個USB接口的計算機外部設備時,如果HID類型的設備可以滿足需要,可以將其設計為HID類型設備,這樣可以省去比較復雜的USB驅(qū)動程序的編寫,直接利用Windows操作系統(tǒng)對標準的HID類型USB設備的支持。,(2)開發(fā)環(huán)境介紹,編譯環(huán)境:Visual C+ 6.0 參考資料:MSDN 開發(fā)語言:C+,(2)開發(fā)環(huán)境介紹,作為Windows默認支持的HID設備,開發(fā)人員可以直接調(diào)用Win32 API函數(shù)進行HID設備通信應用程序的開發(fā)。 開發(fā)HID設備用到的動態(tài)鏈接庫有 Hid.dll(用于設置獲取HID設備屬性信息) Setupapi.dll(用于查找識別設備) Kernal32.d

12、ll(用于打開關閉設備,實現(xiàn)數(shù)據(jù)傳輸),(2)開發(fā)環(huán)境介紹,搭建開發(fā)環(huán)境 新建工程,(2)開發(fā)環(huán)境介紹,搭建開發(fā)環(huán)境 添加API函數(shù)庫(靜態(tài)調(diào)用),(2)開發(fā)環(huán)境介紹,鏈接知識: USB HID調(diào)試工具介紹 USBLyzer BusHound UsbView,(3)指定HID設備查找,設計思路: 根據(jù)HID設備廠商提供的VID和PID,在已枚舉的所有HID設備中進行篩選,找到目標設備,(3)指定HID設備查找,鏈接知識: GUID 在計算機領域有很多東西需要不重復的唯一標識的東西,例如設備的類型,類,接口標識,目錄名等等。 需要GUID的時候,可以完全由算法自動生成,不需要一個權威機構(gòu)來管理。

13、 GUID理論上能產(chǎn)生全球唯一的值,對于以后的數(shù)據(jù)導入很方便。 GUID 的格式為“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每個 x 是 0-9 或 a-f 范圍內(nèi)的一個十六進制的數(shù)字。例如:4D1E55B2-F16F-11CF-88CB-001111000030即為HID類的 GUID 值(Hidclass.h),HID設備的GUID也可以用API函數(shù)HidD_GetHidGuid獲得。,(3)指定HID設備查找,軟件流程: 調(diào)用函數(shù)HidD_GetHidGuid獲得USB HID類設備的GUID; 調(diào)用函數(shù)SetupDiGetClassDevs,傳入

14、上一步取得的HID類的GUID,返回一個包含全部HID信息的結(jié)構(gòu)數(shù)組的指針; 調(diào)用函數(shù)SetupDiEnumDeviceInterfaces,傳入上一步獲得的指向所有HID類的指針,獲取SP_DEVICE_INTERFACE_DATA結(jié)構(gòu)的設備接口數(shù)據(jù),該數(shù)據(jù)用于識別一個HID設備接口; 調(diào)用函數(shù)SetupDiGetDeviceInterfaceDetail,傳入上一步的接口,獲得一個指向該設備接口詳細信息,里面包含設備的路徑; 調(diào)用函數(shù)CreateFile,傳入上一部的設備路徑,獲得設備句柄; 調(diào)用函數(shù)HidD_GetAttributes,傳入上一步的設備句柄,獲得HIDD_ATTRIBUT

15、ES結(jié)構(gòu)的數(shù)據(jù)項,該結(jié)構(gòu)包含設備的廠商ID、產(chǎn)品ID和產(chǎn)品序列號,比照這些數(shù)值確定該設備是否是查找的設備。,(3)指定HID設備查找,(3)指定HID設備查找, 4D1E55B2-F16F-11CF-88CB-001111000030 typedef struct _GUID / size is 16 DWORD Data1;/4D1E55B2 WORD Data2;/F16F WORD Data3;/11CF BYTE Data48;/88CB-001111000030 GUID;,(3)指定HID設備查找, void _stdcall HidD_GetHidGuid ( OUT LPGUI

16、D HidGuid );,(3)指定HID設備查找, / / Define type for reference to device information set / typedef PVOID HDEVINFO;,(3)指定HID設備查找, / / Flags controlling what is included in the device information set built / by SetupDiGetClassDevs / #define DIGCF_DEFAULT 0 x00000001 /只返回與系統(tǒng)默認設備相關的設備 #define DIGCF_PRESENT 0

17、x00000002/只返回當前存在的設備 #define DIGCF_ALLCLASSES 0 x00000004/返回所有已安裝的設備。如果這個標志設置了,ClassGuid參數(shù)將被忽略 #define DIGCF_PROFILE 0 x00000008/只返回當前硬件配置文件中的設備 #define DIGCF_DEVICEINTERFACE 0 x00000010/返回所有支持的設備,(3)指定HID設備查找,關鍵代碼分析 /獲取HID類的GUID GUID Guid; HidD_GetHidGuid(/沒有找到HID類設備,退出,(3)指定HID設備查找, typedef struct

18、 _SP_DEVICE_INTERFACE_DATA DWORD cbSize; GUID InterfaceClassGuid; DWORD Flags; DWORD Reserved; SP_DEVICE_INTERFACE_DATA, *PSP_DEVICE_INTERFACE_DATA;,(3)指定HID設備查找, WINSETUPAPI BOOL WINAPI SetupDiEnumDeviceInterfaces( IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL IN LPGUID In

19、terfaceClassGuid, IN DWORD MemberIndex,/逐一枚舉的設備集中的索引號,如果該值超出設備集范圍,改函數(shù)將返回FALSE, /并通過GetLastError返回錯誤值:ERROR_NO_MORE_ITEMS OUT PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData );,(3)指定HID設備查找,關鍵代碼分析 /枚舉所有HID類設備,逐一查找指定設備 SP_INTERFACE_DEVICE_DATA ifData; ifData.cbSize=sizeof(ifData); for (int i=0;SetupDiEn

20、umDeviceInterfaces(info, NULL, +i) /獲取接口詳細信息,(3)指定HID設備查找, WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInterfaceDetailA( IN HDEVINFO DeviceInfoSet,/目標設備集指針 IN PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData, OUT PSP_DEVICE_INTERFACE_DETAIL_DATA_A DeviceInterfaceDetailData, OPTIONAL IN DWORD DeviceInterfac

21、eDetailDataSize, OUT PDWORD RequiredSize, OPTIONAL OUT PSP_DEVINFO_DATA DeviceInfoData OPTIONAL );,(3)指定HID設備查找, typedef struct _SP_DEVICE_INTERFACE_DETAIL_DATA_A DWORD cbSize; CHAR DevicePathANYSIZE_ARRAY; SP_DEVICE_INTERFACE_DETAIL_DATA_A, *PSP_DEVICE_INTERFACE_DETAIL_DATA_A;,(3)指定HID設備查找,/獲取接口詳細信

22、息 DWORD needed; SetupDiGetDeviceInterfaceDetail(info, /設備路徑,(3)指定HID設備查找, typedef struct _SECURITY_ATTRIBUTES DWORD nLength; / /結(jié)構(gòu)體的大小,可用SIZEOF取得 LPVOID lpSecurityDescriptor; / /安全描述符 /安全描述符包含和被保護對象相關聯(lián)的安全信息的數(shù)據(jù)結(jié)構(gòu)。 /安全描述符包括誰擁有對象,以何種方式訪問以及何種審查訪問類型等信息。 BOOL bInheritHandle; / /安全描述的對象能否被新創(chuàng)建的進程繼承 SECURITY

23、_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;,(3)指定HID設備查找, WINBASEAPI HANDLE WINAPI CreateFileA ( LPCSTR lpFileName,/要打開的文件的名或設備名 DWORD dwDesiredAccess,/指定類型的訪問對象。 如:GENERIC_READ , GENERIC_WRITE DWORD dwShareMode,/共享方式 LPSECURITY_ATTRIBUTES lpSecurityAttributes,/安全特性 DWORD dwCreationD

24、isposition,/建立方式。如: CREATE_NEW, OPEN_EXISTING, OPEN_ALWAYS DWORD dwFlagsAndAttributes,/屬性。如: FILE_ATTRIBUTE_HIDDEN, FILE_ATTRIBUTE_READONLY HANDLE hTemplateFile/模板文件句柄,可為空 );,(3)指定HID設備查找,/獲取設備句柄 DeviceHandle=CreateFile (detail-DevicePath, 0, FILE_SHARE_READ|FILE_SHARE_WRITE, (LPSECURITY_ATTRIBUTES)

25、NULL, OPEN_EXISTING, 0 NULL);,(3)指定HID設備查找, typedef struct _HIDD_ATTRIBUTES ULONG Size; / = sizeof (struct _HIDD_ATTRIBUTES) USHORT VendorID; USHORT ProductID; USHORT VersionNumber; HIDD_ATTRIBUTES, *PHIDD_ATTRIBUTES;,(3)指定HID設備查找, BOOLEAN _stdcall HidD_GetAttributes ( IN HANDLE HidDeviceObject, OUT

26、 PHIDD_ATTRIBUTES Attributes );,(3)指定HID設備查找,HIDD_ATTRIBUTESAttributes; Attributes.Size = sizeof(Attributes); Result = HidD_GetAttributes (DeviceHandle, If( (Attributes.VendorID = VendorID) ,(3)指定HID設備查找,關鍵代碼分析 /記得釋放資源 SetupDiDestroyDeviceInfoList(info);,(4)HID設備通訊,設計思路: 1.查找指定HID設備 2.調(diào)用CreateFile,獲

27、取 設備句柄(用于獲取設備屬性) 寫句柄(用于向設備發(fā)送數(shù)據(jù)) 讀句柄(用于從設備接收數(shù)據(jù)) 3.調(diào)用WriteFile,ReadFile進行數(shù)據(jù)傳輸,(4)HID設備通訊,Windows驅(qū)動采用File(文件)方式進行數(shù)據(jù)交互,(4)HID設備通訊,關鍵代碼分析 /發(fā)送USB數(shù)據(jù)(寫文件) Result = WriteFile(WriteHandle,/寫文件句柄,在查找HID時建立 DataSendBuff,/將要發(fā)送的數(shù)據(jù)填入此數(shù)組 Capabilities.OutputReportByteLength, /輸出長度,在查找HID時建立 ,(4)HID設備通訊,外鏈知識: OVERLAP

28、PED 是一個包含了用于異步輸入輸出的信息的結(jié)構(gòu)體。 I/O設備處理必然讓主程序停下來干等I/O的完成,解決這個問題,可以使用OVERLAPPED。 OVERLAPPED I/O是WIN32的一項技術, 你可以要求操作系統(tǒng)為你傳送數(shù)據(jù),并且在傳送完畢時通知你。這項技術使你的程序在I/O進行過程中仍然能夠繼續(xù)處理事務。事實上,操作系統(tǒng)內(nèi)部正是以線程來I/O完成OVERLAPPED I/O。你可以獲得線程的所有利益,而不需付出什么痛苦的代價。也就是說,OVERLAPPED主要是設置異步I/O操作,異步I/O操作是指應用程序可以在后臺讀或者寫數(shù)據(jù),而在前臺做其他事情。,(4)HID設備通訊, WIN

29、BASEAPI BOOL WINAPI ReadFile( HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped );,(4)HID設備通訊,關鍵代碼分析 Result = ReadFile (ReadHandle, /讀文件句柄,在查找HID設備時返回 InputReport, /用來接收HID數(shù)據(jù)的緩沖區(qū) Capabilities.InputReportByteLength, /輸入長度 ,USB HID通訊程序例程,

30、ZD100系列讀寫器服務終端 雙界面讀卡器,目錄,1、RFID讀寫器硬件電路設計 2、RFID讀寫器通訊設計 3、RFID讀寫器固件設計,RFID讀寫器概述,本RFID讀寫器是基于STM32開發(fā),采用USB和電腦端通訊。RFID射頻芯片是恩智浦的MFRC500,所以讀寫器的驅(qū)動代碼是基于STM32F103RBT6單片機對MFRC500射頻芯片操作的編寫。 編寫本讀寫器用到的軟件工具和關鍵技術: Keil MDK代碼編譯工具 STM32F103RBT6單片機使用 MFRC500射頻芯片關鍵寄存器介紹與配置 SPI接口介紹 STM32單片機代碼燒錄 STM32單片機控制MFRC500對M1卡的簡單

31、操作,STM32開發(fā)工具keil MDK介紹,Keil是德國知名軟件公司Keil(現(xiàn)已并入ARM 公司)開發(fā)的微控制器軟件開發(fā)平臺,是目前ARM內(nèi)核單片機開發(fā)的主流工具。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些功能組合在一起。它的界面和常用的微軟VC+的界面相似,界面友好,易學易用,在調(diào)試程序,軟件仿真方面也有很強大的功能。 使用Keil來開發(fā)嵌入式軟件,開發(fā)周期和其他的平臺軟件開發(fā)周期是差不多的,大致有以下幾個步驟:1. 創(chuàng)建一個工程,選擇一塊目標芯片,并且做一些必要的工程配置。2. 編寫C或

32、者匯編源文件。3. 編譯應用程序。4. 修改源程序中的錯誤。5. 聯(lián)機調(diào)試。,STM32開發(fā)工具keil MDK介紹,MDK具有良好的界面風格,下圖是主界面窗口。,STM32F103RBT6單片機使用,本RFID讀寫器的主控單片機是STM32,固件代碼用C語言編寫。STM32系列是基于ARM Cortex-M內(nèi)核專為要求高性能、低成本、低功耗的嵌入式應用而設計,使用STM32外設功能時可用以直接操作寄存器方法或調(diào)用ARM微控制器固件函數(shù)庫。 寄存器: STM32和其他單片機原理一樣,也是有自己的寄存器,作為一款ARM內(nèi)核的芯片,功能非常豐富,寄存器自然也很多,STM32的手冊有一千多頁。操作配

33、置某個外設的時都要去查閱數(shù)據(jù)手冊才能驅(qū)動起來。 STM32中文參考手冊 固件函數(shù)庫: 該函數(shù)庫是一個固件函數(shù)包,它由程序、數(shù)據(jù)結(jié)構(gòu)和宏組成,包括了微控制器所有外設的性能特征。 該函數(shù)庫還包括每一個外設的驅(qū)動描述和應用實例。通過使用本固件函數(shù)庫,無需深入掌握細節(jié),用戶也可以輕松應用每一個外設。因此,使用本固態(tài)函數(shù)庫可以大大減少用戶的程序編寫時間,進而降低開發(fā)成本。STM32固件庫使用手冊,STM32F103RBT6單片機使用,STM32配置GPIO口操作寄存器版本和調(diào)用固件函數(shù)庫版本C代碼舉例如下。 寄存器: 固件函數(shù)庫:,MFRC500關鍵寄存器介紹與配置,MFRC500的控制主要是通過讀寫M

34、FRC500的寄存器來實現(xiàn)的,RC500共有64個寄存器,單簡單應用的話只用到其中的幾個,用的最多的是FIFODATA(數(shù)據(jù)堆棧),COMMAND(命令),F(xiàn)IFOLENGTH(堆棧長度),PRIMARYSTATU(標記)等。 MFRC500主要是通過寫通訊命令、參數(shù)、數(shù)據(jù)到FIFODATA,再通過寫命令到COMMAND 實現(xiàn)與M1卡的通訊。 MFRC500通訊主要分為4步 一、尋卡,寫通訊命令26H或52H到FIFODATA,成功后得到卡類型。 二、選擇,寫通訊命令93H到FIFODATA,成功后得到卡號。 三、認證(密碼校驗),通過LOADKEY寫KEY到KEY緩存,寫參數(shù)命令60(認 證

35、A密碼)或61H(認證B密碼)+塊地址+卡號到FIFODATA,寫命令0CH 到COMMAND,此操作卡不返回數(shù)據(jù),通過讀取標記判斷是否成功 四、直接對卡進行讀寫增減值操作,也就是通過在FIFODATA上寫入命令參數(shù)及數(shù)據(jù)。,SPI接口介紹,SPI(Serial Peripheral Interface-串行外設接口)總線系統(tǒng)是一種同步串行外設接口,它可以使MCU與各種外圍設備以串行方式進行通信以交換信息。SPI是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時為PCB的布局上節(jié)省空間,提供方便,正是出于這種簡單易用的特性,現(xiàn)在越來越多的芯片集成了這種通信協(xié)議。 SPI接口一般使用4條線: MISO 主設備數(shù)據(jù)輸入,從設備數(shù)據(jù)輸出。 MOSI 主設備數(shù)據(jù)輸出,從設備數(shù)據(jù)輸入。 SCLK時鐘信號,由主設備產(chǎn)生。 CS從設備片選信號,由主設備控制。 其中CS是控制芯片是否被選中的,只有片選信號為使能信號時對此芯片的操作才有效。這就允許在同一總線上可以連接多

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論