基于RFID技術(shù)的射頻卡及其解碼技術(shù)
文章出處:http://psychicreadingswithdeb.com 作者: 人氣: 發(fā)表時(shí)間:2012年03月20日
摘 要:在射頻卡的系統應用中,關(guān)鍵是要解決對射頻芯片輸出的數據進(jìn)行解碼問(wèn)題。在通常的設計中,都是采用單片機不斷檢測電平變化的方法進(jìn)行解碼。論文提出了另外一種在MCS-51 單片機平臺下對EM4905 芯片輸出的64 位曼徹斯特編碼格式的數據進(jìn)行解碼的方法。這種方法結合單片機的硬件和曼徹斯特編碼的特點(diǎn),利用計算曼徹斯特碼下降沿間隔的載波數的方法進(jìn)行解碼,大大提高了解碼的速度和準確性,而且硬件設計簡(jiǎn)單,是一種非常實(shí)用的解碼技術(shù)。
關(guān)鍵詞:射頻卡;曼徹斯特碼;解碼
1. 引言
射頻識別(radio frequency identification,RFID)技術(shù)是從20 世紀90 年代開(kāi)始興起的一項自動(dòng)識別技術(shù)。他利用無(wú)線(xiàn)射頻方式進(jìn)行非接觸雙向通信,以達到識別目的并交換數據。射頻卡內集成了芯片,感應天線(xiàn)及電容等元件。讀寫(xiě)時(shí),將卡(我們以T5557 卡為例)靠近讀卡器,讀卡器天線(xiàn)發(fā)出的電磁波在射頻卡內的天線(xiàn)上產(chǎn)生感應電流,為卡內集成芯片提供能量。而該芯片預先存儲有一個(gè)唯一身份辨識號碼,該號碼被編碼后調制天線(xiàn)上的電流信號,再以電磁波的形式傳遞回讀卡器[1]。大多數射頻卡將卡內的身份識別號碼編碼為曼徹斯特碼,然后以單片機進(jìn)行編碼。
然而,目前的很多單片機解碼程序采用定時(shí)查詢(xún)或是考察信號的邊沿狀態(tài)的方式解碼,這些解碼方法對天線(xiàn)上的載波頻率要求比較高,對定時(shí)的準確度要求也比較高,當載波稍微偏離規定的范圍內時(shí)將不能正確讀卡。本文介紹了一種新的解碼技術(shù),載波頻率的偏移對解碼沒(méi)有任何影響,而且不用檢測信號的邊沿狀態(tài),從而更加可靠、快速的讀卡。
2. 射頻卡的讀卡原理
2.1 射頻卡的組成結構
T5557 是美國Atmel 公司生產(chǎn)的多功能非接觸式R/W 辨識集成電路,適用于125KHZ頻率范圍。芯片需要連接一個(gè)天線(xiàn)線(xiàn)圈,該線(xiàn)圈被視為芯片電路的電力驅動(dòng)補給和雙向信息的溝通接口,天線(xiàn)和芯片構成射頻卡。T5557 的典型應用系統構成圖如圖1 所示。
圖 1 T5557 應用系統結構圖
2.2 射頻卡與讀寫(xiě)器之間的通信
如果一個(gè)應用系統要從一個(gè)非接觸的數據載體中讀取數據或是寫(xiě)入數據到一個(gè)非接觸的數據載體中去,則它需要一個(gè)非接觸的讀寫(xiě)器作為接口。非接觸式IC 卡與讀卡器之間通過(guò)無(wú)線(xiàn)電波來(lái)完成讀寫(xiě)操作[2]。非接觸式IC 卡本身是無(wú)源卡,當讀寫(xiě)器對卡進(jìn)行進(jìn)行讀寫(xiě)操作時(shí),讀寫(xiě)器發(fā)出的信號有兩部分疊加組成:一部分是電源信號,該信號由卡接收后與本身的L/C 產(chǎn)生一個(gè)瞬間能量來(lái)供給芯片工作。另一部分則是指令和數據信號,指揮芯片完成數據的讀取、修改、儲存等,并返回信號給讀寫(xiě)器。由圖1 可知,讀寫(xiě)器向T5557 卡傳送射頻能量和讀寫(xiě)命令時(shí),同時(shí)接收T5557 芯片以負載調制方式送來(lái)的數據信號。電源上電后(POR 有效), T5557 將對存儲在EEPROM 塊0 中的數據進(jìn)行初始化[5]。此時(shí)若POR 位為0,則在約3ms 后按塊0 的調制參數設置進(jìn)行調制。若需置位POR,則其初始化時(shí)間約為67ms。T5557 卡的工作流程如下圖。
圖 2 T5557 卡的工作流程圖
從射頻卡返回給基站的數據采用編碼方式(可以選擇曼徹斯特碼)。在卡與讀寫(xiě)器進(jìn)行通信時(shí),通常由卡將存貯在 EEPROM 中的數據以負載調制方式循環(huán)送至讀寫(xiě)器。根據傳送數據循環(huán)組織方式的不同又可分為常規讀模式、塊讀模式和序列終止符模式??梢圆捎弥袛嗌漕l場(chǎng)的方法來(lái)對數據進(jìn)行發(fā)送[3]。通常信號傳輸的間隙為50-150μ s,兩間隙之間的時(shí)間對應RF 一個(gè)“0”,標稱(chēng)值為24 個(gè)場(chǎng)時(shí)鐘;或對應RF 場(chǎng)的一個(gè)“1”,標稱(chēng)值為54 個(gè)場(chǎng)時(shí)鐘。
在間隙之后,當少于64 個(gè)場(chǎng)時(shí)鐘的間隙存在時(shí),IC 將退出模式。若有效位的數目正確,則開(kāi)始編程。如果有一個(gè)間隙失敗,即一個(gè)或多個(gè)間隙不是有效的“0”或“1”,則IC 不編程,進(jìn)入從1 塊開(kāi)始的讀模式。
序列中的第一個(gè)間隙被稱(chēng)為起始間隙,為了便于對卡的檢測,一般情況下,起始間隙應大于其后的間隙。如圖3 所示
圖 3 讀寫(xiě)器與卡的通信圖
3. 曼徹斯特碼解碼
根據曼徹斯特碼(以下簡(jiǎn)稱(chēng)M 碼)的特點(diǎn):在每一個(gè)數據位的“中間”發(fā)生由低到高的跳變代表“1”、發(fā)生由高到低的跳變代表“0”。由圖3 可知,由于信號耦合的原因,實(shí)際上由EM4905 芯片送給單片機的64 位M 碼的數據是反過(guò)來(lái)的,即:用數據位中間發(fā)生高到低的跳變代表“1”、發(fā)生由低到高的跳變代表“0”。另外,在本系統中,64 位數據中的每一位在天線(xiàn)上的持續時(shí)間,即位寬時(shí)間是載波周期的64 倍,當載波頻率是125kHZ 時(shí),每一位的持續時(shí)間是(1/125K)×64=512μ s。
第1頁(yè)第2頁(yè) |