• 沒有找到結果。

外部

N/A
N/A
Protected

Academic year: 2022

Share "外部"

Copied!
3
0
0

加載中.... (立即查看全文)

全文

(1)

T EC HNOL O GY R EV IEW  技术纵横  

 paper @mesnet. com. cn (投稿专用) 

2010 年第 6

Microcontrollers & Embedded Systems 

25      

DSP 外部 Flash 存储器在线编程的软硬件设计

夏爽

(国营第722,桂林541001)

摘要

:

详细介绍

DSP

Flash

存储器的两种硬件接口方式及在线编程

,

分析了两种硬件接口方式下在线编程的区别

,

出了相应的在线编程核心代码并在实际电路上测试通过

,

可作为

DSP

嵌入式系统设计的参考 。 关键词

:

在线编程

; Flash

存储器

;

硬件握手

;

软件握手

中图分类号

: TP368 . 2

    文献标识码

: B

Software and Hardware De sign of DSP Ext ernal Fla sh Me mory Online Pro gramming

Xia Shuang

( The State2run 722 Factory , Guilin 541001 , China)

Abstract : This article int roduces two hardware interfaces and o nline p rogramming of DSP and Flash memo ry. Differences between t he p rocesses of o nline p rogramming based o n t he two hardware interfaces respectively are analyzed , and co rresponding co re code of online p rogramming are p resented. The code is tested o ut in act ual circuit ry. The article can be used as reference for DSP embedded system de2 sign.

Key words : online p rogramming ; Flash memory ; hardware handshake ; sof tware handshake

引  言

随着嵌入式系统向体积更小 、性能更高的方向发展

,

传统的

DIP (

双列直插

)

集成电路因体积庞大 、元器件

I/ O

引脚数量受封装限制等缺陷

,

已逐渐淡出人们的视线 。在 嵌入式产品设计中

,

大量采用

SM T

贴片元器件

,

既提高 了性能

,

又节省了宝贵的空间 。由于采用贴片元器件

,

法将

Flash

存储器等元器件从电路板上取下来单独进行

编程 。专用编程器的方式已经很少采用

,

取而代之的是采 用基于仿真器连接的

J TA G

接口的在线编程方式 。这种 在系统带电编程的方式不受时间和空间的限制

,

随时随地 都可进行

,

且产品软件版本升级容易 。

在嵌入式系统中

,

为了实现程序的脱机自动运行

,

程 序往往固化在电可擦除的

Flash

存储器中 。要实现一个 嵌入式系统的带电脱机运行

,

在线编程就成为嵌入式系统 开发过程的必经之路 。由于在线编程涉及到硬件和软件 方面的内容

,

因此要从顶层设计和系统的角度来考虑在线 编程 。硬件设计要为软件设计作铺垫

,

尽可能简化软件 设计 。

本文 以

TI

公 司 的

DSP

芯 片

TMS320C6711D

AMD

公司的

4 Mb Flash

存储器

AM29L V400B

为例来介 绍两种在线编程方式 。

1   DSP Flash 存储器的两种硬件连接关系

1. 1  以 Re ady 信号作为硬件握手

带有

Ready

信号的

TMS320C6711D

EMIF ( Exter

2

nal Memory Interface)

接口与

Flash

存储器

AM29L V400B

的硬件连接[ 2 ]如图

1

所示 。由于

AM29L V400B

输出的就 绪信号

/

忙信号

( R Y/ B Y)

OD (

漏极开路

)

输出[ 1 ]

,

需要 在该信号上加上拉电阻并连接到

VCC

1 带有Ready信号的TMS320C6711D AM29L V400 B的硬件连接

1. 2  采用无 Re a dy 硬件连接的软件握手

不带

Ready

信号的

TMS320C6711D

Flash

存储器

AM29L V400B

的硬件连接[ 2 ]如图

2

所示 。

(2)

      技术纵横   T EC HNOL O GY R EV IEW

