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