• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于FPGA的FM0編碼設(shè)計(jì)

    2014-09-27 11:22:27杜平
    移動(dòng)通信 2014年16期
    關(guān)鍵詞:狀態(tài)機(jī)讀寫器計(jì)數(shù)器

    【摘要】主要介紹了FM0編碼的設(shè)計(jì)方法,采用了狀態(tài)機(jī)實(shí)現(xiàn)各狀態(tài)的轉(zhuǎn)換,并通過并串轉(zhuǎn)換方法實(shí)現(xiàn)狀態(tài)編碼后的數(shù)據(jù)輸出。該方案采用Verilog編碼,且在Altera公司的CycloneⅢ芯片上通過了驗(yàn)證。

    【關(guān)鍵詞】FM0編碼狀態(tài)機(jī)并串轉(zhuǎn)換FPGA

    中圖分類號(hào):TN92文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1006-1010(2014)-16-

    [Abstract]This paper instructs the method of FM0 encoding. This scheme are states shift using state machine and changing parallel data to serial data after state machine encoding. This idea is achieved by verilog HDL,verified on Altera CycloneⅢ CMOS chip.

    [Key words]FM0 encoding state machine parallel to serial FPGA

    1FM0編碼原理

    FM0廣泛地應(yīng)用于超高頻無(wú)線射頻技術(shù)中,在“無(wú)線射頻識(shí)別協(xié)議-第1類第2代UHF RFID(860—960MHz)通信協(xié)議”中明確規(guī)定,電子標(biāo)簽向讀寫器應(yīng)答時(shí),需采用FM0編碼或者米勒編碼。下面介紹的編碼實(shí)現(xiàn)方案已經(jīng)應(yīng)用到了超高頻射頻識(shí)別系統(tǒng)中,能夠?qū)崿F(xiàn)正常通信。

    FM0(即Bi-Phase Space)編碼稱為雙相間隔碼編碼,每位數(shù)據(jù)與前一位數(shù)據(jù)要發(fā)生相位翻轉(zhuǎn)。其工作原理是在一個(gè)位窗內(nèi)采用相位變化來表示邏輯。如果相位只從位窗的起始處翻轉(zhuǎn),則表示數(shù)據(jù)“1”;如果相位除了在位窗的起始處翻轉(zhuǎn),還在位窗中間翻轉(zhuǎn),則表示數(shù)據(jù)“0”。根據(jù)FM0編碼的規(guī)則,可以發(fā)現(xiàn)無(wú)論傳送的數(shù)據(jù)是“0”還是“1”,在位窗的起始處都會(huì)發(fā)生相位變化[1]。其編碼表達(dá)式如下:

    圖1描繪了FM0編碼后的波形,S1(t)~S4(t)狀態(tài)表明4種可能FM0編碼。數(shù)據(jù)“0”和數(shù)據(jù)“1”的編碼都對(duì)應(yīng)有兩個(gè)相位,下一個(gè)數(shù)據(jù)編碼狀態(tài)的選擇要根據(jù)前一個(gè)編碼的相位而確定。例如,對(duì)數(shù)據(jù)“01”進(jìn)行編碼,如果數(shù)據(jù)“0”選擇正相位狀態(tài)S1,則數(shù)據(jù)“1”的編碼就必須選擇狀態(tài)S3。而從狀態(tài)S1轉(zhuǎn)換到狀態(tài)S4是不允許的,這是因?yàn)橛纱水a(chǎn)生的信號(hào)在編碼起始位置沒有相位變化。

    2FM0編碼設(shè)計(jì)

    利用FPGA進(jìn)行FM0編碼,可以快速實(shí)時(shí)地實(shí)現(xiàn)編碼。其編碼過程分為:狀態(tài)機(jī)編碼[2]和并行數(shù)據(jù)串行轉(zhuǎn)換。經(jīng)過狀態(tài)編碼后,原數(shù)據(jù)被編碼成了符合雙相轉(zhuǎn)換規(guī)則的數(shù)據(jù),此數(shù)據(jù)是位寬為兩位的并行數(shù)據(jù)。將其進(jìn)行并串轉(zhuǎn)換后輸出,就是讀寫器可以識(shí)別的FM0編碼數(shù)據(jù)。

    2.1 狀態(tài)機(jī)編碼

    FM0編碼包含4個(gè)狀態(tài),它們之間存在一定的規(guī)律。2個(gè)狀態(tài)之間必須包含一次相位改變。根據(jù)輸入數(shù)據(jù)的不同,4個(gè)狀態(tài)之間可以進(jìn)行轉(zhuǎn)換,采用如圖2所示的規(guī)則[3]:

    在FPGA中,采用狀態(tài)機(jī)可以準(zhǔn)確快速地FM0的編碼過程。有限狀態(tài)機(jī)是一種概念性機(jī)器,它能采取某種操作來響應(yīng)一個(gè)外部事件,具體采取的操作取決于接收到的事件。之所以能做到這點(diǎn),是因?yàn)闋顟B(tài)機(jī)定義了一個(gè)內(nèi)部狀態(tài),它會(huì)在收到事件后進(jìn)行更新。為一個(gè)事件而響應(yīng)的行動(dòng)不僅取決于事件本身,還取決于機(jī)器的內(nèi)部狀態(tài)。另外,采取的行動(dòng)還會(huì)決定并更新機(jī)器的狀態(tài)。

    狀態(tài)機(jī)根據(jù)目前狀態(tài)和外界觸發(fā)條件來跳轉(zhuǎn)到下一個(gè)狀態(tài),這比較直觀地實(shí)現(xiàn)不同狀態(tài)之間的跳轉(zhuǎn)。為本編碼構(gòu)建4個(gè)狀態(tài)S1~S4,根據(jù)輸入的待編碼數(shù)據(jù)進(jìn)行狀態(tài)轉(zhuǎn)換[4]。其Verilog程序如下:

    2.2并行數(shù)據(jù)串行轉(zhuǎn)換

    FM0編碼中,將數(shù)據(jù)“0”編碼成了一個(gè)中間有相位變化的數(shù)據(jù),即編碼成兩位數(shù)據(jù)“01”或“10”;數(shù)據(jù)“1”可以看成是編碼成了一個(gè)沒有相位變化的兩位數(shù)據(jù)“11”或“00”。這將使數(shù)據(jù)速率提高一倍,并且輸出的是2比特并行數(shù)據(jù)。由于標(biāo)簽和讀寫器的通信協(xié)議要求發(fā)送數(shù)據(jù)是串行數(shù)據(jù),因此需要將并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)。

    根據(jù)并行數(shù)據(jù)的位數(shù),可以創(chuàng)建一個(gè)計(jì)數(shù)器。當(dāng)計(jì)數(shù)器為“0”時(shí),輸出編碼后的2比特?cái)?shù)據(jù)的高位;然后計(jì)數(shù)器進(jìn)行自增,當(dāng)計(jì)數(shù)器為“1”時(shí),輸出低位數(shù)據(jù)。計(jì)數(shù)器重新置“0”,如此循環(huán)往復(fù),就實(shí)現(xiàn)了并行數(shù)據(jù)的串行輸出。

    3系統(tǒng)設(shè)計(jì)和仿真結(jié)果分析

    在QuartusⅡ上實(shí)現(xiàn)本設(shè)計(jì),將系統(tǒng)劃分為2個(gè)主要模塊:StateMachine和parallel2serial,如圖3所示。其中,StateMachine實(shí)現(xiàn)狀態(tài)轉(zhuǎn)換,其輸出Dout[1..0]為2比特?cái)?shù)據(jù);而parallel2serial實(shí)現(xiàn)并行轉(zhuǎn)串行,它根據(jù)時(shí)鐘的先后順序先輸出并行數(shù)據(jù)的高位,再輸出并行數(shù)據(jù)的低位。其時(shí)鐘信號(hào)Clock2的速率是狀態(tài)機(jī)模塊的時(shí)鐘信號(hào)Clock1的2倍[5]。

    如圖4所示,將數(shù)字信號(hào)“0101101010010”送入到輸入端Din,經(jīng)仿真后,Dout能夠正確輸出編碼數(shù)據(jù)“10110100110100101101010010”。由此可見,此程序能夠準(zhǔn)確地實(shí)現(xiàn)編碼功能。

    4結(jié)論

    本文主要根據(jù)FM0編碼原理設(shè)計(jì)了編碼電路。以上程序在Altera公司的CycloneⅢ系列的EP3C25324C8芯片上通過驗(yàn)證,能夠正確實(shí)現(xiàn)數(shù)據(jù)編碼。本設(shè)計(jì)電路原理清晰、結(jié)構(gòu)簡(jiǎn)單、工作可靠,適合在可編程邏輯器件中使用。

    參考文獻(xiàn):

    [1]昝勇,黎明,楊小芹,等. FM0編碼及其在FPGA中的設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子測(cè)量技術(shù), 2009(2): 95-97.

    [2] 俞莉瓊,付宇卓. 有限狀態(tài)機(jī)的Verilog設(shè)計(jì)與研究[J]. 微電子學(xué)與計(jì)算機(jī), 2004(11): 146-148.

    [3] 徐羊. UHF RFID編解碼設(shè)計(jì)與實(shí)現(xiàn)[J].信息技術(shù),2012(7):176-178.

    [4] Samir Palnitkar.Verilog HDL數(shù)字設(shè)計(jì)與綜合[M]. 2版.夏宇聞,胡燕祥,刁嵐松,等譯. 北京: 電子工業(yè)出版社,2009.

    [5]周潤(rùn)景,圖雅,張麗敏. 基于QuartusⅡ的FPGA/CPLD數(shù)字系統(tǒng)設(shè)計(jì)實(shí)例[M]. 北京: 電子工業(yè)出版社,2007.

    作者簡(jiǎn)介

    杜平:工程師,碩士畢業(yè)于華南理工大學(xué),現(xiàn)任職于中國(guó)電子科技集團(tuán)公司第七研究所,主要研究方向?yàn)镽FID協(xié)議研究、RFID讀寫器系統(tǒng)研發(fā)。endprint

    【摘要】主要介紹了FM0編碼的設(shè)計(jì)方法,采用了狀態(tài)機(jī)實(shí)現(xiàn)各狀態(tài)的轉(zhuǎn)換,并通過并串轉(zhuǎn)換方法實(shí)現(xiàn)狀態(tài)編碼后的數(shù)據(jù)輸出。該方案采用Verilog編碼,且在Altera公司的CycloneⅢ芯片上通過了驗(yàn)證。

    【關(guān)鍵詞】FM0編碼狀態(tài)機(jī)并串轉(zhuǎn)換FPGA

    中圖分類號(hào):TN92文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1006-1010(2014)-16-

    [Abstract]This paper instructs the method of FM0 encoding. This scheme are states shift using state machine and changing parallel data to serial data after state machine encoding. This idea is achieved by verilog HDL,verified on Altera CycloneⅢ CMOS chip.

    [Key words]FM0 encoding state machine parallel to serial FPGA

    1FM0編碼原理

    FM0廣泛地應(yīng)用于超高頻無(wú)線射頻技術(shù)中,在“無(wú)線射頻識(shí)別協(xié)議-第1類第2代UHF RFID(860—960MHz)通信協(xié)議”中明確規(guī)定,電子標(biāo)簽向讀寫器應(yīng)答時(shí),需采用FM0編碼或者米勒編碼。下面介紹的編碼實(shí)現(xiàn)方案已經(jīng)應(yīng)用到了超高頻射頻識(shí)別系統(tǒng)中,能夠?qū)崿F(xiàn)正常通信。

    FM0(即Bi-Phase Space)編碼稱為雙相間隔碼編碼,每位數(shù)據(jù)與前一位數(shù)據(jù)要發(fā)生相位翻轉(zhuǎn)。其工作原理是在一個(gè)位窗內(nèi)采用相位變化來表示邏輯。如果相位只從位窗的起始處翻轉(zhuǎn),則表示數(shù)據(jù)“1”;如果相位除了在位窗的起始處翻轉(zhuǎn),還在位窗中間翻轉(zhuǎn),則表示數(shù)據(jù)“0”。根據(jù)FM0編碼的規(guī)則,可以發(fā)現(xiàn)無(wú)論傳送的數(shù)據(jù)是“0”還是“1”,在位窗的起始處都會(huì)發(fā)生相位變化[1]。其編碼表達(dá)式如下:

    圖1描繪了FM0編碼后的波形,S1(t)~S4(t)狀態(tài)表明4種可能FM0編碼。數(shù)據(jù)“0”和數(shù)據(jù)“1”的編碼都對(duì)應(yīng)有兩個(gè)相位,下一個(gè)數(shù)據(jù)編碼狀態(tài)的選擇要根據(jù)前一個(gè)編碼的相位而確定。例如,對(duì)數(shù)據(jù)“01”進(jìn)行編碼,如果數(shù)據(jù)“0”選擇正相位狀態(tài)S1,則數(shù)據(jù)“1”的編碼就必須選擇狀態(tài)S3。而從狀態(tài)S1轉(zhuǎn)換到狀態(tài)S4是不允許的,這是因?yàn)橛纱水a(chǎn)生的信號(hào)在編碼起始位置沒有相位變化。

    2FM0編碼設(shè)計(jì)

    利用FPGA進(jìn)行FM0編碼,可以快速實(shí)時(shí)地實(shí)現(xiàn)編碼。其編碼過程分為:狀態(tài)機(jī)編碼[2]和并行數(shù)據(jù)串行轉(zhuǎn)換。經(jīng)過狀態(tài)編碼后,原數(shù)據(jù)被編碼成了符合雙相轉(zhuǎn)換規(guī)則的數(shù)據(jù),此數(shù)據(jù)是位寬為兩位的并行數(shù)據(jù)。將其進(jìn)行并串轉(zhuǎn)換后輸出,就是讀寫器可以識(shí)別的FM0編碼數(shù)據(jù)。

    2.1 狀態(tài)機(jī)編碼

    FM0編碼包含4個(gè)狀態(tài),它們之間存在一定的規(guī)律。2個(gè)狀態(tài)之間必須包含一次相位改變。根據(jù)輸入數(shù)據(jù)的不同,4個(gè)狀態(tài)之間可以進(jìn)行轉(zhuǎn)換,采用如圖2所示的規(guī)則[3]:

    在FPGA中,采用狀態(tài)機(jī)可以準(zhǔn)確快速地FM0的編碼過程。有限狀態(tài)機(jī)是一種概念性機(jī)器,它能采取某種操作來響應(yīng)一個(gè)外部事件,具體采取的操作取決于接收到的事件。之所以能做到這點(diǎn),是因?yàn)闋顟B(tài)機(jī)定義了一個(gè)內(nèi)部狀態(tài),它會(huì)在收到事件后進(jìn)行更新。為一個(gè)事件而響應(yīng)的行動(dòng)不僅取決于事件本身,還取決于機(jī)器的內(nèi)部狀態(tài)。另外,采取的行動(dòng)還會(huì)決定并更新機(jī)器的狀態(tài)。

    狀態(tài)機(jī)根據(jù)目前狀態(tài)和外界觸發(fā)條件來跳轉(zhuǎn)到下一個(gè)狀態(tài),這比較直觀地實(shí)現(xiàn)不同狀態(tài)之間的跳轉(zhuǎn)。為本編碼構(gòu)建4個(gè)狀態(tài)S1~S4,根據(jù)輸入的待編碼數(shù)據(jù)進(jìn)行狀態(tài)轉(zhuǎn)換[4]。其Verilog程序如下:

    2.2并行數(shù)據(jù)串行轉(zhuǎn)換

    FM0編碼中,將數(shù)據(jù)“0”編碼成了一個(gè)中間有相位變化的數(shù)據(jù),即編碼成兩位數(shù)據(jù)“01”或“10”;數(shù)據(jù)“1”可以看成是編碼成了一個(gè)沒有相位變化的兩位數(shù)據(jù)“11”或“00”。這將使數(shù)據(jù)速率提高一倍,并且輸出的是2比特并行數(shù)據(jù)。由于標(biāo)簽和讀寫器的通信協(xié)議要求發(fā)送數(shù)據(jù)是串行數(shù)據(jù),因此需要將并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)。

    根據(jù)并行數(shù)據(jù)的位數(shù),可以創(chuàng)建一個(gè)計(jì)數(shù)器。當(dāng)計(jì)數(shù)器為“0”時(shí),輸出編碼后的2比特?cái)?shù)據(jù)的高位;然后計(jì)數(shù)器進(jìn)行自增,當(dāng)計(jì)數(shù)器為“1”時(shí),輸出低位數(shù)據(jù)。計(jì)數(shù)器重新置“0”,如此循環(huán)往復(fù),就實(shí)現(xiàn)了并行數(shù)據(jù)的串行輸出。

    3系統(tǒng)設(shè)計(jì)和仿真結(jié)果分析

    在QuartusⅡ上實(shí)現(xiàn)本設(shè)計(jì),將系統(tǒng)劃分為2個(gè)主要模塊:StateMachine和parallel2serial,如圖3所示。其中,StateMachine實(shí)現(xiàn)狀態(tài)轉(zhuǎn)換,其輸出Dout[1..0]為2比特?cái)?shù)據(jù);而parallel2serial實(shí)現(xiàn)并行轉(zhuǎn)串行,它根據(jù)時(shí)鐘的先后順序先輸出并行數(shù)據(jù)的高位,再輸出并行數(shù)據(jù)的低位。其時(shí)鐘信號(hào)Clock2的速率是狀態(tài)機(jī)模塊的時(shí)鐘信號(hào)Clock1的2倍[5]。

    如圖4所示,將數(shù)字信號(hào)“0101101010010”送入到輸入端Din,經(jīng)仿真后,Dout能夠正確輸出編碼數(shù)據(jù)“10110100110100101101010010”。由此可見,此程序能夠準(zhǔn)確地實(shí)現(xiàn)編碼功能。

    4結(jié)論

    本文主要根據(jù)FM0編碼原理設(shè)計(jì)了編碼電路。以上程序在Altera公司的CycloneⅢ系列的EP3C25324C8芯片上通過驗(yàn)證,能夠正確實(shí)現(xiàn)數(shù)據(jù)編碼。本設(shè)計(jì)電路原理清晰、結(jié)構(gòu)簡(jiǎn)單、工作可靠,適合在可編程邏輯器件中使用。

    參考文獻(xiàn):

    [1]昝勇,黎明,楊小芹,等. FM0編碼及其在FPGA中的設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子測(cè)量技術(shù), 2009(2): 95-97.

    [2] 俞莉瓊,付宇卓. 有限狀態(tài)機(jī)的Verilog設(shè)計(jì)與研究[J]. 微電子學(xué)與計(jì)算機(jī), 2004(11): 146-148.

    [3] 徐羊. UHF RFID編解碼設(shè)計(jì)與實(shí)現(xiàn)[J].信息技術(shù),2012(7):176-178.

    [4] Samir Palnitkar.Verilog HDL數(shù)字設(shè)計(jì)與綜合[M]. 2版.夏宇聞,胡燕祥,刁嵐松,等譯. 北京: 電子工業(yè)出版社,2009.

    [5]周潤(rùn)景,圖雅,張麗敏. 基于QuartusⅡ的FPGA/CPLD數(shù)字系統(tǒng)設(shè)計(jì)實(shí)例[M]. 北京: 電子工業(yè)出版社,2007.

    作者簡(jiǎn)介

    杜平:工程師,碩士畢業(yè)于華南理工大學(xué),現(xiàn)任職于中國(guó)電子科技集團(tuán)公司第七研究所,主要研究方向?yàn)镽FID協(xié)議研究、RFID讀寫器系統(tǒng)研發(fā)。endprint

    【摘要】主要介紹了FM0編碼的設(shè)計(jì)方法,采用了狀態(tài)機(jī)實(shí)現(xiàn)各狀態(tài)的轉(zhuǎn)換,并通過并串轉(zhuǎn)換方法實(shí)現(xiàn)狀態(tài)編碼后的數(shù)據(jù)輸出。該方案采用Verilog編碼,且在Altera公司的CycloneⅢ芯片上通過了驗(yàn)證。

    【關(guān)鍵詞】FM0編碼狀態(tài)機(jī)并串轉(zhuǎn)換FPGA

    中圖分類號(hào):TN92文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1006-1010(2014)-16-

    [Abstract]This paper instructs the method of FM0 encoding. This scheme are states shift using state machine and changing parallel data to serial data after state machine encoding. This idea is achieved by verilog HDL,verified on Altera CycloneⅢ CMOS chip.

    [Key words]FM0 encoding state machine parallel to serial FPGA

    1FM0編碼原理

    FM0廣泛地應(yīng)用于超高頻無(wú)線射頻技術(shù)中,在“無(wú)線射頻識(shí)別協(xié)議-第1類第2代UHF RFID(860—960MHz)通信協(xié)議”中明確規(guī)定,電子標(biāo)簽向讀寫器應(yīng)答時(shí),需采用FM0編碼或者米勒編碼。下面介紹的編碼實(shí)現(xiàn)方案已經(jīng)應(yīng)用到了超高頻射頻識(shí)別系統(tǒng)中,能夠?qū)崿F(xiàn)正常通信。

    FM0(即Bi-Phase Space)編碼稱為雙相間隔碼編碼,每位數(shù)據(jù)與前一位數(shù)據(jù)要發(fā)生相位翻轉(zhuǎn)。其工作原理是在一個(gè)位窗內(nèi)采用相位變化來表示邏輯。如果相位只從位窗的起始處翻轉(zhuǎn),則表示數(shù)據(jù)“1”;如果相位除了在位窗的起始處翻轉(zhuǎn),還在位窗中間翻轉(zhuǎn),則表示數(shù)據(jù)“0”。根據(jù)FM0編碼的規(guī)則,可以發(fā)現(xiàn)無(wú)論傳送的數(shù)據(jù)是“0”還是“1”,在位窗的起始處都會(huì)發(fā)生相位變化[1]。其編碼表達(dá)式如下:

    圖1描繪了FM0編碼后的波形,S1(t)~S4(t)狀態(tài)表明4種可能FM0編碼。數(shù)據(jù)“0”和數(shù)據(jù)“1”的編碼都對(duì)應(yīng)有兩個(gè)相位,下一個(gè)數(shù)據(jù)編碼狀態(tài)的選擇要根據(jù)前一個(gè)編碼的相位而確定。例如,對(duì)數(shù)據(jù)“01”進(jìn)行編碼,如果數(shù)據(jù)“0”選擇正相位狀態(tài)S1,則數(shù)據(jù)“1”的編碼就必須選擇狀態(tài)S3。而從狀態(tài)S1轉(zhuǎn)換到狀態(tài)S4是不允許的,這是因?yàn)橛纱水a(chǎn)生的信號(hào)在編碼起始位置沒有相位變化。

    2FM0編碼設(shè)計(jì)

    利用FPGA進(jìn)行FM0編碼,可以快速實(shí)時(shí)地實(shí)現(xiàn)編碼。其編碼過程分為:狀態(tài)機(jī)編碼[2]和并行數(shù)據(jù)串行轉(zhuǎn)換。經(jīng)過狀態(tài)編碼后,原數(shù)據(jù)被編碼成了符合雙相轉(zhuǎn)換規(guī)則的數(shù)據(jù),此數(shù)據(jù)是位寬為兩位的并行數(shù)據(jù)。將其進(jìn)行并串轉(zhuǎn)換后輸出,就是讀寫器可以識(shí)別的FM0編碼數(shù)據(jù)。

    2.1 狀態(tài)機(jī)編碼

    FM0編碼包含4個(gè)狀態(tài),它們之間存在一定的規(guī)律。2個(gè)狀態(tài)之間必須包含一次相位改變。根據(jù)輸入數(shù)據(jù)的不同,4個(gè)狀態(tài)之間可以進(jìn)行轉(zhuǎn)換,采用如圖2所示的規(guī)則[3]:

    在FPGA中,采用狀態(tài)機(jī)可以準(zhǔn)確快速地FM0的編碼過程。有限狀態(tài)機(jī)是一種概念性機(jī)器,它能采取某種操作來響應(yīng)一個(gè)外部事件,具體采取的操作取決于接收到的事件。之所以能做到這點(diǎn),是因?yàn)闋顟B(tài)機(jī)定義了一個(gè)內(nèi)部狀態(tài),它會(huì)在收到事件后進(jìn)行更新。為一個(gè)事件而響應(yīng)的行動(dòng)不僅取決于事件本身,還取決于機(jī)器的內(nèi)部狀態(tài)。另外,采取的行動(dòng)還會(huì)決定并更新機(jī)器的狀態(tài)。

    狀態(tài)機(jī)根據(jù)目前狀態(tài)和外界觸發(fā)條件來跳轉(zhuǎn)到下一個(gè)狀態(tài),這比較直觀地實(shí)現(xiàn)不同狀態(tài)之間的跳轉(zhuǎn)。為本編碼構(gòu)建4個(gè)狀態(tài)S1~S4,根據(jù)輸入的待編碼數(shù)據(jù)進(jìn)行狀態(tài)轉(zhuǎn)換[4]。其Verilog程序如下:

    2.2并行數(shù)據(jù)串行轉(zhuǎn)換

    FM0編碼中,將數(shù)據(jù)“0”編碼成了一個(gè)中間有相位變化的數(shù)據(jù),即編碼成兩位數(shù)據(jù)“01”或“10”;數(shù)據(jù)“1”可以看成是編碼成了一個(gè)沒有相位變化的兩位數(shù)據(jù)“11”或“00”。這將使數(shù)據(jù)速率提高一倍,并且輸出的是2比特并行數(shù)據(jù)。由于標(biāo)簽和讀寫器的通信協(xié)議要求發(fā)送數(shù)據(jù)是串行數(shù)據(jù),因此需要將并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)。

    根據(jù)并行數(shù)據(jù)的位數(shù),可以創(chuàng)建一個(gè)計(jì)數(shù)器。當(dāng)計(jì)數(shù)器為“0”時(shí),輸出編碼后的2比特?cái)?shù)據(jù)的高位;然后計(jì)數(shù)器進(jìn)行自增,當(dāng)計(jì)數(shù)器為“1”時(shí),輸出低位數(shù)據(jù)。計(jì)數(shù)器重新置“0”,如此循環(huán)往復(fù),就實(shí)現(xiàn)了并行數(shù)據(jù)的串行輸出。

    3系統(tǒng)設(shè)計(jì)和仿真結(jié)果分析

    在QuartusⅡ上實(shí)現(xiàn)本設(shè)計(jì),將系統(tǒng)劃分為2個(gè)主要模塊:StateMachine和parallel2serial,如圖3所示。其中,StateMachine實(shí)現(xiàn)狀態(tài)轉(zhuǎn)換,其輸出Dout[1..0]為2比特?cái)?shù)據(jù);而parallel2serial實(shí)現(xiàn)并行轉(zhuǎn)串行,它根據(jù)時(shí)鐘的先后順序先輸出并行數(shù)據(jù)的高位,再輸出并行數(shù)據(jù)的低位。其時(shí)鐘信號(hào)Clock2的速率是狀態(tài)機(jī)模塊的時(shí)鐘信號(hào)Clock1的2倍[5]。

    如圖4所示,將數(shù)字信號(hào)“0101101010010”送入到輸入端Din,經(jīng)仿真后,Dout能夠正確輸出編碼數(shù)據(jù)“10110100110100101101010010”。由此可見,此程序能夠準(zhǔn)確地實(shí)現(xiàn)編碼功能。

    4結(jié)論

    本文主要根據(jù)FM0編碼原理設(shè)計(jì)了編碼電路。以上程序在Altera公司的CycloneⅢ系列的EP3C25324C8芯片上通過驗(yàn)證,能夠正確實(shí)現(xiàn)數(shù)據(jù)編碼。本設(shè)計(jì)電路原理清晰、結(jié)構(gòu)簡(jiǎn)單、工作可靠,適合在可編程邏輯器件中使用。

    參考文獻(xiàn):

    [1]昝勇,黎明,楊小芹,等. FM0編碼及其在FPGA中的設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子測(cè)量技術(shù), 2009(2): 95-97.

    [2] 俞莉瓊,付宇卓. 有限狀態(tài)機(jī)的Verilog設(shè)計(jì)與研究[J]. 微電子學(xué)與計(jì)算機(jī), 2004(11): 146-148.

    [3] 徐羊. UHF RFID編解碼設(shè)計(jì)與實(shí)現(xiàn)[J].信息技術(shù),2012(7):176-178.

    [4] Samir Palnitkar.Verilog HDL數(shù)字設(shè)計(jì)與綜合[M]. 2版.夏宇聞,胡燕祥,刁嵐松,等譯. 北京: 電子工業(yè)出版社,2009.

    [5]周潤(rùn)景,圖雅,張麗敏. 基于QuartusⅡ的FPGA/CPLD數(shù)字系統(tǒng)設(shè)計(jì)實(shí)例[M]. 北京: 電子工業(yè)出版社,2007.

    作者簡(jiǎn)介

    杜平:工程師,碩士畢業(yè)于華南理工大學(xué),現(xiàn)任職于中國(guó)電子科技集團(tuán)公司第七研究所,主要研究方向?yàn)镽FID協(xié)議研究、RFID讀寫器系統(tǒng)研發(fā)。endprint

    猜你喜歡
    狀態(tài)機(jī)讀寫器計(jì)數(shù)器
    煤氣與熱力(2022年2期)2022-03-09 06:29:30
    基于有限狀態(tài)機(jī)的交會(huì)對(duì)接飛行任務(wù)規(guī)劃方法
    計(jì)數(shù)器競(jìng)爭(zhēng)冒險(xiǎn)及其處理的仿真分析
    基于視頻抓拍讀寫器的高速公路防倒卡研究
    任意N進(jìn)制計(jì)數(shù)器的設(shè)計(jì)方法
    河南科技(2014年10期)2014-02-27 14:09:30
    基于單片機(jī)的仰臥起坐計(jì)數(shù)器
    基于隨機(jī)時(shí)隙的RFID讀寫器防沖突方法
    FPGA設(shè)計(jì)中狀態(tài)機(jī)安全性研究
    RFID網(wǎng)絡(luò)讀寫器沖突避免MAC協(xié)議
    基于反熔絲FPGA的有限狀態(tài)機(jī)加固設(shè)計(jì)
    大化| 东台市| 北宁市| 花垣县| 武威市| 孟连| 环江| 郸城县| 阳高县| 多伦县| 和林格尔县| 岳阳市| 临洮县| 大港区| 峨山| 普定县| 吉安市| 旌德县| 沁水县| 策勒县| 伊宁市| 峨眉山市| 民县| 泗水县| 衡阳市| 偃师市| 濮阳市| 诸城市| 辽阳县| 灵台县| 宿迁市| 隆子县| 连江县| 绿春县| 凌源市| 钦州市| 夏津县| 嘉禾县| 大石桥市| 独山县| 温泉县|