• 
    

    
    

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

      ?

      基于軟件無線電的通信系統(tǒng)實驗平臺研制(2)
      ——片上系統(tǒng)

      2018-07-03 00:45:54戴伏生哈爾濱工業(yè)大學(xué)威海信息與電氣工程學(xué)院山東威海264209
      實驗室研究與探索 2018年5期
      關(guān)鍵詞:鏡像文件功能模塊寄存器

      戴伏生(哈爾濱工業(yè)大學(xué)(威海) 信息與電氣工程學(xué)院,山東 威海 264209)

      0 引 言

      基于類似Unix操作系統(tǒng),但可自由免費使用的開源無線電軟件(GNU’s not Unix Radio,GNU Radio)研制的無線通信系統(tǒng)實驗平臺,由硬件系統(tǒng)和軟件系統(tǒng)組成。硬件系統(tǒng)是指實驗平臺的物理資源,如現(xiàn)場可編程門陣列(Field Programmable Gate Array,FPGA)、時鐘管理器、D/A和A/D、射頻接口、網(wǎng)絡(luò)接口、各種外設(shè)接口及電源等。軟件系統(tǒng)是指為使用實驗平臺所配套的管理驅(qū)動及應(yīng)用工具軟件,如實驗平臺的用戶硬件驅(qū)動配置(User Hardware Driver,UHD)、GNU Radio等軟件。實驗平臺采用了開放化和軟件化設(shè)計理念,無線電外設(shè)平臺的管理系統(tǒng)及信息處理等功能模塊,全部采用軟件驅(qū)動配置FPGA的方法構(gòu)建。在安全模式啟動下為實驗平臺配置了一個精簡的片上系統(tǒng)(System on Programmable Chip,SoPC),通過以太網(wǎng)接口實現(xiàn)與上位機通信,該模式不包含用戶定制的功能。UHD是為實驗平臺配置出具有適變功能的完整片上系統(tǒng)。只有將包含用戶各種定制功能的UHD鏡像文件載入到主板M25P64 Flash中,才能發(fā)揮實驗平臺用戶規(guī)劃的應(yīng)有作用。

      1 硬件驅(qū)動的下載與配置原理

      1.1 多重啟動配置存儲方式

      實驗平臺采用的FPGA是XC3SD3400A,它擁有專用的多重邏輯配置模塊及其接口內(nèi)部配置訪問端口(Internal Configration Acces Port,ICAP)[1]。通過控制ICAP接口可以實現(xiàn)對配置存儲器的讀/寫。為了實現(xiàn)多重配置把M25P64 Flash分為4個區(qū)存儲鏡像文件,安全模式啟動配置鏡像文件占據(jù)的2個存儲區(qū),考慮能兼容和利用公開的UHD資源[2],構(gòu)建鏡像文件存儲區(qū)域分配方式,如圖1所示。

      從0X000000起始地址放置的鏡像文件Safe_fpga,是靜態(tài)安全配置FPGA實體邏輯功能單元,是用Verilog HDL描述的精簡片上系統(tǒng)各功能模塊鏡像文件。從0X3F0000地址起始放置的儲鏡像文件Safe_fw,是最小處理器(Zylin CPU,ZPU)[3]使用的且受保護的安全程序代碼,主要是引導(dǎo)程序、UDP/IP通信及管理程序。

      用戶硬件設(shè)備驅(qū)動配置UHD鏡像文件占據(jù)剩余的2個存儲區(qū)。從0X180000地址起始放置的鏡像文件Prod_fpga,是用戶硬件驅(qū)動配置FPGA實體邏輯功能單元,是硬件語言描述編譯后的映射比特碼,包含實驗平臺需FPGA實現(xiàn)的用戶功能全部實體邏輯模塊。起始地址0X300000放置的鏡像文件Prod_fw,是處理器ZPU執(zhí)行的用戶工作程序代碼,包含實驗平臺管理、通信、接口控制及射頻端口控制等。

      圖1 實驗平臺中M25P64多重配置鏡像文件存儲分區(qū)情況

      1.2 硬件驅(qū)動UHD的下載

      若沒有從上位機給加載存儲M25P64 Flash硬件驅(qū)動UHD配置鏡像文件,或者開機配置過程中檢測安全啟動開關(guān)控制引腳為低電平時,則只能按照安全模式啟動并通知上位機下載配置鏡像文件。安全模式啟動時,首先從M25P64 Flash的0X000000地址開始讀Safe_fpga鏡像文件,對FPGA進行邏輯電路系統(tǒng)的配置,然后利用狀態(tài)機邏輯電路控制內(nèi)部配置訪問端口(Internal Configuration Access Port,ICAP),從M25P64 Flash的0X3F0000地址開始讀取Safe_fw鏡像文件,把安全模式可執(zhí)行程序代碼配置到Boot RAM中。為了能實現(xiàn)硬件驅(qū)動UHD鏡像文件的下載,安全模式下實驗平臺與上位機通信所配置的系統(tǒng)如圖2所示。

      圖2 安全模式下實驗平臺與上位機通信系統(tǒng)

      安全配置之后片上系統(tǒng)開始工作,ZPU便能夠?qū)崿F(xiàn)對系統(tǒng)的控制,所有工作均由ZPU主導(dǎo),其時鐘頻率配置為50 MHz,該時鐘是由時鐘管理器送給FPGA的100 MHz輸入,經(jīng)FPGA內(nèi)部鎖相電路2分頻后產(chǎn)生的。圖中的包路由器Packet_router邏輯功能模塊是用輕量級IPv4協(xié)議(Light Weight IP,LWIP)實現(xiàn)的[4,5],所有數(shù)據(jù)包經(jīng)由Packet_router發(fā)往FPGA中的目的模塊。ZPU中運行是LWIP中輕量級UDP/IP協(xié)議,其默認的IP地址是192.168.10.2。在與上位機通信前ZPU及片上系統(tǒng),同上位機之間進行以太網(wǎng)的協(xié)議和速率協(xié)商與匹配,且注冊兩個DUP端口號49152和49154與上位機通信。編號49152的UDP端口為控制信息通信端口號;編號49154的UDP端口號,用來實現(xiàn)對實驗平臺硬件驅(qū)動UHD配置進行固件鏡像及升級的通信。

      由于ZPU是Wishbone總線的主控制器[6-8],所以在上、下位機之間的通信時,路由器模塊Packet router與ZPU之間的操作,需要進行Wishbone總線的資源屬性設(shè)置。上位機給下位機傳送數(shù)據(jù)稱為總線“設(shè)置資源屬性”,反之則稱為總線“讀取資源屬性”。總線“設(shè)置資源屬性”時,ZPU將路由器模塊Packet router設(shè)置為寫ZPU方式,Packet router對來自以太網(wǎng)的數(shù)據(jù)包頭進行UDP端口識別,當(dāng)端口號為49152或49154時,把數(shù)據(jù)送到Wishbone總線。Wishbone總線再把數(shù)據(jù)傳給ZPU,ZPU進行UDP數(shù)據(jù)解析,進而控制Wishbone總線下的從設(shè)備??偩€“讀取資源屬性”時,ZPU將路由器模塊設(shè)置為讀ZPU方式。路由器讀取ZPU中的資源信息時,再把數(shù)據(jù)加上相同的端口號49152或49154包頭后,再把數(shù)據(jù)包通過以太接口發(fā)送給上位機。

      硬件驅(qū)動UHD下載是通過UDP端口49154進行的。當(dāng)路由器模塊Packet router收到UDP端口49154送來的數(shù)據(jù)時,通過Wishbone總線送給ZPU。ZPU對數(shù)據(jù)頭進行解析,分析是Prod_fpga還是Prod_fw,以及數(shù)據(jù)大小。再通過Wishbone總線對SPI Flash進行設(shè)置,然后把數(shù)據(jù)寫入M25P64 Flash的相應(yīng)存儲單元,最后,ZPU再通過UDP端口號49154向上位機返回應(yīng)答任務(wù)完成情況的信息。至此,便完成了硬件驅(qū)動UHD配置鏡像文件下載。新下載到M25P64 Flash的UHD硬件驅(qū)動Prod_fpga和Prod_fw配置鏡像文件,需重啟系統(tǒng)后才能使用。

      2 UHD配置的片上系統(tǒng)

      2.1 實驗平臺多重啟動配置

      實驗平臺啟動多重配置分為兩大模塊順序進行,第一大模塊先檢測與加載Prod_fpga硬件驅(qū)動鏡像文件,后檢測與加載Prod_fw程序代碼固件鏡像文件。加載方法是ZPU通過給ICAP寫控制字方式啟動加載。操作ICAP方法是:首先,按照加載要求對ICAP中模式寄存器MODE REG以及控制寄存器CTL、配置選項寄存器COR2等,進行參數(shù)設(shè)置。然后,按照常用的Type1命令格式,對ICAP相應(yīng)的寄存器按照一定順序進行賦值。Type1命令格式包含頭Header和數(shù)據(jù)Data兩部分,如圖3所示,實驗平臺操作ICAP關(guān)鍵命令見表1[4-6]。

      圖3 對ICAP操作的Type1命令格式

      表1 實驗平臺重配置操作ICAP的Type1格式關(guān)鍵命令

      為了利于軟件升級,實驗平臺總是從安全模式開始配置和啟動。安全工作模式下,ZPU先將SPI Flash進行初始化設(shè)置,進而檢測M25P64 Flash中是否存在有效硬件驅(qū)動Prod_fpga文件,如果檢測到則加載,否則通過以太網(wǎng)把未檢測到有效硬件驅(qū)動文件通報上位機,并要求上位機下載該文件。檢測方法是從M25P64 Flash的0X180000地址起始讀取,每次讀取16 byte,共讀取64 byte。若64 byte為連續(xù)的0XAA和0X99,則返回1,表示檢測到Prod_fpga,否則返回0。正確檢測到存在Prod_fpga后,啟動對Prod_fpga鏡像文件的加載。

      鏡像文件的加載時,首先先給ICAP的General1寄存器寫入Flash加載地址的低16 bit,操作碼為“0X3261 0X0000”。然后再給ICAP的General2寄存器按照Type1命令格式寫入SPI操作碼及Flash加載地址的高8位,操作碼為“0X3281 0X0118”。此時,General2和General1兩個寄存器中命令的含義是:從熱啟動地址WBSTAR為0X180000開始讀取Flash內(nèi)容。最后給ICAP的命令寄存器CMD寫入觸發(fā)加載命令I(lǐng)PROG,操作碼為“0X30A1 0X000E”,便從起始地址0X180000讀取M25P64 Flash中的配置信息,對FPGA進行重構(gòu)。

      加載Prod_fpga鏡像文件重構(gòu)完成邏輯電路后,繼續(xù)檢測M25P64 Flash中是否存在有效的ZPU程序代碼固件firmware,即檢測Prod_fw程序代碼固件鏡像文件。如果檢測到則進行加載,否則通過以太網(wǎng)把未檢測到程序代碼固件信息傳給上位機,并要求下載程序代碼固件鏡像文件。對程序代碼固件文件Prod_fw的檢測,方法是從M25P64 Flash的0X300000地址起始讀取4個byte,并判斷是否為連續(xù)4個0X0B,若正確則返回1,否則返回0。正確檢測到存在Prod_fw后,ZPU通過給ICAP寫控制字方式啟動對Prod_fw的加載。Prod_fw程序代碼固件將被加載到系統(tǒng)存儲器Sys RAM中。加載完成后將觸發(fā)系統(tǒng)控制模塊System_control,ZPU系統(tǒng)按照Sys RAM中程序進行重啟。之后實驗平臺提供的通用功能或用戶定制功能就能正常使用了。

      2.2 UHD配置的片上系統(tǒng)

      硬件設(shè)備驅(qū)動UHD配置鏡像文件建立的片上系統(tǒng)SoPC部分如圖4所示。需要說明的是,在安全模式啟動下片上系統(tǒng)就已經(jīng)配置處理器ZPU、Wishbone總線及總線控制器[9-11]、掛接在Wishbone總線上的專用SPI接口SPI Flash、雙端口哈佛型引導(dǎo)程序存儲器Boot RAM、內(nèi)部配置訪問端口ICAP和相應(yīng)的狀態(tài)機邏輯控制器、可編程中斷控制器(Programmable Interrupt Controller,PIC)、數(shù)據(jù)包路由器Packet router、通用可編程I/O接口(General Purpose Input Output,GPIO)回讀緩沖、簡化的以太網(wǎng)數(shù)據(jù)鏈路媒體層Ethernet MAC等模塊。片上系統(tǒng)中的Sys RAM、通用SPI、I2C、設(shè)置總線Setting bus及其15個寄存器組、通用可編程I/O接口GPIO回讀緩沖等邏輯功能模塊,是由硬件設(shè)備驅(qū)動UHD重配置而完善的。需說明的是:為了使實驗平臺具有極大的靈活性,在任何情況下都可以重新進行硬件驅(qū)動UHD的下載,或者是UHD的升級。

      3 UHD配置的功能模塊尋址方法

      3.1 Wishbone總線功能模塊尋址方法

      ZPU是實驗平臺的主控制器,訪問各功能模塊需要按照一定方式尋址,而掛接在Wishbone總線上的功能模塊之下,很多還存在子功能單元,為了使ZPU能夠方便地訪問到子功能單元,并考慮軟件無線電無線設(shè)備的VITA-49規(guī)范建議,實驗平臺采用的是地址和掩碼方式進行尋址,Wishbone總線掛接的各功能模塊地址和掩碼如表2所示。

      圖4 硬件驅(qū)動UHD建立的SoPC

      掛接在Wishbone總線上的功能模塊是按照地址段方式劃分與尋址,是通過匹配地址總線的高8位地址方式,使ZPU可以選中功能模塊。具體工作原理是:把Wishbone總線上的16 bit地址被分為高8 bit和低8 bit兩部分,把高8 bit地址同模塊8 bit掩碼進行按位“與”運算后,再同模塊高8 bit地址按位“異或”運算,若邏輯運算結(jié)果為0,則作為片選信號,表明該功能模塊的地址段與Wishbone總線給出的地址相匹配,進而接受ZPU的操作。如系統(tǒng)存儲器Sys RAM模塊地址段為0X0000~0XC000,設(shè)置總線Settings bus模塊地址段為0X7000~0X7FFF。若要操作到功能模塊中的具體子單元,還需Wishbone地址線中的低位地址參加選擇。

      3.2 子功能單元尋址方法

      掛接在Wishbone總線上的功能模塊幾乎都存在子功能單元,一些子功能單元作用比較單一,如Sys RAM的子功能單元就是存儲數(shù)據(jù);而一些子功能單元作用比較復(fù)雜,涉及到硬件的工作狀態(tài),但是不論子功能單元作用如何,其尋址方式相似。Setting bus上掛載了相當(dāng)多對實時性要求不高的低速設(shè)置寄存器組(Setting Regs,SR),如表3所示。

      表2 掛接Wishbone總線各功能模塊地址和掩碼

      表3 設(shè)置寄存器SR組和組中子單元寄存器數(shù)量及子單元的子起始地址

      這些寄存器組控制著實驗平臺系統(tǒng)大部分的工作狀態(tài),且Setting bus又承擔(dān)低速控制總線的作用。因此,為了能說明問題,將以設(shè)置總線Setting bus為例介紹子功能單元尋址方法。需要說明的是:實驗平臺設(shè)置總線Setting bus只掛載了低速設(shè)置寄存器,而高速設(shè)置寄存器并不掛載在Setting bus上,也不需要通過ZPU解析。有關(guān)高速設(shè)置寄存器問題將在后面另中介紹,此處不再贅述。

      當(dāng)Wishbone地址總線上的地址信號處于0X7000~0X7FFF段時,Setting bus模塊被選中,Setting bus模塊把Wishbone地址的第9~2 bit連續(xù)取出8 bit信號,作為選擇掛接Setting bus在子功能單元基組地址的8 bit信號。例如,若要選擇設(shè)置寄存器SR_GPIO中的SR_GPIO_0,它是設(shè)置射頻收發(fā)為空閑狀態(tài)的寄存器,又稱ATR0寄存器[2],這時只要Wishbone地址總線上給出的地址碼為0X72E0,就可以訪問該寄存器。在上位機常常以基組地址和偏移量方式指出尋址的寄存器,如尋址DDC_chain0通道模塊的設(shè)置寄存器,可以用SR_RX_DSP0+0、SR_RX_DSP0+1、SR_RX_DSP0+2、SR_RX_DSP0+3形式尋址,實際地址碼為0X72E0、0X72E4、0X72E8、0X72EC,對應(yīng)可改變DDC_chain0模塊中的中心相位、尺度、(半帶通1使能+半帶通2使能+梳狀濾波抽取率)、(選擇實數(shù)處理+I/Q交叉處理)等參數(shù)。

      需要注意的是:Setting bus模塊把Wishbone地址的第9~2 bit連續(xù)取出,作為子功能單元基組BASE地址的8 bit信號,原因是ZPU為8 bit操作命令碼,而32 bit長存儲器RAM被分為4個區(qū),每個區(qū)字長8 bit,一個32 bit長存儲器共保存4個ZPU操作命令碼,ZPU的程序指針PC利用最低2 bit地址作為取指4個區(qū)的定位,以確保連續(xù)獲得操作命令碼。而對于像訪問寄存器操作,一次就可進行32 bit存儲操作,并不是8 bit操作。因此為了區(qū)分Wishbone地址線是ZPU操作,還是對寄存器操作,在對寄存器操作時回避使用最低2 bit地址信號。

      4 結(jié) 語

      所研制的無線電通信系統(tǒng)教學(xué)實驗平臺,采用了開放化和軟件化的設(shè)計理念,這就需要將硬件的驅(qū)動配置鏡像文件載入主板配置文件存儲器,才能構(gòu)建出完整功能的無線電片上系統(tǒng)。對硬件設(shè)備驅(qū)動鏡像文件存儲方式,多重啟動配置工作原理,片上系統(tǒng)組成,掛接在內(nèi)部總線上的功能模塊及其子模塊尋址特點與方法等內(nèi)容,進行了系統(tǒng)介紹??梢钥闯鲇密浖?gòu)建出的無線電工作系統(tǒng)結(jié)構(gòu)呈現(xiàn)層次化和模塊化特點。理解實驗平臺的驅(qū)動配置方法,掌握所構(gòu)建的軟件無線電系統(tǒng)結(jié)構(gòu),不僅有助于對實驗平臺工作原理的全面理解,而且為進一步靈活地控制實驗平臺奠定了必要的基礎(chǔ)。雖然加載硬件設(shè)備驅(qū)動鏡像文件后并借助GNU Radio正常使用實驗平臺不存在什么問題,但是若要想充分發(fā)揮實驗平臺提供的資源,尤其是想開發(fā)出具有個性化創(chuàng)造性的軟件無線電應(yīng)用,還需要掌握整個系統(tǒng)的控制方式。筆者將繼續(xù)撰文,對實驗平臺的系統(tǒng)控制過程及其工作原理進行闡述。

      參考文獻(References):

      [1] FPGA用戶手冊. XtremeDSP DSP48A for Spartan-3A DSP FPGAs[DB/OL]. http://www.xilinx.com/support/documentation/ user_guides/ug431.pdf.

      [2] USRP硬件驅(qū)動程序和USRP手冊[EB/OL]. http://files.ettus.com/manual.

      [3] Zylin CPU資料[EB/OL]. https://github.com/zylin/zpu.

      [4] Ethernet MAC資料[EB/OL]. http://www.xilinx.com/support/documentation/ip_documentation/tri_mode_eth_mac/v5_5/pg051-tri-mode-eth-mac.pdf.

      [5] Adam D. Design and Implementation of the LWIP TCP/IP Stack[S]. Swedish Institute of Computer Science, 2001.

      [6] Wishbone總線資料[EB/OL]. http://opencores.org/cdn/downloads/wbspec_b4.pdf.

      [7] 陸洪毅, 戴 葵, 王志英. 基于WISHBONE的SoC接口設(shè)計[J]. 計算機工程與科學(xué), 2003, 25(5): 90-92.

      [8] 宋廷強, 劉川來, 周 艷. SoC設(shè)計中WISHBONE片上總線的設(shè)計與開發(fā)[J]. 青島科技大學(xué)學(xué)報, 24(5): 439-442.

      [9] 鄒 晨, 周 波, 李 鵬,等. FPGA重配置技術(shù)[J]. 航空計算技術(shù), 2012, 42(6):114-117.

      [10] 李 平, 吳 曉, 山 壽. 基于SPI FLASH的FPGA多重配置[J]. 現(xiàn)代電子技術(shù), 2013,36(22):127-130.

      [11] 劉 釗, 杜永鋒, 許知博. 基于Xilinx-Spartan6 FPGA的Multi Boot設(shè)計的實現(xiàn)[J]. 電子科技, 2012, 25(3): 28-31.

      猜你喜歡
      鏡像文件功能模塊寄存器
      Lite寄存器模型的設(shè)計與實現(xiàn)
      沒光驅(qū)不要緊 裝個免費虛擬的
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      用RamOS降低公用機的維護工作量
      基于ASP.NET標(biāo)準(zhǔn)的采購管理系統(tǒng)研究
      輸電線路附著物測算系統(tǒng)測算功能模塊的研究
      M市石油裝備公服平臺網(wǎng)站主要功能模塊設(shè)計與實現(xiàn)
      石油知識(2016年2期)2016-02-28 16:20:16
      Win7升級Win10教程
      電腦迷(2015年9期)2015-05-30 22:08:35
      功能模塊的設(shè)計與應(yīng)用研究
      高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
      木兰县| 乐东| 东台市| 京山县| 阿拉善盟| 攀枝花市| 巨野县| 元朗区| 宁德市| 荔浦县| 新竹市| 曲水县| 正镶白旗| 青龙| 宁蒗| 巩留县| 西青区| 汉源县| 云阳县| 南川市| 桑植县| 甘孜县| 义马市| 古丈县| 垫江县| 大安市| 镶黄旗| 澄城县| 定南县| 滕州市| 新乐市| 宜宾市| 光山县| 平塘县| 嵩明县| 阿尔山市| 通河县| 监利县| 长春市| 静宁县| 高雄县|