当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]DSP外部Flash存储器在线编程的软硬件设计

摘要:详细介绍DSP与Flash存储器的两种硬件接口方式及在线编程,分析了两种硬件接口方式下在线编程的区别,给出了相应的在线编程核心代码并在实际电路上测试通过,可作为DSP嵌入式系统设计的参考。
关键词:在线编程;Flash存储器;硬件握手;软件握手

引言
    随着嵌入式系统向体积更小、性能更高的方向发展,传统的DIP(双列直插)集成电路因体积庞大、元器件I/O引脚数量受封装限制等缺陷,已逐渐淡出人们的视线。在嵌入式产品设计中,大量采用SMT贴片元器件,既提高了性能,又节省了宝贵的空间。由于采用贴片元器件,无法将Flash存储器等元器件从电路板上取下来单独进行编程。专用编程器的方式已经很少采用,取而代之的是采用基于仿真器连接的JTAG接口的在线编程方式。这种在系统带电编程的方式不受时间和空间的限制,随时随地都可进行,且产品软件版本升级容易。
    在嵌入式系统中,为了实现程序的脱机自动运行,程序往往固化在电可擦除的Flash存储器中。要实现一个嵌入式系统的带电脱机运行,在线编程就成为嵌入式系统开发过程的必经之路。由于在线编程涉及到硬件和软件方面的内容,因此要从顶层设计和系统的角度来考虑在线编程。硬件设计要为软件设计作铺垫,尽可能简化软件设计。
    本文以TI公司的DSP芯片TMS320C6711D和AMD公司的4 Mb Flash存储器AM29LV400B为例来介绍两种在线编程方式。

1 DSP与Flash存储器的两种硬件连接关系
1.1 以Ready信号作为硬件握手
    带有Ready信号的TMS320C6711D的EMIF(Exterhal Memory Interface)接口与Flash存储器AM29LV400B的硬件连接如图1所示。由于AM29LV-400B输出的就绪信号/忙信号()为OD(漏极开路)输出,需要在该信号上加上拉电阻并连接到VCC。


1.2 采用无Ready硬件连接的软件握手
    不带Ready信号的TMS320C6711D与Flash存储器AM29LV400B的硬件连接如图2所示。

[!--empirenews.page--]

2 软件设计
2.1 带有硬件握手的软件设计
    带有Ready信号连接的Flash存储器编程时序如图3所示。Flash的就绪信号/忙信号()输出为低电平时,表明Flash正忙,处于编程或擦除状态。由于DSP与Flash存储器采用Ready/Busy信号作为硬件握手信号,当Ready/Busy信号为低电平时,CPU在总线时序上插入等待周期,直到Ready/Busy信号解除(为高电平)。在Ready信号为低电平期间,由于CPU处于等待状态,程序被暂停执行,因此不需要通过软件来判断Flash存储器的编程或擦除状态。

 


   
2.2 带有软件握手的软件设计
    Flash的就绪信号/忙信号()输出为低电平时,表明Flash正忙,处于编程或擦除状态,此时写入或读出的数据是无效的,不是程序员需要的数据;当该信号输出为高电平时,表明Flash已处于就绪状态,可对其进行写入或读出数据的操作。[!--empirenews.page--]
    由于DSP与Flash存储器的接口采用软件握手,在对Flash存储器进行编程或擦除时,DSP的总线周期中不会由硬件自动插入等待周期,如果此时仍采用2.1节的Flash编程函数对Flash存储器进行编程,则会得到错误的编程结果。编程结束后会发现Flash存储器中有一部分内容仍然是0xFFFF,处于编程前的状态。虽然对Flash存储器进行了编程操作,但由于Flash存储器上一次编程操作还未完成,本次的编程操作无效,数据根本写不进Flash存储器。在CCS3.1中用“View/Memery”功能查看Flash存储器,就会发现Flash存储器中的数据等间隔地出现编程正确和编程不正确的现象。笔者在自己设计的TMS320C6711D-250嵌入式模块(带有AM29LV400B Flash存储器)上,通过断开DSP与Flash存储器的硬件Ready信号进行编程测试,无等待状态的测试结果见表1,有等待状态的测试结果见表2。

    可见,在没有硬件握手的情况下,需要通过软件来判断当前Flash存储器编程或擦除的状态来进行编程操作。如果Flash存储器正处于编程或擦除过程中,则无法继续对Flash存储器进行编程,需等到Flash存储器上一次数据编程(写入)完成时才能进行下一次数据编程(写入)。否则,会得到错误的编程结果,造成编程后数据校验失败。
    大多数Flash存储器都提供了一个或几个状态位来表示当前Flash存储器编程或擦除的状态,大多支持通过其数据总线D7数据位的状态来判断Flash存储器当前编程或擦除的状态。这是大多数Flash存储器数据手册推荐的编程轮询算法,但经过笔者测试,这种算法比较繁琐,会造成部分编程内容不正确,可采用将编程数据读出、与写入数据进行比较的简单方法,实现软件等待状态的插入。
    说明:TMS320C6711D与AM29LV400B Flash存储器采用16位数据连接,DSP EMIF CEl存储器空间初始化为32位总线宽度(CEl端口连接16位Flash存储器),读取/写入Flash存储器的32位数据中高16位无效。
    带有软握手的Flash存储器编程函数如下:

   

