0 前言
射頻識別(即RadioFrequencyIdentification,以下簡稱RFID)技術(shù)是從九十年代興起的一項自動識別技術(shù),。它利用無線射頻方式進行非接觸雙向通信,,以達到識別目的并交換數(shù)據(jù)。與磁卡,、IC卡等接觸式識別技術(shù)不同,,RFID系統(tǒng)的電子標簽和讀寫器之間無須物理接觸就可完成識別,因此它可實現(xiàn)多目標識別,、運動目標識別,,可在更廣泛的場合中應(yīng)用。本文研制的射頻識別系統(tǒng)和相應(yīng)的數(shù)據(jù)校驗算法是對射頻識別技術(shù)的一次成功嘗試,。
1 射頻識別原理
典型的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ù)并送到控制邏輯??刂七壿嫿邮苤噶钔瓿纱鎯?、發(fā)送數(shù)據(jù)或其它操作。EEPROM用來存儲電子標簽的ID號及其它用戶數(shù)據(jù),。
2 射頻識別系統(tǒng)設(shè)計
目前各大芯片廠商都開發(fā)了用于射頻識別的ASIC(數(shù)字模擬邏輯混合型專用電路),,本文研制的射頻識別系統(tǒng)是基于德州儀器公司的TMS3705基站芯片,由基站芯片設(shè)計基站發(fā)射和接收電路,,同時設(shè)計基站天線,。基于TMS3705基站芯片搭建射頻基站,,臺灣聯(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ā)射頻率,、卡控制邏輯、寫卡以及其他卡操作的命令格式等,。
2.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)制,。
圖31個字節(jié)的傳輸格式
每個Byte的格式如圖3,,由10bits組成,第一個bit是STARTbit固定為HI,,最后一個bit是Stopbit固定為LOW,,第2-9bit實際發(fā)送的數(shù)據(jù)(最先收到的bit為LSB),由于是負邏輯數(shù)據(jù)需要反相處理(LOW=1,、HI=0),。
2.2 RFM001射頻卡寫入格式
要將用戶數(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位寫入方式
2.3 射頻識別系統(tǒng)硬件設(shè)計
射頻識別系統(tǒng)主要硬件組成是由單片微處理器構(gòu)成射頻信號的解碼模塊,其主要構(gòu)成如下框圖,,其中通過RS232串行通訊將數(shù)據(jù)交給PC機進行處理,。
圖5射頻識別系統(tǒng)硬件框圖
2.4 射頻識別系統(tǒng)軟件設(shè)計
射頻識別系統(tǒng)的軟件設(shè)計,其核心部分是射頻卡發(fā)出的射頻信號的讀取和用戶數(shù)據(jù)的寫入射頻卡,。
2.4.1 射頻信號的讀取
將TXCT置為Low,Delay50ms后,,再將TXCT恢復(fù)成High.
此時約過3ms,,SCIO開始輸出數(shù)據(jù),第一個Byte即為STARTByte,,總共輸出14Bytes數(shù)據(jù),。見圖6.
圖6射頻信號讀取控制
2.4.2 射頻信號的寫入
根據(jù)射頻信號的寫入格式,按照如下的寫入時序,,即可將數(shù)據(jù)寫入射頻卡內(nèi),。見圖7.
圖7射頻卡寫入控制
3 CRC數(shù)據(jù)校驗算法
CRC校驗是為了檢查信息字段是否傳送正確而設(shè)置的,它是信息字段的函數(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ù)學(xué)原理本文在此不作介紹。本文在這里說明怎樣實現(xiàn)CRC校驗,。CRC校驗碼的運算可以用移位寄存器和半加器來實現(xiàn),。如附圖8所示。
圖8CRC校驗實現(xiàn)原理
發(fā)送端的校驗過程:
1)先設(shè)定CRC校驗碼(2個bytes)的初始值為00H,,00H(000000000000000),。(圖8中0-15表示CRC的bit0-15)。
2)CRC校驗碼全部右移一位,,由A處與要進行CRC校驗的數(shù)據(jù)的第1個Bit作XOR運算,。
3)步驟2運算后A處的結(jié)果為1時,反相MSB(Bit15),,檢查MSB是否為1,,是為1時則反相Bit13和Bit10,不是則轉(zhuǎn)到步驟4.
A處的結(jié)果為0時,,檢查MSB是否為1,,是為1時則反相Bit3和Bit10,不是則轉(zhuǎn)到步驟4.
4)檢查A處是否已做64次,,不是,,重復(fù)步驟2到4.
5)重復(fù)2-4,做CRC運算,,所得最后數(shù)值就是CRC校驗碼,。
接收端校驗的過程,其實就是所有信息碼加上CRC校驗碼作為一個整體,,再求一次CRC校驗的過程,,如果最后結(jié)果是全零,則表示CRC校驗正確,,否則表示錯誤,。由于和發(fā)送端實現(xiàn)原理相同,這里就不再重復(fù),。
雖然上面是以一種硬件實現(xiàn)的方法為例說明,,但按照其中描述的數(shù)據(jù)流向卻可以輕松的由軟件實現(xiàn)。由于所討論的射頻識別系統(tǒng)的傳輸速率不大,,建議在這里不用專門硬件而用軟件方式實現(xiàn)CRC校驗,,其計算量是很小的。限于篇幅,,未列出源程序,。
4 結(jié)論
本文研制的射頻識別系統(tǒng)已成功應(yīng)用于投幣式洗衣機的替代產(chǎn)品,,具有較好的實際使用效果。射頻卡中存有使用洗衣機的次數(shù),,射頻識別系統(tǒng)識別到合法卡后,,洗衣機開始運轉(zhuǎn),同時,,射頻卡中的使用次數(shù)相應(yīng)減少,,從而替代了投幣。