积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> DSP >> freescale DSP
  相关分类: 应用论文 | TI DSP | 新产品 | 算法 | 下载 | DSP代码示例 | ADI DSP | freescale DSP |
无ROM的DSP56858自引导技术
 
作者:邓遵义 宁祎 刘保国   来源:微计算机信息    点击数:674   更新时间:2007-2-8
您可以添加到网摘 让更多人关注此文章:

    

1引言
      随着DSP在通信、控制、测试/测量、电子娱乐等领域应用的日渐广泛,DSP技术的发展越来越快,无ROMDSP芯片的自引导技术成为DSP应用中的重要技术之一。在单芯片工作系统中,如果片内缺少足够的ROM空间,可按照常用方法外接1ROM芯片;但对于双芯片工作系统,如果其中1块芯片可以为另1块提供足够的ROM空间,外加ROM就毫无必要了。本文通过分析DSP56858的原理,解析片内固化的自引导程序,讨论几种源程序下载的技术过程与要点,提出在双芯片工作系统中,无ROMDSP芯片的自引导解决方案,最后给出DSP56858E自引导模式的功能实现。
2
方案设计
      DSP应用开发中,常常需要使用一些芯片自带提供的外部引导(bootstrap)的功能,通常可根据不同需要选择芯片提供的自引导方式,实现从外接ROM中导入程序。现在的软件开发工具多为集成开发工具,将编译、链接、调试和烧片等多种功能合为一体,能为用户提供方便、一体化的服务,这种开发环境下链接产生的目标代码,除了源程序代码对应的二进制码外,还加入了许多控制代码,使用户可以对下载后的程序进行实时在线调试。为此,可以将实现无ROMDSP芯片自引导问题分解为两个层次:首先是如何从目标代码中提取源程序代码下载至片外ROM中,其次是如何利用片内固化的自引导程序实现外部引导。本文无ROMDSP芯片的自引导研究以Motorola公司的DSP56858芯片为例展开,结合实际应用,介绍可能遇到的问题,提出解决方法,实现其功能。本文应用实例方案是以Motorola公司的MC9S12DP256(下称HCS12)作为设计中的主芯片,DSP56858为搭建测试平台用的辅助芯片,连接框图如图1所示。方案中充分利用HCS12片内足够的FlashEEPROM空间,采用其Flash作为DSP56858的外挂Flash存贮器,将DSP的源程序代码以数据形式存放在HCS12中。
2
1DSP56858的基本情况

1)属于MotorolaDSP56800E芯片家族系列的16位数字信号处理器。
2)单片上集成了1套外围设备,兼具DSP的处理能力和微控制器的功能,能为使用者带来低成本的解决方案。

 

1    DSP56858HCS12连接示意图

3)采用程序存储器与数据存储器分离的双哈佛结构,可达到120MIPS的指令执行速度,高效率的流水线指令执行方式。
4)片内有40K×16bit的程序RAM24K×16bit的数据RAM以及1K×16bitROM存放引导程序;外部扩展可到达2M×16bit的程序和6M×16bit的数据存储空间。
5)提供了强大的系统接口:
——6信道的DMA(DirectMemoryAccess)
——2ESSI(EnhancedSynchronousSerialInterfaces)
——2SCI(SerialCommunicationInterfaces)
——1SPI(SerialPortInterface)
——8位并行主机接口(ParallelHostInterface)
6)为开发者提供了EOnCE(EnhancedOnchipEmulation)模块和JTAG(JointTestAccessGroup)接口;在一定的调试环境下,可以在线观察寄存器、内存或片上外设的内容,避免了牺牲任何用户可访问的片上资源用作调试。

22HCS12的基本情况

1)属于STAR12系列16位的单片机;
2)低成本、低功耗,在通信和各种电子产品中有着广泛的应用;
340MIPS的指令执行速度;
4)片内有256KBFlashEEPROM4KBEE-PROM12KBRAM
5Flash分为16页(0×30页~0×3F页),每页64KB,16条地址线结合页地址可寻址全部Flash空间。

