当前位置:首页 > 模拟 > 模拟
[导读]介绍由TMS320C62x和ADSP218x组成的双DSP信息处理系统实现串行引导的设计方案。该方案以TMS320C62x为主处理机,首先以ROM方式引导,成功后ADSP218x为从处理机,接在TMS320C62x的外部存贮器空间,以IDMA方式引导。给出了系统上电后详细的工作流程及其硬件和软件的具体实现方法。经试验验证,该方案在各种环境试验考核下均能正常启动,性能稳定。

0 引 言
   
在某型光电跟踪产品中,由于需要对抗各种人工干扰和背景干扰,使得导引系统需要处理的信息量成倍增加,对导引系统的实时处理性能提出了更高的要求。针对这种情况,导引系统采用了双DSP系统的信息处理方案,DSP选用AD公司的ADSP218x和TI公司的TMS320C62x。ADSP218x进行目标信号的采样和外围控制信号的输入、输出,TMS320C62x专门进行目标的鉴相、各种抗干扰算法的计算,这样TMS320C62x不受外设服务中断影响,可以更好地发挥计算效率,提高了导引系统的实时处理性能。本文针对ADSP218x系列和TMS320C62x系列组成的双DSP系统,提出了一种串行引导方案,同时给出了其硬件及软件的具体实现方法。

1 DSP引导模式
1.1 TMS320C62x引导模式

    TMS320C62x系列DSP提供了三种引导方式:
    (1)无引导过程:DSP直接从地址0开始执行代码;
    (2)ROM方式引导:由DMA/EDMA控制器从外部CE1空间中的ROM中拷贝固定数量的代码到地址0,启动时也可选择ROM的宽度,拷贝结束后,CPU从地址0开始运行;
    (3)HPI方式引导:由外部主机通过HPI对芯片的存储器空间进行初始化,初始化结束后,外部主机通过HPI中断唤醒TMS320C62x,CPU开始从地址0运行。
    所有这些设置项都是在芯片复位的时候才进行检查。一旦复位信号有效(reset=0),所有的三态输出管脚恢复为默认状态,然后在reset信号的上升沿处检查设置管脚BOOTMODE[4:0]的状态,自举逻辑开始生效。
1.2 ADSP218x引导模式
    ADSP218x系列DSP提供了三种引导方式:
    (1)无引导过程:DSP直接从地址0开始执行代码;
    (2)BDMA方式引导:复位后DSP以BDMA方式首先从字节存储空间拷贝前32字的程序代码,拷贝完程序从程序存储地址0开始执行代码。
    (3)IDMA方式引导:复位后DSP以IDMA方式可以存取任意数量的内部存储空间,当内部程序存储地址0被写入时,程序从程序存储地址0开始执行代码。
    以上设置都是在芯片复位的时候才进行检查,当复位信号有效时(reset=0),所有的三态输出管脚恢复为默认状态,然后在reset信号的上升沿处检查设置管脚MODE[A:D]的状态,自举逻辑开始生效。
1.3 双DSP系统串行引导模式
    根据以上两种DSP的引导模式,选用串行引导模式,即把TMS320C62x作为主处理机,外围接8位宽的FLASH,采用ROM方式引导,TMS320C62x和AD-SP218x的程序都固化在FLASH中,ADSP218x作为从处理机,采用IDMA方式引导,并且两个DSP之间的通讯也采用IDMA方式。这样TMS320C62x可以把ADSP218x作为一个存储区来访问,既去掉了握手软件,提高了工作效率,又可以去掉ADSP218x外围的FLASH,减少了硬件花销。主要硬件连接示意图如图1所示。

    双DSP系统串行引导的过程如下:系统上电后,TMS320C62x从位于CE1空间FLASH中以ROM引导的方式复制一定数量的TMS320C62x程序至地址为Ox00000000的内部程序存储空间。当程序复制完毕后,TMS320C62x开始从0x00000000起始的程序地址开始执行程序,利用这段程序,把剩下的程序从FLASH中读出,TMS320C62x进入到正常工作状态。然后TMS320C62x负责将存储在FLASH中的ADSP218x的运行程序读出,通过IDMA接口发送至ADSP218x的片内PM存储区,执行对ADSP218x的程序装载。当ADSP218x引导完毕后,ADSP218x运行装入的程序进入正常的工作状态,至此系统串行引导完毕。

