無源RFID中密勒碼編解碼技術(shù)與實(shí)現(xiàn)
文章出處:http://5052h112.com 作者:合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院 單承贛 柴斌 人氣: 發(fā)表時(shí)間:2011年10月29日
引言
在無源RFID中,為實(shí)現(xiàn)卡和讀寫器之間的數(shù)據(jù)交換,都是采用負(fù)載調(diào)制方式完成的。進(jìn)行負(fù)載調(diào)制時(shí),需要選用一種編碼去調(diào)制。密勒(Miller)碼因碼中帶有時(shí)鐘信息,且具有較好的抗干擾能力,因而是非接觸存儲(chǔ)卡中優(yōu)選使用的碼型,例如,EM Microelectronnic-marin SA的RFID產(chǎn)品H4006中就采用了密勒碼技術(shù)。但有關(guān)資料對(duì)其編解碼方法的實(shí)現(xiàn)涉及甚少。本文在介紹密勒碼編解碼原理的同時(shí),給出其在RFID中的實(shí)現(xiàn)方法。
密勒碼編碼方法
密勒碼編碼規(guī)則如表1所示。其波形關(guān)系之一例示于圖1。
從表1和圖1中可知,密勒碼的邏輯“0”電平和前位有關(guān),而邏輯“1”雖然在位中間有跳變,但是上跳還是下跳取決于前位結(jié)束時(shí)的電平。
密勒碼編碼器的實(shí)現(xiàn)
密勒碼的傳輸格式通常如表2 所示,其中起始位為1,結(jié)束位為0,數(shù)據(jù)位包括傳送數(shù)據(jù)和它的校驗(yàn)碼。
實(shí)現(xiàn)表2格式的密勒碼流可以采用硬件電路,也可以用軟件編程。下面分別予以介紹。
硬件電路
實(shí)現(xiàn)密勒碼編碼的電路示于圖2。
圖3是假定編碼數(shù)據(jù)為0110 001101(加起始位和結(jié)束位后為101100011010)的密勒碼編碼相關(guān)波形圖示例。圖中的CP/2是數(shù)據(jù)時(shí)鐘的二分頻,是CP/2的倒相信號(hào)。根據(jù)密勒碼編碼規(guī)則,在奇數(shù)個(gè)1串(包括一個(gè)或連續(xù)多個(gè)1位)出現(xiàn)時(shí),對(duì)應(yīng)于位1的密勒碼輸出為CP/2與此時(shí)CP時(shí)鐘信號(hào)異或;其后的位0密勒碼輸出為。在偶數(shù)個(gè)1串出現(xiàn)時(shí),對(duì)應(yīng)于位1的密勒碼為 與CP的異或,而其后出現(xiàn)的位0密勒碼為CP/2。因此,電路中采用一個(gè)脈沖形成電路,在NRZ碼數(shù)據(jù)流的上升沿形成一個(gè)脈沖,該脈沖加至二進(jìn)制計(jì)數(shù)器計(jì)數(shù),二進(jìn)制計(jì)數(shù)器初始狀態(tài)Q端輸出為0,NRZ碼起始位(奇數(shù)個(gè)1串)上升沿觸發(fā)脈沖形成后,第一個(gè)脈沖使二進(jìn)制計(jì)數(shù)器的Q端為高電平,表示奇數(shù)個(gè)串開始,它通過與門4和或門2選擇CP/2,與CP時(shí)鐘異或生成位1的密勒碼,并選擇為其后相應(yīng)的0碼。第2(偶數(shù))個(gè)1串到達(dá)時(shí),二進(jìn)制計(jì)數(shù)器翻轉(zhuǎn),選擇與CP異或生成位1的密勒碼,而用CP/2生成位0對(duì)應(yīng)的密勒碼。
圖3很好地描繪了所給范例的生成波形圖。編碼控制信號(hào)用于啟動(dòng)編碼器電路,若為存儲(chǔ)卡,可用卡的上電信號(hào)(Power On)觸發(fā)產(chǎn)生編碼控制信號(hào)。
軟件方法
從圖3輸出的密勒碼波形可以看出,NRZ碼可以轉(zhuǎn)換為用二位NRZ碼表示的密勒碼值。其轉(zhuǎn)換關(guān)系如表3所示。但二位表示法中的二進(jìn)制數(shù)的時(shí)鐘頻率要提高一倍。密勒碼的軟件流程如圖4所示。
若是采用CPU處理,則將NRZ碼數(shù)據(jù)變換后,以2倍時(shí)鐘速率送出變換后的NRZ碼數(shù)據(jù)即可。例如,前例中的101100011010轉(zhuǎn)換后為011110011100111001111000。若為存儲(chǔ)卡,也可將NRZ碼轉(zhuǎn)換為用二位NRZ碼表示的密勒碼,存放于存儲(chǔ)器中,但存儲(chǔ)器容量需增加一倍,數(shù)據(jù)時(shí)鐘也需增加一倍。因此還是用硬件編碼方法較宜。
解碼方法
由于讀寫器中都有微控制器,因此采用軟件解碼方法最為方便。讀寫器在對(duì)負(fù)載調(diào)制信號(hào)解調(diào)后,可獲得相應(yīng)波形,若以2倍時(shí)鐘頻率讀入位值后即可判決解碼。首先,讀出0→1的跳變后,表示獲得了起始位,然后兩位一轉(zhuǎn)換:01和10都譯為1,00和11都譯為0。
這里還得說明一點(diǎn),密勒碼停止位的電位是隨前一位的不同而變化的,即可能為00,也可能為11,因此,為保證起始位的一致,停止位后必須有規(guī)定位數(shù)的間歇。此外,在判別時(shí)若結(jié)束位為00,則問題不大,后面再讀入也為00,則可判知前面一個(gè)00為停止位。但若停止位為11,則再讀入4位才為0000,而實(shí)際上,停止位為11,而不是第一個(gè)00,解決這個(gè)問題的辦法是預(yù)知傳輸?shù)奈粩?shù)或以字節(jié)為單位傳輸。這兩種方法RFID是可以實(shí)現(xiàn)的。
結(jié)語
本文針對(duì)無源RFID中的編解碼技術(shù),采用硬件和軟件兩種方法實(shí)現(xiàn)了密勒碼的編解碼,具有較好的抗干擾能力,是非接觸存儲(chǔ)卡的優(yōu)選方案。■
參考文獻(xiàn)
1單承贛,馬海燕. TYPE A型卡的曼徹撕特碼的編解碼技術(shù). 通信技術(shù),2003