23软件集成开发环境
        DSP56858HCS12所使用的软件集成开发环境都是Metrowerks公司的CodeWarriorIDECodeWarriorIDE简单易用、功能强大,它集成了C/C++编译器、汇编器、连接器、烧片器(burner)和译码器及多用途调试器,可实时仿真调试嵌入式应用程序,并能针对不同芯片仿真硬件,使用户能在纯软件环境下进行设计开发。
3
源程序下载技术
3
1目标程序代码合并机制
311SRecord文件格式
   
通过适当的配置,CodeWarrior的链接器能够产生1SRecord文件,该文件遵循Motorola制定的格式规范,是1种标准的、可打印格式的文件。SRecord文件是通过对链接器生成的目标程序或数据进行编码生成的,适用于在计算机平台间传送,也可以在编辑后用于交叉平台间的传送。SRecord文件编码简单,可以通过IDE下载,但无法在线实时调试。SRecord文件是由多条记录组成的,每条记录都是由5个字段组成的ASCII字符串,格式如表1所示。

             1   记录格式

记录类型

记录长度

存储地址

数据

校验和

 

    1)记录类型
  由两个字符组成,描述了该条记录的可能类型(从S0S9);
   
2)记录长度
  是对应于2byte十六进制数的一对ASCII字符,表示该条记录后续字符对的个数;
   
3)地址
  由4个~8个字符组成,也是由十六进制值翻译得到的ASCII字符,给出数据字段将存放在存储器中的地址;
   
4)数据
  由每2byte十六进制值翻译得到的成对的ASCII字符,这些十六进制数值可能是存放在存储器中的数据,或者是描述信息;
    (5)
校验和
  它们所对应的十六进制数值是根据除记录类型之外的其他字段字符成对累加之和求反所得;
   
6)换行符
  每条记录都由换行符终止。针对不同的目标器件,可能每条记录的结束符不尽相同,设计中用传输程序来提供一致的换行符。
     
所有的SRecord文件都是以类型为S0的记录作为首条记录,这条记录在数据字段中给出文件的信息,包括路径、版本号等,这些信息是供阅读的,将不被存放到存储器中。SRecord文件的中间记录可能是类型为S1S2S3的记录,其地址字段分别对应234byte地址,因而主要区别在于寻址空间的不同。SRecord文件以S7S8S9类型的记录作为末条记录,除了地址字段长度不同外,它们都给出了程序执行的起始地址,并都不含数据字段。
3
12SRecord文件典型格式    
   
1DSP56858SRecord文件典型格式文件含有1S0记录,3S3记录和1S7记录。    
    S0
记录:记录3类型S0,记录长度0C表示后续有120x0C)个ASCII字符对;
     
首条S3记录:记录类型S3,记录长度25表示后续有370x25)个ASCII字符对;
      S7
记录:记录类型S7,记录长度05表示后续有50x05)个字符对。
     
2HCS12SRecord文件典型格式文件含有1S0记录,1S1记录,两条S2记录和1S9记录。
      
因寻址空间不同,HCS12SRecord文件采用了与DSP56858SRecord文件不完全相同的记录类型,但两者的分析方式基本相同。
      S0
记录:记录长度为60x06)个字符对,4个字符的全零地址字段;
      S1
记录:记录长度为350x23)个字符对;
      S2
记录:记录长度为210x15)个字符对;
      S9
记录:记录长度为30x03)个字符对。
3
13SRecord文件合并机制
   
由此可以看出,由于两个文件采用了不同的记录类型,并不能通过简单插入生成新的SRecord文件。但由于SRecord文件格式简单明晰,只要在VC环境下编写的一个简单的标准C程序,利用ANSIC提供的文件操作的库函数,按照以下方法就能够实现将两个SRecord文件整合成1个新的HCS12SRecord文件。

    DSP56858SRecord文件按记录逐条处理:读出数据字段,再根据欲插入的HCS12Flash的地址,加上相应的类型、长度和地址字段,最后计算校验和,就得到了符合HCS12SRecord文件格式要求的记录。注意每条记录之后都应带有相应的行结束符。这样组装后的记录就可以插入到原始HCS12SRecord文件相应位置。利用CodeWarriorIDE集成的烧片器下载合成后的SRecord文件后,能够从实时调试环境中观察到DSP56858源程序代码已经被成功地写入指定的HCS12Flash空间。
