专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
TI
DSP外部Flash存储器在线编程的软硬件设计
2019-07-14 22:39
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
TI MCU
17193
0
946
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所示。
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已处于就绪状态,可对其进行写入或读出数据的操作。
由于DSP与FLASH存储器的接口采用软件握手,在对FLASH存储器进行编程或擦除时,DSP的总线周期中不会由硬件自动插入等待周期,如果此时仍采用2.1节的FLASH编程函数对FLASH存储器进行编程,则会得到错误的编程结果。编程结束后会发现FLASH存储器中有一部分内容仍然是0xFFFF,处于编程前的状态。虽然对FLASH存储器进行了编程操作,但由于FLASH存储器上一次编程操作还未完成,本次的编程操作无效,数据根本写不进FLASH存储器。在
CCS
3.1中用“View/Memery”功能查看FLASH存储器,就会发现FLASH存储器中的数据等间隔地出现编程正确和编程不正确的现象。笔者在自己设计的TMS320C6711D-250嵌入式模块(带有AM29LV400B FLASH存储器)上,通过断开DSP与FLASH存储器的硬件Ready信号进行编程测试,无等待状态的测试结果见表1,有等待状态的测试结果见表2。
2.2 带有软件握手的软件设计
FLASH的就绪信号/忙信号()输出为低电平时,表明FLASH正忙,处于编程或擦除状态,此时写入或读出的数据是无效的,不是程序员需要的数据;当该信号输出为高电平时,表明FLASH已处于就绪状态,可对其进行写入或读出数据的操作。
由于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。
3 两种在线编程方式的区别
在硬件上加入硬件握手的FLASH存储器在线编程方式设计简单,在应用中只须考虑擦除和编程,而无须考虑FLASH存储器的当前状态。当FLASH存储器正处于擦除和编程状态而未完成时,FLASH存储器产生的忙信号通过FLASH存储器与DSP之间的硬件连接直接送入DSP,由DSP硬件在其总线访问周期中自动插入等待周期,暂停DSP处理器的执行;当FLASH擦除和编程状态完成时,由FLASH存储器产生的就绪信号通过FLASH存储器与DSP之间的直接硬件连接将就绪信号送入DSP,解除DSP的等待状态,继续程序的执行。而采用软件握手的FLASH在线编程方式需要程序员在软件中判断FLASH存储器的当前状态。只有当FLASH存储器擦除过程完成时,才能对其进行编程;当FLASH存储器的一次编程(数据写入)过程完成时,才能进行下一次的编程(数据写入)。软件设计繁琐,且要经过多次调试。
发送
看不清?
0条回答
一周热门
更多
>
相关问题
CPLD的方波输出
4 个回答
11个版本Quartus II 软件下载,安装包网盘合集,附教程,47G!
20 个回答
请大家帮忙到21IC发展大家谈支持我申请新版面
20 个回答
【通知】21ic中国电子网服务条款 (所有人员必读)
1 个回答
满载而归乙亥年,大展鸿途庚子年---集签赢好礼
20 个回答
携手ADI,踏上电子工程师之巅—车辆电气化视频,答题领奖!
1 个回答
如何提升论坛质量,看你了!
20 个回答
【最终名单】二姨家喊你来拿100份新年大礼啦~
20 个回答
相关文章
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
TI
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
一周热门 更多>