摘要:射頻卡成功地將無線射頻識別技術與IC卡技術結合起來,有效解決了無源和免接觸難題。基于單片機和射頻識別技術,并以門禁系統(tǒng)為應用實例,給出了一種新型射頻卡讀卡器的設計方案。該方案以單片機為主控器件,依照卡機之間的通信協(xié)議控制讀/寫模塊,實現對射頻卡的讀/寫、控制等完備操作。結合硬件原理圖和軟件流程圖,給出了射頻卡讀卡器的設計思想和實現過程。實際使用表明,該設計方案可行,讀寫器工作穩(wěn)定,操作方便,抗干擾能力強。
關鍵詞:射頻卡;單片機;門禁系統(tǒng);讀卡器
射頻卡是繼磁卡之后的新一代數據卡,它利用雙向無線電射頻技術與讀寫設備進行數據交換,具有智能讀寫和加密通信的功能,與傳統(tǒng)的接觸IC卡、磁卡相比,射頻卡具有非接觸、無磨損、操作方便,讀寫頻率高,使用壽命長,安全防沖突等優(yōu)點。本文以門禁系統(tǒng)為應用實例,設計了一種以TI公司的疏耦合IC卡Tag-itHF-I為識別對象,以8031單片機為微控制器,以TI公司的S6700讀/寫模塊為核心部件的射頻卡讀卡器。它能完成對Tag-it HF-I卡的所有讀/寫及控制工作,并且還可以方便地嵌入如考勤、收費等其他多種自動識別系統(tǒng),成為系統(tǒng)的一部分。
1 工作原理
射頻卡與讀寫器之間通過耦合元件實現射頻信號的空間耦合,在耦合通道內,根據時序關系實現能量的傳遞和數據的交換,然后由后臺計算機對讀卡器讀取的數據進行存儲以及管理分析等操作。具體實現上,射頻卡內含有天線、ASIC、集成LC諧振電路。諧振電路的頻率與讀卡器發(fā)射頻率相同為13.56 MHz,工作時的能量由讀卡器天線發(fā)射無線電載波信號耦合到卡片內的天線產生。微控制器8031單片機依照ISO/
IEC15693-3通信協(xié)議,編寫控制程序,以完成對S6700讀/寫模塊的控制。S6700讀/寫模塊實際上是單片機與射頻卡之間進行信息交換的媒介,射頻卡上的數據讀寫均需通過S6700讀/寫模塊來傳遞。傳遞不同類型的指令給S6700讀/寫模塊,就能實現對S6700讀/寫模塊的控制,進而完成對射頻卡的讀/寫、控制等操作。
2 系統(tǒng)組成
射頻卡讀卡器的硬件電路主要包括以下幾個部分:單片機系統(tǒng)、射頻卡讀/寫模塊、通信電路、射頻卡、讀寫器天線電路和各種指示信號電路。由于文中射頻卡讀寫器是以門禁系統(tǒng)為應用平臺,考慮到門禁系統(tǒng)需要用到一些手動操作來完成用戶與機器的簡單溝通,所以設計中增加了鍵盤電路和LCD液晶顯示電路。其原理框圖如圖1所示。實際應用中可以依據不同的自動識別系統(tǒng)根據需要增刪相應的電路。
2.1 讀/寫模塊S6700
本文使用的S6700讀/寫模塊是射頻卡實現無線通信的核心模塊和關鍵接口芯片,支持13.56 MHz的多種射頻通信協(xié)議,具備閑置、掉電、安全功率三種供電模式,電源電壓為3~5.5 V,發(fā)送電流為80~120 mA,射頻調制系數為10%或100%可選,通過三線制串行接口總線(Din,Dout,Sclock)與單片機通信。具體工作時,通信端口Sclock口、Din口、Dout口分別與單片機P2口的低3位P2.O,P2.1,P2.2口相連。在Sclock同步時鐘作用下,通過Din引腳接收單片機信息,按照射頻通信協(xié)議ISO/IEC15693-3編碼后,予以調制系數為100%或10%的調制。接收時,由Rxinput引腳輸入天線獲取的射頻卡信息,經整流二極管包絡檢測,進而濾波、放大、解碼后,在Sclock同步時鐘作用下,通過Dout引腳送單片機。
2.2 LCD液晶顯示電路
LCD選用的是金鵬電子有限公司的OCMJB系列液晶顯示器,共有14個引腳。在接口電路連接上,直接將單片機的P0口作為數據口與LCD的8位數據端口相連,P2口的P2.3,P2.4作為控制口分別與LCD的REQ口與BUSY口相連。
2.3 鍵盤掃描電路
需要10個數字輸入鍵,外加一個確認鍵和一個退格鍵,總共12個按鍵,做成3×4鍵盤。鍵盤掃描通過系統(tǒng)分配的3條列線和4條行線,采用逐行掃描或逐列掃描的辦法。在接口電路連接上,單片機分配P1口的低四位作為行線,P1.4,P1.5,P1.6口作為列線,共同實現對鍵盤的掃描。
2.4 外部中斷電路
當外界通過INT0口或INT1口向系統(tǒng)連續(xù)輸入2個時鐘周期的低電平時,系統(tǒng)便會發(fā)出一個中斷信號。在設計中,通過兩個按鍵發(fā)出外部中斷,按鍵的一腳與單片機的中斷入口(INT0,INT1)相連,另一腳接地。
3 系統(tǒng)軟件設計
讀卡器的軟件設計是在MCS51調試環(huán)境中開發(fā)的,MCS51調試環(huán)境支持C語言和匯編語言。整個軟件設計主要包括射頻卡讀寫控制程序、鍵盤控制程序、液晶顯示程序等??紤]到本文讀卡器是以門禁系統(tǒng)為應用實例,增加了添加用戶、掛失、更改密碼3個輔助功能。
3.1 射頻卡讀/寫控制程序設計
在本次設計中選用的射頻卡是TI公司的疏耦合IC卡Tag-it HF-I,遵循ISO/IEC15693-3通信協(xié)議。讀/寫控制程序的具體過程如流程圖2所示。
時間寄存器主要用來設置數字解碼器的采樣點,在對射頻卡進行其他操作前,需先對時間寄存器進行初始化??C通信需在一定的時間內完成,若在規(guī)定的時間內讀卡器檢測不到應答信號,則認為無卡,具體通過TIME0定時器在規(guī)定的時間內檢測SOF信號來實現。所以,首先要初始化TIME0定時器,并對TIME0開中斷,將讀命令串寫入命令發(fā)送緩沖區(qū),另外需要計算命令串的CRC驗證碼(循環(huán)驗證碼),接著存放命令串,最后調用發(fā)送模塊將其一起發(fā)送。發(fā)送命令時鐘由單片機控制,接收時鐘由讀卡器控制,因此在發(fā)送完命令串后接著要將時鐘控制權交還給讀卡器,定時器TIME0開始計時,檢測射頻卡發(fā)回的開始位信號,如果在規(guī)定時間內檢測不到信號,定時器TIMER0便會發(fā)生溢出信號,CP U相應溢出中斷,進入TIME0的中斷服務子程序,將無卡標志位NOCARD置1,程序就會跳回,重新開始定時檢測。當在計時范圍內檢測到SOF信號時,按照返回數據格式,接收數據標志(Flags)字節(jié)、安全狀態(tài)字節(jié)等相應字節(jié)的數據,最后接收結束位EOF。若數據標志的最后一位為1,表明發(fā)送命令有誤,射頻卡會發(fā)送錯誤類型標識字節(jié),否則射頻卡會依次發(fā)送數據,調用接收模塊,將接收的數據依次存放于接收緩沖區(qū),用于對用戶信息的核對。
在射頻卡讀/寫控制程序中,命令發(fā)送模塊和數據接收模塊是射頻卡讀/寫的關鍵所在。命令發(fā)送模塊首先必須發(fā)出起始位SOF信號,然后發(fā)送具體的命令串。命令串的發(fā)送分為3部分:命令字發(fā)送;數據字發(fā)送;校驗字節(jié)發(fā)送。命令字的發(fā)送必須是高位在先,而數據字發(fā)送則是低位在先,CRC校驗碼放在命令串最后,同命令串一起發(fā)送。命令串的傳送通過移位實現,再通過DIN口逐位發(fā)送。在命令發(fā)送結束后,還要發(fā)送一個結束位EOF。接收模塊在接收時必須先把時鐘控制權交給讀/寫模塊,接收時每次按位接收一個字節(jié)的內容,采樣間隔為10μs,必須在規(guī)定的時間內完成接收工作,否則認為接收出錯。程序通過定時器TIMER1實現計時,當計時到時IMER1發(fā)出溢出中斷信號,CPU響應溢出中斷,進入TIMER1中斷服務子程序,將接收錯誤標志位VICCERROR置1,表示發(fā)生錯誤。程序在接收完一個字節(jié)的內容后判斷VICCERROR的狀態(tài),如果發(fā)生錯誤,程序跳回,重新發(fā)送讀命令。
3.2 液晶顯示控制程序
LCD是通過P0口與P2口的P2.3,P2.4共同完成控制的。其中P0口作為數據口,P2.3,P2.4口作為控制口。首先通過P2.3口將REQ清零,準備向LCD寫入數據,然后通過P2.4口讀出LCD的BUSY口的狀態(tài)。如果LCD為空閑狀態(tài),便可向LCD寫入數據。向LCD寫入數據需先將數據送到LCD數據線,然后給REQ一個上升沿,將數據線上的內容寫入LCD。
3.3 鍵盤控制程序
鍵盤掃描通過P1口完成,先給第1列加低電平其余位皆為高電平,檢查第1列是否有鍵按下,沒有則檢查第2列,再沒有,檢查第3列,第3列仍沒有,返回重新檢查第1列,依次循環(huán)檢查。當有鍵按下時將鍵碼存下,再重復檢查若干次,實現去抖。最后通過查表得到有效鍵值返回。
3.4 輔助功能程序
射頻卡讀出的信息由2部分組成,首先是一串用戶識別碼,可在添加用戶功能中向射頻卡寫入,其次就是一個字節(jié)的用戶代號,設計用戶代號主要是考慮用戶掛失所用,在對用戶信息驗證時,先對用戶代碼驗證,然后對用戶識別碼進行驗證,其中任何一環(huán)節(jié)出現錯誤,則認為是非法用戶,無法開啟門鎖。在具體設計上,“添加用戶”主要通過向用戶的新卡中寫入合法的用戶信息識別碼來實現。此項功能屬于用戶的私人操作,在操作前必須經過密碼驗證,密碼驗證通過后,再由用戶輸入此卡對應的編號。掛失功能也是本文設計中的一個必備功能,它主要通過設置用戶狀態(tài)標志字來實現,在程序設計中給每一個用戶分配一個字節(jié)的用戶狀態(tài)標志字,通過驗證狀態(tài)字來判斷是處于正常狀態(tài)還是掛失狀態(tài)。同添加用戶功能一樣,該功能亦屬于用戶私人操作,也要經過密碼驗證。上述2項輔助功能都需經過密碼驗證,因此對密碼的保密性、可更改性都提出了較高的要求,在本文設計中同樣設置了“更改密碼功能”,用戶更改密碼的前提是輸入正確的用戶密碼,然后由用戶連續(xù)兩次輸入格式和數據完全相同的密碼,最后將新密碼替換原先的舊密碼。
4 結語
本文設計的射頻卡讀卡器是應工程實際需求而專門設計,采用單片機為主控器件,充分結合硬件、軟件優(yōu)勢,采用低功耗、體積小、集成度高的元器件,減小了系統(tǒng)體積、重量、功耗,提高了編程靈活性。應用實踐證明:該讀卡器設計合理可行,具有工作可靠、操作方便、成本低廉、響應速度快、抗干擾能力強等優(yōu)點。另外,該讀卡器可以方便地與包括PC在內的串口設備連接,易于針對不同的的應用對象嵌入到其他各種射頻識別應用系統(tǒng)中,拓展能力強,應用前景十分廣闊。