3
2源码串口下载机制
      合并机制虽然方法简便,但要求两种芯片的集成开发环境都能够提供符合标准的由目标代码生成的文件。采用串行通信接口(SCI)下载源码的机制,克服了这个不足。
3
21技术方法

1)在DSP56858的源程序中加入1段程序(下称源码输出程序),这段程序负责读取DSP程序存储器中的程序代码(包含了源程序和输出程序),并将读到的程序代码传给HCS12
2)同时,HCS12中运行的接收程序将接收从SCI接口收到的数据,并将其写入指定的Flash地址单元。
3)在硬件上,将两方的SCI接口相连,配置统一的波特率,按照1位起始位、8位数据和1位终止位、无奇偶校验的数据格式传送即可。
4)源码输出程序只在输出过程中工作,运行源程序时这段代码应当被屏蔽。因此,可利用通用输入/输出接口(GeneralPurposeInput/Output)1个引脚信号作为判断标志,根据该信号位高电平或低电平决定这段程序是否工作。

322下载流程
     
在软件上,为了保证DSP传出的程序代码能够被HCS12快速、准确无误地接收,需要制定1个简单的传输协议以支持双方通信。
3
23重传和校验机制
     
在收发过程中加入了重传和校验的机制。双方预约1个控制字符用于通信同步。DSP56858作为数据输出方应尽量降低额外开销以保证数据输出的效率,设计方案中控制字由HCS12主送,DSP56858等待接收。DSP56858每传送定长的程序代码后,再送出该段代码之和,继而进入等待状态;同时,HCS12在每接收到定长代码后,根据同样的方式计算出代码之和,如果与收到的和值相等,就可以将这段代码写入Flash。不论比较结果是否相等,HCS12都会将求得的和值发送给DSP56858,以通知DSP56858继续传送,DSP56858将根据HCS12回传的和值决定是否重传下1段代码。这个重传、校验机制虽然简单,但实验结果表明能有效地避免收发过程中可能出现的出错、丢失、错误蔓延等情况。
3
24Flash的编程和擦除
     
虽然相对于EPROMFlash存储器的系统灵活性和可靠性都显著提高了,但是对Flash的操作仍有严格的步骤要求。只有遵循这些要求,才能正确地编程和擦除Flash

      1)首先配置Flash的时钟在150kHz200kHz之间,考虑时钟同步对于函数定时精度的影响,当总线时钟低于1MHz时,将无法对Flash进行任何编程或擦除操作。
     
2)配置完成后,根据HCS12技术规范所提供的编程或擦除Flash的命令状态对Flash进行操作。值得注意的是,编程或擦除Flash有严格的时序要求,必须完全依照规范给出的顺序读写Flash寄存器,这个过程不能插入任何其它指令,更不能够被其它动作中断。因此,HCS12SCI接口最好是以查询方式工作,若以中断方式工作,则要注意必须在操作Flash之前关闭中断。
4 DSP56858
自引导模式及其应用    
    DSP56858
片内有一个系统集成模块(SystemIntegrationModule),负责部分系统控制功能,包括产生时钟、复位信号,控制上电模式、自引导模式,外部I/O控制等功能。为满足不同的使用要求,DSP56858提供了7种自引导模式,每次复位后会根据用户选择的模式启动。不同模式的区别主要在于程序导入的接口和程序导入后存放的存储器。
     
1)自引导模式0是外部存储器导入模式 (BootstrapFromByteWideExternalMemory)。通过片选信号选择外部存储器,导入后的程序装载在片内程序RAM中执行。该模式需先由头数据来同步引导程序和外设(头数据包括需载入程序的总长以及在RAM中存放该程序的起始地址),然后以每次16比特程序字的方式装载程序代码。完成导入后,自引导程序将跳转到起始地址执行导入的程序。请注意:如果模式配置不对或者传输格式不符合要求,自引导程序将跳入一个无限循环的过程。
     
