一种串行I2C方式的DSP引导方法及实现方案

2010-09-14 08:58:58丁若愚
石油管材与仪器 2010年3期
关键词:用户程序存储器寄存器

井 静 丁若愚 胡 强

(东方地球物理勘探有限责任公司西安物探装备分公司 陕西西安)

一种串行I2C方式的DSP引导方法及实现方案

井 静 丁若愚 胡 强

(东方地球物理勘探有限责任公司西安物探装备分公司 陕西西安)

通过分析TI公司TMS320VC5502DSP芯片上电后的自动加载原理和模式,详细介绍了一种串行I2C方式的DSP引导方法及该方案的硬件实现和引导表的制作方法。利用代码转换工具将CCS生成的.out文件转换成.hex文件,实现了DSP的上电自举功能。

DSP芯片;串行I2C方式;代码转换;上电自举

0 引 言

数字信号处理(DigitalSignalProcessing,简称DSP)是一门涉及多学科而又广泛应用于多领域的技术,随着计算机和信息技术的飞速发展,数字信号处理技术也得到迅速的发展。DSP器件以其卓越的性能、独有的特点,已经成为通信、计算机领域的基础器件。在CCS开发环境下,PC机通过不同类型的JTAG电缆与用户目标系统中的DSP通信,帮助用户完成调试工作。当用户在CCS环境下完成开发任务,编写完成程序之后,需要脱离PC的环境,并要求系统上电后可自行启动并执行用户软件代码,这就需要用到BootLoader技术将程序代码存储在非易失性存储器中。Boot-Loader即DSP芯片在上电或复位时,从外设转移代码和数据到片内RAM的过程。这样既利用了外部的存储单元扩展DSP本身有限的ROM资源,又充分发挥了DSP内部资源的效能,是开发DSP应用系统必须做的重要一步。

本文以TI公司的TMS320VC5502和外部扩展的I2C存储器CAT24WC256为对象,分析并实现系统的上电自动加载。

1 TMS320VC5502BootLoader的模式和基本原理

TI公司的TMS320VC5502属于定点数字信号处理器,最高主频可达300MHz,最大处理能力高达600 MI/s。TMS320VC5502片内资源丰富,具有32K×l6 bit的片内RAM、16K×l6bit的片内ROM、锁相环发生器(PLL)、6个相互独立编程的DMA控制器、3个多通道缓冲串口(McBSP)、定时器和32位外部存储器扩展接口(EMIF)等。其中32位的外部存储器扩展接口可实现与异步存储器件(SRAM、EPROM)和同步存储器件(SDRAM、SBRAM)的无缝连接,最大可寻址8M×l6bit的外部存储空间[1]。

TMS320VC5502的BootLoader允许用以下的方式加载RAM:HPI(增强主机接口)、16bit的异步存储器模式、标准16bit串口模式、串行 EEPROM模式、串行I2C模式、并口模式和通用I/O口模式,选择这些模式是通过设置BOOTM[2:0]这三个管脚来完成,BOOTM[2:0]和通用I/O口复用,具体配置见表1[2]。

表1 Boot模式选项

当BootLoader开始执行之前,必须有一个初始化的过程,见表2[2],在执行完这一系列初始化(配置堆栈寄存器、关闭中断、程序临时入口、符号扩展、兼容性配置)工作后,根据预先配置的自举模式,通过固化在ROM内的Bootloader程序进行程序引导。

表2 BootLoader初始化

DSP从上电复位到进入工作状态前一瞬间的这个阶段称为Boot阶段。DSP内部ROM空间中固化了一些程序和查找表,如表3所示。当上电后,程序指针自动指向ROM中的Bootloader程序,程序会根据相应的环境选用相应的程序加载方法,将外部程序搬移到DSP内部的RAM程序区中,并将程序指针移到执行程序的第1行处。Bootloader程序很短,主要完成一些数据的搬移和重定位等工作。

表3 TMS320VC5502片上ROM内容

2 TMS320VC5502串行I2C模式BootLoader的实现

本文着重介绍串行 I2C模式下BootLoader的实现,I2C总线是各种总线中使用信号线最少的,电路连接见图1,使用I2C总线设计计算机系统十分方便灵活,体积也小,因而在各类实际应用中得到广泛应用,我们选择CATALYST公司的CAT24WC256做为外部存储器,它是一个256K位串行CMOSE2PROM,内部含有32768个字节(每字节为8位),有一个64字节页写缓冲器,100000编程/擦写周期,可保存数据 100年。

