陳渭力,李 偉,林永興
浙江理工大學科技與藝術學院,浙江杭州 311121
射頻識別技術RFID( radio frequency identifiestion) 是21世紀非常流行的一種自動識別技術,其應用場合越來越廣,尤其隨著物聯網技術發展,應用將更上一層樓,目前在停車場,學校圖書館,食堂,公交車上已經屢見不鮮。這里我們設計一種利用單片機開發的新型手持射頻卡讀寫器,作為通用射頻卡檢測設備。
本系統主要由電源管理單元、單片機AT89C52、射頻卡讀寫模塊(主要由MFRC500構成)、無線模塊、鍵盤顯示電路及其他外圍電路構成,系統如圖1所示。

圖1
手持射頻卡讀寫器的工作原理如下:整個手持機由電源管理單元給各個模塊提供工作電壓,由單片機控制射頻卡芯片,并通過天線發射電磁波(區域大小取決于天線的設計質量),當有射頻卡(也可以稱作電子標簽,RFID卡,非接觸卡)進入天線發射的有效范圍時,射頻卡里有一個LC串聯諧振電路,它的工作頻率與射頻卡讀寫器天線發射的頻率相一致,由于電磁波提供的激勵能量,使得射頻卡里的LC諧振電路產生了感應電勢,電壓達到一定電壓值,就作為卡內其它電路工作的電源,然后射頻卡將數據通過內部電路以同樣的頻率發送回去,讀寫器通過天線接收到射頻卡的信號后,進行解調解碼,并根據沖突檢測和校驗,來判斷有效的數據,接著通過單片機的串口發送數據給無線模塊SIM900D,SIM900D可使用短信或者TCP/IP數據流兩種方式來進行數據的無線傳輸,由于短信方式比較適合數據量少,單方向的場合,這里為了使該設計具有更廣的使用,所以采用TCP/IP數據流的方式,與遠程控制數據中心進行數據交互。
手持讀寫器的主要的CPU采用ATMEL公司的AT89C52。它是一款常用的51單片機。被應用到各種工業控制和消費電子領域中。其成本低,開發平臺簡單。當然在這個系統里理論上完全可以用其他單片機或者ARM控制器來替換。
射頻卡讀寫主要通過射頻卡芯片MF RC500及其必要的外圍電路構成,射頻卡芯片是整個讀寫器的核心,它可以實現讀寫射頻卡(電子標簽)所有必要的功能,包括射頻信號的產生、調制、解調等。此芯片實際上是單片機與射頻卡之間進行數據傳輸的關鍵。任何射頻卡上的數據讀寫都要通過此芯片來傳送。通過傳送不同的命令給此芯片,就能實現不同的控制。
此芯片需要在OSCSIN和OSCOUT引腳上外接13.56MHz晶振,當然也可使用其他外部時鐘,但不推薦這樣做,因為它本身的時鐘已經足夠穩定。
為了實現最佳性能,射頻卡芯片的模擬部分使用單獨的電源,它對內部的震蕩器、模擬解調器和解碼器提供工作電壓,同時對驅動部分和數字部分也各使用單獨電源供電,此讀卡器,我利用磁珠把各電源進行分開。
此芯片支持不同的CPU接口,單片機通過控制射頻卡芯片的NCS引腳來選擇射頻卡芯片,在射頻卡芯片上電或硬件復位后,此芯片馬上復位它的接口模式,并根據幾個固定引腳上的邏輯電平來識別當前CPU接口的類型。我們這里選擇了地址線與數據線分時復用的接口類型,其具體操作是:當ALE為邏輯1時,將地址鎖存到內部的相應鎖存器中,然后由讀寫信號完成對芯片的數據讀寫。
在這個部分,讀寫器的天線設計也相當的重要,它的設計質量將直接影響讀寫射頻卡的有效距離,我們參考芯片的數據手冊,采用直接匹配的天線,其有效距離最遠可以達到10cm。在天線電路的設計里,我們主要考慮兩個方面的問題:
第一個方面是對電磁干擾的濾波,由于這個讀寫器的工作頻率為13.56MHz,由時鐘電路產生,但它也伴隨產生13.56 MHz中的3次、5次等高次諧波。為達到國際EMC要求,良好地控制這些電磁干擾。本讀寫器使用低通濾波器來控制電磁干擾。
第二個方面是為了天線的性能達到最好,需要考慮天線電路的阻抗匹配。
由于本手持機在使用無線模塊時,需要較大的電流。另外本設備為手持機,所以系統設計采用優科能源的可充電聚合物鋰離子電池組件(2節串聯,每節3.7V的標稱電壓),可充電(需另購充電器,充電電壓為8.4V),電池電壓通過降壓型DCDC芯片AOZ1016A轉換成5V電壓輸出,此芯片的輸入電壓范圍較大(從4.5V~16V),最大可以輸出3.6A的電流,完全滿足本手持機的電壓需要。
顯示部分采用160×96點陣液晶屏,這個液晶屏是總線型的,它與單片機的連接采用數據并行模式,直接與單片機的PO口相連,而液晶屏的讀寫控制信號R/W則直接連接單片機的讀寫信號上,另外液晶屏的片選信號CS,指令/數據寄存器選擇信號A0,復位信號RESET和串并行選擇端P/S,都需要分別連接到單片機的其他I/O口。
鍵盤設計使用單片機P1口的八個I/O口實現,采用4×4矩陣動態掃描模式,可設計提供11個數字鍵(包括小數點)、確認鍵、取消鍵、退格鍵、2個功能鍵,共16個按鍵。滿足一般手持設備的按鍵需求。
目前市場上提供的無線通訊模塊有很多,為了適應更多的國家使用,我們使用剛剛推出的四頻的無線模塊SIM900D(它是SIM340DZ的替代品),此模塊自帶TCP/IP協議棧,無需其他CPU的支持就能利用TCP/IP數據流方式進行無線數據傳輸。當然它也使用標準的AT命令,性能穩定,使用方便。本手持機中,單片機通過串口與SIM900D進行通信,由于單片機AT89C52采用5V供電,而SIM900D使用4.3V供電,所以需要在5V電壓的基礎上進行降壓,我們這里采用簡單的二極管進行串接降壓。當然此模塊還需要SIM卡接口電路,由于SIM卡是經常被手碰到的地方,需要給SIM卡加上ESD保護電路。
手持機軟件系統用C51進行直接編寫,當然如果擴展外部儲存器,也可考慮在本系統中采用嵌入式操作系統,并在操作系統的基礎上編寫自己的應用驅動程序,我們這里考慮到本手持機只是作為物流讀寫射頻卡的中間設備,數據處理類型和任務較少,較復雜的應用處理可以由遠程數據控制中心來實現,所以這里采用C51直接編寫全部程序,系統的各個單元部分用單獨的任務線程設計,在減少了軟件設計的復雜度的同時,也增強了軟件系統的穩定性和可讀性。
本系統軟件設計主要包括,系統初始化,鍵盤掃描處理,液晶顯示,射頻卡的讀寫,以及無線模塊的控制與數據通訊等主要部分,由于系統初始化,鍵盤掃描處理,LCD顯示,都是非常常見的應用設計,下面主要說明射頻卡的讀寫部分的設計。
射頻卡的讀寫,最主要是對芯片進行控制。因此讀寫程序也主要是完成單片機對射頻卡芯片MF RC500的控制,從而實現芯片與射頻卡之間的數據交互,工作流程如下:
1)單片機對射頻卡芯片進行初始化,使其進入正常的工作狀態;
2)等待中斷信號(射頻卡芯片通過天線檢測到有效的射頻卡進入有效范圍后,產生中斷信號給單片機);
3)由單片機發送相應的指令給射頻卡芯片,進行請求,防碰撞,選擇等操作;
4)單片機發送相應的指令對讀寫射頻卡密碼進行驗證;
5)驗證完畢后,讀取射頻卡指定塊的內容或者寫入相應地址塊的數據;
6)完成數據讀寫后,向卡發送停止命令,并可判斷卡有沒有離開。
由于無線模塊SIM900D自帶TCP/IP協議棧,在本手持讀寫器里,單片機通過其串口,利用AT命令就可以對SIM900D進行數據通訊。主要流程如下:
1)先由單片機通過I/O腳控制模塊上電,使SIM900D上電復位;
2)單片機通過串口發送AT命令控制無線模塊SIM900D與遠程服務器建立TCP連接(預先需要知道遠程數據控制中心服務器的IP地址和端口);
3)連接建立后,單片機把準備好的數據發送給無線模塊SIM900D,通過前面建立好的數據通道進行數據傳輸;并讀取無線模塊SIM900D從遠程數據中心返回的數據;
4)數據處理好后,關閉當前建立的TCP連接,然后再關閉無線模塊SIM900D的電源,以節約耗電,繼續等待下一次的通訊。
本手持機主要支持IS014443A協議的射頻卡的讀寫,此射頻卡目前已經被廣泛使用。利用此設計方案,開發的物流手持射頻卡讀寫器,具有攜帶方便,成本低,軟件修改方便,可使用場合多的特點,隨著物聯網的發展,其應用前景一定非常廣闊。
[1]謝高生,易靈芝,王根平.動態密鑰在Mifare射頻IC卡識別系統中的應用[J].計算機測量與控制,2009,17(4):725-726.
[2]李朝青.單片機原理及接口技術.北京:北京航空航天大學出版式,2006,12.