2 双DSP系统串行引导的实现
2.1 硬件连接
    TMS320C62x的低16位数据线ED15~0与ADSP218x的IAD15~0连接,TMS320C62X的低8位数据线ED7~0与FLASH的数据线D7~0连接。TMS320C62x的BOOTMODE[4:0]引脚配置如下:


    由于TMS320C62x与ADSP218x的IDMA通讯控制需要译码,因此加了一片CPLD,硬件连接图如图2所示。片内的逻辑方程为:

2.2 TMS320C62x启动程序代码的创建
    TMS320C62x启动程序代码包含以下几个部分。
2.2.1 中断向量表vectors.asm
   
中断向量表缺省保存在TMS320C62x内部RAM的从0地址开始长度为0x200字节的空间,上电或复位后,芯片自动运行复位中断。因此,复位中断向量中应包含跳转到引导程序(_boot)的语句,引导程序的主体在boot.asm中定义。部分程序如下:


2.2.2 自引导的汇编程序boot.asm
    自引导汇编程序主要是配置基本的寄存器,并将保存在外部FLASH中的二进制程序拷贝到DSP内部的RAM中再执行。汇编程序如下:


2.2.3 主程序main.c
    主程序是DSP要实现具体功能的主体,其定义的主函数main()经编译后在函数_c_int00中调用,因此在上面的引导程序结束时,将跳转到函数_c_int00,即主函数main执行。另外在主程序中,还要包含把ADSP218x的应用程序从FLASH传送到ADSP218x内部存储区的子程序。
2.2.4 链接命令程序link.cmd
   
链接命令程序用于定义DSP系统各存储区的开始地址及大小,并分配编译后各段到相应的存储空间,link.cmd内容如下:


2.3 TMS320C62X通过IDMA接口把ADSP218x程序拷贝到内部存储器的方法
    从TMS320C62x来看,IDMA接口只有三个寄存器,分别是IDMA控制寄存器IDMA_IAL,IDMA读数据寄存器IDMA_IRD和IDMA写数据寄存器ID-MA_IWR。
    该三个寄存器的定义如下:


    访问ADSP218x的内存单元一般需要三个步骤:
    第一步:向IDMA控制寄存器写该数据单元所在的页面。编程只需要向IDMA_IAL控制寄存器写入恰当控制字即可。例如要向APSP218x的PM区的第5页写数据,则应该有下面的命令:
    IDMA_IAL=0x8050;
    第二步:向IDMA控制寄存器写该数据的地址。
    如果是PM区,则该数据的地址为当前地址,如果是DM区,必须将当前地址加0x4000。例如要向PM区的0x0809区写数据,则应该有下面的命令:
    IDMA_IAL=0x0809;
    如果向DM区写数据,则有命令:
    IDMA_IAL=0x0809+0x4000;
    第三步:读写数据。如果是读数据,例如要将数据读入到unsigned short XX单元,则应该用下面的命令:
    XX=(unsigned short)IDMA_IRD;
    如果是写数据,例如要将数据unsigned short YY写入某地址单元,则应该用下面的命令IDMA_IWR=YY;
    注意以后每读取或写数据,IDMA接口的地址指针自动加1。
    TMS320C62x通过IDMA口,在启动后把AD-SP218x的应用程序拷贝到ADSP218x的内部存储器中。ADSP218x的应用程序作为一个asm文件供TMS320C62x应用软件调用,具体格式为:

   

   
2.4 FLASH的在线烧写
    上面的工程文件经CCS系统编译、汇编后生成可执行COFF文件(.out),它需要转换成可供CCS调用的数据文件,通过JTAG口在线写入到FLASH中。利用TI公司的HEX6x.exe工具,将生成的.out文件转化成.hex输出文件。由于该HEX6x.exe工具是提供给EPROM编程器的,用EPROM编程器可直接烧写.hex文件。但对于FLASH的在线系统编程来说,生成的.hex文件不能直接使用,必须再编写一段程序将.hex的文件头去掉,分离出数据文件,最后才能由FLASH的在线烧写程序将最终的数据文件烧写到FLASH中。
    hex6x命令行的格式为:


    命令执行后会产生三个文件,这三个文件再经过转换融合成一个文件flash.asm,格式如下:

   

3 结 语

    该系统经过单板和整机的高低温、振动、电磁兼容试验验证,系统在上电后能够100%的正常启动,性能稳定。该方法为编写由TMS320C62x和ADSP218x组成的双DSP系统的引导程序拓宽了思路,其设计思想对其他型号组成的双DSP系统的设计也具有借鉴意义。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