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