- 射頻識別原理
- 射頻識別系統設計
- 采用對數據進(jìn)行CRC校驗
- 通過(guò)RS232串行通訊將數據交給PC機處理
- 采用CCITT推薦的16位的循環(huán)冗余校驗碼(CRC-CCITT)
射頻識別原理
典型的RFID系統由電子標簽(Tag),讀寫(xiě)器(Read/WriteDevice)以及數據交換、管理系統等組成。電子標簽也稱(chēng)射頻卡,它具有智能讀寫(xiě)及加密通信的能力。讀寫(xiě)器由無(wú)線(xiàn)收發(fā)模塊、天線(xiàn)、控制模塊及接口電路等組成。射頻識別是無(wú)源系統,即電子標簽內不含電池,電子標簽工作的能量是由讀寫(xiě)器發(fā)出的射頻脈沖提供。電子標簽接收射頻脈沖,整流并給電容充電。電容電壓經(jīng)過(guò)穩壓后作為工作電壓。數據解調部分從接收到的射頻脈沖中解調出數據并送到控制邏輯??刂七壿嫿邮苤噶钔瓿纱鎯?、發(fā)送數據或其它操作。EEPROM用來(lái)存儲電子標簽的ID號及其它用戶(hù)數據。
射頻識別系統設計
目前各大芯片廠(chǎng)商都開(kāi)發(fā)了用于射頻識別的ASIC(數字模擬邏輯混合型專(zhuān)用電路),本文研制的射頻識別系統是基于德州儀器公司的TMS3705基站芯片,由基站芯片設計基站發(fā)射和接收電路,同時(shí)設計基站天線(xiàn)?;赥MS3705基站芯片搭建射頻基站,臺灣聯(lián)陽(yáng)電子提供了基于TMS3705的射頻基站模塊RFM001.

圖1基站芯片及射頻基站模塊
射頻卡發(fā)射數據后由射頻基站天線(xiàn)接收,由基站處理后經(jīng)基站的輸出腳把得到的數據流發(fā)給微處理器的輸入口?;局煌瓿尚盘柕慕邮蘸驼鞴ぷ?,而信號的解調解碼的工作由微處理器來(lái)完成。微處理器要根據輸入信號在高電平、低電平的持續時(shí)間來(lái)模擬時(shí)序進(jìn)行解碼操作?,F在比較流行的編碼方法有Mancheester編碼,Biphase編碼。
本系統是基于TMS3705基站芯片的射頻識別系統,所采用的射頻卡是RFM001讀寫(xiě)卡,要想正確的完成射頻識別系統的開(kāi)發(fā),必須了解所使用的射頻卡的讀寫(xiě)特性。這些特性包括:EEPROM的存儲分配、卡的同步信號、發(fā)射頻率、卡控制邏輯、寫(xiě)卡以及其他卡操作的命令格式等。
1數據在RFM001射頻卡中的存儲格式
包含Startbyte共有14bytes數據

用戶(hù)數據區共有10個(gè)字節,建議采用對數據進(jìn)行CRC校驗,故建議第2-9byte為用戶(hù)數據區,第10、11byte為CRC校驗碼。
以下給出基站讀取數據的時(shí)序(如圖2),由射頻卡發(fā)出的數據采用FSK調制。

圖3 1個(gè)字節的傳輸格式
每個(gè)Byte的格式如圖3,由10bits組成,第一個(gè)bit是STARTbit固定為HI,最后一個(gè)bit是Stopbit固定為L(cháng)OW,第2-9bit實(shí)際發(fā)送的數據(最先收到的bit為L(cháng)SB),由于是負邏輯數據需要反相處理(LOW=1、HI=0).
2RFM001射頻卡寫(xiě)入格式
要將用戶(hù)數據寫(xiě)入RFM001射頻卡,必須遵循下列格式。

用戶(hù)數據區的數據可由用戶(hù)完全決定,但建議采用2byte校驗碼的CRC校驗來(lái)校驗數據。所以對于10個(gè)byte的用戶(hù)數據,前面8個(gè)字節作為用戶(hù)數據,后面2個(gè)字節作為用戶(hù)數據的CRC校驗碼。
對于一位的寫(xiě)入采用的是脈寬調制,根據占空比的不同來(lái)確定是寫(xiě)入1還是寫(xiě)入0,具體占空比見(jiàn)圖4.

