资料介绍
随着数字信号处理技术的快速发展,数字信号处理器(DSP)越来越广泛地应用于各种实时嵌入式系统中。当系统调试完毕,想脱离仿真环境并在上电复位后自动启动程序代码运行时,必须将程序代码存储在非易失性存储器中。Flash存储器以其大容量和可在线编程等特点已成为DSP系统的一个基本配置。在系统上电复位后,DSP芯片内部固化的引导装载器(Bootloader)把应用程序从Flash引导到DSP芯片内高速 RAM中执行。这样既利用了外部存储器扩展DSP有限的ROM资源,又可以充分保证用户程序的全速运行[1-2]。
本文采用德州仪器公司的16位定点DSP芯片TMS320VC5509A(以下简称5509A),其PGE封装形式只有14根地址总线(A0~A13),最大只能寻址16KB的Flash存储器[3]。若要寻址更大地址空间,就需要控制Flash存储器的高位地址线。常见的解决方案是采用DSP的通用输入输出GPIO(General Purpose Input/Output)引脚来控制Flash的高位地址线,从而实现Flash存储器的分页访问[5-6]。然而,对于较大容量的Flash存储器,如本文采用的Am29LV800的容量为512K×16bit,有19根地址线[4],如果采用上述方法,硬件连接虽然简单,但会占用较多的GPIO引脚,而且以后的系统扩展也不方便。本文介绍了一种基于CPLD快速译码的DSP二次引导方法,利用CPLD的时序严格、译码速度快、可在线编程等特点,在 DSP的外部存储器接口EMIF(Exteral Memory Interface)的CE2空间模拟了一个Flash换页寄存器FPR(Flash Page Register),在上电复位后控制Flash的高位地址线,从而实现Flash的分页访问。因此,可通过二次bootloader程序修改FPR的值,控制Flash的高位地址线,将最终的应用程序加载到RAM中运行。
1 TMS320VC5509A的并行引导模式
1.1 5509A的引导模式
5509A的引导模式选择是通过4个模式选择引脚BOOTM[3:0]来配置的,BOOTM3~0引脚分别与GPIO0、3、2、1相连。5509A提供了六种引导模式,即EHPI引导模式、8位/16位并行EMIF引导模式、8位/16位标准串行口引导模式、SPI EEPROM引导模式、USB引导模式以及I2C E2PROM引导模式。本文采用16位并行EMIF引导模式,将BOOTM[3:0]设置为1011即可。
在16位并行EMIF引导模式下,DSP芯片内部固化的Bootloader程序上电复位后,首先从CE1空间首地址0x200000h处开始读取程序代码,并加载到RAM中运行。
1.2 5509A的引导表格式
程序代码以引导表的格式存储在Flash存储器中。引导表是独立于所选引导模式的一种特定的格式,包含了用户程序的代码段、数据段、段在RAM中的目标地址以及程序入口地址等其他相关信息。5509A引导表结构如表1所示。
DSP芯片内部固化的Bootloader的主要功能是将Flash中存储的引导表按一定顺序加载到 RAM中,然后跳转到32位程序入口地址开始执行。引导表文件可以通过TI公司提供的16进制转换工具生成,一般是hex格式,然后将此hex文件烧写到 Flash存储器中供Bootloader加载。
2 DSP二次Bootloader的原理及实现
由上述分析可知,DSP用户程序的并行加载过程是由DSP内固化的Bootloader实现的。由于5509A的PGE封装只有14根地址线,最多只能访问到16K×16bit地址空间。对于超过16KB的用户代码,Bootloader将不能加载全部的引导表文件。因此若要加载超过16K的用户代码,必须进行二次Bootloader。
二次Bootloader的原理是由用户自行编写一个代码长度小于16KB的引导程序(以下简称 uboot),其功能与DSP内固化的Bootloader相同,用于加载最终的用户代码。在uboot程序中控制Flash存储器的高位地址线来访问 Flash的其他存储内容。这样,DSP上电复位后,Bootloader首先加载uboot并运行,然后uboot又加载最终用户代码,实现了大于 16K代码的二次引导。
2.1 DSP与Flash及CPLD的硬件接口
本文采用AMD的 Am29LV800作为DSP的外部存储器扩展。Am29LV800按8位方式访问,容量为1M字;按16位方式访问,容量为512K字。DSP外围电路逻辑译码及Flash高位地址线模拟由CPLD实现。Xilinx公司的XC9572XL是一款高性能的CPLD芯片,最高主频可达178MHz,包含了 72个宏单元,1 600个可用门电路,其TQFP封装有72个可用I/O引脚[7]。图1是5509A与CPLD及Flash之间的硬件接口设计原理图。
如图1所示,5509A的地址线A[13:1]与Flash的地址线A[12:0],A0未用。Flash存储器被映射到DSP的CE1空间,由片选线CE1经CPLD译码后选通。其中DSP的地址线A13和A[3:1]与CPLD接口,用于换页寄存器FPR的模拟。Flash存储器的BYTE引脚经上拉后接高电平,即按16位方式访问。
本文采用德州仪器公司的16位定点DSP芯片TMS320VC5509A(以下简称5509A),其PGE封装形式只有14根地址总线(A0~A13),最大只能寻址16KB的Flash存储器[3]。若要寻址更大地址空间,就需要控制Flash存储器的高位地址线。常见的解决方案是采用DSP的通用输入输出GPIO(General Purpose Input/Output)引脚来控制Flash的高位地址线,从而实现Flash存储器的分页访问[5-6]。然而,对于较大容量的Flash存储器,如本文采用的Am29LV800的容量为512K×16bit,有19根地址线[4],如果采用上述方法,硬件连接虽然简单,但会占用较多的GPIO引脚,而且以后的系统扩展也不方便。本文介绍了一种基于CPLD快速译码的DSP二次引导方法,利用CPLD的时序严格、译码速度快、可在线编程等特点,在 DSP的外部存储器接口EMIF(Exteral Memory Interface)的CE2空间模拟了一个Flash换页寄存器FPR(Flash Page Register),在上电复位后控制Flash的高位地址线,从而实现Flash的分页访问。因此,可通过二次bootloader程序修改FPR的值,控制Flash的高位地址线,将最终的应用程序加载到RAM中运行。
1 TMS320VC5509A的并行引导模式
1.1 5509A的引导模式
5509A的引导模式选择是通过4个模式选择引脚BOOTM[3:0]来配置的,BOOTM3~0引脚分别与GPIO0、3、2、1相连。5509A提供了六种引导模式,即EHPI引导模式、8位/16位并行EMIF引导模式、8位/16位标准串行口引导模式、SPI EEPROM引导模式、USB引导模式以及I2C E2PROM引导模式。本文采用16位并行EMIF引导模式,将BOOTM[3:0]设置为1011即可。
在16位并行EMIF引导模式下,DSP芯片内部固化的Bootloader程序上电复位后,首先从CE1空间首地址0x200000h处开始读取程序代码,并加载到RAM中运行。
1.2 5509A的引导表格式
程序代码以引导表的格式存储在Flash存储器中。引导表是独立于所选引导模式的一种特定的格式,包含了用户程序的代码段、数据段、段在RAM中的目标地址以及程序入口地址等其他相关信息。5509A引导表结构如表1所示。
DSP芯片内部固化的Bootloader的主要功能是将Flash中存储的引导表按一定顺序加载到 RAM中,然后跳转到32位程序入口地址开始执行。引导表文件可以通过TI公司提供的16进制转换工具生成,一般是hex格式,然后将此hex文件烧写到 Flash存储器中供Bootloader加载。
2 DSP二次Bootloader的原理及实现
由上述分析可知,DSP用户程序的并行加载过程是由DSP内固化的Bootloader实现的。由于5509A的PGE封装只有14根地址线,最多只能访问到16K×16bit地址空间。对于超过16KB的用户代码,Bootloader将不能加载全部的引导表文件。因此若要加载超过16K的用户代码,必须进行二次Bootloader。
二次Bootloader的原理是由用户自行编写一个代码长度小于16KB的引导程序(以下简称 uboot),其功能与DSP内固化的Bootloader相同,用于加载最终的用户代码。在uboot程序中控制Flash存储器的高位地址线来访问 Flash的其他存储内容。这样,DSP上电复位后,Bootloader首先加载uboot并运行,然后uboot又加载最终用户代码,实现了大于 16K代码的二次引导。
2.1 DSP与Flash及CPLD的硬件接口
本文采用AMD的 Am29LV800作为DSP的外部存储器扩展。Am29LV800按8位方式访问,容量为1M字;按16位方式访问,容量为512K字。DSP外围电路逻辑译码及Flash高位地址线模拟由CPLD实现。Xilinx公司的XC9572XL是一款高性能的CPLD芯片,最高主频可达178MHz,包含了 72个宏单元,1 600个可用门电路,其TQFP封装有72个可用I/O引脚[7]。图1是5509A与CPLD及Flash之间的硬件接口设计原理图。
如图1所示,5509A的地址线A[13:1]与Flash的地址线A[12:0],A0未用。Flash存储器被映射到DSP的CE1空间,由片选线CE1经CPLD译码后选通。其中DSP的地址线A13和A[3:1]与CPLD接口,用于换页寄存器FPR的模拟。Flash存储器的BYTE引脚经上拉后接高电平,即按16位方式访问。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 基于DSP+CPLD的低压断路器群组控制.pdf 4次下载
- 如何使用CPLD与USB接口配合并使用MCU和FPGA与DSP进行编程的设计方法 13次下载
- 基于DSP和CPLD电能质量监测装置的设计 31次下载
- CPLD在DSP系统中的应用设计 39次下载
- 基于DSP和CPLD的液晶模块的设计 54次下载
- 基于VCP的DSP维特比译码器的设计与实现 19次下载
- 基于CPLD的计数及LED译码电路 28次下载
- RS码的软判决译码及DSP实现 22次下载
- 用CPLD实现DSP与背板VME总线之间的连接 51次下载
- 基于DSP+CPLD可重构数控系统的设计 23次下载
- 基于CPLD的DSP和液晶模块接口设计 22次下载
- 用DSP实现CPLD多方案现场可编程配置 16次下载
- 基于CPLD的DSP和液晶模块接口设计 22次下载
- 用DSP实现CPLD多方案现场可编程配置 29次下载
- 基于FPGA/CPLD的LED/LCD通用显示译码器设计 51次下载
- 图解基于UDS的Flash BootLoader 637次阅读
- 单片机BootLoader与APP如何合并 900次阅读
- 二次回路识图方法讲解(附案例) 1454次阅读
- STM32系统bootloader的应用有哪些 4861次阅读
- 采用5管单元的SRAM结构实现CPLD可编程电路的设计 1687次阅读
- CPLD是什么和CPLD的发展应用与特点及使用方法说明 9773次阅读
- ARM,DSP,FPGA,CPLD,SOPC,SOC的区别 FPGA与CPLD的区别详解 4351次阅读
- 译码器的分类和应用 3.7w次阅读
- 常用的译码电路有哪些 3.9w次阅读
- 译码器的逻辑功能_译码器的作用及工作原理 10.7w次阅读
- 基于FPGA 的LDPC 码编译码器联合设计 3930次阅读
- 解锁BootLoader 3504次阅读
- 基于DSP和CAN总线的RTU的设计 1535次阅读
- 基于DSP的最小图像采集处理系统设计 2305次阅读
- CPLD的DSP多SPI端口通信设计 3300次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1489次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 91次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 9次下载 | 免费
- 6基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
- 7基于单片机和 SG3525的程控开关电源设计
- 0.23 MB | 3次下载 | 免费
- 8基于单片机的红外风扇遥控
- 0.23 MB | 3次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30319次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537791次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233045次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多