基于以太网的DSP远程加载技术研究 - 数模混合 -
DSP具有高速的计算能力与丰富的外设接口,被广泛应用于嵌入式系统中。很多基于DSP的嵌入式系统被配置于苛刻的环境或偏远地区,当需要软件升级或程序更新时,人员无法进入或很难到达相应环境中,必须采用远程加载技术来完成升级和更新。以太网具有传输距离远、传输速率高的优点,是远程数据传输的良好载体,目前主流的DSP芯片均可扩展以太网接口。本文结合以太网技术,以TI公司的DSP芯片为例对DSP远程加载技术进行了研究。
DSP远程加载的核心思想包括3个方面:
① DSP能够收发远程控制端数据;
② DSP能够更新存放用户程序的Flash区域;
③ DSP能够获取用户配置选择是否需要远程加载。
基于上述3点,本文对DSP网络接口技术、DSP与Flash接口及驱动技术、远程加载配置技术进行了研究。
1 远程加载的硬件基础
1.1 DSP以太网接口技术
(1) 通过专用接口芯片扩展以太网接口
在TI公司早期的DSP中,如C5000、C6201、C6701等系列,芯片内部没有集成专用的以太网控制器,无法直接与以太网进行通信,必须通过DSP的EMIF(外部存储接口)与专用接口芯片连接来扩展以太网。这些专用芯片有CP2200、MC9S12NE6等。图1给出了TMS320C5410与CP2200的接口示意图[1]。

图1 TMS320C5410与CP2200的接口示意图
(2) 通过片内专用接口扩展以太网接口
随着DSP制造工艺的提高,很多DSP芯片内部已经集成了以太网控制器,如DM642、C6455、C6416等,只需要外接物理层芯片(如RTL8019AS、82540EM等)即可扩展以太网接口。图2给出了DSP通过片内专用接口直接扩展以太网示意图。

图2 DSP通过片内专用接口直接扩展以太网示意图
1.2 可编程Flash芯片
TI公司的高速DSP(C5000、C6000系列)均没有片上非易失性存储器,必须将程序保存在外部非易失性存储器中。通常采用可编程Flash存储器对DSP程序进行存储和加载,常用的Flash芯片有Intel公司的E28Fxx系列和AMD公司的AM29xx系列。图3给出了DSP与Flash的典型接口电路[2]。

图3 DSP与Flash的典型接口电路
1.3 远程运行模式配置
DSP在上电后,需要明确知道当前是处于程序更新模式还是处于程序正常运行模式,这就需要采用外部硬件控制电路,对DSP的加载进行配置,

图4 远程DSP配置加载模式电路示例
图4给出了一种远程DSP配置加载模式电路的示例。
用户通过远程配置DSP的GPIO接口为高电平或低电平来告知加载程序是否执行远程加载,在实际应用中具体实现可由用户自己定义。
2 远程加载的软件基础
2.1 NDK简介
在DSP上直接编写网络接口程序非常复杂,为了屏蔽底层细节,使用户可以将资源重点投入到应用程序的开发中,TI公司提供了网络开发套件NDK( Network Developer’s Kit)。NDK提供了从DSP底层驱动到TCP/IP" target="_blank">IP协议的整体解决方案,支持常规的TCP/IP服务,是实现DSP以太网扩展的重要支撑工具。图5给出了NDK的系统结构图[3]。

图5 NDK系统结构图
2.2 Flash驱动程序
Flash芯片需要专用的指令对其进行操作,主要指令包括擦除、读、写、复位等,根据这些操作指令就可以设计Flash驱动程序,图6给出了C6000系列的DSP对AM29F040进行编程的流程[4]。其中EMIF_Base_Addr为DSP外部存储接口地址;Prog_addr为目标Flash编程地址;Prog_data为目标Flash编程数据。

图6 Flash编程流程
3 基于网络的远程加载方法
3.1 远程加载流程
图7给出了典型的DSP加载方式以及程序在Flash中的存储方式,二次加载程序直接将用户程序加载到DSP中,无需额外处理[5]。

图7 典型的DSP加载方式
采用图7中所示方式无法实现远程加载,可以对典型加载方式进行扩展,增加网络接口功能,更改Flash存储方式,从而实现远程加载。DSP远程加载方式如图8所示。

查看评论 回复