圖4位寫(xiě)入方式
[page]
3射頻識別系統硬件設計
射頻識別系統主要硬件組成是由單片微處理器構成射頻信號的解碼模塊,其主要構成如下框圖,其中通過(guò)RS232串行通訊將數據交給PC機進(jìn)行處理。

圖5射頻識別系統硬件框圖
射頻識別系統軟件設計
射頻識別系統的軟件設計,其核心部分是射頻卡發(fā)出的射頻信號的讀取和用戶(hù)數據的寫(xiě)入射頻卡。
1射頻信號的讀取
將TXCT置為L(cháng)ow,Delay50ms后,再將TXCT恢復成High.
此時(shí)約過(guò)3ms,SCIO開(kāi)始輸出數據,第一個(gè)Byte即為STARTByte,總共輸出14Bytes數據。見(jiàn)圖6.

圖6射頻信號讀取控制
2射頻信號的寫(xiě)入
根據射頻信號的寫(xiě)入格式,按照如下的寫(xiě)入時(shí)序,即可將數據寫(xiě)入射頻卡內。見(jiàn)圖7.

圖7射頻卡寫(xiě)入控制
3CRC數據校驗算法
CRC校驗是為了檢查信息字段是否傳送正確而設置的,它是信息字段的函數。建議采用CCITT推薦的16位的循環(huán)冗余校驗碼(CRC-CCITT),其生成多項式為:G(x)=X16+X12+X5+1.CRC校驗碼由于其實(shí)現簡(jiǎn)單,驗錯率高,因而在許多通訊場(chǎng)合廣泛采用。
本文采用的CRC-CCITT,能檢測出所有的雙錯、奇數位錯、突發(fā)長(cháng)度不大于16的突發(fā)錯以及99.997%的突發(fā)長(cháng)度為17的突發(fā)錯和99.998%的突發(fā)長(cháng)度大于或等于18的突發(fā)錯。CRC校驗碼的數學(xué)原理本文在此不作介紹。本文在這里說(shuō)明怎樣實(shí)現CRC校驗。CRC校驗碼的運算可以用移位寄存器和半加器來(lái)實(shí)現。如附圖8所示。

圖8CRC校驗實(shí)現原理
發(fā)送端的校驗過(guò)程:
1)先設定CRC校驗碼(2個(gè)bytes)的初始值為00H,00H(000000000000000).(圖8中0-15表示CRC的bit0-15).
2)CRC校驗碼全部右移一位,由A處與要進(jìn)行CRC校驗的數據的第1個(gè)Bit作XOR運算。
3)步驟2運算后A處的結果為1時(shí),反相MSB(Bit15),檢查MSB是否為1,是為1時(shí)則反相Bit13和Bit10,不是則轉到步驟4.A處的結果為0時(shí),檢查MSB是否為1,是為1時(shí)則反相Bit3和Bit10,不是則轉到步驟4.
4)檢查A處是否已做64次,不是,重復步驟2到4.
5)重復2-4,做CRC運算,所得最后數值就是CRC校驗碼。
接收端校驗的過(guò)程,其實(shí)就是所有信息碼加上CRC校驗碼作為一個(gè)整體,再求一次CRC校驗的過(guò)程,如果最后結果是全零,則表示CRC校驗正確,否則表示錯誤。由于和發(fā)送端實(shí)現原理相同,這里就不再重復。
雖然上面是以一種硬件實(shí)現的方法為例說(shuō)明,但按照其中描述的數據流向卻可以輕松的由軟件實(shí)現。由于所討論的射頻識別系統的傳輸速率不大,建議在這里不用專(zhuān)門(mén)硬件而用軟件方式實(shí)現CRC校驗,其計算量是很小的。限于篇幅,未列出源程序。
本文研制的射頻識別系統已成功應用于投幣式洗衣機的替代產(chǎn)品,具有較好的實(shí)際使用效果。射頻卡中存有使用洗衣機的次數,射頻識別系統識別到合法卡后,洗衣機開(kāi)始運轉,同時(shí),射頻卡中的使用次數相應減少,從而替代了投幣。