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