基于闪烁存储器的DSP并行引导装载方法

发布者:asa1670最新更新时间:2010-11-29 关键字:FLASH  Am29LV400B  引导方式  DSP 手机看文章 扫描二维码
随时随地手机看文章

    TMS320VC5409 是TI公司推出的第一代的高性能、低价位、低功耗数字信号处理器(DSP)。与现在流行的TMS320C5409相比,性能提高了60%,功耗效率提高了 50%。它的应用对象大多是要求能脱机运行的内嵌式系统,如机顶盒(STB)、个人数字助理(PDA)和数字无线通信等。闪烁存储器(FLASH MEMORY)是可以在线电擦写、掉电后信息不丢失的存储器。FLASH与EPROM相比,具有更高的性能价格比,而且体积小、功耗低、擦写速度快、使用比较方便。因此,采用FLASH存储程序和固定数据是一种比较好的选择。AMD公司的Am29LV400B FLASH可以直接与DSP相接。

1 Am29LV400B的主要特点及编程方法

    Am29AL400B是AMD公司新推出的256K×16位产品,具有以下主要特点:

(1)支持单电源操作,可分为满负荷电压供电(2.7V~3.6V)和电压范围可调节(3.0V~3.6V)和电压范围可调节(3.0V~3.6V)供电两种方式。满幅度电压供电压供电方式主要用于电池供电的应用中,而电压范围可调节供电方式直接与3.3V的高性能DSP接口,简化了系统的电源要求。

(2)最快的存取速度高达55ns,CMOS工艺,具有100000次写入/擦写寿命。

(3)低功耗(200nA的自动休眠电流,200nA的待命电流,7mA的读电流,15mA的编程/擦除电流)。

(4)灵活的块结构支持整片擦除、块擦除。整片分为11个块(1块8K字、2块4K字、1块16K字、7块32K字)。

(5)块保护功能,具有防止对任何区段进行编程或擦除的硬件保护机制。

(6)与JEDEC标准兼容,引脚分布和命令集与单电源FLASH相兼容,具有优越的防止意外编程的保护功能。

(7)数据查询位和数据切换位,可以通过软件方法检测编程/擦除操作的状态。

(8)Ready/Busy#管脚,可以通过硬件方法检测编程/擦除操作的状态。

(9)具有擦除暂停/擦除恢复功能。在暂停擦除操作过程中,支持读写不处于擦除状态的块。

(10)内嵌的擦除/编程算法能自动对整个芯片或某几个块进行擦除编程操作。

    Am29LV400B编程和擦除算法的命令定义如表1所示。

表1 Am29LV400B命令定义

    表中,RA为要读的存储器地址;RD为从存储器地址RA处读出的数据;SA为要擦除的段地址;PA为要写入数据的存储器地址;PD为要在地址PA处写入的数据。根据表中的命令定久可编制FLASH的“烧写”和“擦除”程序(用C语言和汇编语言混合编程实现)。根据需要,我们编制了“烧写”单字和“烧写”多字的程序。

2 硬件电路组成

     DSP 存储区硬件接口电路如图1所示。主要由5部分组成:DSP处理器-TMS320VC5409、系统逻辑控制电路(采用CPLD-EPM7128实现)、闪存FLASH-Am29LV400B(256K字的FLASH用来存储应用程序和初始化数据)、程序存储器SRAM1-IDT71V416S12PH(容量为256K字)、数据存储器SRAM2-IDT71V016S12PH(容量为64K字)。逻辑控制电路主要由3个模块组成:FLASH页选控制模块、读/写控制模块、程序空间/数据空间/FLASH切换控制模块。图中,CPLD的输出FMSEL为FLASH的片选脚;PMSEL为程序空间的片选脚; DMSEL为数据空间的片选脚。

    FLASH分为8页,每页32K,通过CPLD中的FLASH页选控制模块(Page0~Paeg2)实现FLASH翻页功能。为实现FLASH引导装载,FLASH物理空间的前32K映射到TMS320VC5409的数据空间0x8000h~0xFFFFh上,即TMS320VC5409的数据空间 0x8000h~0xFFFFh为FLASH的前32K空间。为了重点说明FLASH的引导装载过程,本文只谈及DSP片内程序存储空间以及FLASH前 32K字的使用情况。