26       2010 年第 6 期

adv @mesnet. com. cn (广告专用) 

2 不带Ready信号的TMS320C6711D AM29L V400 B的硬件连接

2  软件设计

2. 1  带有硬件握手的软件设计

带有

Ready

信号连接的

Flash

存储器编程时序如图

3

所示 。

Flash

的就绪信号

/

忙信号

( R Y/ B Y)

输出为低电平 时

,

表明

Flash

正忙

,

处于编程或擦除状态 。由于

DSP

Flash

存储器采用

Ready/ Busy

信号作为硬件握手信号

,

Ready/ Busy

信号为低电平时

, CPU

在总线时序上插入等

待周 期

,

直 到

Ready/ Busy

信 号 解 除

(

为 高 电 平

)

。在

Ready

信号为低电平期间

,

由于

CPU

处于等待状态

,

程序

被暂停执行

,

因此不需要通过软件来判断

Flash

存储器的 编程或擦除状态 。

3 带有Ready信号连接的Flash存储器编程时序

Flash

擦除函数如下

:

/ 3erase_flash :擦除Flash存储器AM29LV400B (512×8) 3/

/ 3flash_pt r : Flash存储器地址指针 3/

void erase_flash (int 3 flash_pt r) {

/ 3EM IF设置为32位读写方式,控制地址左移2,以便

控制地址对应EM IF端口的EA [ 192 ]3/

unsigned int 3 ct rl_addr1 = ( unsigned int 3) ( (int) flash_

pt r + (0x555 < < 2) ) ;

unsigned int 3 ct rl_addr2 = ( unsigned int 3) ( (int) flash_

pt r + (0x2aa < < 2) ) ; 3ct rl_addr1 = 0x00aa ; 3ct rl_addr2 = 0x0055 ;

3ct rl_addr1 = 0x0080 ; 3ct rl_addr1 = 0x00aa ; 3ct rl_addr2 = 0x0055 ; 3ct rl_addr1 = 0x0010 ; }

Flash

编程函数如下

:

/ 3 p rogram_flash :编程Flash存储器AM29L V400B 3/

/ 3 flash_pt r : Flash存储器地址指针 3/

/ 3 source_pt r :待编程的数据地址指针 3/

/ 3 lengt h :数据长度 3/

void p rogram_flash ( unsigned int 3 so urce_pt r , unsigned int 3 flash_pt r , int lengt h) {

int i ;

/ 3EM IF设置为32位读写方式,控制地址左移2,以便

控制地址对应EM IF端口的EA [ 192 ]3/

unsigned int 3ct rl_addr1 = ( unsigned int 3) ( (int) flash_

pt r + (0x555 < < 2) ) ;

unsigned int 3ct rl_addr2 = ( unsigned int 3) ( (int) flash_

pt r + (0x2aa < < 2) ) ;

fo r (i = 0 ; i < lengt h ; i + + ) { / /写控制命令序列

3ct rl_addr1 = 0x00aa ; 3ct rl_addr2 = 0x0055 ; 3ct rl_addr1 = 0x00a0 ;

/ /Flash存储器写入(烧写)数据 3flash_pt r + + = 3so urce_pt r + + ; }

}

2. 2  带有软件握手的软件设计

Flash

的就绪信号

/

忙信号

( R Y/ B Y)

输出为低电平 时

,

表明

Flash

正忙

,

处于编程或擦除状态

,

此时写入或读 出的数据是无效的

,

不是程序员需要的数据

;

当该信号输 出为高电平时

,

表明

Flash

已处于就绪状态

,

可对其进行 写入或读出数据的操作 。

由于

DSP

Flash

存储器的接口采用软件握手

,

在对

Flash

存储器进行编程或擦除时

,DSP

的总线周期中不会

由硬件自动插入等待周期

,

如果此时仍采用

2 . 1

节 的

Flash

编程函数对

Flash

存储器进行编程

,

则会得到错误

