多核DSP的以太網(wǎng)遠程程序加載方法
摘要:為了解決工業(yè)遠程控制設(shè)備的軟件更新帶來的成本和效率問題,在研究了以TMS320C6670為核心的DSP系統(tǒng)的結(jié)構(gòu)和程序啟動的基礎(chǔ)上,提出了基于以太網(wǎng)的DSP程序遠程加載方法。該方法主要基于BOOTP協(xié)議的廣播和以太網(wǎng)UDP協(xié)議實現(xiàn)。實踐表明,該加載技術(shù)靈活可靠,為遠程控制系統(tǒng)的調(diào)試和更新提供了便利。
本文引用地址:http://butianyuan.cn/article/201610/306406.htm引言
隨著科學(xué)技術(shù)的不斷進步,網(wǎng)絡(luò)通信技術(shù)和DSP技術(shù)飛速發(fā)展,許多智能儀器儀表、工業(yè)遠程控制設(shè)備等能夠接入到互聯(lián)網(wǎng),實現(xiàn)網(wǎng)絡(luò)化、智能化的管理和控制。在這些設(shè)備中,有很多是以DSP為核心的設(shè)備,這些設(shè)備的程序代碼的引導(dǎo)啟動是一個很重要的問題。傳統(tǒng)的DSP設(shè)備的程序加載方法是通過硬件仿真器來完成的,但在實際工業(yè)應(yīng)用中,這種方法存在仿真器攜帶不便攜和設(shè)備軟件維護更新不方便等缺點。因此基于網(wǎng)絡(luò)的DSP軟件更新就是一種很好的解決方案。
文中介紹了DSP程序加載的基本原理,以TI公司的多核DSP TMS320C6670為例,實現(xiàn)了一種基于以太網(wǎng)BOOTP協(xié)議的DSP程序加載技術(shù),利用網(wǎng)絡(luò)通信實現(xiàn)DSP程序的動態(tài)加載,提高軟件更新效率。
1 原理
這里使用傳統(tǒng)的PC機作為下載服務(wù)器,以TMS320C6670為核心的DSP設(shè)備作為客戶機,客戶機啟動后,不知道任何網(wǎng)絡(luò)信息,需要通過TCP/IP協(xié)議的相關(guān)協(xié)議IP、UDP、BOOTP提供的功能來實現(xiàn)信息的傳播??蛻魴C通過BOOTP協(xié)議獲得所需相關(guān)網(wǎng)絡(luò)信息,然后通過UDP協(xié)議包獲取待執(zhí)行的引導(dǎo)程序,并運行之。
1.1 IP協(xié)議和UDP協(xié)議
IP(Internet Protocol,互聯(lián)網(wǎng)協(xié)議)是TCP/IP中網(wǎng)絡(luò)層協(xié)議。UDP(User Datagram Protocol,用戶數(shù)據(jù)報協(xié)議)是TC尸/IP傳輸層的無連接協(xié)議。由于完整的TCP/IP協(xié)議將占用大量系統(tǒng)資源,所以在高可靠的局域網(wǎng)中,可以采用UDP協(xié)議發(fā)送數(shù)據(jù)包。
1.2 BOOTP協(xié)議
客戶機啟動時,需從網(wǎng)絡(luò)上獲取三種信息:本機的IP地址、下載服務(wù)器的IP地址、待下載的運行程序。
BOOTP(BOOTstrapping Protocol)能為無盤機獲得啟動所需的所有信息。在發(fā)送BOOTP請求之前,BOOTP客戶既不知道自己的IP地址,也不知道服務(wù)器的IP地址,BOOTP必須通過廣播方式發(fā)送請求。BOOTP服務(wù)器收到請求后,根據(jù)以太網(wǎng)地址,從下載數(shù)據(jù)庫中查出相應(yīng)應(yīng)答表項,構(gòu)成BOOTP響應(yīng),再應(yīng)答之。對于服務(wù)器而言,此時客戶機的IP地址已經(jīng)知道,可以直接應(yīng)答,不必用廣播方式。
BOOTP報文交易就是請求,響應(yīng)一個來回,交易成功與否只有客戶知道,因此當(dāng)服務(wù)器關(guān)閉或網(wǎng)絡(luò)工作不正常時,將導(dǎo)致交易出錯或報文丟失,客戶需進行重傳處理(每3 s重傳一次)。當(dāng)有多個響應(yīng)(多服務(wù)器響應(yīng)或BOOTP應(yīng)答延時),可設(shè)一個標(biāo)志,客戶只接受并處理第一個響應(yīng),其余都拋棄。
1.3 BOOTP包格式
BOOTP包格式如圖1所示。
包操作碼/消息類型:1=BOOTREQUEST(引導(dǎo)請求),2=BOOTREPLY(引導(dǎo)應(yīng)答)。硬件地址類型:1=10M以太網(wǎng)。硬件地址長度:6是10M以太網(wǎng)。跳躍點數(shù):用于跨網(wǎng)引導(dǎo),由路由器使用。事務(wù)ID:一個隨機數(shù),用來匹配引用請求和應(yīng)答??蛻舳艘龑?dǎo)所用秒數(shù):由客戶端填寫,客戶端引導(dǎo)開始后的過去的秒數(shù)??蛻舳薎P地址:BOOTP客戶將此置為0,要求服務(wù)器應(yīng)答本客戶的IP地址。你的IP地址:BOOTP客戶將此設(shè)置為0。服務(wù)器IP地址:由服務(wù)器在引導(dǎo)應(yīng)答返回。網(wǎng)關(guān)IP地址:用于跨網(wǎng)引導(dǎo)時使用。客戶端硬件地址:客戶填充本機MAC地址。服務(wù)器主機名:用于跨網(wǎng)引導(dǎo)時使用。引導(dǎo)文件名:BOOTP請求置為0,服務(wù)器應(yīng)答時將由BOOTPTAB填充一個特定的運行程序路徑名。標(biāo)準(zhǔn)選項域:此域用于BOOTP客戶從服務(wù)器獲得一系列標(biāo)準(zhǔn)選項,例如網(wǎng)管IP地址、網(wǎng)關(guān)IP地址、DNS域名服務(wù)器IP地址、客戶機名等。
1.4 以太網(wǎng)數(shù)據(jù)包格式
以太網(wǎng)請求包格式如圖2所示。
DIX以太網(wǎng)中包含目標(biāo)MAC地址(一般為FF:FF:FF:FF:FF:FF)和源MAC地址(即設(shè)備本身MAC地址)。IPV4中包含版本號、長度、協(xié)議、校驗和及源地址IP和目標(biāo)地址IP(這里IP地址均為0.0.0.0)。UDP中包含源端口、目標(biāo)端口、長度及校驗和。
以太網(wǎng)引導(dǎo)包格式如圖3所示。
2 硬件設(shè)計
系統(tǒng)采用多核TMS320C6670 DSP芯片作為主控芯片,其內(nèi)置千兆網(wǎng)絡(luò)協(xié)處理器,所以外圍電路只需增加物理層芯片。結(jié)構(gòu)框圖如圖4所示。
3 下載實現(xiàn)過程
客戶機:當(dāng)硬件復(fù)位時,在RESET信號上升前,配置好開發(fā)板上的撥碼開關(guān)SW3、SW4、SW5、SW6,確定TMS320C6670芯片為以太網(wǎng)引導(dǎo)方式。RBL(ROM BootLoader)配置SerDes,SGMII和PASS準(zhǔn)備接收來自以太網(wǎng)接口的引導(dǎo)包。RBL配置發(fā)送通道發(fā)送以太網(wǎng)請求包(每3 s發(fā)送一次)。
服務(wù)器即PC機端用Wireshark軟件作為抓包軟件,以太網(wǎng)請求包廣播到服務(wù)器端,見圖5,從中可以看出間隔約3 s多客戶機廣播一次BOO TP包。
圖6為以太網(wǎng)請求包主要內(nèi)容,與原理中描述的以太網(wǎng)請求包格式是一致的,包含DIX以太網(wǎng)、IPV4、UDP協(xié)議和BOOTP協(xié)議包。
圖7為接收到的BOOTP包內(nèi)容。
服務(wù)器此時收到了BOOTP協(xié)議包,獲得了客戶機的MAC地址,此時要進行ARP(Address Resolution Protocol,地址解析協(xié)議)地址綁定。在完成上面兩步后,通過上位機通信程序?qū)募l(fā)送給客戶機。圖8為截取的UDP發(fā)送圖。
圖9為以太網(wǎng)引導(dǎo)包內(nèi)容。
當(dāng)幀文件發(fā)送完畢后,客戶機根據(jù)接收來的數(shù)據(jù)進行處理,找到數(shù)據(jù)部分,進行啟動加載。
在CCS開發(fā)環(huán)境下生成的目標(biāo)文件是*.out,即通用目標(biāo)文件格式(COFF)。該文件可以在CCS開發(fā)環(huán)境下通過仿真器下載到DSP目標(biāo)板中運行調(diào)試,但該代碼文件并不是DSP中實際運行的程序代碼,需用Hex工具(hex6x.exe)進行轉(zhuǎn)換成引導(dǎo)表文件,然后再用bconvert64x.exe和bootpacket.exe下具將引導(dǎo)表文件轉(zhuǎn)換成以太網(wǎng)引導(dǎo)格式數(shù)據(jù)文件,并封裝成幀文件。
結(jié)語
文中介紹了一種基于以太網(wǎng)的DSP引導(dǎo)程序加載技術(shù),該技術(shù)在多核高性能DSP系統(tǒng)的程序引導(dǎo)及系統(tǒng)的軟件更新等工程應(yīng)用領(lǐng)域具有獨特的優(yōu)勢和較好的應(yīng)用前景。目前已成功運用在網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的軟件更新。實踐表明,該引導(dǎo)加載技術(shù)靈活可靠,為遠程控制系統(tǒng)的調(diào)試和更新提供了便利。
評論