3 TMS320VC5409 DSP的引导装载方式

    TMS320VC5409芯片具有两种引导方式:片内引导方式和片外执行方式。片内引导方式就是利用片内ROM中的引导程序将程序从外部加载到程序存储器中运行。由于FLASH的速度较低,难以与DSP相匹配,因此,本文采用片内引导方式。

    TMS320VC5409 片内掩模ROM中固化的引导装载(Bootloader)程序用于在上电复位时把用户程序从外部引导到高速RAM中,以保证其全速运行。 TMS320VC4509提供的片内引导方法有:有机口HPI方法、8位或16位并行EPROM方法、8位或16位并行I/O方法和8位或16位串行口方法等。TMS320VC5409片内引导装载源程序可以在TI网络下载得到,读者可以自行分析。下面通过图2所示的引导过程框图,阐述一下本文选用的并行引导方式过程。

     上电复位后,TMS320VC5409检测其MP/MC引脚,如果MP/MC="0",DSP从0xFF80h处开始执行片内引导装载程序。进入引导程序后,如有INT2请求中断,则进入HPI 引导方式;如有INT3请求中断,则进入EEPROM串行口引导方式;否则就进入并行引导方式。其详细引导过程如图3所示。

    片内并行引导方式前半部件是I/O空间并行引导方式,我们不采用此方式,程序继续运行直到从数据空间0xFFFFh地址读入一个地址数据,此数据为用户自举表的入口地址。这时片内引导程序就开始执行FLASH中的用户自举表,若自举表的第一个字是0x10AA,则表示是16位并行引导模式。

4 FLASH中自举表(Boottable)的存储格式

    为了实现DSP加电自举,FLASH的数据必须按照自举表的格式“烧写”。自举表的作用是:DSP运行此表时,首先根据自举表中前部分用户起始地址把后面的用户程序代码加载到DSP片内程序空间中相应的用户地址区域(由于FLASH与DSP时间不匹配,要设置好SWWR和BSCR寄存器),然后根据自举表中的程序入口址,在程序空间相应的地址开始运行程序。表2为16位并行自举的代码结构(自举表在空间允许的情况下可以放几个程序代码段,为便于说明,在此只说明一个程序代码段的情况)。

表2 并行自举表的代码结构

     下面结合一个实例,说明利用hex500命令生成二进制数据自举表的方法。

(1)所编写的一个用户程序名为myblink.C,在编译链接成功后生成的输出文件名为myblink.out;程序空间的开始地址为0x1400h,程序执行的入口地址为0x144Fh。利用hex500工具,生成文件名为myblink.hex的二进制数据,hex500命令后添加如下条件:

mybilink.out ;要转换的.out文件

-a ;生成ASCII码的形式

-e 0x144Fh ;程序空间中程序运行的开始

地址

-boot ;转换成自举表的形式

-bootorg PARALLEL ;并行格式

-byte ;按字节分配地址

-memwidth 16 ;系统存储器字宽度为16位

-romwidth 16 ;ROM物理宽度为16位

-swwsr 0x7FFFh ;SWWSR设置软件等待周期

-bscr 0xF800h ;BSCR设置段开关控制寄存器值0xF800

-o myblink.hex ;输出的二进制数据文件名

(2)生成的进制数据文件myblink.hex的数据为:

0x10AA 0x7FFF 0xF800 0x0000 0x144F 0x00D1 0x0000 0x1400 …(用户程序代码)… 0x0000;

    前8个数据解释分别为:

0x10AAh:16位并行寻址格式;

0x7FFFh:SWWSR初始值为0x7FFFh,因为FLASH的运行速度比DSP慢,等待7个周期;

0xF8000h:BSCR初始值为0xF800h;

0x0000h:自举表程序入口的XPC=0;

0x144Fh:自举表程序入口的地址=0x144Fh;

0x00D1h:自举表程序的长度=0xD1h;

0x0000h:自举表起始地址XPC=0;

0x1400h:自举表的起始地址=0x1400h。

