《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 一種基于以太網加載FPGA和DSP的實現方法
一種基于以太網加載FPGA和DSP的實現方法
來源:微型機與應用2011年第18期
吳湘寧,江 瑾,馮俊濤
(廣州海格通信集團股份有限公司,廣東 廣州510663)
摘要: 介紹了脫離仿真器直接使用外部計算機通過網口進行程序代碼加載的基本原理, 討論分析了網絡接口、FPGA接口和HPI接口的訪問控制等關鍵技術。詳述了在包含CPU、FPGA和DSP的復雜系統設計方案中基于以太網加載FPGA和DSP的實現。該技術在系統工程化的應用中具有很好的前景。
Abstract:
Key words :

摘  要: 介紹了脫離仿真器直接使用外部計算機通過網口進行程序代碼加載的基本原理, 討論分析了網絡接口、FPGA接口和HPI接口的訪問控制等關鍵技術。詳述了在包含CPU、FPGA和DSP的復雜系統設計方案中基于以太網加載FPGA和DSP的實現。該技術在系統工程化的應用中具有很好的前景。
關鍵詞: CPU;以太網;FPGA;DSP;HPI;引導加載


    隨著嵌入式技術的發展,嵌入式系統逐漸演變為由微處理器、大規模集成電路、軟件技術和各種具體的行業應用技術相結合的結果。嵌入式設備已經在航空航天、通信、電子等行業得到廣泛應用。在以微處理器為核心的嵌入式應用系統中,對其中的FPGA和DSP的傳統加載都是通過硬件仿真器來完成的。這在產品的初研階段非常適用,然而在實際工程應用中各種產品組裝成一個龐雜的系統時(如需對系統進行軟件更新和維護時),傳統的加載方式就顯得極其不方便,程序代碼的引導加載就需要一種更加靈活、高效的方法來實現,而基于以太網加載FPGA和DSP的實現方法能很好地解決這個難題。
    本文介紹了基于以太網加載FPGA和DSP的基本原理, 并通過該技術在某嵌入式主控設計中的應用詳述了在包含CPU、FPGA和DSP的復雜系統設計方案中基于以太網加載FPGA和DSP的實現, 討論分析了網絡接口、FPGA接口和HPI接口的訪問控制等關鍵技術。
1 基于以太網加載FPGA和DSP的基本原理
    基于以太網加載FPGA和DSP的實現過程為: 首先,外部計算機通過網絡接口將代碼傳送給微處理器,并存儲到微處理器的Flash存儲器模塊;然后,由微處理器分別通過FPGA的從串加載模式和DSP的主機引導加載(HPI接口)實現對FPGA和DSP程序代碼的引導加載。
    基于TCP/IP協議的以太網是目前使用最廣泛的網絡。網絡協議通常分不同層次進行開發,每一層負責不同的通信功能。嵌入式設備通常根據微處理器的結構特點和系統需要實現的功能,將TCP/IP協議嵌入到微處理器中,從而實現嵌入式系統的網絡接口功能[1-2]。
1.1 FPGA加載
    FPGA常見的配置文件的加載模式有5種:主串加載模式、從串加載模式、主并加載模式、從并加載模式及JTAG加載模式。其中,JTAG加載模式在開發調試階段使用。其余4種加載模式可分為串行加載方式和并行加載方式,而串行加載方式和并行加載方式都有主、從兩種模式。由于主模式的加載同步時鐘(CCLK)由FPGA提供,從模式的加載同步時鐘(CCLK)由外部時鐘源或者外部控制信號提供,為了方便微處理器控制加載過程,一般選擇使用從串模式。
1.2 DSP加載
    DSP常見的三種引導加載方式為仿真器引導加載、ROM引導加載、主機引導加載。
    (1)仿真器引導主要用于調試階段,是一種特殊的主機引導加載方式。
    (2)ROM引導加載:在DSP外部復位信號被釋放后,芯片處于內部復位保持狀態, DSP芯片自動地通過EDMA/QDMA將外部ROM中的1 KB程序搬入地址0處。內部復位完成后,DSP開始從地址0處執行指令。
    (3)主機引導加載:DSP上電復位后, I/O部分將處于激活狀態,可以進行正常的通信,但DSP的內核仍處于復位狀態,一直等待主機向HPI控制寄存器中的DSPINT位置1。這樣,主機就可以通過HPI接口訪問DSP的整個存儲空間,對它們進行初始化。完成相關設置后,向DSPINT位寫入1, DSP內核結束復位狀態,執行地址0處的指令。
