《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于以太網的DSP網絡加載技術研究
基于以太網的DSP網絡加載技術研究
來源:微型機與應用2013年第7期
沈發江
(江蘇自動化研究所,江蘇 連云港 222006)
摘要: 提出了一種基于以太網的DSP程序加載技術,介紹了基于以太網的加載方法,包括網絡接口控制、HPI接口控制及Flash程序控制等關鍵技術,并給出了該方法在工程中的實際應用。與傳統的加載技術相比,該技術靈活方便,可脫離仿真器實現遠程、大容量的程序代碼加載,快速完成DSP系統的軟件更新。
Abstract:
Key words :

摘  要: 提出了一種基于以太網DSP程序加載技術,介紹了基于以太網的加載方法,包括網絡接口控制、HPI接口控制及Flash程序控制等關鍵技術,并給出了該方法在工程中的實際應用。與傳統的加載技術相比,該技術靈活方便,可脫離仿真器實現遠程、大容量的程序代碼加載,快速完成DSP系統的軟件更新。
關鍵詞: 以太網;TMS320C6713;HPI;引導加載

 隨著以太網技術和DSP技術的迅猛發展,基于網絡的DSP設備已成為儀器儀表、工業控制和遠程測控的重要發展方向。在以DSP為核心的應用系統中,程序代碼的引導加載具有至關重要的作用。傳統的DSP程序加載是通過硬件仿真器來完成的,但在工程應用中,一旦系統組裝為成品后,再對系統進行軟件更新和維護時,傳統的加載方式就顯得十分不方便,而且該方法不能解決程序代碼的遠程加載問題。因此,需要一種更加靈活、高效的程序加載方式,而基于網絡的DSP軟件更新就成為一個新的熱點。
 本文介紹了DSP程序加載的基本原理,設計了DSP加MicroBlaze軟處理器的系統,并以TI公司的DSP為例,提出了一種基于以太網的DSP程序加載技術,利用網絡通信實現DSP的動態加載及DSP資源的遠程訪問,提高了軟件更新的效率及遠程訪問的便利性。
1 DSP程序網絡加載原理概述
 要實現DSP程序的網絡加載,需要解決的關鍵技術有數據的網絡發送和接收,DSP的HPI主機接口控制,Flash存儲器的讀寫以及程序文件的網絡格式轉換。具體的實現過程為:首先上位機工具將編譯好的程序輸出文件進行網絡分包轉換,按照網絡包的格式將代碼傳送給板卡的主控制器,主控制器MicroBlaze接收到數據后通過DSP的HPI接口把程序寫到內存中,完成程序代碼的引導加載。同時,也可以把接收到的網絡數據通過主控制器MicroBlaze寫入到外部Flash存儲器,再次上電后完成程序的加載。
 要實現網絡數據的發送和接收,必須要使系統能夠實現網絡功能,按照一定的協議進行網絡數據包的組織。目前,應用最廣泛的網絡協議是TCP/IP協議,但由于控制器MicroBlaze自身資源有限,無法實現標準的TCP/IP協議,再加上該系統網絡環境較簡單,因此本設計采用效率較高且協議簡單的UDP協議來發送網絡數據。將UDP協議嵌入到主控制器MicroBlaze中,即可實現系統的網絡接口功能。
 HPI接口是TI公司DSP留給外部主控制器訪問其資源的接口,通過HPI接口,外部主控制器能夠實現DSP程序的引導。具體過程為:當系統上電后,DSP的CPU處在復位狀態,外設部分已工作正常,外部主控制器通過HPI接口訪問DSP的所有資源,當主控制器完成所有加載工作后,把CPU從復位狀態喚醒,開始從地址0處執行程序。
 通常DSP編譯器編譯后的程序文件一般都是COFF格式,它由多個數據段組成。其中.text通常包含可執行代碼,.data通常包含已初始化的數據,.bss通常為未初始化的數據保留空間。通過對COFF文件結構的分析,讀取DSP編譯產生的.out文件,根據文件本身攜帶的信息,直接提取生成可供下載的二進制文件,再把二進制文件按照UDP協議分包后通過網絡發送到系統的主控制器,即可完成DSP的網絡加載。
2 系統設計與實現
2.1 硬件設計

 系統采用基于DSP的主從式雙CPU,如圖1所示。選用Xilinx公司的V5系列FPGA作為系統的控制單元,內部運行嵌入式MicroBlaze處理器用來作為主機,負責網絡數據的接收、解析、HPI接口的控制、Flash存儲器的讀寫等工作。TMS320C6713主要完成和外部信號的接口,完成信號處理算法的實現,可以通過網絡對其算法程序進行不斷的修改,以達到最佳的信號處理效果。從圖1可以看出,DSP與FPGA之間通過HPI接口連接,DSP還負責模擬信號的采集和輸出。

 

 