(3)编写一个数据转换程序,把二进制数据文件myblink.hex转换为数组头文件myblink.h。在CCS环境下,FLASH的“烧写”主程序包含此头文件,编译链接后通过仿真器下载到DSP中,运行DSP,用户程序就被“烧入”FLASH中了。

    实际应用是:在数据空间地址0xFFFFh(也就是FLASH的空间0xFFFFh)中“烧写”数据0x9000h(FLASH中存放的自举表起始地址),在FLASH的地址0x9000h开始“烧入”用户自举表数据即myblink.h中的数组数据。

    DSP 运行情况是:依据第3节所述的引导装载过程,经过一系列的设置,使DSP寻址到数据空间地址0xFFFFh,得到自举表的起始地址0x9000h,PC指针指向0x9000h,执行自举表的数据,根据自举表写入信息,把后面的程序装载入程序空间起始地址0x1400h(XPC=0)(这时通过仿真器查看程序空间0x1400h开始的数据,与仿真器下载的myblink.out文件数据是一致的)。然后,DSP的PC指针指向程序入口地址0x144Fh (XPC=0)开始执行用户程序,从而完成了DSP利用FLASH实现16位并行引导装载的过程。

关键字:FLASH  Am29LV400B  引导方式  DSP 引用地址:基于闪烁存储器的DSP并行引导装载方法

上一篇:基于TMS320LF2407A的全数字单相变频器的设计
下一篇:高速铁路信号发送与接收模拟系统的设计

推荐阅读最新更新时间:2024-05-02 21:12