2 嵌入式數字處理系統設計與實現
2.1 硬件設計

    嵌入式數字處理系統采用微處理器PowerPC作為主控CPU,主要執行網絡控制等各種控制任務,其程序代碼相對固定,存儲在Flash中。如圖1所示,選用Xilinx公司的XC3S1000和XC4VSX35這兩種FPGA分別做邏輯和變頻[3-4],選用兩片TI公司的DSP TMS320C6416芯片完成數據處理與算法實現,這些FPGA和DSP的程序代碼需實時更新[5]。

    (1)網絡接口設計
    以太網PHY采用Marvell公司PHY協議層千兆網卡88E1111[6]。88E1111是高性能千兆以太網收發芯片,可以完成所有PHY(物理層)功能,支持全雙工或半雙工的10/100/1 000 Mb/s三速以太網,支持8 bit數據總線。CPU和以太網PHY、FPGA及DSP的接口基本電路如圖2所示。CPU的網絡接口引腳和以太網PHY的網絡接口相連接,通過硬件配置模式HWCFG MODE[3:0]來確定88E1111的操作模式,從而確定需要連接的引腳,如圖2所示,該設計選擇了RGMII模式,以太網PHY通過網絡隔離濾波器HX5008與外部以太網接口相連。

    (2)FPGA接口設計
    在從串模式下進行FPGA程序加載僅需要使用CCLK、PROG_B、INIT_B、DONE、DIN這5個信號引腳,微處理器使用通用IO管腳來配置FPGA。此外還需要設置M[2:0]信號以選擇配置模式,根據芯片XC3S1000和XC4VSX35的模式設置其從串模式的配置均為M[2:0]=111。
    (3)HPI 接口設計
    引導配置引腳BEA[19∶18]決定了TMS320C6416的引導加載模式,將DSP的EMIFB接口引腳BEA[19∶18]通過上下拉電阻配置成BEA[19∶18]=01,即選擇DSP為HPI加載方式。HPI接口電路如圖2所示,主控CPU的數據總線、地址總線及控制I/O連接到FPGA上,DSP的HPI接口數據總線和控制線也連接到FPGA上,通過FPGA的接口邏輯設計將CPU和DSP連接起來。
2.2 軟件設計
2.2.1 網絡接口程序設計

      (1)網絡通信協議設計
      網絡通信協議設計主要是實現TCP/IP 協議。根據嵌入式系統結構特點和系統設計實現的功能需求,在TCP/IP 協議的基礎上實現系統所需功能。
      (2)網絡接口的訪問控制
      驅動程序設計包括以太網PHY芯片的初始化、數據包的發送和接收。Freescale的MPC8377自帶了三速以太網控制器ETSEC,作為以太網接口與外部的PHY芯片相連接[7]。本設計中主控CPU與PHY之間是RGMII模式接口。88E1111可以實現多種數據速率和訪問控制模式,通過HWCFG MODE[3:0]確定其操作模式,設定DIS_FC為0,可以自適應地選擇FIBER、COPPER接口。
    Linux網絡驅動程序的實現主要是在Linux內核中提供的網絡設備接口及以上層次的代碼基礎上,移植或編寫特定網絡硬件的驅動程序工作,也就是完成設備驅動功能層,主要包括數據的接收、發送等控制。
