基于以太网传输的嵌入式多核DSP自启引导

2016-11-28 01:29李敬超徐彬彬
微处理机 2016年5期
关键词:镜像文件镜像以太网

欧 斌,李敬超,高 霞,徐彬彬

(重庆金美通信有限责任公司,重庆400030)

基于以太网传输的嵌入式多核DSP自启引导

欧斌,李敬超,高霞,徐彬彬

(重庆金美通信有限责任公司,重庆400030)

TI推出的基于KeyStone架构的TMS320C66xx系列产品在图像处理、语音处理、信号处理等诸多领域得到了广泛应用,多核自启引导关系到DSP内核代码之间能否在离线模式下同步并行工作和独立自主运行。结合以太网接口的高速传输特性和NAND FLASH大容量非易失存储优势,通过在FLASH烧写程序中嵌入UDP协议代码实现多核镜像文件的以太网传输功能,并且对IBL二级自启引导代码进行改进,实现了多核镜像文件从FLASH到内核的引导。经过在TMS320C6670 DSP平台上验证,该设计能够实现多核程序代码到FLASH的高效传输、烧写和自启引导,为嵌入式DSP设备出厂制造和程序升级提供了新的思路。

嵌入式;多核;自启引导;以太网;DSP处理器;NAND FLASH存储器

1 引 言

TI推出的基于KeyStone架构的TMS320C66xx系列产品在图像处理、语音处理、信号处理等诸多领域得到了广泛应用[1]。其采用的多核并行和高速接口工作机制,提高了DSP的处理能力,高效地进行多核程序的自启引导和程序升级成为设备成品和离厂维护的必备选择。

DSP的自启引导可分为处理器加载和存储器加载两种模式。前者需要其它处理器作为上位机通过网口[2]、RapidIO、HyperLink、PCIe等高速接口快速加载应用程序;后者通过存储在非易失的EEPROM、FLASH等存储芯片中可实现DSP加载应用程序[3]。嵌入式的DSP系统普遍采用存储器模式的独立自启设计。一般I2C总线连接EEPROM容量较小,主要用于存储较小体积的引导程序,例如DSP的二级引导程序IBL。大容量用户程序自启引导需要FLASH存储器完成加载。

以TMS320C6670为例,通过对自启引导程序的重新设计,提出了一种通过千兆以太网进行镜像传输,使用串口监控和指导NAND FLASH程序烧写和更新,实现DSP多核程序自启引导的方法。

2 系统架构

嵌入式的DSP用户程序镜像的传输烧写、自启引导工作主要使用PC客户端、DSP内核、外部存储三大模块的协调工作完成,整个系统的架构设计如图1所示。

PC模块主要用于完成用户镜像文件的传输,以及程序运行状态的监控和控制处理。外存用于存放自启引导所需的镜像文件和自启引导程序。DSP模块作为核心部分完成镜像的烧写和加载工作。

图1 系统架构

3 硬件设计

DSP提供了UART接口[4],需要通过在外部电路中接入MAX3221换为RS232信号,以方便PC机通过USB转串口工具同DSP进行通信。串口电路如图2所示。

图2 串口电路

DSP提供了SGMII高速接口用于数据的高效传输。为实现DSP与PC的网络通信,需要将通信接口SGMII与PHY相连,然后通过变压器和RJ45连接,配置为标准的以太网接口进行通信。以太网接口电路如图3所示。

图3 以太网接口电路

DSP6670的NAND FLASH通过GPIO接口同DSP连接[5],用于存储DSP多核镜像。EEPROM通过I2C总线同DSP连接用于存储二级自启程序IBL[3、6]。存储电路如图4所示。

图4 存储电路

4 软件设计

4.1多核镜像传输和烧写设计

TI提供了NAND FLASH的烧写工程,传统模式下,从PC通过仿真线加载用户镜像文件并写入FLASH。通过在以太网系统工程中嵌入NAND FLASH烧写模块实现PC同DSP之间的以太网通信,用于接收镜像文件并直接对其进行烧写[7]。改进的以太网系统镜像文件预先使用传统方式烧写到FLASH中,当用户需要进行程序更新时,DSP加电启动后会从FLASH中加载该工程。流程图如图5所示,具体介绍如下:

图5 多核镜像的传输和烧写流程

(1)以太网系统传输模块

DSP接收包含多核镜像的以太网包需要本地MAC和IP地址进行匹配,然后通过多核导航器QMSS接收描述符装载的数据流到内存空间,最后通过轮询或中断的方式判断传输的数据量是否满足以太网包包含的镜像大小信息,决定是否接收完成。这一过程通过使能多核导航器QMSS,CPPI通道,SGMII高速口以及以太网收发线程完成。接收完成的多核镜像文件暂存在DSP DDR3内存,等待写入FLASH。

(2)NAND FLASH烧写模块

NAND FLASH的读写、擦除均是以块为单位进行的,因此存放在DSP内存的镜像数据要进行分块处理,然后根据以太网包中包含的镜像文件存储区域信息通过NAND FLASH的驱动程序写入到FLASH中相应的代码存储区域。

4.2多核镜像加载和引导设计

TI提供的NAND FLASH的二级引导代码只可进行单核应用程序的加载,需要对其进行扩展设计,完成多核程序的加载和引导功能。多核镜像的加载流程如图6所示,具体过程如下:

图6 多核镜像加载引导流程图

(1)程序升级选择阶段

DSP加电启动时需要用户选择正常加载多核镜像文件或烧写程序镜像文件,该指令通过更改IBL中的程序加入UART串口输入功能完成。

(2)多核程序加载阶段

将多核镜像文件各自存放在FLASH中的地址参数提供给IBL的NAND Boot函数后使其循环运行,该函数通过查询FLASH内OUT文件的标识,开始以代码段的模式加载到DSP相应内存中,完成FLASH中用户代码到DSP的加载。

(3)多核并行自启动预处理阶段

多核自启动需要从BOOT_MAGIC地址内获取入口地址(_c_int00)方能开始运行。在IBL启动程序中,预先将各个核的入口地址写入多核处理器各自L2SDRAM内存上的BOOT_MAGIC全局地址内(0x1*8ffffc,‘*'为内核标号)[8],IBL运行完之后跳转到主核(CORE0)入口地址开始运行。主核通过IPC中断进行核间触发,从核(CORE1~CORE3)被激活,从各自BOOT_MAGIC内获取入口地址开始执行应用程序,从而实现多核应用程序并行工作。

需要注意的是,从核存储在DSP L2SDRAM的代码和数据需要在存储映射文件中设置为全局地址,否则CPU将会认为该地址为主核CORE0的L2局部地址运行,导致程序紊乱。

5 测试与验证

DSP设置为NAND BOOT模式启动后,串口打印如图7所示。wait等待接受指令,输入升级指令后,接收到以太网客户端发送的多核用户OUT文件,并自动完成多核镜像的烧写,说明镜像传输和FLASH烧写功能正常。

重启DSP后,串口打印如图8所示,IBL等待超时后自动加载多核用户程序,各核均有串口输出,证明多核自启引导运行正常。

图7 镜像传输和烧写验证

图8 多核自启引导验证

6 结束语

通过嵌入带有以太网传输模块的DSP升级程序和IBL的扩展设计,实现了通过千兆以太网接口进行多核应用程序的高效快速升级更新和自启引导,对批量DSP设备的生产制造和软件升级维护具有一定的参考价值。

[1]Texas Instruments Incorporated.TMS320C6670 multicore fixed and floating-point system on chip user guide[EB/OL].Http://www.ti.com.cn.2012.

[2]Texas Instruments Incorporated.KeyStone Architecture GbE Swith subsystem[EB/OL].Http://www.ti.com.cn.2012.

[3]Texas Instruments Incorporated.KeyStone Architecture Bootloader[EB/OL].Http://www.ti.com.cn.2012.

[4]Texas Instruments Incorporated.KeyStone Architecture Universal Asynchronous Receiver_Transmitter(UART)[EB/OL].Http://www.ti.com.cn.2012.

[5]Texas Instruments Incorporated.KeyStone Architecture EMIF16[EB/OL].Http://www.ti.com.cn.2012.

[6]Texas Instruments Incorporated.KeyStone Architecture I2C[EB/OL].Http://www.ti.com.cn.2012.

[7]左颢睿,刘永清,张傲华,等.基于以太网的DSP远程加载技术研究[J].单片机与嵌入式系统应用,2012(5):24-26.Zuo Hao-rui,Liu Yong-qing,Zhang Ao-hua,et al.Remote Loading Technology Research of DSP Based on Ethernet[J].Microcontrollers&Embedded Systems,2012(5):24-26.

[8]刘章文,刘七华,谢川林,等.基于TMS320C6678的多核DSP上电加载技术[J].现代电子技术,2013,36(18):111-114.Liu Zhangwen,Liu Qihua,Xie Chuanlin,et al.Multi core DSP BootLoad technology based on TMS320C6678[J].Modern Electronics Technique,2013,36(18):111-114.

Bootloader of Embedded Muti-core DSP Based on Ethernet

Ou Bin,Li Jingchao,Gao Xia,Xu Binbin
(Chongqing Jinmei Communication CO.,Ltd.,Chongqing 400030,China)

A series of TMS320C66xx DSPs from TI,based on KeyStone,are widely used in fields of image processing,signal processing and speech processing.The multi-core DSP boot load affects operation between kernel code,sync parallel and independently run in offline mode.In this paper,combined with high-speed Ethernet interface transmission characteristics and high capacity NAND FLASH nonvolatile storage advantage,the multi-core image files from Ethernet are

by embedding UDP protocol to FLASH programmer procedures,and the multi-core image files are loaded from the FLASH to the kernel by improving IBL boot code.The proof on the TMS320C6670 DSP platform shows that it enables efficient transmission of multi-core code to FLASH and provides a new thinking for embedded DSP device in factory manufacture and upgrade field.

Embedded;Muti-core;Bootload;Ethernet;DSP;NAND FLASH

10.3969/j.issn.1002-2279.2016.05.021

TN964

A

1002-2279(2016)05-0089-03

欧斌(1982-),男,四川省德阳市人,硕士研究生,主研方向:无线通信。

2016-01-07

猜你喜欢
镜像文件镜像以太网
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
镜像
新旧电脑资料迁移高效帮手
镜像
没光驱不要紧 装个免费虚拟的
开发闲置内存,为本本轻松提速
用RamOS降低公用机的维护工作量
谈实时以太网EtherCAT技术在变电站自动化中的应用
浅谈EPON与工业以太网在贵遵高速公路中的应用
镜像