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

摘  要: 提出了一種基于以太網(wǎng)DSP程序加載技術(shù),介紹了基于以太網(wǎng)的加載方法,包括網(wǎng)絡(luò)接口控制、HPI接口控制及Flash程序控制等關(guān)鍵技術(shù),并給出了該方法在工程中的實(shí)際應(yīng)用。與傳統(tǒng)的加載技術(shù)相比,該技術(shù)靈活方便,可脫離仿真器實(shí)現(xiàn)遠(yuǎn)程、大容量的程序代碼加載,快速完成DSP系統(tǒng)的軟件更新。
關(guān)鍵詞: 以太網(wǎng);TMS320C6713;HPI;引導(dǎo)加載

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

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

 

 

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

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

3 系統(tǒng)設(shè)計(jì)中的關(guān)鍵技術(shù)
 在系統(tǒng)設(shè)計(jì)中,主要涉及:網(wǎng)絡(luò)接口和HPI接口兩個(gè)接口,對這兩個(gè)接口的訪問控制非常重要。此外,HPI程序加載代碼的生成也非常關(guān)鍵。
3.1 網(wǎng)絡(luò)接口的實(shí)現(xiàn)
 網(wǎng)絡(luò)接口采用FPGA編寫IP核的方式來實(shí)現(xiàn),主要是MAC層控制器的設(shè)計(jì),其既可以集成于網(wǎng)絡(luò)終端設(shè)備中實(shí)現(xiàn)網(wǎng)絡(luò)接入,同時(shí)又是開發(fā)網(wǎng)橋、交換機(jī)等網(wǎng)絡(luò)互聯(lián)的設(shè)備。整個(gè)MAC分為10個(gè)模塊,其構(gòu)成圖如圖4所示。每個(gè)模塊都完成相對獨(dú)立的一系列功能,各模塊的功能如下。

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

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。