图1 电路连接图

根据前面的介绍,选择I2C模式进行Bootloader只需设置BOOTM[2:0]这三个管脚,即 GPIO2、GPIO1、GPIO0的值分别设为1、1、0即可。

2.1 引导表的生成

Bootloader在引导程序时,程序代码是以引导表格形式加载的。TMS320VC5502的引导表结构中包括了用户程序的代码段和数据段以及相应段在内存中的指定存储位置,此外还包括了程序入口地址、部分寄存器的配置值、可编程延时时间等信息。结构如表4所示[3]。

表4 TMS320VC55XX引导表结构

其中,程序入口地址是引导表加载结束后,用户程序开始执行的地址;寄存器数目配置决定有多少个寄存器需要配置;延时标志是0xFFFF时,延时会被执行;延时长度决定在寄存器配置后延时多少个CPU周期;段长度、段起始地址和数据为程序中定义的各个段的内容,并且可以重复添加;最后以32个0作为引导表的结束标志。

下面我们以一个例子来介绍引导表的生成:

源程序xxx.pjt经过CCS的编译链接生成xxx.out文件。编写一个文件名为test.cmd的CMD文件。在CCS的安装目录X: ic5500cgtoolsin下可以找到TI公司的专用代码转换器hex55.exe这个转换工具。将hex55.exe、xxx.out和test.cmd放在同一个目录下,在DOS环境或命令提示符下切换到这个目录,执行命令行:hex55test.cmd,即可得到xxx.hex文件,test.cmd文件如下:

2.2 Bootloader的实现

做完引导表后,只需将xxx.hex文件烧写进I2C器件中去,现在将所有过程列下:

1)用CCS软件生成.out格式的文件;

2)将 GPIO2、GPIO1、GPIO0 分别设为 1、1、0;(可根据不同的模式选择)

3)在CCS的安装目录下,X: ic5500cgtoolsin,找到hex55.exe文件;

4)做一个cmd连接命令;

5)把 CCS 编译生成的.out、cmd、hex55 放在同一个目录下,进入命令提示符,cd命令到这个文件夹,运行hex55xxx.cmd,即可转换成.hex文件。

6)用烧写器烧写 I2C即可,在这使用SUPERPRO 280U烧写器,加载文件后点auto会自动烧写。

3 结束语

阐述了一种针对TMS320VC5502DSP,使用 I2C方式实现程序自举引导,通过CCS软件,利用烧写程序,能够正确地将用户程序烧写到外扩I2C存储器中,在上电或复位后,引导程序能准确地自举加载到RAM中来,这种引导方式具有稳定可靠、简单实用、成本低等优点。该引导方法对于TMS320VC5502以及其他型号DSP电路的设计具有一定的参考价值。

[1] TexasInstrumentsIncorporated.TMS320VC55x系列DSP的CPU与外设[M].北京:清华大学出版,2005

[2] TexasInstruments.TMS320VC55xDSPCPUReference Guide[J].TexasInstruments,2004(资料)

[3] TexasInstruments.UsingtheTMS320VC5501/C5502Bootloader[J].TexasInstruments,2004(资料)

TN911.72

B

1004-9134(2010)03-0082-03

2009-12-04 编辑:刘雅铭)

井 静,女,1981年生,助理工程师,2005年毕业于北京理工大学信息管理与信息系统专业。现在东方物探西安分公司从事仪器开发工作。邮编:710082

猜你喜欢
用户程序存储器寄存器
静态随机存储器在轨自检算法
Lite寄存器模型的设计与实现
计算机应用(2020年5期)2020-06-07 07:06:44
变速箱控制系统Bootloader设计与实现
嵌入式设备远程升级方案设计
分簇结构向量寄存器分配策略研究*
存储器——安格尔(墨西哥)▲
环球时报(2014-06-18)2014-06-18 16:40:11
C8051F410单片机BootLoader的实现
基于Nand Flash的高速存储器结构设计
高速数模转换器AD9779/AD9788的应用
MCF52223的多用户在线编程应用设计