999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2018-07-03 00:45:54戴伏生哈爾濱工業大學威海信息與電氣工程學院山東威海264209
實驗室研究與探索 2018年5期
關鍵詞:功能模塊實驗

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

0 引 言

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

1 硬件驅動的下載與配置原理

1.1 多重啟動配置存儲方式

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

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

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

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

1.2 硬件驅動UHD的下載

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

圖2 安全模式下實驗平臺與上位機通信系統

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

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

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

2 UHD配置的片上系統

2.1 實驗平臺多重啟動配置

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

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

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

為了利于軟件升級,實驗平臺總是從安全模式開始配置和啟動。安全工作模式下,ZPU先將SPI Flash進行初始化設置,進而檢測M25P64 Flash中是否存在有效硬件驅動Prod_fpga文件,如果檢測到則加載,否則通過以太網把未檢測到有效硬件驅動文件通報上位機,并要求上位機下載該文件。檢測方法是從M25P64 Flash的0X180000地址起始讀取,每次讀取16 byte,共讀取64 byte。若64 byte為連續的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內容。最后給ICAP的命令寄存器CMD寫入觸發加載命令IPROG,操作碼為“0X30A1 0X000E”,便從起始地址0X180000讀取M25P64 Flash中的配置信息,對FPGA進行重構。

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

2.2 UHD配置的片上系統

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

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

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

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

圖4 硬件驅動UHD建立的SoPC

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

3.2 子功能單元尋址方法

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

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

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

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

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

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

4 結 語

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

參考文獻(References):

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

[2] USRP硬件驅動程序和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接口設計[J]. 計算機工程與科學, 2003, 25(5): 90-92.

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

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

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

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

猜你喜歡
功能模塊實驗
記一次有趣的實驗
微型實驗里看“燃燒”
做個怪怪長實驗
商業模式是新媒體的核心
中國廣播(2016年11期)2016-12-26 10:02:01
基于ASP.NET標準的采購管理系統研究
軟件導刊(2016年9期)2016-11-07 21:35:42
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
風景區潮汐性人流與可移動建筑設計研究
科技視界(2016年11期)2016-05-23 12:04:33
輸電線路附著物測算系統測算功能模塊的研究
M市石油裝備公服平臺網站主要功能模塊設計與實現
石油知識(2016年2期)2016-02-28 16:20:16
主站蜘蛛池模板: 亚洲国产午夜精华无码福利| 国产十八禁在线观看免费| 欧美97色| 日韩高清欧美| 亚洲无码精品在线播放| 亚洲日韩精品伊甸| 好久久免费视频高清| 熟妇无码人妻| 综合社区亚洲熟妇p| 这里只有精品在线| 中文字幕欧美成人免费| 成人亚洲视频| 人妻中文字幕无码久久一区| 青青热久免费精品视频6| 日本成人一区| 国产精品浪潮Av| 22sihu国产精品视频影视资讯| 欧美影院久久| 操美女免费网站| 亚洲AV色香蕉一区二区| 国产日韩欧美成人| 日韩免费视频播播| 日韩在线中文| 精品久久久久久成人AV| 97国产一区二区精品久久呦| 亚洲精品福利视频| 日本国产精品| 亚洲AV无码久久天堂| 五月综合色婷婷| aa级毛片毛片免费观看久| 亚洲色图另类| 国产自无码视频在线观看| 亚洲精品无码抽插日韩| 成年午夜精品久久精品| 久久综合色天堂av| 日韩激情成人| 国产女人综合久久精品视| av在线无码浏览| 狂欢视频在线观看不卡| 欧美另类视频一区二区三区| 欧洲熟妇精品视频| 国产剧情伊人| 欧美专区在线观看| 综合色在线| 久久福利片| 九九久久99精品| 国产精品妖精视频| 亚洲第一中文字幕| 精品无码国产一区二区三区AV| 精品在线免费播放| 国产幂在线无码精品| 亚洲乱伦视频| 99精品在线视频观看| 一级毛片免费不卡在线视频| 伊人中文网| AV熟女乱| 国产日本欧美亚洲精品视| 在线观看亚洲精品福利片 | 国产精品视频a| 国产色伊人| 在线看AV天堂| 亚洲无码高清视频在线观看| 欧美成人日韩| 日韩人妻精品一区| 国产真实乱子伦精品视手机观看| 中国国语毛片免费观看视频| 亚洲第一av网站| 国产一二三区视频| 亚洲日韩国产精品综合在线观看| 伊人激情综合网| 亚洲天堂久久新| 激情六月丁香婷婷| 55夜色66夜色国产精品视频| 国产成人综合日韩精品无码首页 | 精品视频一区二区三区在线播| 国产不卡一级毛片视频| 香蕉色综合| 在线观看免费黄色网址| 自拍欧美亚洲| 99热亚洲精品6码| 亚洲无码不卡网| 毛片卡一卡二|