• 
    

    
    

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

      采用ARM的多FPGA串口命令選擇配置及其應用

      2016-11-04 10:28:21陳發(fā)堂主父文剛胡利偉
      自動化儀表 2016年10期
      關鍵詞:配置文件時序命令

      陳發(fā)堂 主父文剛 胡利偉

      (重慶郵電大學重慶市移動通信技術重點實驗室,重慶 400065)

      ?

      采用ARM的多FPGA串口命令選擇配置及其應用

      陳發(fā)堂主父文剛胡利偉

      (重慶郵電大學重慶市移動通信技術重點實驗室,重慶400065)

      針對嵌入式系統(tǒng)中的多FPGA配置問題,結合實際應用,設計了一種基于ARM、NAND Flash存儲器和串口的多FPGA命令選擇配置方案。該方案以含有4片F(xiàn)PGA的嵌入式系統(tǒng)為例,選用ARM作為主控芯片,使用超級終端輸入配置文件選擇命令,構建了基于TMS320C6A8168、XC3S400AN和NAND Flash的硬件平臺,實現(xiàn)了根據(jù)設備的應用差別加載不同F(xiàn)PGA配置文件的功能。詳細描述了系統(tǒng)的硬件構成、軟件實現(xiàn)以及在TD-LTE無線綜合測試儀表中的應用情況。與傳統(tǒng)基于專用存儲芯片的配置方法相比,該方案大大提高了多FPGA系統(tǒng)配置的靈活性,在通信電子領域具有一定的實用價值。

      嵌入式系統(tǒng)FPGA配置ARMNANDFlash串口命令TD-LTE智能化

      0 引言

      隨著電子應用領域的不斷擴展,F(xiàn)PGA的應用正以空前的規(guī)模和速度滲透到各行各業(yè),然而由于FPGA在容量、速度、資源等方面的局限性,利用單FPGA完成某些復雜嵌入式系統(tǒng)的設計存在很大困難。將復雜的系統(tǒng)設計分割為若干個獨立模塊,每個模塊由單FPGA實現(xiàn),并輔以多FPGA間的有效接口,能很好地解決FPGA規(guī)模的局限性[1-2]問題。

      另一方面,隨著通信設備的復雜化、多樣化,采用多FPGA聯(lián)合實現(xiàn)系統(tǒng)功能時,可通過選擇加載不同的配置文件來實現(xiàn)同一套硬件設備“一機多能”的需求[3],特別是在通信儀表領域,這一應用尤為廣泛。例如:在移動通信信令分析儀中,為了兼容全球移動通信系統(tǒng)(global system for mobile communication,GSM)、時分同步碼分多址(time division synchronous code division multiple access,TD-SCDMA)、分時長期演進(time division long term evolution,TD-LTE)、頻分雙工長期演進(frequency division duplexing LTE,FDD-LTE)等不同的通信制式,就必須實現(xiàn)“一機多能”。該應用也提高了對多FPGA配置的智能化要求。

      1 傳統(tǒng)多FPGA系統(tǒng)的配置方案

      針對多FPGA系統(tǒng)的配置,傳統(tǒng)的解決方案大致可分為兩種:分散配置方案和集中配置方案。配置結構[4]如圖1所示。

      分散配置方案中,各FPGA分別采用主模式加載外部電可擦可編程只讀存儲器(electrically erasable programmable read-only memory,EEPROM)中的配置文件完成配置;待配置的FPGA產生配置時鐘CCLK并控制整個配置過程的執(zhí)行。由于該方案需要設計多個獨立的配置電路,隨著系統(tǒng)中FPGA數(shù)量的上升,PCB的設計變得更加困難,增加了系統(tǒng)的復雜度和成本。一旦想更換FPGA的配置文件,需重新向每片EEPROM燒寫文件,十分不便。

      集中配置方案采用Slave Select MAP模式[5-6]加載配置文件,配置時序和時鐘由專用的FPGA發(fā)出。該方案將全部配置文件集中存儲在一片EEPROM上,會出現(xiàn)EEPROM容量不足以及系統(tǒng)中的多片F(xiàn)PGA無法在不同版本的配置文件之間進行智能切換等問題。

      圖1 傳統(tǒng)配置方案的配置結構圖Fig.1 The configuring structure of traditional configuration scheme

      2 多FPGA串口命令配置原理

      針對傳統(tǒng)方法在多FPGA系統(tǒng)“智能”配置上的不足,本文設計了基于ARM、NAND Flash和串口的多FPGA命令選擇配置方案。該方案使用ARM的人機交互接口讀取選擇命令,控制接口和數(shù)據(jù)接口按照配置時序完成配置。用戶可根據(jù)設備不同的功能要求,自主選擇FPGA配置文件進行智能加載。

      2.1單FPGA 16bit Slave SelectMAP配置原理

      本方案單片F(xiàn)PGA的配置采用16 bit Slave Select MAP模式,配置時序如圖2所示。

      圖2 配置時序圖Fig.2 Sequence chart of configuration

      系統(tǒng)上電時,ARM發(fā)送到PROGRAM_B引腳上的邏輯低電平會復位配置邏輯,使FPGA處于清空配置存儲器狀態(tài),并使INIT_B信號保持低電平,以表明配置存儲器正被清空。ARM釋放PROGRAM_B引腳后,F(xiàn)PGA在清空所有配置存儲器后拉高INIT_B引腳,并在INIT_B的上升沿,由自動采樣模式選擇引腳M[2:0]以決定配置模式,SelectMAP模式對應的M[2:0]引腳值為0b110。ARM檢測到INIT_B引腳的高電平后,將配置文件寫入FPGA。若寫入的配置文件循環(huán)冗余檢驗(cyclic redundancy check,CRC)成功,F(xiàn)PGA會拉高DONE引腳,表明配置成功;否則,INIT_B引腳被拉低,配置失敗。

      2.2基于ARM的多FPGA串口命令選擇配置原理

      本方案選用高性能處理器ARM作為系統(tǒng)的主控芯片,控制整個配置過程的執(zhí)行[7];NAND Flash作為系統(tǒng)存儲器,存儲通用啟動裝載(universal boot loader,U-boot) 映像文件、配置程序以及所有的配置文件。上電后ARM執(zhí)行根據(jù)硬件信息定制的U-boot[8-9],并通過串口在超級終端上打印配置文件選擇信息及對應的設備功能說明;然后,根據(jù)用戶輸入的命令,先將所選配置文件從NAND Flash拷貝至內存DDR,再按照16 bit Slave Select MAP時序,通過輔助FPGA,將DDR中的配置數(shù)據(jù)分次寫入待配置的FPGA中,完成對全部FPGA的配置。

      3 多FPGA串口選擇配置的實現(xiàn)

      本方案選用Ti公司的雙核處理器TMS320C6A8168作為系統(tǒng)主控芯片,其具有最高可達1.2 GHz的ARM Cortex-A8核與1 GHz 的C674x數(shù)字信號處理(digital signal process, DSP)核,極大地增強了系統(tǒng)多任務處理能力及數(shù)學運算能力。NAND Flash選用位寬16位、存儲容量2 GB的MT29F2G16芯片。

      輔助FPGA采用Spartan-3AN系列的FPGA XC3S400AN。該系列的FPGA專用于系統(tǒng)集成度和安全性高的關鍵非易失性領域,是業(yè)界比較先進的非易失性FPGA解決方案[10],可提高配置過程的安全性和可靠性。

      3.1系統(tǒng)硬件設計

      ARM的通用內存控制器(general purpose memory controller,GPMC )接口與NAND Flash、DDR以及輔助FPGA相連,用于發(fā)出配置命令、配置時鐘和配置數(shù)據(jù);NAND Flash存儲方案的所有代碼,在配置前用CCS5.0軟件和JTAG仿真器將各類文件和代碼燒入芯片。輔助FPGA與4片待配置FPGA相連,可實現(xiàn)ARM與待配置FPGA之間的控制信號傳遞及配置數(shù)據(jù)交互。

      通過XC3S400AN TMS320C6A8168的GPMC_DATA[15:0]引腳和待配置FPGA的DATA[15:0]引腳,以及TMS320C6A8168的GPMC_CLK引腳和待配置FPGA的CCLK引腳,均可直接建立連接。所以在配置過程中,TMS320C6A8168 GPMC_CLK引腳和GPMC_DATA[15:0]引腳分別發(fā)出的寫時鐘和配置數(shù)據(jù)會通過XC3S400AN直接作用于待配置FPGA,從而實現(xiàn)將DDR中的配置數(shù)據(jù)直接寫入待配置FPGA中的功能。

      3.2系統(tǒng)軟件實現(xiàn)

      軟件實現(xiàn)主要分為ARM自啟動和配置代碼執(zhí)行這兩個過程,總流程如圖3所示。

      圖3 軟件實現(xiàn)總流程圖Fig.3 The overall flowchart of software realization

      系統(tǒng)上電后,ARM利用NAND Flash中的U-boot代碼自啟動,初始化系統(tǒng)軟硬件環(huán)境,然后將用戶選擇加載的4個配置文件拷貝到DDR中,再執(zhí)行配置代碼。配置代碼利用FPGA邏輯可變性,按照Slave Select MAP時序將DDR中的配置數(shù)據(jù)通過XC3S400AN依次寫入4片待配置FPGA中,實現(xiàn)對所有FPGA的配置。

      3.2.1基于NAND Flash的自啟動

      TMS320C6A8168自動加載NAND Flash上的U-boot完成自啟動,分為ROM Code(read only memory code)執(zhí)行階段和U-boot執(zhí)行階段[11]。

      ①ROM code執(zhí)行階段。

      ROM code是ARM ROM區(qū)域的代碼,其主要功能是對ARM進行安全啟動的初始化、堆棧和看門狗的設置、系統(tǒng)時鐘和RAM的初步配置以及啟動模式選擇引腳MBOOT[4:0]的采樣。ROM code根據(jù)采樣值創(chuàng)建自啟動設備列表,按設備列表的順序到相應設備搜尋啟動文件U-boot Image并執(zhí)行。本方案將MBOOT[4:0]引腳連接的撥碼開關設置為0b10010,創(chuàng)建的啟動設備列表順序依次為NAND Flash、NANDI2C、SPI、UART。

      不同的設備類型對應不同的自啟動過程。ARM在搜尋啟動文件前會先判斷當前的啟動設備類型。由于NAND Flash是存儲類的非可直接執(zhí)行設備,ARM無法在NAND Flash中直接執(zhí)行啟動文件,因此,檢測到啟動文件后,ARM會根據(jù)U-boot頭部的重定位信息把它從NAND Flash拷貝至TI_LOAD_ADDR地址處,完成第一次代碼重定位。本方案在U-boot配置文件config.mk中,將此地址設置為ARM第二片RAM的起始地址。

      ②U-boot執(zhí)行階段。

      重定位成功后,ARM執(zhí)行RAM中的U-boot,完成軟件環(huán)境的設置以及硬件接口和外設的初始化,然后將U-boot Image從NAND Flash拷貝至DDR的TEXT_BASE地址處執(zhí)行。TEXT_BASE在config.mk中設為0x80700000。

      U-boot第二次代碼重定位完成后,超級終端顯示4 s倒計時,移動通信信令分析儀默認加載各FPGA的配置文件,以實現(xiàn)設備TD-LTE功能。如果用戶想切換儀表功能或更換任意FPGA配置文件,只需在倒計時內在鍵盤按下任意鍵便可進入U-boot串口命令模式,同時超級終端上會打印出儀表功能及配置文件版本命令選擇菜單。

      用戶可以通過輸入數(shù)字“1”~“3”來選擇不同的設備功能,或者輸入字母“a”~“p”來逐一選擇加載配置文件。U-boot讀取串口輸入命令后,會根據(jù)命令修改對應FPGA位于NAND Flash中的配置文件拷貝地址。將配置文件從NAND Flash拷貝到DDR后,即完成了所選FPGA配置文件的更換,實現(xiàn)了用戶通過串口自主選擇配置文件加載的功能。

      完成配置文件選擇后,U-boot將用戶選擇的4個配置文件從NAND Flash的相應地址分別拷貝到DDR存放FPGA1~FPGA4配置文件的起始地址處,操作系統(tǒng)文件拷貝至0x90000000處,配置代碼拷貝至ARM第一片RAM的起始地址處。

      上述代碼拷貝結束后,ARM即完成了基于NAND Flash的自啟動,并跳轉執(zhí)行配置代碼。

      3.2.2配置代碼的執(zhí)行

      配置代碼中,ARM按照Slave Select MAP時序發(fā)出的配置信號,通過XC3S400AN首先作用于FPGA1。在FPGA1等待配置數(shù)據(jù)寫入時,ARM將DDR中的FPGA1配置文件寫入某虛擬地址中,GPMC接口的GPMC_DATA[15:0]引腳便產生配置數(shù)據(jù),GPMC_CLK引腳產生寫時鐘,且通過XC3S400AN充當待配置FPGA的配置時鐘CCLK,GPMC[15:0]上的配置數(shù)據(jù)在GPMC_CLK的驅使下通過XC3S400AN直接寫入FPGA1。

      FPGA1配置成功后,其DONE引腳變?yōu)楦唠娖剑琗C3S400AN根據(jù)DONE信號的變化改變內部邏輯,ARM再次發(fā)出的配置信號和數(shù)據(jù)將作用于FPGA2。同理,首先完成FPGA2的配置,然后繼續(xù)按照上述步驟完成剩余2片F(xiàn)PGA的配置,從而實現(xiàn)對所有FPGA的配置。

      如果某片F(xiàn)PGA首次配置沒有成功,ARM會自動對此片F(xiàn)PGA執(zhí)行再次配置。如果第二次配置仍然失敗,則在超級終端上打印配置失敗信息選擇,提示用戶再次配置此FPGA或重新配置所有FPGA。該方法提高了調試的效率。

      完成4片F(xiàn)PGA的配置后,啟動操作系統(tǒng),執(zhí)行其他任務,實現(xiàn)了ARM處理器的多用途,增強了本方案在各類設備中的通用性。

      4 方案具體應用及性能數(shù)據(jù)測試

      本文設計的配置系統(tǒng)已經(jīng)成功應用于移動通信信令分析儀。該儀表使用的是4片Xilinx公司生產的Virtex-6系列FPGA XC6VSX475T,根據(jù)測試對象及環(huán)境的不同,通過智能加載不同的配置文件使儀表兼容了GSM、TD-SCDMA、TD-LTE、FDD-LTE四種通信網(wǎng)絡,可應用于試驗室、外場等不同的測試環(huán)境以及5 M、10 M、15 M、20 M四種帶寬模式,模擬了單小區(qū)單用戶、單小區(qū)多用戶、單天線、多天線等配置,實現(xiàn)了“一機多能”的應用需求。

      在該信令分析儀上對本方案的時間參數(shù)進行測試,選用的配置文件格式為.bit,采用16 bit Slave Select MAP模式對4片F(xiàn)PGA進行配置。 在U-boot中,將GPMC與DDR的時鐘頻率分別設定為125 MHz、500 MHz,在不同的ARM時鐘頻率和平均配置文件大小下,多次測量得出系統(tǒng)啟動并完成FPGA配置所需的總時間。

      隨著配置文件的增大,配置完成總時間逐漸延長。在U-boot中及時開啟指令/數(shù)據(jù)緩存并適當提高ARM時鐘頻率,有助于縮短配置時間。

      5 結束語

      隨著多FPGA系統(tǒng)的應用越來越廣泛,嵌入式系統(tǒng)對多FPGA的加載提出了更高的要求,尤其是要保證加載過程中的可選擇性和智能性。本文提出的多FPGA系統(tǒng)加載方案改進了傳統(tǒng)方法的不足,并從系統(tǒng)結構、原理設計、硬件構造、軟件實現(xiàn)等方面給出了具體實現(xiàn)方案。本方案的軟、硬件設計較完整、獨立,無需過多的修改即可移植到各種嵌入式系統(tǒng)中使用,在通信電子、計算機領域具有一定的應用價值。

      當然,由于本設計方案的配置存儲器采用的是NAND Flash,雖然它可以為每片F(xiàn)PGA存儲多個版本的配置文件,但是受到現(xiàn)代工藝的制約,其讀取速度較慢,這也直接導致了配置時間的延長。如果在成本可接受范圍內采用大容量的NOR Flash或者其他高速存儲芯片,將大大減少配置時間。此外,如果對保密性沒有特殊要求,可以將配置文件存放于SD卡中,使用SD卡啟動加載,這樣更方便、快捷。

      [1] 張倩莉,于芳,劉忠立,等.結合用戶約束文件的高效多FPGA系統(tǒng)分割方法[J].哈爾濱工業(yè)大學學報,2012,44(7):144-148.

      [2] LADDHA S,DE K B.EDA tools and design methodology for multi-FPGA designing/prototyping[EB/OL].[2015-01-26]http://www.design-euse.com/articles/22074/for-multi-fpga-designing-prototyping.html.[3] 陳曦,沈佐峰.一種可靠的 FPGA 動態(tài)配置方法及實現(xiàn)[J].通信技術,2012,45(3):105-110.

      [4] 張承暢.多FPGA系統(tǒng)的關鍵問題及應用研究[D].重慶:重慶大學通信工程學院,2011.[5] XLINX Inc.Virtex-6 FPGA configuration user guide.[EB/OL].[2015-01-26].http://www.xilinx.com/support/d ocumentation/user_guides/ug360.pdf.

      [6] 紀斌.Xilinx FPGA上電時序分析與設計[J].電訊技術,2012,52(4):591-594.

      [7] MARK N,PEATTIE M.Using a microprocessor to configure xilinx FPGAs via slave serial or selectMAP mode [EB/OL].[2015-01-26].http://www.xilinx.com/support/documentation/application_notes/xapp502.pdf.

      [8] 蔡利平,任家富,童銳,等.基于ARM的NAND Flash啟動分析與移植[J].計算機工程與設計,2012,33(3):931-935.

      [9] 楊宗富.基于ARM的系統(tǒng)啟動過程研究與系統(tǒng)移植[D].北京:北方工業(yè)大學,2014.

      [10]XILINX Inc.Spartan-3AN FPGA family data sheet[EB/OL].[2015-01-26].http://www.xilinx.com/ support/ documentation/data_sheets/ds557.pdf.

      [11]Texas Instruments Inc.TMS320DM816x DaVinci video processors technical reference manual [EB/OL].[2015-01-26].http:// w.ti.com/lit/ug/sprugx8b/sprugx8b.pdf.

      Design of the ARM-based Multi-FPGA Serial Port Command Selection Configuration and Its Application

      Aiming at the Multi-FPGA configuration issue in embedded system and combining the practical applications,a Multi-FPGA command selection and configuration scheme based on ARM,NAND Flash memory and serial ports is proposed.With the example of the embedded system which contains 4 pieces of FPGA chips,ARM is selected as the main control chip,and Hyper Terminal is used to input configuration file and select command,so a hardware platform based on TMS320C6A8168,XC3S400AN and NAND Flash is built,which achieves the function that selecting different FPGA configuration file to load according to the difference from applications.The hardware structure,software implementation and practical application in TD-LTE wireless comprehensive test instrument are introduced at great length.Compared with the traditional configuration method based on the dedicated memory chips,the system greatly improves the flexibility of FPGA system configuration,thus it possesses certain reference value in electronic communication field.

      Embedded systemFPGAConfigurationARMNANDFlashSerial port commandTD-LTEIntellectualize

      陳發(fā)堂(1965—),男, 1999年畢業(yè)于北京郵電大學應用數(shù)學專業(yè),獲碩士學位,研究員;主要從事TD-SCDMA移動通信系統(tǒng)和TD-LTE系統(tǒng)的開發(fā)。

      TH3;TP273+.5

      ADOI:10.16086/j.cnki.issn 1000-0380.201610024

      國家科技重大專項基金資助項目(編號:2011ZX03001-002)。

      修改稿收到日期:2015-09-21。

      猜你喜歡
      配置文件時序命令
      時序坐標
      提示用戶配置文件錯誤 這樣解決
      只聽主人的命令
      基于Sentinel-2時序NDVI的麥冬識別研究
      搭建簡單的Kubernetes集群
      互不干涉混用Chromium Edge
      忘記ESXi主機root密碼怎么辦
      移防命令下達后
      一種毫米波放大器時序直流電源的設計
      電子制作(2016年15期)2017-01-15 13:39:08
      這是人民的命令
      吴旗县| 兴隆县| 突泉县| 牡丹江市| 伽师县| 沾化县| 承德县| 宣城市| 新绛县| 林芝县| 昌宁县| 文山县| 南华县| 莱芜市| 耒阳市| 长泰县| 饶阳县| 广水市| 铁岭县| 巩留县| 城固县| 凤山县| 望江县| 维西| 荆州市| 朔州市| 大埔县| 祥云县| 高淳县| 元阳县| 阳曲县| 吉林省| 汝城县| 疏勒县| 南投市| 张家口市| 崇左市| 灵武市| 吉木萨尔县| 上犹县| 蕉岭县|