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