2.1.1 網絡接口設計
 實現系統程序的網絡加載需要解決的關鍵技術之一是模塊的網絡接口設計,使該模塊能夠接入網絡。在本系統中,為了提高靈活性并減少成本,網絡接口的設計直接通過FPGA對物理層器件的控制實現,然后由MicroBlaze軟核處理器完成上層協議的封裝和解析,這樣提供了FPGA對網絡的靈活控制,通過修改軟核處理器的程序即可完成不同協議的封裝。
 FPGA通過內部總線接收網絡數據的邏輯框圖如圖2所示。FPGA通過內部總線接收網絡數據時,數據從物理器件MII接口的RX_D[0:3]進入FPGA,根據MII的接收時序,檢測到網絡數據幀中的幀前序和幀起始符后,觸發地址產生邏輯,將接收到的RX_D[0:3]和RX_EN信號轉換為4 bit的數據寫入到2 KB的雙端口RAM中。雙端口RAM是在FPGA內部生成的,其A端口為4 bit的數據線,B端口為32 bit的數據線,用于FPGA內MII接收與HPI接口間進行數據轉換。從雙端口RAM端口A寫入數據,由B端口讀出,經過轉換后與DSP的HPI接口相連。在對DSP的HPI接口進行配置后,網絡接收到的數據在FPGA軟核處理器的控制下可以寫入到DSP的內存中,從而實現網絡數據的接收。

2.1.2 HPI接口設計
 TMS320C6713的HPI端口為一個16 bit寬的并行端口,此接口為主機與DSP的數據交換提供了最方便有效的方案。主機掌管著該端口的主控權,可通過HPI接口直接訪問DSP的存儲空間和外圍設備。主機對HPI內存的訪問通過HPIC(HPI控制寄存器)、HPIA(HPI地址寄存器)和HPID(HPI數據寄存器)3個專用的DSP寄存器來實現。主機可以對這3個寄存器進行讀寫,而DSP只能對HPIC進行訪問。HPID中存放的是主機從存儲器中讀取的數據,或者是主機向DSP存儲空間寫入的數據。HPIA中存放的是主機訪問的地址,HPIC中存放的是控制信息。
 在FPGA中做一個HPI的控制核,可以產生對HPI接口的控制時序,包括地址線和讀寫信號線等控制邏輯,在軟核處理器MicroBlaze上編寫HPI接口的相應驅動程序,包括HPI接口的讀、寫操作及復位操作等函數。用戶通過調用某個HPI驅動函數,驅動函數轉化為底層的時序控制邏輯,就可以完成對HPI接口的訪問。
2.2 軟件設計
 硬件是基礎,軟件是核心,硬件必須搭配穩定、高效的軟件才能組成一個完整的系統。根據硬件的層次結構,加載系統的軟件主要完成以下功能部分的設計:上位機控制程序、上位機網口程序、FPGA軟核處理器網絡驅動程序以及軟核處理器服務程序。
2.2.1 上位機軟件設計
 上位機軟件是用戶實現DSP網絡加載的平臺,采用C++ Builder 6.0設計完成。該開發工具內部集成了UDP協議的通信控件,只要再經過簡單的封裝就可以形成UDP協議的網絡驅動程序,不需要底層進行開發。上位機控制程序對外采用MDI界面,主要實現程序的加載、燒錄以及內存的查看等功能。
2.2.2 底層軟件設計
 底層驅動軟件的核心是網絡接口的驅動程序。考慮到FPGA實現網絡協議的簡單性和實時性的要求,選用UDP協議作為傳輸協議,網絡數據封裝必然要滿足UDP協議的幀格式。數據幀中包含了7 B的幀前序和1 B的幀起始符。完整的UDP協議的幀結構如表1所示。由表可知,UDP協議是在IP協議和MAC幀格式的基礎上封裝的。

3 系統設計中的關鍵技術
 在系統設計中,主要涉及:網絡接口和HPI接口兩個接口,對這兩個接口的訪問控制非常重要。此外,HPI程序加載代碼的生成也非常關鍵。
3.1 網絡接口的實現
 網絡接口采用FPGA編寫IP核的方式來實現,主要是MAC層控制器的設計,其既可以集成于網絡終端設備中實現網絡接入,同時又是開發網橋、交換機等網絡互聯的設備。整個MAC分為10個模塊,其構成圖如圖4所示。每個模塊都完成相對獨立的一系列功能,各模塊的功能如下。

 (1)PHY接口模塊。根據PHY的工作模式,將MII接口不同的數據位寬進行轉換,從而提供給上層發送模塊和接收模塊統一的位寬。
 (2)發送模塊。其主要功能是按照CSAM機制完成信道接入控制,以及將上層的待發送數據封裝成以太網幀的格式,為其添加前導碼、幀起始定界符、PAD和CRC校驗字段并發出。
 (3)接收模塊。進行單播/組播/廣播幀的過濾,進行CRC校驗,濾除幀碎片,把合法的幀傳輸至上層,并在接收結束后向上層報告幀接收的狀態。
 (4)流量控制模塊。完成全雙工下流量控制的功能。
 (5)發送緩存/接收緩存。實現對發送/接收幀緩存的管理。
 (6)AHB總線接口。它為外部總線接口,完成與MicroBlaze軟核及其他AHB接口單元的通信。
 (7)MII管理模塊。完成對PHY工作模式的監控和設置。
 (8)時鐘管理模塊。其產生不同工作模式下各個模塊的工作時鐘和時鐘使能信號。
 (9)寄存器和中斷模塊。負責系統模式配置及中斷管理。