2.2.2 FPGA接口程序設計
    FPGA從串模式的配置過程將配置比特流載入到FPGA,有4個主要階段: (1)清除配置內存;(2)初始化;(3)載入配置數據;(4)設備啟動。其配置時序流程圖如圖3所示。

 

 

    系統上電后,將PROG_B拉低以復位FPGA內部邏輯重新配置FPGA,充分復位內部邏輯后,將PROG_B置高。
    INIT_B為低電平,在PROG_B拉高保持一定時間后,FPGA將INIT_B置高。在INIT_B由低向高跳變的瞬間,采樣配置模式M[2:0]。此系統采用從串配置模式。在FPGA采樣配置模式后,微處理器就可以向FPGA配置時鐘CCLK和數據,在CCLK的上升沿,傳輸數據至DIN,數據字節先發送低位,再發送高位。配置過程中若發生錯誤,則INIT_B為低電平。
    當DONE為高電平時,FPGA釋放全局三態(GTS),激活I/O引腳,釋放全部置位復位(GSR)和全局寫使能(GWE)有效,開始執行配置區的邏輯。因此在所有的配置數據傳送完成,CRC校驗無誤時,DONE為高電平,否則為低電平[6]。
    微處理器從串配置FPGA的時序圖如圖4所示。

2.2.3 HPI 接口程序設計
    本文的嵌入式數字處理系統設計中, 主控CPU通過FPGA訪問HPI接口的HPIC、HPIA 、HPIDA 和HPIDF這4個寄存器,實現與TMS320C6416的通信,從而完成引導加載DSP程序代碼。圖5為DSP的HPI加載流程圖。
    本設計中采用HPI16模式,16根數據線通過FPGA邏輯與主控CPU數據總線的低16位相連,將HPI的控制信號通過FPGA連接到主控CPU上。

    對DSP進行HPI接口加載首先要對DSP進行復位,主控CPU對DSP的全部存儲空間進行訪問,先對HPIC寄存器初始化,主要針對HPI16模式最低位HHWIL位設置,決定數據傳輸格式是按高半字在前(設置為0),還是低半字在前(設置為1),該位對于HPI32模式無效,可不設置;然后,對HPIA寄存器初始化,設置訪問單元的地址;最后通過讀寫數據寄存器(HPIDA、HPIDF)實現數據讀寫操作,其中讀寫HPIDA寄存器是完成連續地址單元讀寫操作,讀寫HPIDF寄存器是完成固定地址單元讀寫操作。數據線、地址線定義如圖6所示。

    LD、LA分別表示主控CPU的數據和地址,addr表示FPGA內部地址,HPIX表示DSP的HPI控制器數據。
    CSEL:0表示選擇FPGA,1表示選擇主DSP,2表示選擇從DSP,3作為備用選擇。
    BSEL:0表示HPIX的低16位,1表示HPIX的高16位。
    HCNTL:0表示HPIC,1表示HPIA,2表示HPID(HPIA自動遞增),3表示HPID(HPIA保持不變)。
    在軟件編程時, HPI 接口寄存器的定義如下所示:
    /* HPI FPGA registers */
    #define HPI_HCNTL_HPIC        (0x0<<11)
    #define HPI_HCNTL_HPIA        (0x1<<11)
    #define HPI_HCNTL_HPIDINC    (0x2<<11)
    #define HPI_HCNTL_HPIDFIX    (0x3<<11)
    #define HPI_BSEL_LOW            (0x0<<13)
    #define HPI_BSEL_HIGH        (0x1<<13)
    #define HPI_CSEL_FPGA        (0x0<<14)
    #define HPI_CSEL_HPI1            (0x1<<14)
    #define HPI_CSEL_HPI2            (0x2<<14)
    #define HPI_FPGA_MEM_SIZE (2<<16)   /* bytes */
2.3 HPI 程序加載代碼的生成
    在CCS開發環境下生成的目標文件是“.out”,即通用目標文件格式(COFF)。該代碼文件不是DSP中實際運行的程序代碼,需用Hex工具進行轉換,然后使用自編程序將可執行的程序代碼提取出來,封裝成幀,通過以太網加載到DSP中。HPI引導完成后, DSP從地址0開始執行,而DSP 程序的入口是_c_int00,所以要在地址0處添加一條跳轉指令到程序入口[7]。