3 两种在线编程方式的区别
    在硬件上加入硬件握手的Flash存储器在线编程方式设计简单,在应用中只须考虑擦除和编程,而无须考虑Flash存储器的当前状态。当Flash存储器正处于擦除和编程状态而未完成时,Flash存储器产生的忙信号通过Flash存储器与DSP之间的硬件连接直接送入DSP,由DSP硬件在其总线访问周期中自动插入等待周期,暂停DSP处理器的执行;当Flash擦除和编程状态完成时,由Flash存储器产生的就绪信号通过Flash存储器与DSP之间的直接硬件连接将就绪信号送入DSP,解除DSP的等待状态,继续程序的执行。而采用软件握手的Flash在线编程方式需要程序员在软件中判断Flash存储器的当前状态。只有当Flash存储器擦除过程完成时,才能对其进行编程;当Flash存储器的一次编程(数据写入)过程完成时,才能进行下一次的编程(数据写入)。软件设计繁琐,且要经过多次调试。

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

摘要:主要介绍了应用DSP的电能质量检测系统的硬件电路及软件开发工具,对采集来的某电铁电流信号进行了电能质量检测,并开展了实际实验尝试。实验结果显示,实际信号含有大量谐波,但通过应用DSP的电能质量检测系统成功检测到了它...

关键字: 电能质量检测 Matlab仿真 DSP

随着生活水平的提高,大家都想从生活压力中释放出来,越来越多的人向往户外运动、露营等,在大自然的拥抱中释放压力,解放自我,从而成为户外旅行火热的原因之一。因此,很多音箱厂商都开始推出针对户外的户外蓝牙音箱。但是市面上的蓝牙...

关键字: PD快充 I2S DSP IC

摘要:数字信号处理器(DSP,digitalSignalproceSSor)是专门用于某些数字信号处理任务的微处理器,一般由集成电路芯片构成。当前,水声领域中声呐探测设备正逐渐向大运算量、强实时性及小型化等方向发展,对高...

关键字: 水声信号处理 DSP 声呐

DSP开发板,就是围绕DSP的功能进行研发,推出用于DSP芯片开发的线路板,并提供原理图和源代码给客户。DSP尤以TI公司的DSP市场占有率最大。

关键字: DSP 开发板

在这篇文章中,小编将为大家带来无线模块的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: 无线模块 自动化 DSP

当你在大疆无人机上拍照,跟踪或者自主飞行时,背后有一堆高性能处理器在为这些应用加速,其中就有DSP(Digital Signal Processor)。DSP的软硬件解决方案为图像,机器学习和飞行控制业务提供高性能计算平...

关键字: 嵌入式 DSP 大疆

(全球TMT2022年5月26日讯)Yahoo和全球领先的独立程序化户外 (DOOH) 广告技术公司Hivestack巢仕达宣布建立全球战略合作伙伴关系,致力于连接双方行业领先的技术,并为全球范围内的优质程序...

关键字: STACK BSP DSP MT

华为开源云原生AI卫星应用方案亮相KubeCon EU 2022 瓦伦西亚2022年5月20日 /美通社/ -- 5月18日,在云原生领域备受瞩目的会议——KubeCon和CloudNativeCon欧洲峰会主论坛中,...

关键字: DSP 华为 卫星 开源

(全球TMT2022年5月16日讯)日前,国际权威研究机构Gartner发布《市场份额分析:2021年全球软件行业市场规模报告》,报告显示浪潮云海服务器虚拟化软件InCloud Sphere(以下简称InCloud S...

关键字: DSP 虚拟化 软件 AI

北京2022年5月13日 /美通社/ -- 日前,国际权威研究机构Gartner发布《市场份额分析:2021年全球软件行业市场规模报告》,报告显示浪潮云海服务器虚拟化软件InCloud Sphere(以下简称I...

关键字: DSP 虚拟化 软件 GARTNER

嵌入式教程

6897 篇文章

关注

发布文章

编辑精选

技术子站

关闭