国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2018-11-22 11:58:56王銘銘
計算機技術與發(fā)展 2018年11期
關鍵詞:基帶閱讀器寄存器

王銘銘,卜 剛,張 龑

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

0 引 言

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

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

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

1 MC8051簡介

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

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

2 SOC系統(tǒng)搭建

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

圖1 閱讀器SOC系統(tǒng)結構

將MC8051處理器與自定義基帶通信鏈路模塊進行互連時,基本思路是通過總線方式,將自定義基帶通信鏈路模塊接口與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設計。在mc8051_p包文件中作相應修改,刪除原有mc8051_ramx模塊聲明,保留mc8051_rom模塊聲明,增加wb_reader_soc、reader_top模塊聲明。

值得注意的是,在增加上述模塊聲明后,需在工程中增加上述模塊對應的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)應初始化ROM。因此,閱讀器ROM讀取文件名為mc8051_rom.dua,同時,也需要修改對應的結構體以及配置文件。

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

2.2 對應接口設置

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

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

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

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

3 軟硬件的設計

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

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

3.1 軟件設計

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

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

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

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

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

圖2 閱讀器軟件算法流程

3.2 硬件設計

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

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

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

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

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

4 仿真驗證

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

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

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

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

5 結束語

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

猜你喜歡
基帶閱讀器寄存器
基于反向權重的閱讀器防碰撞算法
Lite寄存器模型的設計與實現(xiàn)
計算機應用(2020年5期)2020-06-07 07:06:44
一種高效的RFID系統(tǒng)冗余閱讀器消除算法
分簇結構向量寄存器分配策略研究*
一種RFID網(wǎng)絡系統(tǒng)中消除冗余閱讀器的高效算法
2014年LTE基帶收益占蜂窩基帶收益50%以上
AIS基帶信號的接收與處理
數(shù)字基帶系統(tǒng)的System View仿真設計
基于FPGA的WSN數(shù)字基帶成形濾波器設計
電視技術(2014年19期)2014-03-11 15:38:10
盲人閱讀器
兰州市| 邛崃市| 玉溪市| 鲁甸县| 安乡县| 台北市| 叙永县| 嘉定区| 永仁县| 台南县| 建昌县| 梅州市| 平武县| 湾仔区| 常州市| 潜山县| 兴国县| 沁源县| 黑龙江省| 高州市| 横峰县| 莱芜市| 武乡县| 保山市| 德兴市| 长子县| 佛山市| 兰坪| 婺源县| 德惠市| 衡东县| 康平县| 蒙山县| 叶城县| 阜阳市| 洛隆县| 宜春市| 鱼台县| 卫辉市| 宝山区| 锡林浩特市|