• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      超高頻RFID系統(tǒng)閱讀器SOC設(shè)計(jì)

      2018-11-22 11:58:56王銘銘
      關(guān)鍵詞:基帶閱讀器寄存器

      王銘銘,卜 剛,張 龑

      (南京航空航天大學(xué),江蘇 南京 211106)

      0 引 言

      射頻識別技術(shù)(radio frequency identification,RFID)是一種利用射頻無線通信實(shí)現(xiàn)的非接觸的無線識別技術(shù)。伴隨著物聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,基于ISO/IEC18000-6C協(xié)議[1]的超高頻(UHF)RFID閱讀器的研究,已經(jīng)成為該領(lǐng)域的重點(diǎn)和熱點(diǎn)。隨著集成電路的迅速發(fā)展,SOC(system on chip)設(shè)計(jì)方法的應(yīng)用也越來越廣泛。

      一個SOC系統(tǒng)包括硬件模塊和軟件模塊[2-3]。對于SOC設(shè)計(jì)而言,其中一個最重要的方面就是軟硬件的協(xié)同設(shè)計(jì)。但是國內(nèi)大多數(shù)的研究主要在軟件領(lǐng)域和硬件領(lǐng)域,針對協(xié)同仿真領(lǐng)域的研究較少。隨著SOC開發(fā)技術(shù)的發(fā)展,降低功耗、尺寸等關(guān)鍵因素,加快產(chǎn)品的研發(fā)周期,降低研發(fā)成本,逐漸成為集成電路設(shè)計(jì)的重要方向之一。

      針對基于MC8051軟核的片上系統(tǒng)開發(fā),文中采取軟硬件協(xié)同設(shè)計(jì),劃分系統(tǒng)模塊,分成軟件和硬件進(jìn)行設(shè)計(jì),應(yīng)用MC8051處理器,進(jìn)行軟件開發(fā)并設(shè)計(jì)完成其基帶通信鏈路模塊,搭建整個系統(tǒng)并進(jìn)行仿真驗(yàn)證。

      1 MC8051簡介

      MC8051是Oregano Systems公司發(fā)布的一款8位微處理器,與標(biāo)準(zhǔn)的MCS-51指令集完全兼容。它是一款比較經(jīng)典的8051微處理器[4],對比多款8051軟核,考慮到了VHDL語言的嚴(yán)謹(jǐn)性以及MC8051處理器穩(wěn)定可靠的性能,又支持開源WISHBONE總線協(xié)議,故采用MC8051處理器。

      MC8051具備很多優(yōu)勢,用戶可以根據(jù)工程需要和實(shí)際需求,增加或者減少一些功能,通過修改其源代碼來優(yōu)化參數(shù),以適配目標(biāo)系統(tǒng)。除了內(nèi)部ROM和外部RAM可以根據(jù)工程要求及用戶需求作一定的擴(kuò)展之外,串行模塊、定時器/計(jì)數(shù)器模塊、外部中斷模塊等均可進(jìn)行一定的擴(kuò)展。由于暫時未涉及到其他復(fù)雜的應(yīng)用場景,文中僅使用默認(rèn)設(shè)置。

      2 SOC系統(tǒng)搭建

      對于搭建的閱讀器SOC系統(tǒng),主要包括兩大部分,一部分是MC8051處理器,實(shí)現(xiàn)軟件開發(fā)、控制處理等功能,另一部分是基帶收發(fā)鏈路,主要用來傳輸符合規(guī)范的數(shù)據(jù)包以及數(shù)據(jù)傳輸速率等內(nèi)容。系統(tǒng)實(shí)現(xiàn)如圖1所示。

      圖1 閱讀器SOC系統(tǒng)結(jié)構(gòu)

      將MC8051處理器與自定義基帶通信鏈路模塊進(jìn)行互連時,基本思路是通過總線方式,將自定義基帶通信鏈路模塊接口與WISHBONE總線[5]接口互連,將WISHBONE總線接口直接與MC8051處理器外部RAM接口互連,在邏輯上將基帶通信鏈路模塊作為處理器的外部RAM[6-7]。在軟件程序編寫時,與基帶通信鏈路模塊的數(shù)據(jù)交互亦類似與對外部RAM的讀寫操作。

      2.1 MC8051軟核的修改

      Oregano Systems公司官網(wǎng)下載的MC8051軟核需經(jīng)過一定的修改[8],才能用于本系統(tǒng)閱讀器及基帶的SOC設(shè)計(jì)。在mc8051_p包文件中作相應(yīng)修改,刪除原有mc8051_ramx模塊聲明,保留mc8051_rom模塊聲明,增加wb_reader_soc、reader_top模塊聲明。

      值得注意的是,在增加上述模塊聲明后,需在工程中增加上述模塊對應(yīng)的RTL文件。另外需要修改mc8051_rom及mc8051_t_rom文件,使其能正確讀取.dua文件以初始化ROM。

      entity mc8051_rom

      generic(c_init_file:string:=“mc8051_rom.dua”);

      port( clk :instd_logic; --clock signal

      reset :instd_logic; --reset signal

      rom_data_o :instd_logic_vector(15 downto 0); --data output

      rom_data_i :instd_logic_vector(15 downto 0)); --adress

      end mc8051_rom

      上述代碼中加粗部分為修改部分,系統(tǒng)應(yīng)初始化ROM。因此,閱讀器ROM讀取文件名為mc8051_rom.dua,同時,也需要修改對應(yīng)的結(jié)構(gòu)體以及配置文件。

      修改mc8051_top文件,在原有的mc8051_top頂層模塊中增加兩個信號tx_data以及data_rx,并刪除int0_i信號,由于基帶通信鏈路中斷信號int_bb直接與MC8051處理器int0_i信號互連,因此在頂層模塊信號列表中刪除這兩個信號。

      2.2 對應(yīng)接口設(shè)置

      將基帶通信鏈路模塊作為RAMX模塊與MC8051 RAMX接口通過WISHBOEN總線互連,如圖1所示。需要在原來的MC8051頂層模塊基礎(chǔ)上額外增加三個接口信號:tx_end、data_rx、int_bb,分別表示基帶串行信號輸出、輸入和基帶中斷信號輸出。

      另外,寄存器定義是程序設(shè)計(jì)中非常重要的部分,用以實(shí)現(xiàn)控制、存儲等功能,在閱讀器系統(tǒng)中設(shè)置了若干組特殊功能寄存器,位于基帶通信鏈路模塊數(shù)字接口部分,各寄存器詳情如表1所示。

      表1 數(shù)字接口寄存器定義

      其中,CONTROL寄存器用于控制基帶通信鏈路發(fā)送與接收的控制;TX_BUF寄存器共有128位,保存MC8051需要發(fā)送的數(shù)據(jù),數(shù)據(jù)保存采用小端對齊方式,包含命令以及數(shù)據(jù)信息,在進(jìn)行操作時,地址從0x01至0x10,每8位數(shù)據(jù)一組,以字節(jié)為單位;RX_BUF寄存器共有128位,保存基帶接收鏈路發(fā)送過來的數(shù)據(jù),數(shù)據(jù)保存采用小端對齊方式,包含命令以及數(shù)據(jù)信息,與TX_BUF類似,在進(jìn)行操作時,地址從0x11至0x20,其中0x11地址的字節(jié)保存該條命令信息的長度信息,以位計(jì)算;STATE寄存器用來保存基帶中斷信號,基帶通信鏈路在鏈路數(shù)據(jù)發(fā)送完成后或鏈路數(shù)據(jù)接收完成后,都會產(chǎn)生中斷信號,且更新該寄存器,同時會將中斷信號發(fā)送至MC8051處理器,當(dāng)MC8051響應(yīng)中斷后,會從該寄存器中讀取中斷狀態(tài),以做出應(yīng)答。

      3 軟硬件的設(shè)計(jì)

      由第二小節(jié)得知,修改后的MC8051軟核需要將所設(shè)計(jì)的閱讀器的軟件協(xié)議部分以及硬件通信基帶鏈路實(shí)現(xiàn)均要設(shè)置頂層模塊。

      閱讀器的系統(tǒng)軟件實(shí)現(xiàn)主要是對協(xié)議ISO/IEC 18000-6C的標(biāo)準(zhǔn)實(shí)現(xiàn)[9],基帶通信鏈路實(shí)現(xiàn)的主要是協(xié)議物理層規(guī)范,包含數(shù)據(jù)校驗(yàn)及編解碼、數(shù)據(jù)包格式、數(shù)據(jù)傳輸速率等內(nèi)容,最終以符合協(xié)議標(biāo)準(zhǔn)的數(shù)據(jù)格式將基帶信號輸入射頻模塊。

      3.1 軟件設(shè)計(jì)

      閱讀器軟件算法的設(shè)計(jì)思路是根據(jù)協(xié)議標(biāo)準(zhǔn),對標(biāo)簽進(jìn)行發(fā)信,并對接收到的信息做出反饋,進(jìn)而對標(biāo)簽進(jìn)行讀寫等一系列訪問操作。另外,閱讀器與標(biāo)簽之間的通信需要滿足協(xié)議規(guī)定的鏈路時序要求[10-11]。

      在MC8051中,該時序要求采用內(nèi)部定時器實(shí)現(xiàn),當(dāng)超過一定時間之后,內(nèi)部定時器產(chǎn)生中斷,閱讀器進(jìn)入新的執(zhí)行過程而不再等待標(biāo)簽的應(yīng)答。

      由于閱讀器與標(biāo)簽的通信是基于“半雙工”的機(jī)制,雙方是基于問答式的信息交互,即無法在接收的同時發(fā)送信息,發(fā)送鏈路或者接收鏈路同時只有一條鏈路在工作。因此,在軟件算法設(shè)計(jì)時充分考慮到這一點(diǎn)。當(dāng)基帶通信鏈路模塊數(shù)據(jù)發(fā)送完畢時或者數(shù)據(jù)接收完畢時均會產(chǎn)生外部中斷,MC8051響應(yīng)該中斷后,會根據(jù)當(dāng)前狀態(tài)及時打開或者關(guān)閉閱讀器基帶通信鏈路的發(fā)送時鐘或者接收時鐘,調(diào)整閱讀器工作狀態(tài),從一定程度上而言,也達(dá)到了閱讀器基帶通信鏈路低功耗的設(shè)計(jì)效果。

      因此,系統(tǒng)共需設(shè)置兩個中斷向量,分別是外部中斷INT0,以及內(nèi)部鏈路時序定時器中斷。當(dāng)產(chǎn)生外部中斷時,flag標(biāo)志位置位;初始化外部中斷時,flag標(biāo)志位復(fù)位。當(dāng)內(nèi)部定時器產(chǎn)生中斷時,TimingLink標(biāo)志位置位;初始化內(nèi)部定時器中斷時,TimingLink標(biāo)志位復(fù)位。

      其中外部中斷包含兩個內(nèi)容,其一為數(shù)據(jù)發(fā)送完成,其二為數(shù)據(jù)接收完成,兩者均會引起INT0產(chǎn)生下降沿,以觸發(fā)中斷。當(dāng)然,具體是發(fā)送還是接收完成,則由閱讀器判斷,它會讀取基帶通信鏈路模塊數(shù)字接口中的外部中斷狀態(tài)寄存器STATE,以確定究竟是數(shù)據(jù)發(fā)送完成還是數(shù)據(jù)接送完成,并進(jìn)入不同的處理過程。閱讀器軟件算法實(shí)現(xiàn)流程如圖2所示。

      圖2 閱讀器軟件算法流程

      3.2 硬件設(shè)計(jì)

      閱讀器基帶通信鏈路模塊負(fù)責(zé)實(shí)現(xiàn)硬件部分,基帶收發(fā)鏈路模塊設(shè)計(jì)方案是上行鏈路為發(fā)送鏈路,按照協(xié)議要求生成一定格式的串行碼流,下行鏈路為接收鏈路,實(shí)現(xiàn)數(shù)據(jù)的串行接收[12-13]。模塊通過數(shù)字接口與MC8051處理器進(jìn)行通信,實(shí)現(xiàn)協(xié)議處理;通過串行I/O口TX及RX實(shí)現(xiàn)與外界信息的交互[14-15]。

      閱讀器數(shù)字基帶發(fā)送鏈路具體設(shè)計(jì)如圖3所示,圖中顯示了閱讀器數(shù)字基帶發(fā)送鏈路的頂層模塊設(shè)計(jì)結(jié)構(gòu)。閱讀器的發(fā)送鏈路主要包括七個模塊,分別為CLK模塊、CNT_R模塊、P2S模塊、CRC_Gen[16]模塊、異步FIFO模塊、PIE_Encode模塊[17]以及Preamble_R模塊,其中CLK模塊是把系統(tǒng)時鐘進(jìn)行分頻,產(chǎn)生碼率時鐘以及PIE編碼時鐘。數(shù)據(jù)并行輸入CNT_R模塊,然后可以得出是否為Query命令的標(biāo)志位query_flag;并行輸入的命令或者數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù),將轉(zhuǎn)換的數(shù)據(jù)進(jìn)行CRC校驗(yàn),生成校驗(yàn)碼;由于校驗(yàn)、編碼的時鐘頻率不同,所以采用異步FIFO模塊,進(jìn)行數(shù)據(jù)的緩存;對FIFO中緩存的數(shù)據(jù)進(jìn)行PIE編碼,在編碼結(jié)束后,基于query_flag標(biāo)志位選擇同步碼,最終串行輸出,完成基帶發(fā)送數(shù)據(jù)的處理。

      閱讀器數(shù)字基帶接收鏈路具體設(shè)計(jì)如圖4所示,圖中顯示了閱讀器數(shù)字基帶接收鏈路的頂層模塊設(shè)計(jì)結(jié)構(gòu)。閱讀器接收鏈路主要由四個模塊組成,分別為Head_Check_R模塊、Decode模塊、CRC16_Check模塊和S2P模塊。接收數(shù)據(jù)通過Head_Check_R模塊檢測同步碼,然后對檢測完同步碼的數(shù)據(jù)進(jìn)行FM0或Miller副載波調(diào)制編碼信號的解碼操作,完成解碼后,對數(shù)據(jù)進(jìn)行CRC解除校驗(yàn),然后將串行命令或數(shù)據(jù)轉(zhuǎn)為并行數(shù)據(jù),供MC8051處理器調(diào)用,從而完成硬件部分的基帶鏈路接收。

      圖3 閱讀器數(shù)字基帶發(fā)送鏈路

      圖4 閱讀器數(shù)字基帶接收鏈路

      4 仿真驗(yàn)證

      在系統(tǒng)包含的所有模塊中,每個模塊通過仿真驗(yàn)證,才能在整個系統(tǒng)中進(jìn)行仿真,以確保每個模塊的功能正確性以及系統(tǒng)仿真的可靠性。

      系統(tǒng)的軟件開發(fā)在Keil軟件中進(jìn)行,當(dāng)完成編譯之后,生成.hex格式文件,但該文件尚無法在軟核上運(yùn)行,需要通過hex2dua工具將其轉(zhuǎn)換為.dua格式,并分別替換ROM文件。.dua文件中所保存的即為MC8051軟核運(yùn)行所需的機(jī)器碼,在啟動仿真時,MC8051會自動從中讀取程序并執(zhí)行[18]。

      應(yīng)用MC8051處理器的SOC系統(tǒng)進(jìn)行軟硬件協(xié)同驗(yàn)證,將驗(yàn)證過的基帶鏈路與修改后的軟核進(jìn)行系統(tǒng)上的驗(yàn)證。如圖5所示,系統(tǒng)通過軟硬件驗(yàn)證,得到正確的發(fā)送編碼。圖中所示的十六進(jìn)制的CA數(shù)據(jù)是發(fā)送數(shù)據(jù)成功的驗(yàn)證。

      圖5 閱讀器SOC系統(tǒng)軟硬件仿真驗(yàn)證

      5 結(jié)束語

      利用開源處理器MC8051軟核,根據(jù)協(xié)議要求,設(shè)計(jì)閱讀器軟件算法,結(jié)合自定義基帶通信鏈路模塊,通過WISHBONE總線協(xié)議實(shí)現(xiàn)兩者互連,搭建起系統(tǒng)硬件架構(gòu)。驗(yàn)證軟硬件協(xié)同,經(jīng)過系統(tǒng)仿真,實(shí)現(xiàn)閱讀器的編碼發(fā)送操作,完成了系統(tǒng)軟硬件的仿真驗(yàn)證。對于采用MC8051軟核應(yīng)用于SOC系統(tǒng)的方法,普遍適用于系統(tǒng)的設(shè)計(jì),并可以根據(jù)實(shí)際需要結(jié)合處理器設(shè)計(jì)匹配整個系統(tǒng)。

      猜你喜歡
      基帶閱讀器寄存器
      基于反向權(quán)重的閱讀器防碰撞算法
      Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
      一種高效的RFID系統(tǒng)冗余閱讀器消除算法
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      一種RFID網(wǎng)絡(luò)系統(tǒng)中消除冗余閱讀器的高效算法
      2014年LTE基帶收益占蜂窩基帶收益50%以上
      AIS基帶信號的接收與處理
      數(shù)字基帶系統(tǒng)的System View仿真設(shè)計(jì)
      基于FPGA的WSN數(shù)字基帶成形濾波器設(shè)計(jì)
      盲人閱讀器
      盐山县| 繁峙县| 博客| 交口县| 东莞市| 林州市| 美姑县| 枣阳市| 大邑县| 额济纳旗| 吉木乃县| 泸定县| 甘谷县| 尉犁县| 连江县| 连城县| 河间市| 乌拉特中旗| 普定县| 莒南县| 宜宾县| 高安市| 仁布县| 南华县| 东海县| 怀仁县| 清流县| 柞水县| 克什克腾旗| 富源县| 丰顺县| 阿克陶县| 太保市| 南投市| 丰镇市| 资源县| 广元市| 天水市| 壤塘县| 苏尼特左旗| 新乐市|