1 引言
隨著計算機和嵌入式系統的發展,IC卡已經融人人們的日常生活并發展成幾個大類,其中,非接觸IC卡的出現引起了人們的特別關注。射頻卡屬于非接觸IC卡,它避免了普通IC卡與讀卡器之間的物理接觸,減少了卡的磨損,所以受到廣泛的歡迎。射頻卡也是射頻識別(RFID)系統的組成部分之一。
射頻識別(Radio Frequency Identification,以F簡稱RFID)技術是20世紀90年代興起的一種自動識別技術。它利用無線射頻方式進行非接觸雙向通信并交換數據,以達到識別目的。典型的RFID系統由電子標簽(Tag)、讀寫器(Read/Write Device)及數據交換和管理系統等組成。電子標簽也稱射頻卡,具有智能讀寫及加密通信能力。
筆者設計的射頻卡讀寫系統由計算機、讀寫器和射頻卡組成,系統結構如圖1所示。
2.1 射頻卡讀寫器
射頻卡讀寫器主要由PICl6型單片機和北京威利姆興公司生產的AT—RFMODCl6系列射頻基站模塊組成。該模塊采用一種常見的U2270B型非接觸卡讀寫基站電路。電路內部集成了由片上電源、振蕩器和線圈激勵器組成的能量傳輸線路,用來給射頻卡提供工作電源;還集成了信號放大和天線驅動線路來完成與射頻卡之間的信號發送與接收。AT—RFMOD06與PICl6的接口電路如圖2所示。
AF—RFMOD06模塊的引腳功能如表1所示。該模塊采用單列9引腳封裝,內部集成了時鐘、射頻驅動、濾波、放大、調制解調等模擬電路,所以按照圖2連接好數字接口電路后,只需選擇適當的天線和諧振電容器即可完成射頻電路的設計。
在圖2中,基站天線和振蕩電容器組成了LC振蕩電路,系統要求產生的振蕩頻率限定在125 kHz(±5%),天線的振蕩幅度最高可以達到120 V,一般不要大于80 V,可以通過和天線線圈串聯的電阻器來調節天線的振蕩幅度。振蕩電容的耐壓值應大于100 V。經過反復調試,參數設定為C=2 200 DF,L=680μ H.R=82Ω 。
2.2 AT88RF256型射頻卡
AT88RF256—12卡是美國ATMEL公司推出的一款基于125 kHz工作頻率的感應卡,可以加密.數據量為256位。作為典型的低頻、加密和可讀寫卡.AT88RF256一12在市場上有著廣泛的應用前景。AT88RF256—12由電路和線圈組成.電路內部結構如圖3所示。
電路的L1引腳和L2引腳與線圈連接,當線圈的電感為10.1 mH時,卡片的工作頻率為125 kHz。其工作電源由片內線圈與電路內置電容產生LC振蕩蓄電提供.AT88RF 256一12設計時把電容內置到電路中,既減少了卡的加工環節.又提高了模塊及成卡的成品率和可靠性。LC振蕩產生的電能經卡片內的電源電路變換后分別提供給控制部分和EEPROM單元。
3 編解碼及軟件流程
3.1 射頻卡的寄存器和命令
卡片內部的EEPROM分為lO頁.每頁包括32位,其內容如表2所示。
用戶對卡的操作包括讀卡、寫卡、核對密碼、停止卡等,必須按以下7個命令格式來執行上述操作:
0A2A1A010:寫第A2A1A0頁32位的EEPROM;
0A2Al A001:讀第A2A1A0頁32位的EEPROM;
000011:數據固化命令(8位);
010011:寫卡片控制位命令(24住):
000111:寫卡片密碼命令:
011000:停止卡命令:
011100:核對密碼命令。
3.2 射頻卡的控制要點
3.2.1 編碼要求
AT88RF256卡在默認狀態下讀卡片用MILLLER(密勒)碼,寫命令數據用MANCHESTER(曼徹斯特)碼。初始化下,密勒碼元寬度是。128μ8,曼徹斯特碼元寬度是256μs。
3.2.2 發送命令的時間
讀寫器要對卡片發送命令,除了卡片要進入射頻場內獲取能量外,發送時間也受限制。卡片進入射頻場后,按如下格式向讀寫卡器循環發送數據:起始位;32~152位(長度可自行設定)的ID數據;停止位;8位收聽窗(Listening Window)。
圖4示出基站模塊的DATA OUT引腳的輸出波形,在每個數據包之間都有一個持續8位密勒碼元寬度的低電平狀態的收聽窗。只有在收聽窗第2位至第7位,射頻才可以接收讀寫卡器發送的讀、寫命令。所以本設計的一個關鍵是如何捕捉到收聽窗,這屬于讀卡和解碼操作的一部分,解碼是建立在對基站模塊DATA OUT引腳的波形分析的基礎上的。
3.2.3 發送命令格式
基站根據需要在7種命令格式中選擇向射頻卡發送的命令,當發送帶有數據的命令時,在命令的最后要添加一個bit的校驗位.校驗位是命令字和所有參數的奇校驗。卡片接收到命令后要比對奇偶校驗位.只有當校驗位正確時才真正地執行命令,否則將返回ID,不執行命令。這樣可以有效避免因為空間干擾而對卡片數據的錯誤操作.大大提高卡片讀寫的可靠性。
3.2.4 多張卡沖突
在開發過程中,多張卡片同時進場時,DATAOUT引腳的波形相當于若干個卡片單獨進場時的波形的疊加,無法選定某一卡片進行讀寫。出現這種情況時,為了避免誤寫卡的操作,等待檢測到只有惟一的卡片在場內時再進行所需的操作。
3.3 程序設計
已知密勒碼元寬度為128μs,卡片ID的長度是32位,只能在收聽窗的第2位至第7位發送命令。下面是用PIC單片機編寫的收聽窗程序。其中RB口的OUT引腳輸入的是基站模塊DATA OUT引腳的信號,參考圖2。出錯返回5AH,正確返回OH。
LISTEN: MOVLW .80
MOVWF CARDDEL.
LISLOOP:MOVIJW .70
MOVWF D1
BTFSC RB,OUT
GOTO LISTEN2
LISTENl:NOP
BTFSC RB,OUT
GOTO LISTEN0
DECFSZ D1.1
GOTO LISTENl
RETLW OH
LISlEN2:NOP
BTFSS RB,OUT
GOTO LISTIEN0
DECFSZ D1,1
GOTO LJSTEN2
RETLW 5AH
LISTEN0:DECFSZ CARDDEL,1
GOTO LISLOOP
RETLW 5AH
在正確跟蹤收聽窗的基礎上,以曼徹斯特編碼格式向射頻卡第5頁寫入32位數據為例,如圖5所示。每當成功寫入某頁32位數據后。卡片循環發送新寫入的數據,直至卡片退場。這就方便了用戶對寫入的數據進行校驗。
4 結束語
由于基站模塊集成了調制解調功能,所以通信上只需注重基帶信號的處理,降低了設計難度。這套射頻卡讀寫器已經應用到電能表預付費系統中,替代了一批原先使用的普通IC卡電表,系統的可靠性得到用戶的肯定,加上射頻卡操作便捷,該系統的應用前景十分看好。
-
單片機
+關注
關注
6035文章
44554瀏覽量
634665 -
嵌入式
+關注
關注
5082文章
19104瀏覽量
304829 -
計算機
+關注
關注
19文章
7488瀏覽量
87854
發布評論請先 登錄
相關推薦
評論