基于以太网BOOTP协议的DSP程序加载技术

处理器/DSP

870人已加入

描述

为了解决工业远程控制设备的软件更新带来的成本和效率问题,在研究了以TMS320C6670为核心的DSP系统的结构和程序启动的基础上,提出了基于以太网的DSP程序远程加载方法。该方法主要基于BOOTP协议的广播和以太网UDP协议实现。实践表明,该加载技术灵活可靠,为远程控制系统的调试和更新提供了便利。

引言

随着科学技术的不断进步,网络通信技术和DSP技术飞速发展,许多智能仪器仪表、工业远程控制设备等能够接入到互联网,实现网络化、智能化的管理和控制。在这些设备中,有很多是以DSP为核心的设备,这些设备的程序代码的引导启动是一个很重要的问题。传统的DSP设备的程序加载方法是通过硬件仿真器来完成的,但在实际工业应用中,这种方法存在仿真器携带不便携和设备软件维护更新不方便等缺点。因此基于网络的DSP软件更新就是一种很好的解决方案。

文中介绍了DSP程序加载的基本原理,以TI公司的多核DSP TMS320C6670为例,实现了一种基于以太网BOOTP协议的DSP程序加载技术,利用网络通信实现DSP程序的动态加载,提高软件更新效率。

1 原理

这里使用传统的PC机作为下载服务器,以TMS320C6670为核心的DSP设备作为客户机,客户机启动后,不知道任何网络信息,需要通过TCP/IP协议的相关协议IP、UDP、BOOTP提供的功能来实现信息的传播。客户机通过BOOTP协议获得所需相关网络信息,然后通过UDP协议包获取待执行的引导程序,并运行之。

1.1 IP协议和UDP协议

IP(Internet Protocol,互联网协议)是TCP/IP中网络层协议。UDP(User Datagram Protocol,用户数据报协议)是TC尸/IP传输层的无连接协议。由于完整的TCP/IP协议将占用大量系统资源,所以在高可靠的局域网中,可以采用UDP协议发送数据包。

1.2 BOOTP协议

客户机启动时,需从网络上获取三种信息:本机的IP地址、下载服务器的IP地址、待下载的运行程序。

BOOTP(BOOTstrapping Protocol)能为无盘机获得启动所需的所有信息。在发送BOOTP请求之前,BOOTP客户既不知道自己的IP地址,也不知道服务器的IP地址,BOOTP必须通过广播方式发送请求。BOOTP服务器收到请求后,根据以太网地址,从下载数据库中查出相应应答表项,构成BOOTP响应,再应答之。对于服务器而言,此时客户机的IP地址已经知道,可以直接应答,不必用广播方式。

BOOTP报文交易就是请求,响应一个来回,交易成功与否只有客户知道,因此当服务器关闭或网络工作不正常时,将导致交易出错或报文丢失,客户需进行重传处理(每3 s重传一次)。当有多个响应(多服务器响应或BOOTP应答延时),可设一个标志,客户只接受并处理第一个响应,其余都抛弃。

1.3 BOOTP包格式

BOOTP包格式如图1所示。

dsp

包操作码/消息类型:1=BOOTREQUEST(引导请求),2=BOOTREPLY(引导应答)。硬件地址类型:1=10M以太网。硬件地址长度:6是10M以太网。跳跃点数:用于跨网引导,由路由器使用。事务ID:一个随机数,用来匹配引用请求和应答。客户端引导所用秒数:由客户端填写,客户端引导开始后的过去的秒数。客户端IP地址:BOOTP客户将此置为0,要求服务器应答本客户的IP地址。你的IP地址:BOOTP客户将此设置为0。服务器IP地址:由服务器在引导应答返回。网关IP地址:用于跨网引导时使用。客户端硬件地址:客户填充本机MAC地址。服务器主机名:用于跨网引导时使用。引导文件名:BOOTP请求置为0,服务器应答时将由BOOTPTAB填充一个特定的运行程序路径名。标准选项域:此域用于BOOTP客户从服务器获得一系列标准选项,例如网管IP地址、网关IP地址、DNS域名服务器IP地址、客户机名等。

1.4 以太网数据包格式

以太网请求包格式如图2所示。

dsp

DIX以太网中包含目标MAC地址(一般为FF:FF:FF:FF:FF:FF)和源MAC地址(即设备本身MAC地址)。IPV4中包含版本号、长度、协议、校验和及源地址IP和目标地址IP(这里IP地址均为0.0.0.0)。UDP中包含源端口、目标端口、长度及校验和。

以太网引导包格式如图3所示。

dsp

2 硬件设计

系统采用多核TMS320C6670 DSP芯片作为主控芯片,其内置千兆网络协处理器,所以外围电路只需增加物理层芯片。结构框图如图4所示。

dsp

3 下载实现过程

客户机:当硬件复位时,在RESET信号上升前,配置好开发板上的拨码开关SW3、SW4、SW5、SW6,确定TMS320C6670芯片为以太网引导方式。RBL(ROM BootLoader)配置SerDes,SGMII和PASS准备接收来自以太网接口的引导包。RBL配置发送通道发送以太网请求包(每3 s发送一次)。

服务器即PC机端用Wireshark软件作为抓包软件,以太网请求包广播到服务器端,见图5,从中可以看出间隔约3 s多客户机广播一次BOO TP包。

dsp

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分