- 射頻識別原理
- 射頻識別系統(tǒng)設計
- 采用對數(shù)據(jù)進行CRC校驗
- 通過RS232串行通訊將數(shù)據(jù)交給PC機處理
- 采用CCITT推薦的16位的循環(huán)冗余校驗碼(CRC-CCITT)
射頻識別原理
典型的RFID系統(tǒng)由電子標簽(Tag),讀寫器(Read/WriteDevice)以及數(shù)據(jù)交換、管理系統(tǒng)等組成。電子標簽也稱射頻卡,它具有智能讀寫及加密通信的能力。讀寫器由無線收發(fā)模塊、天線、控制模塊及接口電路等組成。射頻識別是無源系統(tǒng),即電子標簽內(nèi)不含電池,電子標簽工作的能量是由讀寫器發(fā)出的射頻脈沖提供。電子標簽接收射頻脈沖,整流并給電容充電。電容電壓經(jīng)過穩(wěn)壓后作為工作電壓。數(shù)據(jù)解調(diào)部分從接收到的射頻脈沖中解調(diào)出數(shù)據(jù)并送到控制邏輯??刂七壿嫿邮苤噶钔瓿纱鎯Αl(fā)送數(shù)據(jù)或其它操作。EEPROM用來存儲電子標簽的ID號及其它用戶數(shù)據(jù)。
射頻識別系統(tǒng)設計
目前各大芯片廠商都開發(fā)了用于射頻識別的ASIC(數(shù)字模擬邏輯混合型專用電路),本文研制的射頻識別系統(tǒng)是基于德州儀器公司的TMS3705基站芯片,由基站芯片設計基站發(fā)射和接收電路,同時設計基站天線?;赥MS3705基站芯片搭建射頻基站,臺灣聯(lián)陽電子提供了基于TMS3705的射頻基站模塊RFM001.
圖1基站芯片及射頻基站模塊
射頻卡發(fā)射數(shù)據(jù)后由射頻基站天線接收,由基站處理后經(jīng)基站的輸出腳把得到的數(shù)據(jù)流發(fā)給微處理器的輸入口?;局煌瓿尚盘柕慕邮蘸驼鞴ぷ鳎盘柕慕庹{(diào)解碼的工作由微處理器來完成。微處理器要根據(jù)輸入信號在高電平、低電平的持續(xù)時間來模擬時序進行解碼操作?,F(xiàn)在比較流行的編碼方法有Mancheester編碼,Biphase編碼。
本系統(tǒng)是基于TMS3705基站芯片的射頻識別系統(tǒng),所采用的射頻卡是RFM001讀寫卡,要想正確的完成射頻識別系統(tǒng)的開發(fā),必須了解所使用的射頻卡的讀寫特性。這些特性包括:EEPROM的存儲分配、卡的同步信號、發(fā)射頻率、卡控制邏輯、寫卡以及其他卡操作的命令格式等。
1數(shù)據(jù)在RFM001射頻卡中的存儲格式
包含Startbyte共有14bytes數(shù)據(jù)
用戶數(shù)據(jù)區(qū)共有10個字節(jié),建議采用對數(shù)據(jù)進行CRC校驗,故建議第2-9byte為用戶數(shù)據(jù)區(qū),第10、11byte為CRC校驗碼。
以下給出基站讀取數(shù)據(jù)的時序(如圖2),由射頻卡發(fā)出的數(shù)據(jù)采用FSK調(diào)制。
圖3 1個字節(jié)的傳輸格式
每個Byte的格式如圖3,由10bits組成,第一個bit是STARTbit固定為HI,最后一個bit是Stopbit固定為LOW,第2-9bit實際發(fā)送的數(shù)據(jù)(最先收到的bit為LSB),由于是負邏輯數(shù)據(jù)需要反相處理(LOW=1、HI=0).
2RFM001射頻卡寫入格式
要將用戶數(shù)據(jù)寫入RFM001射頻卡,必須遵循下列格式。
用戶數(shù)據(jù)區(qū)的數(shù)據(jù)可由用戶完全決定,但建議采用2byte校驗碼的CRC校驗來校驗數(shù)據(jù)。所以對于10個byte的用戶數(shù)據(jù),前面8個字節(jié)作為用戶數(shù)據(jù),后面2個字節(jié)作為用戶數(shù)據(jù)的CRC校驗碼。
對于一位的寫入采用的是脈寬調(diào)制,根據(jù)占空比的不同來確定是寫入1還是寫入0,具體占空比見圖4.
圖4位寫入方式
[page]
3射頻識別系統(tǒng)硬件設計
射頻識別系統(tǒng)主要硬件組成是由單片微處理器構成射頻信號的解碼模塊,其主要構成如下框圖,其中通過RS232串行通訊將數(shù)據(jù)交給PC機進行處理。
圖5射頻識別系統(tǒng)硬件框圖
射頻識別系統(tǒng)軟件設計
射頻識別系統(tǒng)的軟件設計,其核心部分是射頻卡發(fā)出的射頻信號的讀取和用戶數(shù)據(jù)的寫入射頻卡。
1射頻信號的讀取
將TXCT置為Low,Delay50ms后,再將TXCT恢復成High.
此時約過3ms,SCIO開始輸出數(shù)據(jù),第一個Byte即為STARTByte,總共輸出14Bytes數(shù)據(jù)。見圖6.
圖6射頻信號讀取控制
2射頻信號的寫入
根據(jù)射頻信號的寫入格式,按照如下的寫入時序,即可將數(shù)據(jù)寫入射頻卡內(nèi)。見圖7.
圖7射頻卡寫入控制
3CRC數(shù)據(jù)校驗算法
CRC校驗是為了檢查信息字段是否傳送正確而設置的,它是信息字段的函數(shù)。建議采用CCITT推薦的16位的循環(huán)冗余校驗碼(CRC-CCITT),其生成多項式為:G(x)=X16+X12+X5+1.CRC校驗碼由于其實現(xiàn)簡單,驗錯率高,因而在許多通訊場合廣泛采用。
本文采用的CRC-CCITT,能檢測出所有的雙錯、奇數(shù)位錯、突發(fā)長度不大于16的突發(fā)錯以及99.997%的突發(fā)長度為17的突發(fā)錯和99.998%的突發(fā)長度大于或等于18的突發(fā)錯。CRC校驗碼的數(shù)學原理本文在此不作介紹。本文在這里說明怎樣實現(xiàn)CRC校驗。CRC校驗碼的運算可以用移位寄存器和半加器來實現(xiàn)。如附圖8所示。
圖8CRC校驗實現(xiàn)原理
發(fā)送端的校驗過程:
1)先設定CRC校驗碼(2個bytes)的初始值為00H,00H(000000000000000).(圖8中0-15表示CRC的bit0-15).
2)CRC校驗碼全部右移一位,由A處與要進行CRC校驗的數(shù)據(jù)的第1個Bit作XOR運算。
3)步驟2運算后A處的結果為1時,反相MSB(Bit15),檢查MSB是否為1,是為1時則反相Bit13和Bit10,不是則轉(zhuǎn)到步驟4.A處的結果為0時,檢查MSB是否為1,是為1時則反相Bit3和Bit10,不是則轉(zhuǎn)到步驟4.
4)檢查A處是否已做64次,不是,重復步驟2到4.
5)重復2-4,做CRC運算,所得最后數(shù)值就是CRC校驗碼。
接收端校驗的過程,其實就是所有信息碼加上CRC校驗碼作為一個整體,再求一次CRC校驗的過程,如果最后結果是全零,則表示CRC校驗正確,否則表示錯誤。由于和發(fā)送端實現(xiàn)原理相同,這里就不再重復。
雖然上面是以一種硬件實現(xiàn)的方法為例說明,但按照其中描述的數(shù)據(jù)流向卻可以輕松的由軟件實現(xiàn)。由于所討論的射頻識別系統(tǒng)的傳輸速率不大,建議在這里不用專門硬件而用軟件方式實現(xiàn)CRC校驗,其計算量是很小的。限于篇幅,未列出源程序。
本文研制的射頻識別系統(tǒng)已成功應用于投幣式洗衣機的替代產(chǎn)品,具有較好的實際使用效果。射頻卡中存有使用洗衣機的次數(shù),射頻識別系統(tǒng)識別到合法卡后,洗衣機開始運轉(zhuǎn),同時,射頻卡中的使用次數(shù)相應減少,從而替代了投幣。