重邮信科获得授权许可用于移动SoC
业界最广泛部署的 DSP架构在重邮信科多模4G终端芯片中实现超低功率音频、VoLTE和基带处理。 全球领先的硅产品知识产权(SIP)平台解决方案和数字信号处理器(DSP)内核授权厂商CEVA公司宣布重庆重邮信科通信技术公司(Chongqing CYIT Communication Technology Co., Ltd)已经获得CEVA-TeakLite-4 DSP授权许可,用于面向智能手机和平板电脑等4G终端的多模无线基带芯片。 完全可编程的CEVA-TeakLite-4 DSP内核旨在满足先进音频和语音算法中日益复杂的处理要求和严苛的低功率要求,包括中国移动4G网络所需的voice-over-LTE (VoLT
[手机便携]
基子DSP的液晶模块的显示原理及实现
摘要:介绍了一种基于TMS320F206 DSP以及硬件汉字库的液晶模块的设计。给出了硬件接口设计框图、接口的设计实现以及硬件汉字库的制作方法,同时给出了液晶初始化和显示模块的设计思路以及软件实现。 关键词:SEDl335控制器 TMS320F206 DSP 硬件汉字库 1 硬件电路接口的设计 图1给出了液晶显示模块的硬件电路接口设计框图,该系统采用TI公司的TMS320F206芯片(以下简称F206),其内部带有4KB的FLASH存储器,可以根据系统需要外挂EEPROM作为外部程序存储区。 SEDl335控制器是日本EPSON公司生产的一款液晶显示屏控制器,与同类产品相比,功能最强。主要特点有: 有较强功能的I/O缓
[电源管理]
固态激光雷达工作原理解析,它的优缺点在哪?
激光雷达被认为是各行各业的关键传感技术,在机器人、无人驾驶、智慧城市等领域充当着推动者的角色。而近年来一直被寄予厚望的固态激光雷达成为业内关注的热点。 何为固态激光雷达? 理论上来说,固态激光雷达是完全没有移动部件的雷达,光相控阵(Optical Phased Array)及 Flash 是其典型技术路线,也被认为是纯固态激光雷达方案。 但近年来,一些非完全旋转的激光雷达也被统称为“固态激光雷达”,它们具备了固态激光雷达很多的性能特点,如分辨率高、有限水平 FOV(前向而不是 360°)等,但这些技术方案会有一些微小的移动部件,从严格意义上来说不能算纯固态激光雷达。 固态激光雷达工作原理 固态激光雷达主要是依靠
[嵌入式]
8051、ARM和DSP指令周期的测试与分析
在实时控制系统中,选择微控制器的指标时最重要的是计算速度的问题。指令周期是反映计算速度的一个重要指标,为此本文对三种最具代表性的微控制器(AT89S51单片机、ARM7TDMI核的LPC2114型单片机和TMS320F2812)的指令周期进行了分析和测试。为了能观察到指令周期,将三种控制器的GPIO口设置为数字输出口,并采用循环不断地置位和清零,通过观察GPIO口的波形变化得到整个循环的周期。为了将整个循环的周期与具体的每一条指令的指令周期对应起来,通过C语言源程序得到汇编语言指令来计算每一条汇编语言的指令周期。 1 AT89S51工作机制及指令周期的测试 AT89S51单片机的时钟采用内部方式,时钟发生器对振荡脉冲进行2分频。
[应用]
ACM8629 单声道100W/立体声50W内置DSP音频算法的I2S数字输入D类功放IC解决方案
ACM8629 单声道100W/立体声50W内置DSP音频算法的I2S数字输入D类功放IC解决方案 引言 在无线蓝牙音箱、家庭音频系统、车载音频等产品,D类功放芯片因其效率高、贴片封装等优势越来越普及。在中大功率的音频系统设计时,扬声器要输出足够大的功率,模拟输入的功放芯片需要通过前级运放来做放大和调音。绝大多数的底噪杂音等问题都来源于音源输入、PCB走线干扰。很多板子因PCB面积、结构限制等因素无法规避,一直困扰着电子工程师。 I2S输入的数字功放IC,是将数字音频源直接转换成高品质的音频信号,音频信号不受PCB走线及射频干扰,且内置DSP大大简化了调音的过程,还可提高音质、节省器件成本、简化系统设计。数字功放IC因其
[模拟电子]
ACM8629 单声道100W/立体声50W内置<font color='red'>DSP</font>音频算法的I2S数字输入D类功放IC解决方案
经过优化的低成本FPGA中的高性能DSP功能
  受诸如视频和静态图像使用的增多以及软件无线电等可重复配置系统需求的增长,数字信号处理(DSP)的应用继续膨胀。其中许多应用把重要的DSP处理要求和对成本的敏感性、对高性能的需求以及低成本的DSP解决方案结合在一起。   通用的DSP芯片和FPGA是实现DSP功能的两种普遍的方法。每种方法都各有优点,其最适宜的方法因应用要求的不同而各异。本文论述了通用DSP的功能,阐述了通用DSP和FPGA之间的差异,比较了现有的用FPGA实现DSP的解决方案,最后介绍了LatticeECP2M DSP的结构以及实现DSP的设计方法。   通用的DSP解决方案与FPGA实现方法的对比   带有加法、减法或累加运算的乘法器是大多数DSP应
[嵌入式]
S3C2440 NAND Flash的使用
1、基本知识 NAND flash: 速度快,擦写5ms内;位翻转概率较大,为10%左右;容量大,块容量在8K以上,擦写次数较多;接口为IO接口 NOR flash: 速度慢,擦除5S时间;位翻转概率小于NAND flash;容量较小,块容量在64K以上,擦写次数没有NAND flash多;接口为RAM接口,可以直接运行程序 2、注意事项 2.1:在每次写操作之前需要进行擦除操作 2.1:使用前扫描坏块,不再使用 3、容量关系 1页 = 512 + 16字节 1块 = 512B * 32页 = (16K + 512)字节 1个器件 = 4096块 = 528M 不同的flash有不一样的页块大小,对于K9F2G08U0C来
[单片机]
基于S3C2410A芯片和Flash存储器实现嵌入式工控量热仪的设计
1、引言 现在大多数的发电厂、煤炭矿厂以及各大小级别实验室中所使用的工控量热仪都是这样的一个框架:完成仪器试验测试控制的下位机控制模块;提供人机交互,传输和接收命令、数据的上位机模块;以及两模块间的连接通信设备。在此系统中下位机通常使用的是单片机来完成对试验仪器的控制,并负责从通信设备 usb68013接收到数据,提取相应的试验控制命令来控制仪器试验。这里主要讨论的是系统上位机的构建和实现,对下位机不做进一步的讨论了。那么对于系统的上位机通常的做法就是使用 pc机,当然,通用 pc机有着丰富的资源,不管是它的 cup时钟频率、内存资源、以及对系统各种软硬件管理的能力等,都有着其它替代品不可比拟的优势。但是,使用 pc作为设备的上位
[单片机]
基于S3C2410A芯片和<font color='red'>Flash</font>存储器实现嵌入式工控量热仪的设计
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved