本發(fā)明屬于射頻識(shí)別技術(shù)領(lǐng)域,尤其涉及一種基于FPGA的RFID接收信號(hào)強(qiáng)度檢測(cè)及解碼方法。
背景技術(shù):
許多RFID標(biāo)簽采用2FSK來實(shí)現(xiàn)信息的傳輸,由于RFID應(yīng)用環(huán)境的復(fù)雜性,通常要求閱讀器具備較高的抗干擾能力。傳統(tǒng)的2FSK解調(diào)方法包括鑒頻法、相干檢測(cè)法、包絡(luò)檢波法、過零檢測(cè)法、差分檢測(cè)法等。這些方法對(duì)傳輸過程中因?yàn)榭罩懈蓴_導(dǎo)致脈沖幅度變化較大、存在基線漂移、甚至脈沖丟失的情況時(shí),效果較差,而且對(duì)兩個(gè)載頻的頻率差有較高要求,難以滿足RFID應(yīng)用要求。
綜上所述,傳統(tǒng)的2FSK解調(diào)方法因?yàn)榭罩懈蓴_導(dǎo)致脈沖幅度變化較大、存在基線漂移、甚至脈沖丟失的情況時(shí),效果較差;對(duì)兩個(gè)載頻的頻率差有較高要求,難以滿足RFID應(yīng)用要求。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種基于FPGA的RFID接收信號(hào)強(qiáng)度檢測(cè)及解碼方法,旨在解決傳統(tǒng)的2FSK解調(diào)方法因?yàn)榭罩懈蓴_導(dǎo)致脈沖幅度變化較大、存在基線漂移、甚至脈沖丟失的情況時(shí),效果較差;對(duì)兩個(gè)載頻的頻率差有較高要求,難以滿足RFID應(yīng)用要求的問題。
本發(fā)明是這樣實(shí)現(xiàn)的,一種基于FPGA的RFID接收信號(hào)強(qiáng)度檢測(cè)及解碼方法,所述基于FPGA的RFID接收信號(hào)強(qiáng)度檢測(cè)及解碼方法采用FPGA對(duì)信號(hào)固定周期采樣,設(shè)采樣周期為t,將接收信號(hào)轉(zhuǎn)換為數(shù)字信號(hào);在FPGA中進(jìn)行數(shù)字濾波,在濾波后的信號(hào)波形中查找局部極大值:對(duì)數(shù)字序列進(jìn)行比較,當(dāng)連續(xù)三個(gè)值Pi-1、Pi和Pi-1滿足(如圖4,兩個(gè)相鄰極值點(diǎn)之間的部分定義為一個(gè)脈沖,其周期Tj為包含的數(shù)據(jù)點(diǎn)數(shù)一個(gè)脈沖的幅度Aj定義為波峰數(shù)據(jù)與波谷數(shù)據(jù)的差,即Aj=MAXj-MINj):
Pi-1<Pi≤Pi+1
則記錄Pi為極大值點(diǎn)。兩個(gè)相鄰極大值點(diǎn)之間的部分即為一個(gè)脈沖,從而實(shí)現(xiàn)了脈沖識(shí)別。計(jì)算前N個(gè)脈沖的幅度的平均值作為接收信號(hào)強(qiáng)度。設(shè)第j個(gè)脈沖的幅度為Aj,則Aj為該脈沖的最大值MAXj減去最小值MINj,即:
Aj=MAXj-MINj
則接收信號(hào)強(qiáng)度為:
依據(jù)2FSK的碼元速率,統(tǒng)計(jì)M(一般為16)個(gè)脈沖的總時(shí)間Tbit,從而分辨出載頻f0和f1,完成解碼。設(shè)載頻f0高于載頻f1,Δt為用戶設(shè)置的一個(gè)常數(shù),用如下規(guī)則進(jìn)行解碼:
1)若則將該M個(gè)脈沖解碼為“0”;
2)否則解碼為“1”。
以此類推,完成整個(gè)信號(hào)流的解碼。
進(jìn)一步,所述基于FPGA的RFID接收信號(hào)強(qiáng)度檢測(cè)及解碼方法包括以下步驟:
步驟一,初始化階段,脈沖計(jì)數(shù)器n和信號(hào)強(qiáng)度寄存器rss賦初值0;
步驟二,識(shí)別第j個(gè)脈沖,并計(jì)算該脈沖的幅度值A(chǔ)j,幅度值A(chǔ)j為該脈沖中所有數(shù)值的最大值減去最小值,即為該脈沖的幅度;
步驟三,已經(jīng)鑒別出一個(gè)脈沖,脈沖計(jì)數(shù)器n加1;將幅度Aj累加到信號(hào)強(qiáng)度寄存器rss,即:rss=rss+Aj;
步驟四,判斷是否達(dá)到N個(gè)脈沖,若是則轉(zhuǎn)步驟五,否則轉(zhuǎn)步驟六;
步驟五:輸出本次操作周期RFID標(biāo)簽返回的平均信號(hào)強(qiáng)度avgrss,即avgrss=rss/N,轉(zhuǎn)步驟六;
步驟六,判斷是否計(jì)算滿M個(gè)周期,即一個(gè)比特的數(shù)據(jù),若是則記錄這M個(gè)周期的數(shù)據(jù)數(shù)目為Tbit,并轉(zhuǎn)步驟七;否則轉(zhuǎn)步驟二,繼續(xù)找下一個(gè)脈沖;
步驟七,根據(jù)2FSK編碼規(guī)則,并輸出一個(gè)比特“0”/“1”。設(shè)載頻f0高于載頻f1,Δt為用戶設(shè)置的一個(gè)常數(shù),用如下規(guī)則進(jìn)行解碼:
1)若則將該M個(gè)脈沖解碼為“0”;
2)否則,將該M個(gè)脈沖解碼為“1”。
步驟八,解碼完成則結(jié)束,否則轉(zhuǎn)步驟二繼續(xù)找下一個(gè)脈沖,對(duì)下一個(gè)M個(gè)脈沖進(jìn)行解碼;
步驟九,操作周期結(jié)束。
本發(fā)明的另一目的在于提供一種所述基于FPGA的RFID接收信號(hào)強(qiáng)度檢測(cè)及解碼方法的RFID閱讀器。
進(jìn)一步,所述閱讀器包括:
FPGA,用于從通信接口接收命令,將發(fā)送數(shù)據(jù)調(diào)制;并完成AD轉(zhuǎn)換電路的數(shù)字信號(hào)的處理,結(jié)果通過通信接口返回給用戶;
發(fā)射電路,與FPGA連接,用于將FPGA調(diào)制的數(shù)據(jù)通過天線發(fā)射出去;
接收電路,與天線有線連接,用于接收天線上的感應(yīng)信號(hào);
放大濾波電路,與接收電路有線連接,用于對(duì)接收電路接收的天線上的感應(yīng)信號(hào)濾波放大;
AD轉(zhuǎn)換電路,與放大濾波電路和FPGA有線連接,用于將放大濾波電路濾波放大的天線感應(yīng)信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)。
進(jìn)一步,所述FPGA包括下列模塊:
嵌入式處理器,用于從通信接口接收命令并解析,若是數(shù)據(jù)發(fā)送,則將被發(fā)送數(shù)據(jù)通過信號(hào)調(diào)制模塊調(diào)制,通過發(fā)射電路發(fā)射出去;
高精度AD控制器,與嵌入式處理器有線連接,用于控制外部的AD轉(zhuǎn)換器對(duì)接收信號(hào)進(jìn)行固定周期的采樣;
數(shù)字濾波器,通過第一級(jí)先入先出隊(duì)列與AD控制器通訊,用于從第一級(jí)先入先出隊(duì)列中取數(shù)據(jù)并進(jìn)行數(shù)字濾波,結(jié)果寫入到第二級(jí)先入先出隊(duì)列;
第二級(jí)先入先出隊(duì)列,與數(shù)字濾波器通訊,用于存儲(chǔ)數(shù)字濾波器的濾波結(jié)果;
波形識(shí)別及解碼模塊,與第二級(jí)先入先出隊(duì)列通信,用于讀取數(shù)據(jù),完成信號(hào)強(qiáng)度計(jì)算和解碼工作。
本發(fā)明的另一目的在于提供一種利用所述基于FPGA的RFID接收信號(hào)強(qiáng)度檢測(cè)及解碼方法的射頻識(shí)別系統(tǒng)。
本發(fā)明的另一目的在于提供一種利用所述基于FPGA的RFID接收信號(hào)強(qiáng)度檢測(cè)及解碼方法的2FSK解調(diào)系統(tǒng)。
本發(fā)明提供的基于FPGA的RFID接收信號(hào)強(qiáng)度檢測(cè)及解碼方法,對(duì)存在基線漂移及脈沖幅度變化較大的信號(hào)具有同樣的解碼能力。且特別適合于兩個(gè)載頻頻率f0和f1比較接近的應(yīng)用場(chǎng)合。相比于傳統(tǒng)的利用現(xiàn)有集成電路進(jìn)行解碼的方案,本發(fā)明對(duì)FSK的兩個(gè)頻率差的要求較小,具有更好的靈敏性和通用性,傳統(tǒng)方案中,傳統(tǒng)方案中,一個(gè)集成電路只針對(duì)一種頻率信號(hào),且兩個(gè)載頻頻率f0和f1的頻率差是基本固定的;而本發(fā)明只需要通過選擇AD采樣頻率和調(diào)整解碼用的常數(shù)Δt,即可實(shí)現(xiàn)任意頻率信號(hào)的解碼,即使f0和f1的頻率差很大或很小。本發(fā)明無需復(fù)雜的硬件電路和專用的FSK解碼芯片;工作頻率可配置,特別適合于要求工作于多種頻率的閱讀器;提供了信號(hào)強(qiáng)度估計(jì)功能。
附圖說明
圖1是本發(fā)明實(shí)施例提供的手持式RFID閱讀器結(jié)構(gòu)示意圖。
圖2是本發(fā)明實(shí)施例提供的FPGA內(nèi)部功能模塊結(jié)構(gòu)示意圖。
圖3是本發(fā)明實(shí)施例提供的基于FPGA的RFID接收信號(hào)強(qiáng)度檢測(cè)及解碼方法流程圖。
圖4是本發(fā)明實(shí)施例提供的脈沖識(shí)別原理示意圖。
圖中:1、FPGA;1-1、A/D控制器;1-2、第一級(jí)先入先出隊(duì)列;1-3、數(shù)字濾波器;1-4、第二級(jí)先入先出隊(duì)列;1-5、波形識(shí)別及解碼模塊;1-6、嵌入式處理器;1-7、信號(hào)調(diào)制模塊;2、發(fā)射電路;3、接收電路;4、放大濾波電路;5、AD轉(zhuǎn)換電路;6、通信接口。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
下面結(jié)合附圖對(duì)本發(fā)明的應(yīng)用原理作詳細(xì)的描述。
本發(fā)明實(shí)施例提供的閱讀器(如圖1所示)和應(yīng)答器,閱讀器載波頻率為83K,應(yīng)答器返回信號(hào)上行頻率f0為83KHz、f1為81KHz。本發(fā)明實(shí)施例中的閱讀器由FPGA1、發(fā)射電路2、接收電路3、放大濾波電路4、AD轉(zhuǎn)換電路5和通信接口6構(gòu)成。
FPGA1從通信接口6接收命令,將發(fā)送數(shù)據(jù)調(diào)制,通過發(fā)射電路2、天線發(fā)射出去。接收電路3接收天線上的感應(yīng)信號(hào),通過放大濾波電路4進(jìn)行濾波放大,在FPGA1的控制下,通過AD轉(zhuǎn)換電路5轉(zhuǎn)換為數(shù)字信號(hào),并在FPGA1內(nèi)部完成信號(hào)的處理,結(jié)果通過通信接口6返回給用戶。
如圖2所示,F(xiàn)PGA1的功能模塊包括高精度A/D控制器1-1、第一級(jí)先入先出隊(duì)列(FIFO1)1-2、數(shù)字濾波器1-3、第二級(jí)先入先出隊(duì)列(FIFO2)1-4、波形識(shí)別及解碼模塊1-5、嵌入式處理器1-6、信號(hào)調(diào)制模塊1-7。
FPGA的控制核心是嵌入式處理器,它從通信接口接收命令并解析,若是數(shù)據(jù)發(fā)送,則將被發(fā)送數(shù)據(jù)通過信號(hào)調(diào)制模塊調(diào)制,通過發(fā)射電路發(fā)射出去;之后,通過高精度AD控制器對(duì)接收信號(hào)進(jìn)行固定周期的采樣,采樣數(shù)據(jù)存入FIFO1;數(shù)字濾波器從FIFO1中取數(shù)據(jù)并進(jìn)行數(shù)字濾波,結(jié)果寫入到FIFO2;波形識(shí)別、RSS計(jì)算、2FSK解碼模塊從FIFO讀取數(shù)據(jù),完成信號(hào)強(qiáng)度計(jì)算和解碼工作。
如圖3所示,本發(fā)明實(shí)施例提供的基于FPGA的RFID接收信號(hào)強(qiáng)度檢測(cè)及解碼方法包括以下步驟:
S301:初始化階段,脈沖計(jì)數(shù)器n和信號(hào)強(qiáng)度寄存器rss賦初值0;
S302:識(shí)別第j個(gè)脈沖,并計(jì)算該脈沖的幅度值A(chǔ)j,幅度值A(chǔ)j為該脈沖中所有數(shù)值的最大值減去最小值,即為該脈沖的幅度;
S303:已經(jīng)鑒別出一個(gè)脈沖,脈沖計(jì)數(shù)器n加1;將幅度Aj累加到信號(hào)強(qiáng)度寄存器rss,即:rss=rss+Aj;
S304:判斷是否達(dá)到N個(gè)脈沖,若是則S305,否則轉(zhuǎn)S306;
S305:輸出本次操作周期RFID標(biāo)簽返回的平均信號(hào)強(qiáng)度avgrss,即avgrss=rss/N,轉(zhuǎn)S306;
S306:判斷是否計(jì)算滿M個(gè)周期,即一個(gè)比特的數(shù)據(jù),若是則記錄這M個(gè)周期的數(shù)據(jù)數(shù)目為Tbit,并轉(zhuǎn)S307;否則轉(zhuǎn)S302,繼續(xù)找下一個(gè)脈沖;
S307:根據(jù)2FSK編碼規(guī)則,并輸出一個(gè)比特“0”/“1”。設(shè)載頻f0高于載頻f1,Δt為用戶設(shè)置的一個(gè)常數(shù),用如下規(guī)則進(jìn)行解碼:
1)若則將該M個(gè)脈沖解碼為“0”;
2)否則,將該M個(gè)脈沖解碼為“1”。
S308:解碼完成則轉(zhuǎn)S309,否則轉(zhuǎn)S302繼續(xù)找下一個(gè)脈沖,對(duì)下一個(gè)M個(gè)脈沖進(jìn)行解碼;
S309:操作周期結(jié)束,啟動(dòng)下一個(gè)操作周期。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。