3.2 HPI接口的訪問控制
 DSP引導配置引腳HD[4:3]決定了TMS320C6713的引導加載模式,將DSP的HPI接口引腳HD[4:3]通過下拉電阻接地,即選擇HPI加載。HPI接口主要信號有HD[15:0],并行雙向數據地址共用總線,主要傳輸控制寄存器的值、初始化訪問地址及數據;HCNTL[1:0]主要控制當前訪問的是哪一個寄存器,當控制線不同譯碼時可以訪問不同的寄存器;HHWIL信號用于區分數據線上傳輸的是數據的高16 bit還是低16 bit;HR/W信號用于讀/寫選擇,高電平表示主機讀,低電平表示主機寫;HRDY信號用于表明HPI是否已經準備好傳輸數據,其作用是在接口時序上插入等待周期;HINT信號表示向主機發出的中斷,當DSP需要和主機通信時,將該位置1,主機就會響應中斷。根據上述的信號功能,MicroBlaze處理器的局部總線和HPI的數據總線相連,MicroBlaze處理器的3 bit地址線和HPI接口的控制線相連,MicroBlaze處理器映射的控制寄存器的控制位連接到片選信號。通過上述信號線的物理連接,在軟件訪問具體的地址空間時就可以譯碼出HPI接口讀寫的一系列片選、控制信號,完成對HPI接口的訪問。
3.3 HPI程序加載代碼生成
 在CCS開發環境下生成的目標文件是“*.out”,即通用目標文件格式(COFF)。該文件可以在CCS開發環境下通過仿真器下載到DSP目標板中運行調試,但代碼文件并不是DSP中實際運行的程序代碼,需要Hex工具進行轉換,然后自編程序將可執行的程序代碼提取處理,可執行的程序代碼作為數據段封裝成幀,通過以太網加載到TMS320C6713中。由于HPI引導完成后,DSP是從地址0開始執行的,而DSP程序的入口是c_int00,因此要在地址0處添加一條跳轉指令到程序入口。在編程時要特別注意需將中斷代碼段放在存儲空間的0000H~01FFH。
 本文提出了一種基于以太網的DSP程序加載技術,該技術在多DSP系統的程序加載及遠程控制系統的軟件更新等工程應用領域具有獨特的優越性和較好的應用前景。該方法已經在某DSP信號處理系統中得到應用。實際測試表明,該加載技術靈活可靠,完全滿足現場調試的需要。
參考文獻
[1] Texas Instruments. TMS320C6000 DSP host port interface reference guide[Z]. 2006.
[2] 左幜睿,劉永清,張傲華,等.基于以太網的DSP遠程加載技術研究[J].單片機與嵌入式系統應用,2012(5):24-26.
[3] 夏軍營,喬純捷,王剛,等.基于以太網接口的多DSP監控技術研究[J].計算機測量與控制,2007,15(7):913-915.
[4] 張曉亮.基于SOPC以太網技術的研究與實現[D].大連:大連理工大學,2007.
[5] 江華.基于TigerSHARC的可配置DSP系統動態加載技術[D].西安:西安電子科技大學,2006.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 久久看免费视频 | 中文字幕在线视频免费 | 日日干干 | 国产精品视频第一页 | 视频区小说区图片区激情 | 亚洲欧美人成网站综合在线 | 极品色天使在线婷婷天堂亚洲 | 久久国产高清视频 | 欧美黄色一级大片 | 91短视频免费在线观看 | 久久精品无码一区二区日韩av | 欧美一级鲁丝片 | 美女视频黄是免费的 | 一级特黄特黄xxx视频 | 免费一级特黄视频 | 亚洲 欧美 日韩在线一区 | 久久亚洲国产成人亚 | www.色com| 天天精品视频在线观看资源 | 好男人午夜www视频在线观看 | 91麻豆精品一二三区在线 | 日韩一区二区三区在线观看 | www在线视频| 精品日本亚洲一区二区三区 | 天天射天天干天天舔 | 成年偏黄网站站免费 | 久久精品国产精品亚洲艾 | 人人澡 人人澡 人人看欧美 | 波多野结衣与老人公gvg在线 | 有人有片的观看免费视频 | 国产亚洲欧美在线观看的 | 国产大片黄在线看免费 | 免费中文字幕视频 | 狠狠躁夜夜躁人人爽天天天天 | 午夜视频在线免费播放 | 国产a久久精品一区二区三区 | 999视频精品全部免费观看 | www.好吊色| 中国美女一级a毛片录像在线 | 天天插天天透天天狠 | 日韩手机看片 |