基于FPGA的超高頻讀寫器設(shè)計(jì)
文章出處:http://56733.cn 作者:中國(guó)一卡通網(wǎng) 收編 人氣: 發(fā)表時(shí)間:2011年10月17日
引言
射頻識(shí)別(RFID)是一種非接觸的自動(dòng)識(shí)別技術(shù),它利用天線來傳輸射頻信號(hào),利用空間耦合實(shí)現(xiàn)非接觸供電,并進(jìn)行非接觸雙向數(shù)據(jù)通信,而達(dá)到自動(dòng)識(shí)別目標(biāo)并交換數(shù)據(jù)的目的。與傳統(tǒng)的條形碼識(shí)別方式相比,射頻識(shí)別技術(shù)能對(duì)移動(dòng)的多個(gè)目標(biāo)進(jìn)行識(shí)別,而且還具有條形碼所不具備的防水、防磁、耐高溫、使用壽命長(zhǎng)、讀取距離大、數(shù)據(jù)加密等優(yōu)點(diǎn)。因而RHD技術(shù)廣泛應(yīng)用于交通運(yùn)輸、物流管理、門禁系統(tǒng)等眾多領(lǐng)域。相對(duì)而言,UHF頻段的發(fā)展遠(yuǎn)沒有低頻和高頻段成熟,而UHF頻段的讀寫距離遠(yuǎn)和更快的讀取速度讓其在國(guó)際物流、公路自動(dòng)收費(fèi)等領(lǐng)域有著獨(dú)特的優(yōu)勢(shì),目前已成為RFID技術(shù)應(yīng)用的一個(gè)主流發(fā)展方向。
1 讀寫器的整體結(jié)構(gòu)
本文提出的基于物流管理的讀寫器工作在UHF91 5MHz頻率下。FPGA是大規(guī)??删幊唐骷械牧硪淮箢怭LD(programmable logic device)器件,既繼承了ASIC的大規(guī)模、高集成度、高可靠性等優(yōu)點(diǎn),又克服了普通ASIC設(shè)計(jì)周期長(zhǎng)、投資大、靈活性差的缺點(diǎn),逐步成為復(fù)雜數(shù)字硬件電路設(shè)計(jì)的首選。奧地利微電子公司的AS3990射頻收發(fā)器產(chǎn)品適用于UHF頻段,針對(duì)便攜、固定、近距或遠(yuǎn)距應(yīng)用進(jìn)行了個(gè)性優(yōu)化,多種產(chǎn)品可采用同一種軟件接口。它是一款高度集成的UHF讀寫器芯片,包括AFE、數(shù)據(jù)幀、編碼/解碼,支持MCU和電源管理,支持密集讀寫模式,天線驅(qū)動(dòng)用OOK、ASIC或PR-ASK調(diào)制,創(chuàng)新化的雙輸入接收器可以消除通信盲區(qū)。該芯片是64引腳QFN封裝,并支持目前業(yè)界最低功耗BOM(Bill of Material,物料清單)的解決方案,所以是講究功耗成本的應(yīng)用首選。AS3990繼承了EPC Classl Gen2(ISO 18000-6C)協(xié)議引擎,其高速的數(shù)據(jù)處理能力可以完成發(fā)送和接收數(shù)據(jù)幀的處理,而且在Direct Data Mode模式下還可以實(shí)現(xiàn)ISO 18000-6A和ISO 18000-6B協(xié)議。為了減輕處理器的工作負(fù)擔(dān)并保證穩(wěn)定的數(shù)據(jù)流以及正確的協(xié)議處理,AS3990采用了一個(gè)12字節(jié)的FIFO寄存器來管理數(shù)據(jù)幀。內(nèi)置的可編程選項(xiàng)可以使它適合于UHF頻段里的所有應(yīng)用,還可以直接進(jìn)入其內(nèi)置控制寄存器對(duì)各種讀寫器參數(shù)進(jìn)行微調(diào)。
讀寫器RF前端采用零中頻接收結(jié)構(gòu)。由頻率合成器產(chǎn)生所需要的RF信號(hào),然后經(jīng)過功率分配器得到兩路載波信號(hào),分別用于發(fā)送通路和接收通路。發(fā)送通路采用OOK調(diào)制,基帶信號(hào)通過開關(guān)通斷控制載波是否經(jīng)過功放,并用天線發(fā)送;接收通路中接收信號(hào)先經(jīng)過功率分配、放大等操作,然后分別送到混頻器和兩路正交的載波信號(hào)進(jìn)行混頻,對(duì)混頻之后的信號(hào)經(jīng)過濾波、放大等操作恢復(fù)出數(shù)字基帶信號(hào)。該系統(tǒng)之所以采用兩路正交混頻結(jié)構(gòu),主要是為了避免射頻場(chǎng)中存在接收盲點(diǎn)。如果只采用一路接收信號(hào),當(dāng)接收信號(hào)的相位和本振信號(hào)的相位相差90°,混頻后的信號(hào)始終為0,即有用信號(hào)沒有解調(diào)出來。但采用正交I和Q兩路接收信號(hào),無論相位延時(shí)多少,I和Q中總有一路能解調(diào)出有用信號(hào)。
AS3990芯片與控制器之間的接口可以采用串行數(shù)據(jù)接口,為了采用較高的傳輸速率時(shí)也可以采用并行接口。本設(shè)計(jì)采用FPGA與AS3990芯片的并行連接通信,AS3990的IO0-I07、IRQ、CLK、VCC,CLSYS接口與FPGA相連接,如圖1所示,其中IRQ為中斷,IO0-I07為數(shù)據(jù)的雙向并行口。芯片內(nèi)部有32個(gè)寄存器用來實(shí)現(xiàn)其傳輸協(xié)議和監(jiān)測(cè)工作狀態(tài),通過對(duì)內(nèi)部寄存器的設(shè)置,來控制芯片的傳輸模式、調(diào)制方式、傳輸速率等。在常規(guī)工作模式下,即支持ISO 18000-6C標(biāo)準(zhǔn),傳輸數(shù)據(jù)的編碼與解碼,CRC校驗(yàn)碼的生成和校驗(yàn)都是在芯片內(nèi)部完成的,還有自動(dòng)產(chǎn)生幀同步、引導(dǎo)碼,將從MCU傳遞的數(shù)據(jù)轉(zhuǎn)換成數(shù)據(jù)幀格式后再發(fā)送,且發(fā)送和接收都是通過FIFO寄存器傳輸?shù)?。而在直接?shù)據(jù)模式下,數(shù)據(jù)的編解碼和CRC校驗(yàn)碼的生成與校驗(yàn)都在芯片外部實(shí)現(xiàn),而且發(fā)送和接收只能直接地、無緩沖地從FIFO中輸出碼流,可以用該模式來實(shí)現(xiàn)ISO 18 000-6B、6A協(xié)議等。
2 讀寫器數(shù)字基帶部分設(shè)計(jì)
數(shù)字部分由控制器、存儲(chǔ)器組成,主要完成命令信號(hào)的發(fā)送和數(shù)字邏輯的控制,并且實(shí)現(xiàn)與PC機(jī)的通信和對(duì)RF模塊的控制。
2.1 RF部分初始化
該部分主要是完成對(duì)AS3990芯片內(nèi)部寄存器的配置。
芯片上電復(fù)位以后,配置寄存器初始化為其默認(rèn)值,使芯片可以在EPC Class1 Gen2協(xié)議下工作,但為了使芯片的工作性能達(dá)到最優(yōu)化或者實(shí)現(xiàn)ISO/IEC18000-6A、6B協(xié)議等,則必須重新配置寄存器的值。主要實(shí)現(xiàn)以下內(nèi)容的配置:
(1)AS3990有兩種工作模式,分別支持和實(shí)現(xiàn)不同的協(xié)議,為常規(guī)數(shù)據(jù)模式(Normal Data Mode)和直接數(shù)據(jù)模式(Direct Data Mode)。在常規(guī)數(shù)據(jù)模式中,發(fā)送和接收的數(shù)據(jù)是通過內(nèi)部FIFO寄存器傳輸?shù)?,所有?shù)據(jù)的處理過程都是在芯片內(nèi)部完成的。在直接數(shù)據(jù)模式中,數(shù)據(jù)處理是在芯片外部實(shí)現(xiàn)的,由控制部分完成,可以利用該模式來實(shí)現(xiàn)ISO 18000-6A、6B協(xié)議等。
(2)選擇系統(tǒng)工作頻率。AS3990芯片規(guī)定的UHF讀寫器工作頻率是860~960MHz,我們可以根據(jù)具體情況和實(shí)際應(yīng)用來設(shè)定其工作頻率。
(3)設(shè)定傳輸速率,包括讀寫器到標(biāo)簽的數(shù)據(jù)速率和標(biāo)簽到讀寫器的數(shù)據(jù)速率。其中讀寫器到標(biāo)簽的比特率范圍為26.7~128kbps,標(biāo)簽到讀寫器的傳輸速率在40~640kHz之間。
(4)選擇編碼方式和調(diào)制方式。根據(jù)協(xié)議規(guī)定,讀寫器前向鏈路采用PIE編碼、ASK調(diào)制方式。反向鏈路的編碼方式有兩種選擇,F(xiàn)M0編碼和Miller編碼方式;調(diào)制方式也有兩種,為ASK調(diào)制和PSK調(diào)制方式。其中反向鏈路調(diào)制方式的選擇由生產(chǎn)廠商決定。如圖2為初始化模塊的
仿真圖。
2.2 讀寫器命令
在AS3990芯片內(nèi)部,已經(jīng)集成了一些常用到的命令:軟件初始化命令(83)、FIFO寄存器復(fù)位命令(8F)、帶CRC校驗(yàn)的發(fā)送命令(90)、Qu-ery命令(98)、QueryRep命令(99)等,在需要使用這些命令時(shí),只要直接調(diào)用這些命令碼即可。而其他一些沒有集成到芯片內(nèi)部的命令就需要用軟件來實(shí)現(xiàn),包括選擇命令Select,還有一些讀命令Read、寫命令Write等。
對(duì)于沒有集成在芯片內(nèi)部的命令,就需要用軟件來完成其命令格式,不過校驗(yàn)碼的產(chǎn)生、命令前導(dǎo)碼、命令的編碼都在芯片內(nèi)部完成。圖3所示為Select命令的軟件發(fā)送格式。首先是起始條件(FF),然后是FIFO寄存器復(fù)位命令(8F),帶CRC校驗(yàn)的發(fā)送命令(90);再是命令格式,要發(fā)送的數(shù)據(jù)長(zhǎng)度,最后是數(shù)據(jù)。當(dāng)數(shù)據(jù)從微控制器發(fā)送給AS3990芯片以后,首先將要發(fā)送的數(shù)據(jù)存入內(nèi)部FIFO寄存器,加上CRC校驗(yàn)碼、前導(dǎo)碼,然后將數(shù)據(jù)經(jīng)過編碼,以數(shù)據(jù)幀的格式經(jīng)過調(diào)制后發(fā)送出去。
對(duì)于集成在芯片內(nèi)部的命令,只要發(fā)送命令碼,芯片會(huì)自動(dòng)將命令以數(shù)據(jù)幀的格式經(jīng)過調(diào)制后發(fā)送出去。如圖4為Query的命令發(fā)送格式。
只有芯片的工作模式設(shè)置為常規(guī)數(shù)據(jù)模式時(shí),才能使用芯片內(nèi)部集成命令。在直接數(shù)據(jù)模式下,所有的命令格式都由控制器完成。
2.3 讀寫器的防沖突
RFID系統(tǒng)中,多標(biāo)簽引起的沖突是影響系統(tǒng)效率的難題,傳統(tǒng)的概率性防沖突算法采用的是幀時(shí)隙Aloha算法或動(dòng)態(tài)幀時(shí)隙Aloha算法等。但這些算法都存在系統(tǒng)識(shí)別效率不高等問題。當(dāng)標(biāo)簽數(shù)遠(yuǎn)大于幀時(shí)隙數(shù)時(shí),發(fā)生碰撞的時(shí)隙數(shù)增多,讀寫器不能完成標(biāo)簽的讀?。寒?dāng)標(biāo)簽數(shù)遠(yuǎn)小于幀時(shí)隙數(shù)時(shí),空閑時(shí)隙增多而導(dǎo)致時(shí)隙浪費(fèi),這些都是導(dǎo)致系統(tǒng)效率不高的根本原因。鑒于以上的弊端,本文提出了一種基于幀時(shí)隙Aloha的改進(jìn)型算法,核心思想是將標(biāo)簽識(shí)別分為兩個(gè)步驟,即沖突檢測(cè)和數(shù)據(jù)讀取。其中沖突檢測(cè)是為了檢測(cè)一個(gè)識(shí)別周期中的標(biāo)簽發(fā)生沖突的情況。數(shù)據(jù)讀取是根據(jù)沖突檢測(cè)的情況,允許無沖突的標(biāo)簽和閱讀器完成通信。
通常,在幀時(shí)隙Aloha算法中,當(dāng)系統(tǒng)標(biāo)簽數(shù)量變得很大時(shí),系統(tǒng)效率就開始下降。當(dāng)讀寫器設(shè)置幀的長(zhǎng)度(包含的時(shí)隙數(shù))為Nt,響應(yīng)的標(biāo)簽數(shù)為n時(shí),則有r個(gè)標(biāo)簽選擇同一個(gè)應(yīng)答時(shí)隙的概率服從二項(xiàng)分布.
因此,當(dāng)r=1時(shí)表示標(biāo)簽選擇無碰時(shí)隙的概率。在一個(gè)周期中預(yù)期成功讀取的標(biāo)簽數(shù)
系統(tǒng)效率的計(jì)算公式如下:
系統(tǒng)效率=一個(gè)周期中預(yù)期讀取的標(biāo)簽數(shù)/當(dāng)前的幀的長(zhǎng)度=N/N,
從上式中可以計(jì)算出系統(tǒng)效率的最大值的位置。從而可以推導(dǎo)出,當(dāng)幀的長(zhǎng)度為Nt時(shí),效率最高的標(biāo)簽響應(yīng)數(shù)為:
從上式可以得出,當(dāng)標(biāo)簽數(shù)和幀時(shí)隙長(zhǎng)度大體相當(dāng)時(shí),系統(tǒng)效率將變得最大。與圖5所示一致。
為使系統(tǒng)效率最高,必須使幀時(shí)隙數(shù)等于參與循環(huán)的標(biāo)簽數(shù)。每幀時(shí)隙數(shù)可以根據(jù)標(biāo)簽數(shù)的變化及時(shí)調(diào)整,使得標(biāo)簽數(shù)量與幀時(shí)隙數(shù)匹配。在開始一個(gè)新的循環(huán)時(shí),讀寫器要對(duì)參與循環(huán)的標(biāo)簽數(shù)進(jìn)行估計(jì),如果所估計(jì)的標(biāo)簽數(shù)與實(shí)際情況相差甚遠(yuǎn),那么算法的效率就會(huì)發(fā)生大幅的下降。通過對(duì)上一個(gè)周期通信所獲取的空的時(shí)隙數(shù)、發(fā)生碰撞的時(shí)隙數(shù)和只有一個(gè)標(biāo)簽傳輸數(shù)據(jù)的時(shí)隙數(shù)來估計(jì)標(biāo)簽的數(shù)量,由估計(jì)的標(biāo)簽的數(shù)量來及時(shí)調(diào)整下一幀的長(zhǎng)度。由于當(dāng)外圍標(biāo)簽數(shù)量與幀時(shí)隙數(shù)偏離較大時(shí),系統(tǒng)效率會(huì)急劇下降,所以通過幀時(shí)隙改進(jìn)型算法能夠把系統(tǒng)的效率控制在34.6%~36.8%范圍內(nèi),從而大幅提高了系統(tǒng)的識(shí)別效率。在實(shí)際的RFID系統(tǒng)中,被正確識(shí)別的標(biāo)簽將不再響應(yīng)讀寫器發(fā)送的數(shù)據(jù)傳輸請(qǐng)求,同樣,成功傳輸數(shù)據(jù)的標(biāo)簽也不再響應(yīng)讀寫器的請(qǐng)求。因此前一幀中沒有被識(shí)別的標(biāo)簽數(shù)為N=2.93c。其中c表示發(fā)生碰撞的時(shí)隙數(shù)。通過對(duì)未識(shí)別的標(biāo)簽數(shù)進(jìn)行估計(jì),選擇最佳的幀時(shí)隙長(zhǎng)度,從而使每個(gè)循環(huán)周期中響應(yīng)標(biāo)簽數(shù)與幀時(shí)隙數(shù)相匹配,從而大幅度提高了系統(tǒng)的效率。
3 總結(jié)
本文選用FPGA芯片與AS3990射頻收發(fā)芯片設(shè)計(jì)并實(shí)現(xiàn)了遠(yuǎn)距離UHF RFID讀寫器,標(biāo)簽識(shí)別距離達(dá)到3~4m,已基本滿足應(yīng)用要求。并提出了一種幀時(shí)隙Aloha防碰撞的改進(jìn)型算法。通過動(dòng)態(tài)地調(diào)整幀時(shí)隙數(shù)與外圍標(biāo)簽數(shù)相匹配,使讀寫器系統(tǒng)的讀取效率維持在34.6%~36.8%范圍內(nèi),大幅度提高了系統(tǒng)的讀取效率。