的编程结果 。编程结束后会发现

Flash

存储器中有一部 分内 容 仍 然 是

0xFFFF ,

处 于 编 程 前 的 状 态 。虽 然 对

Flash

存储器进行了编程操作

,

但由于

Flash

存储器上一

次编程操作还未完成

,

本次的编程操作无效

,

数据根本写 不进

Flash

存储器 。在

CCS3 . 1

中用“

View/ Memery

”功能

查看

Flash

存储器

,

就会发现

Flash

存储器中的数据等间

(3)

T EC HNOL O GY R EV IEW  技术纵横  

 paper @mesnet. com. cn (投稿专用) 

2010 年第 6

Microcontrollers & Embedded Systems 

27      

隔地出现编程正确和编程不正确的现象 。笔者在自己设 计 的

TMS320C6711D

2

250

嵌 入 式 模 块

(

带 有

AM29L V400B Flash

存储器

)

,

通过断开

DSP

Flash

存储器的硬件

Ready

信号进行编程测试

,

无等待状态的测 试结果见表

1 ,

有等待状态的测试结果见表

2

1 无等待状态的测试结果(部分地址未烧写进去) 地  址 32位数据 32位数据 32位数据 32位数据 0x90000000 0x00000029 0x0000 FFFF 0x00003C2A 0x0000 FFFF 0x90000010 0x0000C069 0x0000 FFFF 0x0000006A 0x0000 FFFF 0x90000020 0x00000276 0x0000 FFFF 0x00000429 0x0000 FFFF 0x90000030 0x000099AB 0x0000 FFFF 0x00000000 0x0000 FFFF 0x90000040 0x0000C069 0x0000 FFFF 0x0000 FFEA 0x0000 FFFF

2 有等待状态的测试结果(正确)

地  址 32位数据 32位数据 32位数据 32位数据 0x90000000 0x00000029 0x00000200 0x00003C2A 0x00000218 0x90000010 0x0000C069 0x00000200 0x0000006A 0x00000200 0x90000020 0x00000276 0x00000210 0x00000429 0x00000200 0x90000030 0x000099AB 0x0000027 F 0x00000000 0x00000000 0x90000040 0x0000C069 0x00000200 0x0000 FFEA 0x0000027 F

可见

,

在没有硬件握手的情况下

,

需要通过软件来判

断当前

Flash

存储器编程或擦除的状态来进行编程操作 。

如果

Flash

存储器正处于编程或擦除过程中

,

则无法继续

Flash

存储器进行编程

,

需等到

Flash

存储器上一次数

据编程

(

写入

)

完成时才能进行下一次数据编程

(

写入

)

。 否则

,

会得到错误的编程结果

,

造成编程后数据校验失败 。

大多数

Flash

存储器都提供了一个或几个状态位来表

示当前

Flash

存储器编程或擦除的状态

,

大多支持通过其

数据总线

D7

数据位的状态来判断

Flash

存储器当前编程 或擦除的状态。这是大多数

Flash

存储器数据手册推荐的 编程轮询算法

,

但经过笔者测试

,

这种算法比较繁琐

,

会造 成部分编程内容不正确

,

可采用将编程数据读出、与写入数 据进行比较的简单方法

,

实现软件等待状态的插入。

说明

: TMS320C6711D

AM29L V400B Flash

存储 器采用

16

位数据连接

,DSP EMIF CE1

存储器空间初始 化为

32

位总线宽度

( CE1

端口连接

16

Flash

存储器

) ,

读取

/

写入

Flash

存储器的

32

位数据中高

16

位无效 。

带有软握手的

Flash

存储器编程函数如下

:

/ 3 p rogram_flash :编程AM29L V400B Flash存储器 3/

/ 3 flash_pt r : Flash存储器地址指针 3/

/ 3 source_pt r :待编程的数据地址指针 3/

/ 3 lengt h :数据长度 3/

