射頻識別技術軟硬件系統研制
將TXCT置為Low,Delay 50 ms后,再將TXCT恢復成High.
此時約過3 ms,SCIO開始輸出數據,第一個Byte即為START Byte,總共輸出14 Bytes數據。見圖6.

根據射頻信號的寫入格式,按照如下的寫入時序,即可將數據寫入射頻卡內。見圖7.

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

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







評論