ARM9的超高頻讀寫(xiě)器基帶編解碼設(shè)計(jì)
摘要:根據(jù)超高頻RFID國(guó)際標(biāo)準(zhǔn)協(xié)議EPC GEN2中的規(guī)定,基于ARM9芯片S3C2440提出一種適用于超高頻讀寫(xiě)器的PIE編碼以及MILLER2解碼的實(shí)現(xiàn)方式。設(shè)計(jì)中使用該芯片的PWM輸出進(jìn)行編碼,并使用其外部中斷進(jìn)行解碼。通過(guò)分析示波器捕捉到的MILLER2波形以及串口打印的解碼輸出,驗(yàn)證了該設(shè)計(jì)的正確性。
關(guān)鍵詞:S3C2440;EPC GEN2協(xié)議;超高頻讀寫(xiě)器;PIE編碼;MILLER2解碼
引言
普通的UHF讀寫(xiě)器主控芯片使用FPGA較多,其優(yōu)點(diǎn)是FPGA對(duì)時(shí)序邏輯處理速度快,使用HDL語(yǔ)言很容易實(shí)現(xiàn)協(xié)議的編碼與解碼,但FPGA芯片本身很少具備串口、網(wǎng)口等通信接口模塊,功能擴(kuò)展較麻煩。由于ARM9芯片集成了很多擴(kuò)展接口,同時(shí)進(jìn)行操作系統(tǒng)移植等更高層次的設(shè)計(jì)也變得很容易,但對(duì)時(shí)序邏輯處理較難。因而本文提出了基于ARM9的UHF RFID讀寫(xiě)器基帶編解碼方法,并加以實(shí)現(xiàn)。
1 基本原理
UHF RFID國(guó)際標(biāo)準(zhǔn)協(xié)議規(guī)定讀寫(xiě)器到電子標(biāo)簽的通信應(yīng)采用DSB—ASK、SSB—ASK或者PR—ASK調(diào)制方式。本文使用ARM9芯片S3C2440的PWM(脈寬調(diào)制)控制模塊進(jìn)行PIE編碼,通過(guò)編碼信號(hào)控制射頻開(kāi)關(guān)實(shí)現(xiàn)OOK調(diào)制。電子標(biāo)簽接收到命令后反向散射副載波應(yīng)答,經(jīng)過(guò)射頻模塊的天線(xiàn)接收后被解調(diào)電路還原成MILLER2數(shù)據(jù)。構(gòu)造MILLER2解碼狀態(tài)機(jī),使用S3C2440的外部中斷對(duì)MILLER2時(shí)序序列進(jìn)行上升沿捕捉,捕捉到的兩次中斷的時(shí)間間隔作為狀態(tài)機(jī)輸入,進(jìn)而解調(diào)出標(biāo)簽反射回來(lái)的數(shù)據(jù)。系統(tǒng)的硬件框圖如圖1所示。
讀寫(xiě)器射頻模塊的工作流程為:發(fā)送命令時(shí),PIE編碼電平控制射頻芯片開(kāi)關(guān),當(dāng)開(kāi)關(guān)開(kāi)啟時(shí)輸出射頻載波,關(guān)閉則不輸出,以達(dá)到OOK調(diào)制載波的目的。接收機(jī)采用零中頻接收機(jī)方案,直接對(duì)天線(xiàn)接收到的標(biāo)簽反向散射信號(hào)進(jìn)行解調(diào),解調(diào)完畢得到相位相差90°的I、Q兩路信號(hào),通過(guò)差分放大器放大處理后,輸出到比較器,經(jīng)過(guò)比較后電路輸出MILLER2編碼時(shí)序信號(hào)。
2 PIE編碼
2.1 PIE碼簡(jiǎn)介
EPC GNE2協(xié)議規(guī)定UHF讀卡器向標(biāo)簽發(fā)送命令時(shí),數(shù)據(jù)應(yīng)采用PIE編碼。PIE碼通過(guò)高低電平的時(shí)間長(zhǎng)度不同來(lái)規(guī)定數(shù)據(jù)是“1”還是“0”。協(xié)議使用Tari代表數(shù)據(jù)“0”,時(shí)間長(zhǎng)度在6.25~25μs范圍內(nèi),容差為±1%,數(shù)據(jù)“1”的寬度在為1.5Tari~2.5Tari,如圖2所示。本次編碼中,Tari值為6.4μs,數(shù)據(jù)“1”的長(zhǎng)度為11.4μs,PW的長(zhǎng)度為3.2μs。
協(xié)議規(guī)定,完整的PIE碼需在有效數(shù)據(jù)前加上前同步碼或幀同步碼。前同步碼由定界符、Tari、RTcal以及TRcal這4段組成,用在Query命令上。幀同步碼省去了TRcal而直接由前三項(xiàng)組成,用在其他命令上。前同步碼示意如圖3所示。
2.2 PWM實(shí)現(xiàn)PIE編碼
S3C2440有5個(gè)16位的定時(shí)器,其中定時(shí)器1~4具有PWM(脈寬調(diào)制)功能,定時(shí)器使用經(jīng)過(guò)分頻后的系統(tǒng)時(shí)鐘PCLK作為時(shí)鐘輸入。本設(shè)計(jì)中100 MHz的PCLK經(jīng)過(guò)2分頻得到50 MHz頻率的定時(shí)器輸入時(shí)鐘,定時(shí)器每計(jì)數(shù)一次耗時(shí)0.02μs。定時(shí)器使用兩個(gè)16位的緩沖寄存器TCNTB和TCMPB來(lái)實(shí)現(xiàn)PWM功能,TCNTB為一次PWM輸出計(jì)數(shù)次數(shù),采用遞減的方式計(jì)數(shù),當(dāng)計(jì)數(shù)減為T(mén)CMPB的時(shí)候,PWM輸出電平反轉(zhuǎn)。以數(shù)據(jù)“0”為例,其脈沖總寬度為6.4μs,低電平持續(xù)時(shí)間3.2 μs,則可計(jì)算出TCNTB=6.4/0.02=320次,TCMTB=3.2/0.02=160次。
為實(shí)現(xiàn)連續(xù)的PWM輸出,需要讓定時(shí)器工作在自動(dòng)重載模式,即當(dāng)定時(shí)器計(jì)數(shù)器減為0的時(shí)候,在定時(shí)器中斷處理函數(shù)里更新TCNTB及TCNMPB,讓定時(shí)器重新開(kāi)始一次脈寬輸出。定時(shí)器1初始化時(shí)經(jīng)過(guò)以下步驟:
①TCNMB以及TCMPB寄存器賦非零初值;
②TCON中人工裝載位配置為1,TCNTB和TCMPB更新到內(nèi)部計(jì)數(shù)器;
③TCON中自動(dòng)重載位配置為1,為實(shí)現(xiàn)連續(xù)的PWM功能;
④TCON中輸出翻轉(zhuǎn)位配置為1,脈沖以高電平開(kāi)始;
⑤TCON置為啟動(dòng)位;
⑥TCON設(shè)置關(guān)閉人工裝載,定時(shí)器開(kāi)始啟動(dòng)。
評(píng)論