陳晶華,趙鶴鳴,邵雷
(蘇州大學 電子信息學院,蘇州 215012)
?
多核DSP的以太網遠程程序加載方法
陳晶華,趙鶴鳴,邵雷
(蘇州大學 電子信息學院,蘇州 215012)
為了解決工業(yè)遠程控制設備的軟件更新帶來的成本和效率問題,在研究了以TMS320C6670為核心的DSP系統(tǒng)的結構和程序啟動的基礎上,提出了基于以太網的DSP程序遠程加載方法。該方法主要基于BOOTP協(xié)議的廣播和以太網UDP協(xié)議實現(xiàn)。實踐表明,該加載技術靈活可靠,為遠程控制系統(tǒng)的調試和更新提供了便利。
多核DSP;以太網;程序引導
隨著科學技術的不斷進步,網絡通信技術和DSP技術飛速發(fā)展[1],許多智能儀器儀表、工業(yè)遠程控制設備等能夠接入到互聯(lián)網,實現(xiàn)網絡化、智能化的管理和控制。在這些設備中,有很多是以DSP為核心的設備,這些設備的程序代碼的引導啟動是一個很重要的問題。傳統(tǒng)的DSP設備的程序加載方法是通過硬件仿真器來完成的[2],但在實際工業(yè)應用中,這種方法存在仿真器攜帶不便攜和設備軟件維護更新不方便等缺點。因此基于網絡的DSP軟件更新就是一種很好的解決方案。
文中介紹了DSP程序加載的基本原理,以TI公司的多核DSP TMS320C6670為例,實現(xiàn)了一種基于以太網BOOTP協(xié)議的DSP程序加載技術,利用網絡通信實現(xiàn)DSP程序的動態(tài)加載[3],提高軟件更新效率。
這里使用傳統(tǒng)的PC機作為下載服務器,以TMS320C6670為核心的DSP設備作為客戶機[4],客戶機啟動后,不知道任何網絡信息,需要通過TCP/IP協(xié)議的相關協(xié)議IP、UDP、BOOTP提供的功能來實現(xiàn)信息的傳播??蛻魴C通過BOOTP協(xié)議獲得所需相關網絡信息,然后通過UDP協(xié)議包獲取待執(zhí)行的引導程序,并運行之[5]。
1.1 IP協(xié)議和UDP協(xié)議
IP(Internet Protocol,互聯(lián)網協(xié)議)是TCP/IP中網絡層協(xié)議。UDP(User Datagram Protocol,用戶數(shù)據(jù)報協(xié)議)是TCP/IP傳輸層的無連接協(xié)議。由于完整的TCP/IP協(xié)議將占用大量系統(tǒng)資源,所以在高可靠的局域網中,可以采用UDP協(xié)議發(fā)送數(shù)據(jù)包。
1.2 BOOTP協(xié)議
客戶機啟動時,需從網絡上獲取三種信息:本機的IP地址、下載服務器的IP地址、待下載的運行程序。
BOOTP(BOOTstrapping Protocol)能為無盤機獲得啟動所需的所有信息。在發(fā)送BOOTP請求之前,BOOTP客戶既不知道自己的IP地址,也不知道服務器的IP地址,BOOTP必須通過廣播方式發(fā)送請求。BOOTP服務器收到請求后,根據(jù)以太網地址,從下載數(shù)據(jù)庫中查出相應應答表項,構成BOOTP響應,再應答之。對于服務器而言,此時客戶機的IP地址已經知道,可以直接應答,不必用廣播方式。
BOOTP報文交易就是請求,響應一個來回,交易成功與否只有客戶知道,因此當服務器關閉或網絡工作不正常時,將導致交易出錯或報文丟失,客戶需進行重傳處理(每3 s重傳一次)。當有多個響應(多服務器響應或BOOTP應答延時),可設一個標志,客戶只接受并處理第一個響應,其余都拋棄。
1.3 BOOTP包格式
BOOTP包格式如圖1所示。
圖1 BOOTP包格式
包操作碼/消息類型:1=BOOTREQUEST(引導請求),2=BOOTREPLY(引導應答)。硬件地址類型:1=10M以太網。硬件地址長度:6是10M以太網。跳躍點數(shù):用于跨網引導,由路由器使用。事務ID:一個隨機數(shù),用來匹配引用請求和應答。客戶端引導所用秒數(shù):由客戶端填寫,客戶端引導開始后的過去的秒數(shù)??蛻舳薎P地址:BOOTP客戶將此置為0,要求服務器應答本客戶的IP地址。你的IP地址:BOOTP客戶將此設置為0。服務器IP地址:由服務器在引導應答返回。網關IP地址:用于跨網引導時使用??蛻舳擞布刂罚嚎蛻籼畛浔緳CMAC地址。服務器主機名:用于跨網引導時使用。引導文件名:BOOTP請求置為0,服務器應答時將由BOOTPTAB填充一個特定的運行程序路徑名。標準選項域:此域用于BOOTP客戶從服務器獲得一系列標準選項,例如網管IP地址、網關IP地址、DNS域名服務器IP地址、客戶機名等。
1.4 以太網數(shù)據(jù)包格式
以太網請求包格式如圖2所示。
圖2 以太網請求包格式
DIX以太網中包含目標MAC地址(一般為FF:FF:FF:FF:FF:FF)和源MAC地址(即設備本身MAC地址)。IPV4中包含版本號、長度、協(xié)議、校驗和及源地址IP和目標地址IP(這里IP地址均為0.0.0.0)。UDP中包含源端口、目標端口、長度及校驗和。
以太網引導包格式如圖3所示。
圖3 以太網引導包格式
系統(tǒng)采用多核TMS320C6670 DSP芯片作為主控芯片,其內置千兆網絡協(xié)處理器[6],所以外圍電路只需增加物理層芯片。結構框圖如圖4所示。
圖4 硬件結構框圖
客戶機:當硬件復位時,在RESET信號上升前,配置好開發(fā)板上的撥碼開關SW3、SW4、SW5、SW6,確定TMS320C6670芯片為以太網引導方式。RBL(ROM Boot Loader)配置SerDes,SGMII和PASS準備接收來自以太網接口的引導包。RBL配置發(fā)送通道發(fā)送以太網請求包(每3 s發(fā)送一次)。
服務器即PC機端用Wireshark軟件作為抓包軟件,以太網請求包廣播到服務器端,見圖5,從中可以看出間隔約3 s多客戶機廣播一次BOOTP包。
圖5 上位機接收到BOOTP
圖6 以太網請求包
圖6為以太網請求包主要內容,與原理中描述的以太網請求包格式是一致的,包含DIX以太網、IPV4、UDP協(xié)議和BOOTP協(xié)議包。
圖7為接收到的BOOTP包內容。
圖7 BOOTP包
服務器此時收到了BOOTP協(xié)議包,獲得了客戶機的MAC地址,此時要進行ARP(Address Resolution Protocol,地址解析協(xié)議)地址綁定。在完成上面兩步后,通過上位機通信程序將幀文件發(fā)送給客戶機[7-8]。圖8為截取的UDP發(fā)送圖。
圖8 UDP包發(fā)送
圖9為以太網引導包內容。
圖9 UDP太網引導包
當幀文件發(fā)送完畢后,客戶機根據(jù)接收來的數(shù)據(jù)進行處理,找到數(shù)據(jù)部分,進行啟動加載。
在CCS 開發(fā)環(huán)境下生成的目標文件是*.out, 即通用目標文件格式( COFF) 。該文件可以在CCS 開發(fā)環(huán)境下通過仿真器下載到DSP 目標板中運行調試, 但該代碼文件并不是DSP 中實際運行的程序代碼, 需用Hex工具( hex6x. exe) 進行轉換成引導表文件, 然后再用bconvert64x.exe和bootpacket.exe工具將引導表文件轉換成以太網引導格式數(shù)據(jù)文件,并封裝成幀文件。
[1] 李方慧.TMS320C6000系列DSPs芯片的原理與應用[M].北京:電子工業(yè)出版社, 2000.
[2] 劉德生, 李杰. 基于JTAG 的DSP 外部Flash 在線編程與引導技術[J]. 電子技術應用,2005(3).
[3] 卞紅雨,TMS320C6000系列DSP的CPU與外設[M].北京:清華大學出版社,2007.
[4] Texas Instruments Inc. TMS320C6670 data manual,2011.
[5] Texas Instruments Inc. KeyStone Architecture Bootloader User Guide,2012.
[6] Texas Instruments. KeyStone Architecture Network Coprocessor User Guide, 2010.
[7] Texas Instruments. TMS320C6000 Assembly Language Tools User Guide,2012.
[8] Texas Instruments. KeyStone Architecture Gigabit Ethernet Switch Subsystem User Guide, 2012.
陳晶華(碩士),主要研究方向為數(shù)字信號處理;趙鶴鳴(教授),主要研究方向為語音信號處理;邵雷(碩士),主要研究方向為嵌入式系統(tǒng)。
Ethernet Program Loading Based on Multi-core DSP
Chen Jinghua, Zhao Heming,Shao Lei
(College of Electronic Information, Soochow University,Suzhou 215012,China)
In order to solve the problems that cost and efficiency of industrial remote control device software update brings, based on the TMS320C6670 DSP core structure of the system and the program boots, this paper presents the remote loading method for Ethernet-based DSP software. The method is mainly based on the BOOTP protocol broadcast and Ethernet UDP protocol. Practice shows that the add-in flexible and reliable technology, which provides a convenient remote control system debugging and updating.
multi-core DSP;Ethernet;program guide
TP311.1
A
珍
2013-10-24)