2)自引导模式1是从SPI接口导入程序(BootstrapFromSPI),默认使用通过SPI从串行的EEPROM中导入程序,置入片内程序RAM中,该模式兼容ATMELAT25xxxAT45xxx系列的串行EEPROM。但是即使没有符合要求的ATMEL系列的芯片,也同样可以利用现有芯片仿真ATMEL芯片的工作方式,通过SPI上传程序。自引导程序在这种模式下,将本方的SPI配置成主(master)工作方式,因而要求另一方的SPI工作在从(slave)的方式下。其硬件连接如图2所示。

 

图2    硬件接口

    为确定芯片类型,自引导程序会先以500kHz左右的频率发送一定量的空字符,然后要求接收到ASCII字符“BOOT”,若接收正确,自引导程序将认为外部是ATMELAT25xxx系列的EEPROM。否则,自引导程序会再以同样频率发送定量空字符,若此时能正确收到“BOOT”字符,那么就认为是ATMELAT25xxx系列的EEPROM。如果前两者都不是,则自引导程序将以20MHz的频率,按照上面同样的方式判断是否会是ATMELAT45xxx系列的EEPROM。因此,即使没有ATMEL符合要求的芯片,但只要能按照自引导程序要求的方式发送头数据,就可以仿真成AT25xxxAT45xxx系列的芯片,利用这种自引导模式工作。

 

模式2是正常扩展模式(NormalExpandedMode)。

模式3是开发扩展模式(DevelopmentExpandedMode)。

模式2和模式3都是自引导程序直接跳转到外部程序存储器去运行。

模式4是通过单选通主机的导入模式(BootstrapFromHostPortSingleStrobeClocking)。

模式5是通过双选通主机的导入模式(BootstrapFromHostPortDualStrobeClocking)。

模式4和模式5都是通过不同类型的主机并行导入程序的。

 

    模式6是通过SCI接口导入程序(BootstrapFromSCI)。根据自引导程序的要求,将HCS12SCI的波特率配置成38400bps,数据格式为1bit起始位、8bit数据位和1bit终止位,不含奇偶校验位,无硬件流控。这种模式的使用比较简单,和模式0一样,在传送程序之前,先传送头数据以同步双方通信,然后传送程序字。

5结束语   

    根据实际情况,从以上两个步骤的不同方法加以组合,选择最优且最可行的方案,可以很好地解决无ROMDSP芯片的自引导问题。本文提出的虽然是双芯片系统,无ROMDSP芯片的自引导解决方案,但同样可作为单芯片系统中解决类似问题的参考方案。



相关文章
· 科技奥运与计算机技术的应用[269]
· Electromedical[2572]
· 患者监控[2618]
· 基于TMS320LF2407A DSP的心电监护系统研究[3034]
· 用S3C2410实现三导联远程心电监护系统[2974]
热门评论排行
·VHDL设计中电路简化问题的
·江苏嵌入式Linux教育培训
·锐极LINUX驱动培训班定于
·基于实时操作系统μC/OS-
·ARM处理器应用开发4步骤

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
MIPS 科技授权国家集成
美国微芯科技公司与安森美半导体拟以每
中嵌联盟嵌入式工程师俱乐部"
e-Shuttle与香港科技园携手
美国国家半导体推出业界首个传感器信号
PAC 2008 
Power Archite
2008上半年中国集成电路市场回顾
日本开发出接近人眼功能的新型电荷耦合
2008上半年中国集成电路市场回顾
 
热门下载 [更多]
 
[ PCB设计] Protel99教程下载
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
 
论坛新帖 [更多]
 
13×8的led屏一般用什么方...
[分享]选购家用稳压电源...
[分享]变频电源的外围配置要点...
dsp控制异步电机,加cpld...
请问一下,5000系列的DSP...
modbus与gsm连接,请问...
DSP信号处理配套MEMORY...
FPGA微处理器POWERPC...
[推荐]嵌入式3.5寸工业主板...
高级射频工程师(猎头职务-珠海...

 
赞助商 [更多]
 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网