基于μC/OS-Ⅱ和GPRS的無(wú)線(xiàn)RFID 讀寫(xiě)器的研究與開(kāi)發(fā)
傳統的RFID讀寫(xiě)器多采用有線(xiàn)接入的方式實(shí)現與數據中心(上位機)的通信,即使部分RFID讀寫(xiě)器終端實(shí)現了無(wú)線(xiàn)的數據傳輸,但也多是采用短距離的無(wú)線(xiàn)通信方式,最終還是要經(jīng)過(guò)現場(chǎng)的有線(xiàn)設備實(shí)現與數據中心的通信,無(wú)法滿(mǎn)足遠距離、跨區域、便攜式的RFID讀寫(xiě)器的應用需求。本文介紹的無(wú)線(xiàn)RFID讀寫(xiě)器的開(kāi)發(fā)是以提高系統的穩定性、便攜性、安全性為目標,采用嵌入式系統的設計思想,硬件方面使用功能強大的ARM處理器LPC2148,外擴GPRS無(wú)線(xiàn)模塊實(shí)現終端數據的實(shí)時(shí)上傳。LPC2148豐富的IO口資源使其能夠外擴更多的外設,保證了終端功能的實(shí)現。軟件方面引入實(shí)時(shí)多任務(wù)嵌入式操作系統μC/OS-Ⅱ,進(jìn)行多任務(wù)的調度,在提高系統穩定性的同時(shí)降低了系統的開(kāi)發(fā)難度。
1 GPRS簡(jiǎn)介
通用分組無(wú)線(xiàn)業(yè)務(wù)GPRS(General Packet Radio Service)是在現有GSM系統上發(fā)展起來(lái)的一種新的承載業(yè)務(wù),目的是為GSM用戶(hù)提供分組形式的數據業(yè)務(wù),而不需要利用電路交換模式的網(wǎng)絡(luò )資源,從而提供了一種高效、低成本的無(wú)線(xiàn)分組數據業(yè)務(wù)。GPRS充分利用共享無(wú)線(xiàn)信道,實(shí)現了與標準Internet的無(wú)縫連接,采用IP Over PPP實(shí)現數據終端的高速、遠程接入。無(wú)線(xiàn)GPRS網(wǎng)絡(luò )所具有的永遠在線(xiàn)、按流量計費、傳輸速率高以及支持X.25和IP協(xié)議等突出特點(diǎn),特別適合于RFID讀寫(xiě)器系統這樣間斷、突發(fā)性的數據傳輸。
2 讀寫(xiě)器硬件組成
2.1 硬件系統原理
IC卡無(wú)線(xiàn)手持機的硬件系統結構框圖如圖1所示。圖中,LPC2148為終端的主控單元,通過(guò)GPIO口與IC卡讀卡芯片MF RC500相連實(shí)現對IC卡的讀寫(xiě);通過(guò)串口1(URRT1)與GPRS模塊MC55相連實(shí)現GPRS數據傳輸;系統外擴一塊I2C接口的E2PROM芯片24C256,用于存儲終端設置參數以及暫存IC卡用戶(hù)在本機的交易信息;通過(guò)LPC2148自帶的USB接口實(shí)現上位機對讀寫(xiě)器相關(guān)參數的設置以及交易信息的離線(xiàn)上傳。
2.2 讀寫(xiě)器的微處理器
手持機終端系統的核心部分是由LPC2148及其外圍電路構成的最小系統電路。LPC2148是基于一個(gè)支持實(shí)時(shí)仿真和嵌入式跟蹤的32/16 bit ARM7 TDMI-S CPU的微控制器,并帶有32 KB和512 KB嵌入的高速Flash存儲器。較小的封裝和很低的功耗使得LPC2148特別適用于POS機等小型的應用場(chǎng)合。LPC2148提供多達45個(gè)高速GPIO口以及USB2.0全速設備控制器,使其成為本系統設計的理想選擇。
2.3 讀寫(xiě)器的IC卡讀寫(xiě)模塊
IC卡讀寫(xiě)模塊選用Philips公司Mifare卡專(zhuān)用讀卡芯片MF RC500及其相關(guān)的外圍電路、射頻天線(xiàn)等,實(shí)現手持機與IC卡之間的數據通信。MF RC500是應用于13.56 MHz非接觸式通信中高集成讀卡IC系列之一,利用了先進(jìn)的調制和解調概念,在13.56 MHz下,完全集成了所有類(lèi)型的被動(dòng)非接觸式通信方式和協(xié)議,并支持ISO14443A所有的層。
2.4 匹配電路及天線(xiàn)的設計[1]
MF RC500是一個(gè)單獨的讀卡器集成電路,在本系統中,MF RC500與Mifare卡之間的數據交互是通過(guò)RF天線(xiàn)來(lái)完成的。參照MF RC500數據手冊,采用直接匹配的天線(xiàn),即可實(shí)現該讀寫(xiě)器與Mifare卡之間的數據通信和能量傳遞,其推薦的工作距離可達100 mm。直接匹配天線(xiàn)的匹配電路如圖2所示,主要包括:
(1)EMC濾波:Mifare系統的工作頻率為13.56 MHz,由石英振蕩器發(fā)生,但它同時(shí)也產(chǎn)生高次諧波。為了符合國際EMC規定,13.56 MHz中的3次、5次和高次諧波要被良好地抑制。本系統使用如圖2所示的L1、L2、C11、C13組成的低通濾波器來(lái)實(shí)現EMC濾波。
(2)接收電路:MF RC500的內部接收部分使用了一個(gè)新的接收概念,即使用卡響應的副載波負載調制所產(chǎn)生的兩個(gè)邊頻帶,由圖2中的R9、R10、C9、C10組成接收電路。
(3)阻抗匹配:在圖2中由電容C11和C13組成,電容的值由天線(xiàn)本身和環(huán)境因素來(lái)決定,本系統C11、C13均取47 pF。該部分電路主要是為了實(shí)現濾波和天線(xiàn)之間的阻抗匹配,以使天線(xiàn)的性能達到最佳。
2.5 讀寫(xiě)器無(wú)線(xiàn)傳輸模塊
系統的無(wú)線(xiàn)數據傳輸通過(guò)內嵌有TCP/IP協(xié)議的GPRS模塊來(lái)實(shí)現。目前市場(chǎng)上提供的GPRS無(wú)線(xiàn)模塊有WAVECOM公司的Q2403B,SIEMENS公司的MC35i、MC39I,摩托羅拉公司的G20等。結合本系統的實(shí)際應用,選用了SIEMENS的Sim300。Sim300是新一代的900 MHz/1 800 MHz雙頻自動(dòng)選擇的無(wú)線(xiàn)模塊,內嵌有TCP/IP協(xié)議棧,無(wú)需微處理器的支持即可實(shí)現基于TCP/IP的數據傳輸。其支持標準的AT命令及增強的AT命令監護數據模式,功能強大,操作靈活方便。微處理器可以通過(guò)標準串口接口RS232與Sim300通信,為用戶(hù)提供了標準的AT命令接口,為數據傳輸提供了快速、可靠、安全的傳輸通道,用戶(hù)可以很方便地進(jìn)行實(shí)際應用的二次開(kāi)發(fā)設計。
2.6 讀寫(xiě)器人機交互的實(shí)現
手持終端人機交互通過(guò)外擴的一塊I2C接口的數碼管驅動(dòng)及鍵盤(pán)掃描管理芯片ZLG7290,配以8 bit共陰數碼管和16個(gè)按鍵實(shí)現。ZLG7290是廣州周立功單片機發(fā)展有限公司研發(fā)的數碼管驅動(dòng)及鍵盤(pán)掃描管理芯片,具有I2C總線(xiàn)串行接口,能夠提供鍵盤(pán)中斷、驅動(dòng)8 bit共陰數碼管和64個(gè)按鍵掃描等功能,并且支持10種數字和21種字母的譯碼顯示功能。
3 讀寫(xiě)器軟件設計
讀寫(xiě)器的軟件采用μC/OS-Ⅱ嵌入式實(shí)時(shí)操作系統作為系統的軟件平臺,在μC/OS-Ⅱ系統下實(shí)現對讀寫(xiě)器終端的控制管理。μC/OS-Ⅱ具有較高的可靠性和穩定性,提供了多任務(wù)管理功能。系統的各單元部分以單獨的任務(wù)線(xiàn)程設計,在減少了軟件設計的復雜度的同時(shí)也增強了軟件系統的穩定性。
3.1 μC/OS-Ⅱ嵌入式實(shí)時(shí)操作系統的移植
要將μC/OS-Ⅱ實(shí)時(shí)操作系統移植到處理器上,處理器必須滿(mǎn)足以下條件[2]:
(1)處理器的編譯環(huán)境能夠產(chǎn)生可以重入的C代碼。
(2)用C語(yǔ)言就可以打開(kāi)或關(guān)閉中斷。
(3)處理器支持中斷處理,并能產(chǎn)生定時(shí)中斷。
(4)處理器支持能夠容納一定數量的硬件堆棧。
(5)處理器具有將寄存器、堆棧指針讀出和存儲到堆棧中的指令。
對于A(yíng)RM7系列的微處理器LPC2148及其開(kāi)發(fā)環(huán)境ADS1.2的編譯器,完全能夠滿(mǎn)足上述條件,可以確保μC/OS-Ⅱ在LPC2148上的移植成功。移植工作包括:
(1)用#define設置一個(gè)常量的值(OS_CPU.H)。
(2)聲明10個(gè)數據類(lèi)型(OS_CPU.H)。
(3)用#define聲明3個(gè)宏(OS_CPU.H)。
(4)用C語(yǔ)言編寫(xiě)6個(gè)簡(jiǎn)單的函數(OS_CPU_C.C)。
(5)編寫(xiě)4個(gè)匯編語(yǔ)言函數(OS_CPU_A.ASM)。
3.2 無(wú)線(xiàn)數據傳輸的軟件實(shí)現
Sim300中內嵌了TCP/IP協(xié)議,并且以AT指令的形式給控制模塊提供接入GPRS網(wǎng)絡(luò )進(jìn)而接入Internet的API接口。由于該GPRS模塊具有自動(dòng)撥號功能,因此在進(jìn)行無(wú)線(xiàn)數據傳輸時(shí),不需要通過(guò)AT撥號指令連接Internet。讀卡器系統在傳輸數據時(shí)對數據準確性的要求相對較高,因此,本設計采用TCP的方式實(shí)現讀寫(xiě)器終端與系統數據中心之間的數據傳輸。讀寫(xiě)器終端在與數據中心進(jìn)行數據傳輸時(shí)用到的AT指令如下:
(1)建立TCP連接
AT+CIPSTART=“TCP”,”61.13.48.9”,”2020”
連接數據中心服務(wù)器,此處61.13.48.9是服務(wù)器的IP地址,2020是端口號。連接成功的返回值是:CONNECT OK。
(2)向服務(wù)器發(fā)送數據
AT+CIPSEND
>Hello everyone!Ctrl+Z>
向服務(wù)器發(fā)送字符串Hello everyone!。發(fā)送成功返回值為:OK。
(3)關(guān)閉連接
AT+CIPCLOSE
斷開(kāi)與數據中心服務(wù)器之間的連接,操作成功返回值為:OK。
(4)關(guān)閉移動(dòng)場(chǎng)景
AT+CIPSHUT
操作成功返回值為:OK。
當服務(wù)器端有數據傳輸到GPRS模塊時(shí),數據會(huì )通過(guò)模塊與LPC2148之間的串口接口直接轉發(fā)給MCU,不需要AT指令操作。
由于該GPRS模塊具有上電自動(dòng)撥號的功能,在程序設計時(shí)就不再考慮終端撥號上網(wǎng)的實(shí)現。
3.3 MF RC500驅動(dòng)軟件的設計
MF RC500的驅動(dòng)程序主要是MCU對MF RC500的控制以實(shí)現MF RC500與IC卡之間的數據交互,并把相關(guān)的數據結果返回給MCU。MCU通過(guò)MF RC500與IC卡的數據交換過(guò)程如下:
(1)由讀寫(xiě)器的MCU發(fā)送指令給MCM(MF RC500)。
(2)MCM執行指令,并將其轉換為射頻信號發(fā)送給IC卡。
(3)IC卡接收到來(lái)自MCM的指令后,按指令完成其內部的各種處理,并回送應答信號/數據給MCM。
(4)MCM接收卡回送的射頻信號,并將其轉換為數字信號輸出給MCU,MCU讀取MCM接收到的應答/數據,即可完成與IC卡的數據交換。
MF RC500實(shí)現對IC卡讀寫(xiě)的程序流程如圖3所示。
3.4 動(dòng)態(tài)密鑰加密算法
動(dòng)態(tài)密鑰的的基本思想是在保持系統主密鑰不變的情況下,每讀一次用戶(hù)卡就使用本次通信中產(chǎn)生的數據A動(dòng)態(tài)地改寫(xiě)用戶(hù)卡的密鑰一次,以此來(lái)確保用戶(hù)卡密鑰不斷更新,從而不被破解。數據A可以是當前通信時(shí)間、操作機具體標識或者隨機數的組合。其具體的設計和實(shí)現可以參考文獻[2]。
本文介紹的利用GPRS無(wú)線(xiàn)網(wǎng)絡(luò )作為數據傳輸載體,以ARM7系列微處理器LPC2148作為主控單元的無(wú)線(xiàn)RFID讀寫(xiě)器,具有通用性強、功耗低、便于攜帶、安裝方便等特點(diǎn)。采用μC/OS-Ⅱ多任務(wù)實(shí)時(shí)操作系統,使得讀寫(xiě)器終端的穩定性和可靠性均得到了較大的提高,同時(shí)程序的模塊化設計有利于終端功能的升級與擴展。應用結果表明,該RFID讀寫(xiě)器運行穩定可靠、響應速度快、安裝和操作方便、便于攜帶,具有廣泛的應用前景。
tcp/ip相關(guān)文章:tcp/ip是什么
pos機相關(guān)文章:pos機原理
評論