RFID讀卡器讀數(shù)據(jù)塊腳本-KC07020303-a04_第1頁
RFID讀卡器讀數(shù)據(jù)塊腳本-KC07020303-a04_第2頁
RFID讀卡器讀數(shù)據(jù)塊腳本-KC07020303-a04_第3頁
全文預覽已結(jié)束

下載本文檔

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

文檔簡介

1、RFID讀卡器讀數(shù)據(jù)塊腳本草稿序號腳步1同學們,大家好。今天我們繼續(xù)學習“學習模塊二 基于RFID的智能消費系統(tǒng)設備編程與實施”,本堂課的內(nèi)容是“RFID讀寫器讀數(shù)據(jù)塊”。2在前面的教學內(nèi)容中,我們創(chuàng)建了一個RFID測試程序,今天要學習的內(nèi)容便是將RFID讀取數(shù)據(jù)塊的操作添加到該程序中。3整個內(nèi)容分成4部分,讀數(shù)據(jù)塊命令格式,讀數(shù)據(jù)塊命令代碼,讀數(shù)據(jù)塊響應格式,讀數(shù)據(jù)塊響應代碼。4首先介紹RFID讀卡器讀數(shù)據(jù)塊命令格式5當命令字段CMD為0x20時,表面讀卡器將進行集成尋卡,防沖突,選卡,驗證密碼,讀卡等環(huán)節(jié),一個命令完成讀數(shù)據(jù)塊操作。6接下來,介紹讀數(shù)據(jù)塊命令的附帶數(shù)據(jù)。命令附帶數(shù)據(jù)的第一個

2、字節(jié)為讀取模式控制,該字節(jié)中比特0指示了請求模式為IDEL模式還是ALL模式,當比特0為0時為IDEL模式,當比特0為1時為ALL模式;比特1指示了采用密鑰A校驗還是密鑰B校驗,當比特1為0時對密鑰A進行校驗,當比特1為1時對密鑰B進行校驗。7命令附帶數(shù)據(jù)的下一個字節(jié)為要讀取的塊數(shù)長度值,即讀多少塊。取值范圍為01-04,因為讀取操作不能跨扇區(qū)。8讀卡附帶數(shù)據(jù)的下一個字節(jié)為要讀取的塊的起始地址。Mifare1 S50卡片1K字節(jié)存儲共有16扇區(qū),每個扇區(qū)4個數(shù)據(jù)塊,共64個數(shù)據(jù)塊,因此數(shù)據(jù)塊的全局索引為0到639讀卡附帶數(shù)據(jù)的后6個字節(jié)為讀卡操作需要的6字節(jié)密鑰,其中密鑰低字節(jié)先填充到命令中1

3、0接下來我們介紹在讀數(shù)據(jù)塊的命令代碼具體實現(xiàn),在介紹代碼實現(xiàn)時,利用到前面創(chuàng)建的RFID測試程序項目。11在RFID測試程序界面編輯窗口雙擊“MF讀數(shù)據(jù)塊”按鈕,將添加該按鈕的鼠標點擊事件的響應函數(shù),在該函數(shù)中將實現(xiàn)構(gòu)造讀數(shù)據(jù)塊命令包并通過串口發(fā)送出去在該響應函數(shù)中,首先定義一個字節(jié)數(shù)組用于存放構(gòu)造的命令,定義整型變量idx標識填充位置索引,定義整型變量bcc便于計算校驗值。12首先填充命令開始字節(jié)0x02和站點ID值,讀卡器應用在單機模式,因此站點ID值為0x00;然后填充讀數(shù)據(jù)塊命令0x20,為了確定接收命令串口響應如何進行解析,因此把命令值記錄到窗口成員變量curr_cmd中.接下來填充

4、命令附帶數(shù)據(jù),附帶數(shù)據(jù)第一個字節(jié)DATA0為讀取模式控制,這里取0,表示Request Idle以及驗證密鑰A;下一個字節(jié)為讀取的數(shù)據(jù)塊數(shù),這里假定每次只讀取一個數(shù)據(jù)塊,因此取值為1;下一個字節(jié)為讀取的數(shù)據(jù)塊起始地址,該數(shù)值由界面上扇區(qū)號和扇區(qū)內(nèi)塊編號組合獲得。接下來的6個字節(jié)為訪問密鑰,該密鑰由文本框以十六進制格式輸入,字節(jié)與字節(jié)間通過空格分隔。由此可以知道命令以及命令相關數(shù)據(jù)字節(jié)數(shù)為10,所以將10填充到datalength字段。13接下來通過整型變量bcc計算校驗字節(jié)的值,并轉(zhuǎn)換成字節(jié)類型填充到數(shù)據(jù)包中;最后填充命令包結(jié)束字節(jié),便可通過Write操作將命令包通過串口發(fā)送給RFID讀寫器1

5、4接下來介紹讀數(shù)據(jù)塊的響應格式15當響應狀態(tài)STATUS為0時,表明讀數(shù)據(jù)塊操作執(zhí)行正確,接下來的4個字節(jié)為Mifare卡的卡號(其中低字節(jié)在前) 16接下來的字節(jié)為返回的數(shù)據(jù)塊的數(shù)值,若讀取一個數(shù)據(jù)塊,應該返回16個字節(jié)的數(shù)值17當STATUS為1時,表明讀數(shù)據(jù)塊操作執(zhí)行錯誤,接下來的1個字節(jié)為參考錯誤代碼18接下來介紹讀數(shù)據(jù)塊的響應代碼實現(xiàn)19應用程序需要根據(jù)發(fā)送命令記錄curr_cmd來決定如何解析串口響應,當為curr_cmd為0x20讀數(shù)據(jù)塊命令時,進行讀數(shù)據(jù)塊響應解析。首先根據(jù)STATUS字段是否為0,推斷讀卡號操作是否執(zhí)行正確,進行分別處理。20如果status為0,代表讀數(shù)據(jù)塊操作執(zhí)行正確,那么接下來的4個字節(jié)為Mifare卡號,低字節(jié)在前,需要將卡號轉(zhuǎn)成16進制字符串顯示在界面窗口;后續(xù)數(shù)據(jù)內(nèi)容對應于讀到的一個數(shù)據(jù)塊的16字節(jié)數(shù)據(jù),將數(shù)據(jù)轉(zhuǎn)成字符串顯示在程序界面上21如果status為1,代表讀據(jù)塊操作執(zhí)行錯去,那么接下來的1個字節(jié)為錯誤代碼,這里不需要對錯誤代碼進

溫馨提示

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

評論

0/150

提交評論