徐敬
摘要:隨著物聯(lián)網(wǎng)不斷發(fā)展,RFID技術(shù)越來越重要,該文設(shè)計了一個基于跨平臺QT的Mifare IC卡讀卡器上位機軟件,使用讀卡器的動態(tài)庫,快速驗證mifare ic卡的工作原理。首先分析了Mifare IC卡的內(nèi)部結(jié)構(gòu)和讀卡器的通信過程,然后使用QT Creator的圖形界面控件快速實現(xiàn)上位機軟件界面,通過調(diào)用讀卡器的動態(tài)庫很好完成卡片的讀寫功能。經(jīng)過實驗驗證,該上位機軟件滿足設(shè)計的要求。
關(guān)鍵詞:RFID;QT;讀卡器;上位機軟件
中圖分類號:TP368? ? ? 文獻標(biāo)識碼:A
文章編號:1009-3044(2021)33-0124-03
開放科學(xué)(資源服務(wù))標(biāo)識碼(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射頻識別,它通過射頻信號自動識別目標(biāo),獲取相關(guān)數(shù)據(jù)。RFID可以識別高速運動的物體,可以同時識別多個目標(biāo),不需要光源和使用壽命長。RFID卡包括ID卡、IC卡和NFC卡以及電子標(biāo)簽。MIFARE卡常用于智能樓宇[1]、住宅小區(qū)和企業(yè)公司、校園智能化“一卡通”管理[2-4]等。隨著物聯(lián)網(wǎng)不斷發(fā)展,RFID技術(shù)越來越重要,可以通過讀卡器上位機軟件開發(fā),掌握RFID相關(guān)知識。
1 讀卡器工作原理
Mifare 1 非接觸式IC卡是荷蘭NXP半導(dǎo)體公司發(fā)明。Mifare 1卡的RF非接觸式接口符合IS0/IEC 14443 TYPE A標(biāo)準(zhǔn)[5]。Mifare 1卡具有使用廣泛、技術(shù)成熟、性能穩(wěn)定等優(yōu)點。它制卡成本低,使用簡單,抗干擾能力強,安全性好,適合于一卡多用。
M1卡包含一個高速RF射頻接口電路和數(shù)字電路。防碰撞電路,處理多張卡片訪問沖突問題,一次只能訪問一張卡。認證控制電路,驗證某個扇區(qū)的讀寫密碼。M1卡數(shù)據(jù)保存在EEPROM存儲單元,EEPROM存儲單元可以擦除數(shù)據(jù)后再次寫入,實現(xiàn)數(shù)據(jù)修改??刂婆c算術(shù)單元是卡片的控制中心,對數(shù)據(jù)進行運算,遞增遞減,CRC運算,加密處理等。M1卡的內(nèi)部結(jié)構(gòu)如圖1所示。
卡呼叫,讀卡器發(fā)送一個請求信號,卡片收到請求信號后回復(fù)應(yīng)答信號,應(yīng)答包含卡片的類型。讀卡器防沖突機制從多張卡片選擇一個卡進行操作,未選中的卡不參加這次讀寫。讀卡器選定卡片后,使用被訪問扇區(qū)的密碼進行卡認證。每個扇區(qū)只有通過密碼認證才可以讀寫卡的對應(yīng)扇區(qū)數(shù)據(jù)[6]。M1卡認證過程,需要使用扇區(qū)密碼,對讀卡器和卡片通信數(shù)據(jù)進行加密,無線信號很容易被截獲。讀寫器的通信流程如圖2所示。
2 讀卡器上位機軟件設(shè)計
2.1 讀卡器的動態(tài)庫
讀卡器提供了開發(fā)功能的動態(tài)庫,可以使用動態(tài)庫進行二次開發(fā)。動態(tài)庫支持Mifare IC卡所有功能操作,例如選卡、卡認證、讀寫卡、修改密碼、休眠卡等。讀卡器的動態(tài)庫導(dǎo)出的函數(shù)如表1。
2.2 界面設(shè)計
Qt是一個跨平臺C++應(yīng)用程序開發(fā)工具,可以快速開發(fā)GUI程序和非GUI程序。Qt有可視化圖形界面編輯器Qt Designer,拖拽Qt控件快速設(shè)計應(yīng)用程序界面,使用信號和槽處理應(yīng)用程序事件。Qt常用控件包括按鈕,單選框,復(fù)選框,分組框,樹視圖,表格視圖,文本等。Qt應(yīng)用程序移植非常方便,可以根據(jù)不同操作系統(tǒng)進行轉(zhuǎn)換。
讀卡器上位機軟件使用windows qt開發(fā),使用圖形界面按鈕控件,label控件,textedit控件,textBrowser控件,tableview控件。讀卡器上位機軟件通過textedit控件輸入扇區(qū)號,塊號和密碼A。textBrowser控件用于顯示命令的執(zhí)行結(jié)果,例如讀取卡類型命令的返回結(jié)果。tableview控件用于顯示某扇區(qū)的數(shù)據(jù),和寫入某扇區(qū)的數(shù)據(jù)。上位機軟件界面如圖3所示。
2.3 軟件功能實現(xiàn)
讀卡類型,打開讀卡器動態(tài)庫,查找pcdgetdevicenumber函數(shù)的調(diào)用地址,通過pcdgetdevicenumber函數(shù)指針調(diào)用,獲得卡片的設(shè)備id號,判斷卡的類型。讀扇區(qū)數(shù)據(jù),從軟件界面輸入框獲取扇區(qū)號和扇區(qū)密碼,打開讀卡器動態(tài)庫,查找piccreadex函數(shù)的調(diào)用地址,設(shè)置扇區(qū)的控制字,調(diào)用piccreadex函數(shù),獲得卡片的序列號和扇區(qū)數(shù)據(jù),在軟件的卡數(shù)據(jù)區(qū)表格顯示扇區(qū)0-2塊的數(shù)據(jù)。寫入扇區(qū)數(shù)據(jù),修改軟件的卡數(shù)據(jù)表格里面的數(shù)據(jù),程序讀取卡數(shù)據(jù)區(qū)表格里面數(shù)據(jù),并讀取扇區(qū)的密碼A和扇區(qū)號,調(diào)用piccwriteex函數(shù),把數(shù)據(jù)寫入卡片。寫入扇區(qū)數(shù)據(jù)如圖4所示。
修改扇區(qū)密碼,從軟件輸入框讀取扇區(qū)號,原扇區(qū)密碼和新扇區(qū)密碼,設(shè)置扇區(qū)訪問控制字,調(diào)用piccchangesinglekey函數(shù)修改對應(yīng)扇區(qū)的密碼,檢查piccchangesinglekey函數(shù)返回值,返回值是0,顯示扇區(qū)密碼修改成功,否則顯示扇區(qū)密碼修改失敗原因。
3 實驗結(jié)果與分析
讀卡器上位機軟件啟動后,點擊讀卡類型按鈕,信息返回文本框顯示卡片的設(shè)備id。上位機軟件填寫扇區(qū)號,塊號和密碼A(6字節(jié)),點擊讀扇區(qū)數(shù)據(jù)按鈕,卡數(shù)據(jù)區(qū)文本框顯示卡片的對應(yīng)扇區(qū)數(shù)據(jù)內(nèi)容,扇區(qū)的數(shù)據(jù)是48字節(jié),不包含扇區(qū)的第3塊中密碼和控制字。修改卡數(shù)據(jù)區(qū)的扇區(qū)數(shù)據(jù)數(shù)值,點擊寫入扇區(qū)數(shù)據(jù)按鈕,修改后的數(shù)據(jù)寫回到對應(yīng)扇區(qū)。讀卡器上位機軟件,密碼框填寫對應(yīng)扇區(qū)密碼A,新密碼框填寫新扇區(qū)密碼A,點擊修改扇區(qū)密碼A按鈕,可以修改卡的對應(yīng)扇區(qū)密碼A。實驗結(jié)果如圖5所示。
4 結(jié)束語
本文通過windows QT開發(fā)工具,使用gui控件,設(shè)計和實現(xiàn)了一個簡明的讀卡器上位機軟件。該上位機軟件可以讀取Mifare IC卡的序列號,并且通過密碼A讀取和寫入卡片的扇區(qū)數(shù)據(jù)。文中詳細描述了Mifare IC卡的內(nèi)部結(jié)構(gòu),IC卡與讀卡器的通信過程,對讀卡器讀寫過程進行了詳細說明。該讀卡器上位機軟件很好驗證了Mifare IC卡讀卡器的工作原理,上位機軟件功能待后續(xù)進一步增強。
參考文獻:
[1] 陳華莉,王天兵,王繼剛.基于MIFARE技術(shù)的智能化RFID門禁管理系統(tǒng)設(shè)計[J].電子世界,2017(23):146-147.
[2] 劉玉普.高校校園卡系統(tǒng)應(yīng)用現(xiàn)狀及趨勢分析[J].信息化建設(shè),2015(12):30.
[3] 謝宇威,李杭彩,程艷旗,等.校園卡支付體系探索與實踐[J].深圳大學(xué)學(xué)報(理工版),2020,37(S1):134-138.
[4] 熊偉,宮禹,尹斐斐.高校智慧校園卡規(guī)劃與實現(xiàn)[J].信息技術(shù)與信息化,2020(7):178-182.
[5] 王悅.RFID安全認證協(xié)議研究[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2020(5):42-44.
[6] 韓進,馬雙.基于STM32的Mifare IC卡讀寫卡器設(shè)計[J].電子產(chǎn)品世界,2016,23(4):31-34.
【通聯(lián)編輯:謝媛媛】