3 工程應用
    以前研制的數字處理系統采用CPU+DSP或CPU+FPGA,在研制階段和應用過程中需采用仿真器進行程序加載,無法實現遠程加載。然而在產品組裝成品進行系統聯調時需要多次對FPGA、DSP程序進行優化和完善,在對FPGA、DSP程序進行更新時極其不方便,每次更新程序都需要先解除系統連接,然后拆卸產品再用仿真器對該主控單元進行FPGA、DSP程序進行升級更新,整個過程繁瑣并且費時費力,嚴重制約研制進程,而且后續工程應用的維護工作難度也較大。
    本文所述嵌入式數字處理系統基于以太網加載FPGA和DSP,只要將需要進行更新程序的產品通過網絡接口和外部計算機連接起來進行數據交換,FPGA和DSP程序的加載與啟動直接由外部計算機控制,無需拆卸系統和產品,擺脫了仿真器。這種方式使得整個加載簡單方便,易于操作,而且可以實現對復雜系統的多個FPGA和多個DSP進行基于以太網接口的加載。
    隨著現在數字技術的高速發展,數字系統設計的功能越來越強大,設計中綜合微處理器、FPGA、DSP也越來越常見,本文提出了一種基于以太網加載FPGA和DSP的實現方法, 文中嵌入式數字處理系統實現了多個FPGA、DSP的程序加載進行軟件更新,證實了該技術簡單方便、可實現遠距離加載,且具有良好的可靠性。該技術在工程應用領域具有獨特的優越性和良好的應用前景。