void p rogram_flash ( unsigned int 3 so urce_pt r , unsigned int 3 flash_pt r , int lengt h) {

int i ;

unsigned int u Temp ,timeo ut ;

/ 3EM IF设置为32位读写方式,控制地址左移2,以便

控制地址对应EM IF端口的EA [ 192 ]3/

unsigned int 3ct rl_addr1 = ( unsigned int 3) ( (int) flash_

pt r + (0x555 < < 2) ) ;

unsigned int 3ct rl_addr2 = ( unsigned int 3) ( (int) flash_

pt r + (0x2aa < < 2) ) ;

fo r (i = 0 ; i < lengt h ; i + + ) { / /写控制命令序列

3ct rl_addr1 = 0x00aa ; 3ct rl_addr2 = 0x0055 ; 3ct rl_addr1 = 0x00a0 ;

/ /Flash存储器写入(烧写)数据 3flash_pt r = 3source_pt r ; / /插入等待状态,等待烧写完成 u Temp = 3flash_pt r ; timeo ut = 0 ;

do {timeo ut + = 1 ;

}while (3flash_pt r ! = u Temp & & timeo ut < 0xffff) ; / /地址指针加1

flash_pt r + + ; so urce_pt r + + ; }

}

3  两种在线编程方式的区别

在硬件上加入硬件握手的

Flash

存储器在线编程方式设 计简单

,

在应用中只须考虑擦除和编程

,

而无须考虑

Flash

存 储器的当前状态。当

Flash

存储器正处于擦除和编程状态而

未完成时

, Flash

存储器产生的忙信号通过

Flash

存储器与

DSP

之间的硬件连接直接送入

DSP ,

DSP

硬件在其总线访 问周期中自动插入等待周期

,

暂停

DSP

处理器的执行

;

Flash

擦除和编程状态完成时

,

Flash

存储器产生的就绪信

号通过

Flash

存储器与

DSP

之间的直接硬件连接将就绪信

号送入

DSP ,

解除

DSP

的等待状态

,

继续程序的执行。而采

用软件握手的

Flash

在线编程方式需要程序员在软件中判断

Flash

存储器的当前状态。只有当

Flash

存储器擦除过程完

成时

,

才能对其进行编程

;

Flash

存储器的一次编程

(

数据 写入

)

过程完成时

,

才能进行下一次的编程

(

数据写入

)

。软 件设计繁琐

,

且要经过多次调试。

参考文献

[ 1 ] Advanced Micro Devices. AM29L V400B Data Sheet , 2000211.

[ 2 ] Texas Inst rument s. TMS320C6000 EM IF to External Flash Memory , 2002202.

(收稿日期:2010201225)

參考文獻

相關文件

equipam芭 ntUselectr。 nicUscmitircln sinais sUnUrUs,Uvigilanteir色 registarUfactU parapUsteriUrdecisΞ UdUj血 i. 派各旁」夢試 須 知及試 卷 Di§ trib㏕ .Ξ Uda§

This article is for the founding of the modern centuries of Buddhist Studies in Taiwan, the mainland before 1949, the Republic of China period (1912~1949), and Taiwan from

 The oxidation number of oxygen is usually -2 in both ionic and molecular compounds. The major exception is in compounds called peroxides, which contain the O 2 2- ion, giving

Teachers may consider the school’s aims and conditions or even the language environment to select the most appropriate approach according to students’ need and ability; or develop

Tseung Kwan O Government Secondary School, which is situated in Po Lam in Tseung Kwan O, organised a trip to England for a group of students during two successive summers.. Trip

The accuracy of a linear relationship is also explored, and the results in this article examine the effect of test characteristics (e.g., item locations and discrimination) and

This article is mainly to analyze the questions about biography of different types of Chan masters in literatures of Buddhist Monks' biographies in Tang and Song dynasty,

Lu, Linear-time compression of bounded-genus graphs into information-theoretically optimal number of bits, in Proceedings of the Thirteenth Annual ACM-SIAM Symposium on