徐敬



摘要:隨著物聯網不斷發展,RFID技術越來越重要,該文設計了一個基于跨平臺QT的Mifare IC卡讀卡器上位機軟件,使用讀卡器的動態庫,快速驗證mifare ic卡的工作原理。首先分析了Mifare IC卡的內部結構和讀卡器的通信過程,然后使用QT Creator的圖形界面控件快速實現上位機軟件界面,通過調用讀卡器的動態庫很好完成卡片的讀寫功能。經過實驗驗證,該上位機軟件滿足設計的要求。
關鍵詞:RFID;QT;讀卡器;上位機軟件
中圖分類號:TP368? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)33-0124-03
開放科學(資源服務)標識碼(OSID):
Design and Implementation of Upper Monitor for Mifare IC Card Reader Based on QT
XU Jing
(Modern educational technology center, China Jiliang University, Hangzhou 310018, China)
Abstract:With the development of the Internet of Things, RFID technology is becoming more and more important. This paper designs a software for the upper monitor of mifare ic card reader based on the cross-platform QT, and uses the dynamic library of the card reader to quickly verify the working principle of Mifare IC card. Firstly, the internal structure of Mifare IC card and the communication process of card reader are analyzed. Then, the GUI of upper monitor is quickly realized by using the graphical interface control of QT Creator, and the reading and writing function of card is well completed by calling the dynamic library of card reader. After experimental verification, the upper monitor meets the design requirements.
Key words: RFID; QT; card reader; upper monitor
RFID射頻識別,它通過射頻信號自動識別目標,獲取相關數據。RFID可以識別高速運動的物體,可以同時識別多個目標,不需要光源和使用壽命長。RFID卡包括ID卡、IC卡和NFC卡以及電子標簽。MIFARE卡常用于智能樓宇[1]、住宅小區和企業公司、校園智能化“一卡通”管理[2-4]等。隨著物聯網不斷發展,RFID技術越來越重要,可以通過讀卡器上位機軟件開發,掌握RFID相關知識。
1 讀卡器工作原理
Mifare 1 非接觸式IC卡是荷蘭NXP半導體公司發明。Mifare 1卡的RF非接觸式接口符合IS0/IEC 14443 TYPE A標準[5]。Mifare 1卡具有使用廣泛、技術成熟、性能穩定等優點。它制卡成本低,使用簡單,抗干擾能力強,安全性好,適合于一卡多用。
M1卡包含一個高速RF射頻接口電路和數字電路。防碰撞電路,處理多張卡片訪問沖突問題,一次只能訪問一張卡。認證控制電路,驗證某個扇區的讀寫密碼。M1卡數據保存在EEPROM存儲單元,EEPROM存儲單元可以擦除數據后再次寫入,實現數據修改??刂婆c算術單元是卡片的控制中心,對數據進行運算,遞增遞減,CRC運算,加密處理等。M1卡的內部結構如圖1所示。
卡呼叫,讀卡器發送一個請求信號,卡片收到請求信號后回復應答信號,應答包含卡片的類型。讀卡器防沖突機制從多張卡片選擇一個卡進行操作,未選中的卡不參加這次讀寫。讀卡器選定卡片后,使用被訪問扇區的密碼進行卡認證。每個扇區只有通過密碼認證才可以讀寫卡的對應扇區數據[6]。M1卡認證過程,需要使用扇區密碼,對讀卡器和卡片通信數據進行加密,無線信號很容易被截獲。讀寫器的通信流程如圖2所示。
2 讀卡器上位機軟件設計
2.1 讀卡器的動態庫
讀卡器提供了開發功能的動態庫,可以使用動態庫進行二次開發。動態庫支持Mifare IC卡所有功能操作,例如選卡、卡認證、讀寫卡、修改密碼、休眠卡等。讀卡器的動態庫導出的函數如表1。
2.2 界面設計
Qt是一個跨平臺C++應用程序開發工具,可以快速開發GUI程序和非GUI程序。Qt有可視化圖形界面編輯器Qt Designer,拖拽Qt控件快速設計應用程序界面,使用信號和槽處理應用程序事件。Qt常用控件包括按鈕,單選框,復選框,分組框,樹視圖,表格視圖,文本等。Qt應用程序移植非常方便,可以根據不同操作系統進行轉換。
讀卡器上位機軟件使用windows qt開發,使用圖形界面按鈕控件,label控件,textedit控件,textBrowser控件,tableview控件。讀卡器上位機軟件通過textedit控件輸入扇區號,塊號和密碼A。textBrowser控件用于顯示命令的執行結果,例如讀取卡類型命令的返回結果。tableview控件用于顯示某扇區的數據,和寫入某扇區的數據。上位機軟件界面如圖3所示。
2.3 軟件功能實現
讀卡類型,打開讀卡器動態庫,查找pcdgetdevicenumber函數的調用地址,通過pcdgetdevicenumber函數指針調用,獲得卡片的設備id號,判斷卡的類型。讀扇區數據,從軟件界面輸入框獲取扇區號和扇區密碼,打開讀卡器動態庫,查找piccreadex函數的調用地址,設置扇區的控制字,調用piccreadex函數,獲得卡片的序列號和扇區數據,在軟件的卡數據區表格顯示扇區0-2塊的數據。寫入扇區數據,修改軟件的卡數據表格里面的數據,程序讀取卡數據區表格里面數據,并讀取扇區的密碼A和扇區號,調用piccwriteex函數,把數據寫入卡片。寫入扇區數據如圖4所示。
修改扇區密碼,從軟件輸入框讀取扇區號,原扇區密碼和新扇區密碼,設置扇區訪問控制字,調用piccchangesinglekey函數修改對應扇區的密碼,檢查piccchangesinglekey函數返回值,返回值是0,顯示扇區密碼修改成功,否則顯示扇區密碼修改失敗原因。
3 實驗結果與分析
讀卡器上位機軟件啟動后,點擊讀卡類型按鈕,信息返回文本框顯示卡片的設備id。上位機軟件填寫扇區號,塊號和密碼A(6字節),點擊讀扇區數據按鈕,卡數據區文本框顯示卡片的對應扇區數據內容,扇區的數據是48字節,不包含扇區的第3塊中密碼和控制字。修改卡數據區的扇區數據數值,點擊寫入扇區數據按鈕,修改后的數據寫回到對應扇區。讀卡器上位機軟件,密碼框填寫對應扇區密碼A,新密碼框填寫新扇區密碼A,點擊修改扇區密碼A按鈕,可以修改卡的對應扇區密碼A。實驗結果如圖5所示。
4 結束語
本文通過windows QT開發工具,使用gui控件,設計和實現了一個簡明的讀卡器上位機軟件。該上位機軟件可以讀取Mifare IC卡的序列號,并且通過密碼A讀取和寫入卡片的扇區數據。文中詳細描述了Mifare IC卡的內部結構,IC卡與讀卡器的通信過程,對讀卡器讀寫過程進行了詳細說明。該讀卡器上位機軟件很好驗證了Mifare IC卡讀卡器的工作原理,上位機軟件功能待后續進一步增強。
參考文獻:
[1] 陳華莉,王天兵,王繼剛.基于MIFARE技術的智能化RFID門禁管理系統設計[J].電子世界,2017(23):146-147.
[2] 劉玉普.高校校園卡系統應用現狀及趨勢分析[J].信息化建設,2015(12):30.
[3] 謝宇威,李杭彩,程艷旗,等.校園卡支付體系探索與實踐[J].深圳大學學報(理工版),2020,37(S1):134-138.
[4] 熊偉,宮禹,尹斐斐.高校智慧校園卡規劃與實現[J].信息技術與信息化,2020(7):178-182.
[5] 王悅.RFID安全認證協議研究[J].網絡安全技術與應用,2020(5):42-44.
[6] 韓進,馬雙.基于STM32的Mifare IC卡讀寫卡器設計[J].電子產品世界,2016,23(4):31-34.
【通聯編輯:謝媛媛】