參考文獻
[1] 朱偉,王廣君.基于ARM的嵌入式系統中從串配置FPGA的實現[J].儀表技術,2007(5):13-15.
[2] 李文祿,蔣宇中.一種基于以太網的 TMS320C6713B程序加載技術[J].海軍工程大學學報,2008,20(6):35-39.
[3] Spartan-3 FPGA Family Data Sheet[S].Xilinx.2009.
[4] Virtex-4 User Guide v2.3[S].Xilinx.2008.
[5] TMS320C6416 fixed-point digital signal processor[S].Texas  Instruments.2005.
[6] 88E1111 Datasheet INTEGRATED 10/100/1000 ULTRA[S]. Marvell.2009.
[7] MPC8379E PowerQUICCTM II Pro integrated host processor  family Reference manual[S].Freescale Semiconductor.2009.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久久久久久久蜜桃| 欧美精品少妇一区二区三区| 亚洲欧洲综合另类| 欧美在线视频导航| 亚洲综合首页| 亚洲欧美制服中文字幕| 亚洲综合999| 亚洲欧美激情视频在线观看一区二区三区 | 欧美日韩国产系列| 欧美大片第1页| 欧美国产亚洲另类动漫| 欧美电影免费网站| 欧美国产亚洲精品久久久8v| 欧美韩国在线| 欧美伦理91i| 欧美日韩天堂| 国产精品二区影院| 国产精品日韩电影| 国产毛片一区二区| 国产一区二区三区久久悠悠色av| 国产日韩成人精品| 国产一区二区三区四区在线观看 | 一区二区不卡在线视频 午夜欧美不卡在 | 中文久久精品| 亚洲欧美视频在线观看视频| 午夜在线一区二区| 久久久www免费人成黑人精品| 久久久久久香蕉网| 麻豆freexxxx性91精品| 欧美成人亚洲成人日韩成人| 欧美激情一区二区三区全黄| 久久性色av| 一区二区激情| 欧美一区二区三区精品电影| 久久视频在线看| 欧美成人午夜激情在线| 欧美日韩一二三四五区| 国产精品美女在线| 狠狠色综合网| 亚洲理论在线| 亚洲欧美国产制服动漫| 亚洲成人在线网站| 夜夜狂射影院欧美极品| 午夜在线视频观看日韩17c| 久久影院午夜片一区| 欧美精品v日韩精品v国产精品| 国产精品激情av在线播放| 国产视频一区免费看| 亚洲电影视频在线| 亚洲夜间福利| 亚洲国产一区在线| 亚洲女爱视频在线| 久久蜜桃精品| 欧美视频在线视频| 国产一区二区三区的电影| 亚洲人成77777在线观看网| 亚洲一区二区三区在线看| 亚洲国产欧美在线| 午夜国产精品视频免费体验区| 久久先锋影音av| 欧美午夜精品久久久久免费视 | 性做久久久久久久久| 免费观看国产成人| 国产精品久久一区二区三区| 精品不卡视频| 亚洲视频在线二区| 亚洲人体大胆视频| 久久电影一区| 欧美色图天堂网| 在线观看视频日韩| 午夜欧美不卡精品aaaaa| 日韩天堂在线视频| 久久久久久久精| 欧美色视频在线| 亚洲第一综合天堂另类专| 午夜激情一区| 亚洲视频一区在线| 毛片一区二区| 国产日韩欧美在线一区| 一本大道久久a久久精二百| 亚洲国产cao| 欧美一级久久久久久久大片| 欧美人与禽猛交乱配视频| 国内精品久久久久影院色| 中文一区二区在线观看| 亚洲美女av黄| 欧美乱妇高清无乱码| 久久青青草原一区二区| 国产精品人成在线观看免费| 91久久精品久久国产性色也91 | 久久久精品一区| 国产精品青草综合久久久久99| 亚洲欧洲日本一区二区三区| 亚洲国产aⅴ天堂久久| 欧美专区福利在线| 国产精品久久久久久久久久久久久 | 夜夜狂射影院欧美极品| 免费日韩精品中文字幕视频在线| 国产区二精品视| 亚洲在线免费| 宅男66日本亚洲欧美视频| 国产精品99久久久久久人| 麻豆freexxxx性91精品| 国产亚洲一区在线播放| 亚洲图片在线| 亚洲性感美女99在线| 欧美日韩一区二| 亚洲欧洲精品一区二区三区不卡 | 99国产一区| 99精品黄色片免费大全| 欧美黄色aaaa| 亚洲电影网站| 亚洲精品永久免费精品| 欧美不卡视频| 亚洲国产精品va在看黑人| 亚洲国产欧美日韩| 免费在线成人av| 亚洲第一中文字幕在线观看| 亚洲高清免费| 欧美成黄导航| 亚洲高清在线观看一区| 亚洲人成在线观看网站高清| 欧美va亚洲va国产综合| 亚洲福利视频一区二区| 亚洲激情在线激情| 久久精品国内一区二区三区| 欧美日韩一二区| 99精品福利视频| 亚洲视频一区二区免费在线观看| 欧美日韩卡一卡二| 一本大道av伊人久久综合| 亚洲在线免费观看| 国产精品免费观看视频| 亚洲男人的天堂在线aⅴ视频| 久久国产精品黑丝| 老色批av在线精品| 亚洲国产欧美一区二区三区久久| 亚洲日韩第九十九页| 欧美日本免费| 一区二区三区高清视频在线观看| 亚洲在线一区二区| 国产精品香蕉在线观看| 欧美在线91| 欧美二区视频| 一区二区精品在线| 欧美影院午夜播放| 在线成人激情视频| 一区二区三区四区国产精品| 国产精品久久久久久模特 | 亚洲精品久久久蜜桃| 欧美日韩成人在线播放| 亚洲一区三区电影在线观看| 久久米奇亚洲| 亚洲精品一二| 性色一区二区三区| 亚洲电影在线看| 亚洲自拍偷拍视频| 韩国av一区二区三区在线观看| 亚洲日本激情| 国产精品你懂的在线| 久久国产手机看片| 欧美日韩国产三区| 性欧美精品高清| 欧美精品一区二区在线播放| 亚洲一区二区三区视频| 久久伊人一区二区| 一本色道久久综合亚洲精品不卡| 欧美一区二区三区四区高清| 亚洲第一精品福利| 亚洲一区在线免费观看| 国内一区二区三区| 中文一区二区在线观看| 国内精品一区二区| 中文成人激情娱乐网| 黄色国产精品| 亚洲一级电影| 在线观看欧美激情| 亚洲欧美日韩精品久久亚洲区| 有坂深雪在线一区| 亚洲欧美日韩在线| 亚洲国产一区二区三区在线播 | 最新中文字幕亚洲| 国产精品视频一二| 最新成人av网站| 国产麻豆精品theporn| 99xxxx成人网| 黑丝一区二区三区| 亚洲欧美日本国产专区一区| 亚洲国产精品久久久久秋霞蜜臀 | 亚洲专区免费| 韩国亚洲精品| 亚洲在线视频观看| 在线看成人片| 久久黄色影院| 日韩亚洲不卡在线| 美国十次了思思久久精品导航| 亚洲婷婷综合色高清在线| 欧美bbbxxxxx| 欧美在线中文字幕| 国产精品露脸自拍|