基于SPI Flash的Sharc系列DSP程序加载

合集下载

Flash做为DSP程序加载和引导

Flash做为DSP程序加载和引导

Flash做为DSP程序加载和引导1 引言在现代数字信号处理系统中,采用Flash做为DSP程序加载和引导是一种常用的方法,它为用户对那些将来可能需要改变数据或代码的系统维护提供了有效手段。

利用Flash器件,能够实现在线程序编写,减少EPROM程序烧写带来的麻烦。

2 Flash AM29LV800B简介Flash存储器又称闪存,它结合了ROM和RAM的特点,不仅具备电子可擦除可编程(EEPROM)功能,而且不会断电丢失数据同时能快速读取数据,它具有在线电擦写、低功耗、大容量、擦写速度快等特点,属于EEPROM的改进产品。

2.1主要性能AM29LV800BB-90EC是AMD公司AM29LV800B系列的一种器件,其主要性能如下:访问时间:90 ns;存储容量:8Mbit;工作温度范围:-55~+125℃:在线编程电压:3.0~3.6 V;低功耗:读操作时电流为7 mA,编程/擦除时电流为15 mA。

2.2引脚功能说明A0-A18:19根地址线;DQ0-DQ14:15根数据线;DQ15/A-1:当配置为16位字模式时,该引脚为数据I/O,组成16位字的最高位DQ15;当配置为8位字节模式时,该引脚为地址输入,为地址线的最低有效位A-1;2.3工作模式2.3.1读模式为了读取数据,系统需将CE和OE设为低电平,同时将WE设为高电平。

在器件上电或硬件复位后,器件默认设置为读模式。

2.3.2写模式为了向器件写入数据或指令,系统需将CE和WE置为低电平,同时将OE 置为高电平,写操作需要4个周期,前3个周期向两个特定地址写入3个特定字符,第4个周期将所需数据写入相应地址:2.3.3复位向器件的任意地址写入特定指令,该器件复位,复位后默认为读模式。

2.3.4自动选择模式向器件两个特定地址写入3个特定的字符,该器件就进入自动选择模式。

在该模式下获取器件的厂商号和设备号,系统必须通过复位指令断开。

2.3.5擦除模式片擦除是一个6周期操作,需向两个特定地址写入4个特定字符。

DSP调试及烧写和加载常见错误及分析

DSP调试及烧写和加载常见错误及分析

Error: Read status value 0x0001 from symbol PRG_statusFlash algorithm failed during clear operation开始能够正常烧写的 , 可是上机调试了一下就不可以写了.在烧写 lf2407内部flash时出现以下错误,不知是什么原由造成的?Error:Read status value 0x0001 from symbolPRG_status Flash algorithm failed during clear operation.换了一个芯片后正常从前有一次在试 CCS功能时,一不当心点了一次加密,还没有履行完,就立刻点认识密,大体这样烧坏了吧!太柔弱了,不再敢试加密了CMD文件要避开 FLASH的 40H--44H 区间,我也出现过这样的问题,烧写2407A的片内 flash时会出现下边的错误提示:Error: Read status value 0x0001 form symbol PRG_statusFlash algorithm failed during clear operation以后换了一块 2407 就能烧写了。

是不是 2407 的 flash坏了?有没有方法检测或许修复flash?昨天在网上查了一下 , 好多人都碰到了这类问题 , 可能是 dsp 内部 flash 烧坏了吧 ! 今日从头换了一块芯片 , 能够烧录进去了 , 可是上拿到样机上浮试试看 , 再烧录就出现了相同的问题 , 预计又是 flash 坏了 , 究竟是什么原由惹起的 ?是不是电源惹起的呢 ?我也出现过能仿真,但不可以烧写的状况!解决方法:解决方法:降低时钟频次。

点击 FLASH插件上的“ View Config File ”,翻开VAR.h文件。

将该文件中的“ PLL_PATIO_CONST .Set 0000h”改成“PLL_PATIO_CONST .Set 0200h”存盘后,履行目录下的Buildall.bat 批办理文件。

烧写Flash后的DSP程序运行不正常的情况分析

烧写Flash后的DSP程序运行不正常的情况分析

这段时间一直在调试DSP6713的Flash烧写,现在对Flash的烧写也算心中了如。

那天,非常Happy的发现将闪烁LED烧写到Flash成功了,然后,就以为一切都OK了……那天,成功烧写了一个300KB以上的程序,又认为,这次应该OK了……那天,写了个Timer中断程序,烧写到Flash,却死机了……那天,在RAM上运行很流畅的一个算法(算法中调用了CCS的atan函数),在烧写到Flash 后算法却死机了……那天,我开始思考:是什么情况导致RAM中跑得很Happy的程序烧写到Flash就运行得如此的不堪——众多的囧相。

“且行且珍惜”,珍惜这些次发现Bug的机会,因此,我要总结:在RAM中能正常运行,而烧写到Flash后无法正常运行的一些情况讨论。

中断向量表包含了所有中断的入口,在烧写Flash的时候,有两种方式可以保证中断能正常工作。

具体可参见TMS320C6713烧写Flash的通用方法的第5小节。

很多情况下,当出现数组越界时,在RAM中的程序都能正常运行,但在烧写Flash后运行就会出现死机或程序跑飞的现象。

比如定义一个数组,你使用x[5]=10这样的语句在RAM程序中是某些时候能正确运行的,在PC上应该也可以。

但将这种程序烧写到Flash之后运行,DSP果断和你说拜拜!因此,请谨慎地检查程序代码中的数组越界和指针操作。

在DSP程序中,坚决不使用C库函数中的malloc函数。

如果需要动态分配内存的操作,可以自己写一个,或使用uCOS II或DSP/BIOS 等嵌入式操作系统。

也不知道是什么原因,也可能是我对atan函数的使用方法不正确造成的吧。

在我的一个最初的程序中,我是直接这样计算atan(x)的,在RAM中以及在PC中都多次测试过没有任何问题。

烧写Flash之后,也不是死机,但程序运行到atan这个函数的时候会卡上很长一段时间,再接着往下运行。

难道是math.h中的atan运算效率太低?但为什么RAM中就能运行呢?这个还不清楚。

基于FLASH的TMS320C6416DSP自加载方法实现

基于FLASH的TMS320C6416DSP自加载方法实现

基于FLASH的TMS320C6416DSP自加载方法实现摘要:本文以TMS320C6416为例,介绍了一种通过编写二次引导程序和烧写FLASH程序,实现DSP上电ROM自加载的方法。

当DSP复位时,会加载位于FLASH前1KB的二次引导程序,然后从地址0x00开始执行二次引导程序。

二次引导程序的作用是将用户程序从FLASH搬移到内部RAM中,再跳转到用户程序入口地址c_int00处开始执行,从而实现DSP芯片的ROM自启动。

关键词:TMS320C6416;二次引导;FLASH1 引言TMS320C6416是TI公司C6000系列中的一款高速定点DSP芯片,采用高性能超长指令集结构内核,主频高达1GHz,片内集成1MB大容量SRAM,同时片外拥有高性能外部存储接口,在许多需要进行大量数字信号处理运算并兼顾高实时性要求的场合得以广泛应用。

基于DSP设计的系统一般都是脱机运行的嵌入式系统,上电后需要用户程序自主加载运行,因此DSP芯片的加载设计尤为重要[1]。

本文给出了该DSP芯片基于外部FLASH的ROM加载方法的设计原理和实现方法。

2 FLASH加载原理TMS320C6416DSP芯片提供了以下3种启动模式:无启动模式(No Boot)、ROM启动(EMIF加载)和主机启动加载,通过配置芯片BEA[19:18]管脚电平即可选择不同模式。

其中ROM启动模式实现简单,速度较快,在实际系统应用中也最广泛。

ROM加载,也就是把程序固化在DSP外扩的非易失类存储器中,利用DSP的引导机制自动加载存储器中的程序。

由于DSP复位后只能从EMIFB的CE1空间向地址0x00处搬移1KB的代码,而通常情况下,用户程序的大小都会超过这个限制,这时就需要二次加载。

在FLASH的前1KB范围内预先存放一小段代码,DSP复位时会把此段代码搬移至内部。

所搬移的1KB代码就是二级引导程序,该二级引导程序实质上将程序从FLASH搬移至内部RAM中,再跳转到程序入口地址c_int00处开始执行[2]。

基于FLASH的DSP嵌入式系统加载程序设计

基于FLASH的DSP嵌入式系统加载程序设计

De i n o e Lo d ng Pr c d r o P sg f Th a i o e u e f r DS Em b d d S s e s d o e de y t m Ba e n FLAS H
JN i— a , I Jab o ZHU — i Z ANG i Li n, H x Ka
( e t o i En i e rn n tt t , f i 3 0 7, i a El cr n c g n e i g I s i e He e 2 0 3 Ch n ) u
Ab t a t Th s p p r a a y e h u d n n o d n r c s f t e r a n y m e r ROM )i sr c : i a e n l z s t e g i i g a d l a i g p o e s o h e d o l mo y( n
金 家保 , 立 新 , 朱 张 凯
( 电子 工 程 学 院 , 肥 20 3 ) 合 3 0 7
摘 要 : 了 T 30 60 系列数字信号处 理器 ( s ) 分析 MS2C 00 D P 的只读存储器 ( O 引导加载过程 , R M) 并对加载 程序的设计
进 行 了详 细 的 阐 述 , 时 以 AMD 公 司 的 S 9 0 8 F A H) T 3 0 6 1 D P 为 例 , 计 了 一 个 利 用 同 2 AL 0 D( L S 和 MS 2 C 7 3 S 设
果 程 序 在 外 部 非 易 失 性 存 储 设 备 内 部 运 行 , 直 接 将
F AS 是兼 备大 容量 、 价格 、 挥 发 性 和低 功 耗 L H 低 无 的存 储器 , 且可 以使 用 较 低 的 电压 通 过特 定 的命 并 令序 列完 成读 、 、 除等 各 种 操作 , 而 已成 为 此 写 擦 因 种非 易失 性存 储器 的首 选 。

基于FLASH的TMS320C6416 DSP ROM加载方法

基于FLASH的TMS320C6416 DSP ROM加载方法

基于FLASH的TMS320C6416 DSP ROM加载方法摘要:简单介绍TMS320C6416的引导方法。

通过CCS把用户的应用程序烧到FLASH中。

当DSP 复位时引导装载程序装载位于FLASH的前1KB中的二次引导程序放在DSP的存储器0处。

传输完成后DSP从0地址开始执行程序,二次引导程序加载用户应用程序。

关键词:DSP 闪烁存储器二次引导装载Rom Boot Method of TMS320C6416 Dsp Based on FlashWANG Min-zhi,CAO yuan-jiang,CHEN Xing-hu(Nanjing Marine Radar Institute, Nanjing 210003, China)Abstract: This paper introduces the characteristics and the program method of thedspTMS320C6416.The program is written to the flash by the CCS.The second bootloador program which is in the first 1KB of the flash is transferred to memory located at the address 0.At the end of the transfer,the CPU remove from the reset and start from memory location 0,then,the second bootloador program boots the user’s program.Keyword: DSP; flash; second bootloador1、引言对于TI公司C6000系列DSP的ROM加载过程是:位于CE1空间的ROM中的代码首先通过DMA/EDMA被搬入地址0开始的内部存储器。

DSP+FLASH的二次程序加载实现方法

DSP+FLASH的二次程序加载实现方法

DSP+FLASH的二次程序加载实现方法
朱望纯;胡汉武;李智
【期刊名称】《国外电子测量技术》
【年(卷),期】2008(27)4
【摘要】通过分析TI TMS320VC5000系列DSP芯片上电后的自动加载原理,以及存储器特点,提出了一种用户程序在线FLASH编程Boot表的生成方法及其二次加载方法,解决了当DSP的C语言程序代码超过32 K字时的程序加载问题。

【总页数】4页(P14-16)
【关键词】DSP;Bootloader;FLASH
【作者】朱望纯;胡汉武;李智
【作者单位】桂林电子科技大学;广州海格通信有限公司
【正文语种】中文
【中图分类】TP274
【相关文献】
1.从FPGA自举加载DSP程序的实现方法 [J], 叶准;王文静;孟维晓
2.基于PC总线的HOST/DSP系统大型程序加载方法研究与实现 [J], 刘小勇;黄一川;施仁
3.TMS320LC5416串行口程序加载实现方法 [J], 李芳;蒲泽新;吴长生
4.TMS320LC5416串行口程序加载实现方法 [J], 李芳; 蒲泽新; 吴长生
5.一种基于DSP的二次加载程序方法 [J], 龙小民;王维
因版权原因,仅展示原文概要,查看原文内容请购买。

最新-利用Flash实现DSP对多个程序有选择的加载 精品

最新-利用Flash实现DSP对多个程序有选择的加载 精品

利用Flash实现DSP对多个程序有选择的加载摘要主要介绍一种利用存储器实现双系统对多份用户代码有选择的上电加载的方法。

其中,重点介绍29800的使用和编程方法,32054的上电自动引导过程,以及模式和并行模式加载用户代码的方法。

关键词存储器主机接口引导表
引言
在32054系列系统的开发中,由于片内只有和存储器,如要将用户代码写入中,必须要由芯片厂家来完成;但这样做用户就不能再更改代码,很不实用。

由于在掉电后不能再保存数据,因此,常常利用、等一些外部存储器来存放用户代码。

在上电工作后,利用提供的机制,再将程序下载到中运行。

如果使用外部存储器存放用户代码,需要用代码转换工具将用户代码转换为二进制目标文件,然后用编程器将其烧写进;而如果使用存储器存放用户代码,则可直接使用仿真器和仿真环境进行在线编程,使用灵活方便,不再需要其它编程设备。

在某一以太网通信系统中,我们就采用存储器来实现多份用户代码的有选择加载。

下面就以此系统为例介绍对32054的一种用户代码加载的方法。

1系统构架
8023以太网标准,用以实现各终端之间的话音和其它数据的通信,以及实现局域网内终端与外界的话音和数据通信。

为节约开发成本,提高系统的可扩展性、通用性和灵活性,我们对每个网内终端采用同样的硬件架构,通过使用不同的软件代码而使其实现不同的功能,发挥不同的作用。

2块芯片、1块网卡、1块和1块以及存储器等器件组成可扩展的基本结构。

其中,以3205410作为主,负责系统的逻辑控制和一般数据传输;以3205416作为从,负责话音的编解码和回声消除、语音检测等工作。

如何用SHARC处理器对FLASH在线编程

如何用SHARC处理器对FLASH在线编程

如何用SHARC处理器对FLASH在线编程介绍ADSP-2116x, ADSP-2126x, ADSP-2136x and ADSP-2137x SHARC® 处理器像大多数可重复编程的处理器,上电时要求程序代码和数据被载入内部空间。

代码和数据可以是由一主机提供(比如通过SPI或JTAG连接),也可以是存储在电路板上的非易失性存储器中,比如ROM,串行的或者并行的FLASH.SHARC EZ-KIT Lite® 评估板可以让用户可以使用以上提到的任何方式来启动DSP处理器。

本EE-NOTE专注于介绍PROM启动模式。

要介绍的PROM是一个AMD公司的8M bit的flash memory器件(AM29LV081B-120EC) 。

对于系统设计人员来说,有好几种方式把启动代码烧写入flash器件中。

本文档将讨论如何用Flash Programmer utility这个软件来烧写编程flash,文档中用的例子是flash programmer项目。

本文讨论的过程用的是ADSP-21262 and ADSP-21161处理器,但是也同样适用于所有的SHARC处理器。

ADSP-21161处理器用外接端口来烧写flash,ADSP-21262用并行端口来烧写程序。

ADSP-21161的烧写方法同样适用于ADSP-21367, ADSP-21368, ADSP-21369, ADSP-21371, and ADSP-21375 处理器。

ADSP-21262处理器适用于ADSP-2126x, ADSP-21362, ADSP-1363, ADSP-21364, ADSP-21365, and ADSP-21366 处理器.Flash Programmer Utility应用软件VisualDSP++® 4.5开发工具或者更高的版本都包含一个软件,Flash Programmer Utility,它可以使得用户可以把flash utility指向一个预先编程好的加载器(.LDR)文件,根据提供好的驱动文件来烧写flash。

利用Flash实现DSP对多个程序有选择的加载

利用Flash实现DSP对多个程序有选择的加载

利用Flash实现DSP对多个程序有选择的加载
陈朝阳;薛峥;郭胜江
【期刊名称】《单片机与嵌入式系统应用》
【年(卷),期】2004(000)002
【摘要】主要介绍一种利用Flash存储器实现双DSP系统对多份用户代码有选择的上电加载的方法.其中,重点介绍M29W800AB Flash的使用和编程方
法,TMS320VC54X DSP的上电自动引导过程,以及HPI模式和并行模式加载用户代码的方法.
【总页数】3页(P57-59)
【作者】陈朝阳;薛峥;郭胜江
【作者单位】华中科技大学;华中科技大学;华中科技大学
【正文语种】中文
【中图分类】TP3
【相关文献】
1.利用计算机串口实现DSP程序加载 [J], 李世杰;李红波;高淑慧
2.ADSP-BF53x系列DSP的SPI Flash程序加载 [J], 贾振月;马志刚;杨钏钏
3.同时支持Nand Flash和Nor Flash启动的启动加载程序设计实现 [J], 周书林;邱磊;唐桂军
4.利用仿真器接口实现TMS320C6X DSP FLASH的烧写及应用程序自引导 [J], 罗钢;彭浩;陈善武
5.DSP+FLASH的二次程序加载实现方法 [J], 朱望纯;胡汉武;李智
因版权原因,仅展示原文概要,查看原文内容请购买。

利用Flash实现DSP对多个程序有选择的加载

利用Flash实现DSP对多个程序有选择的加载

利用Flash实现DSP对多个程序有选择的加载利用Flash实现DSP对多个程序有选择的加载摘要:主要介绍一种利用Flash存储器实现双DSP系统对多份用户代码有选择的上电加载的方法。

其中,重点介绍M29W800AB Flash的使用和编程方法,TMS320VC54X DSP的上电自动引导过程,以及HPI模式和并行模式加载用户代码的方法。

关键词:Flash存储器 DSP 主机接口 Bootloader 引导表引言在TMS320C54X系列DSP系统的开发中,由于DSP片内只有ROM和RAM存储器,如要将用户代码写入ROM中,必须要由DSP 芯片厂家来完成;但这样做用户就不能再更改代码,很不实用。

由于RAM在DSP掉电后不能再保存数据,因此,常常利用EPROM、Flash等一些外部存储器来存放用户代码。

在DSP上电工作后,利用DSP提供的boot机制,再将程序下载到DSP RAM中运行。

如果使用EPROM外部存储器存放用户代码,需要用代码转换工具将用户代码转换为二进制目标文件,然后用编程器将其烧写进EPROM;而如果使用Flash存储器存放用户代码,则可直接使用DSP仿真器和CCS (Code Composer Studio )仿真环境进行在线编程,使用灵活方便,不再需要其它编程设备。

在某一以太网通信系统中,我们就采用Flash 存储器来实现多份用户代码的有选择加载。

下面就以此系统为例介绍对TMS320VC54X DSP的一种用户代码加载的方法。

1 系统构架此通信系统基于802.3以太网标准,用以实现各终端之间的话音和其它数据的通信,以及实现局域网内终端与外界的话音和数据通信。

为节约开发成本,提高系统的可扩展性、通用性和灵活性,我们对每个网内终端采用同样的硬件架构,通过使用不同的软件代码而使其实现不同的功能,发挥不同的作用。

每一通信终端由2块DSP芯片、1块网卡、1块CPLD和1块FPGA以及Flash存储器等器件组成可扩展的基本结构。

双片ADSP-21160系统的程序加载设计

双片ADSP-21160系统的程序加载设计

双片ADSP-21160系统的程序加载设计双片ADSP-21160系统的程序加载设计本文档详细说明了双片ADSP-21160系统的加载,以及如何在VISUAL DSP++集成开发环境中通过DSP将引导程序上载到FLASH 中。

SHARC系列是美国模拟器件公司(Analog Devices)的重要芯片系列之一。

该系列产品具有很强的数字信号处理能力,多片SHARC芯片可以构成更为处理能力强大的系统,广泛应用于通信,雷达等领域。

SHARC系列芯片族包含了ADSP-21060/21061/21601/21065L,以及最新的21160/21161系列。

它们共同的特点是不但有强大的处理能力,而且有丰富的接口资源,十分适合多片级联构成功能更复杂的系统。

在多片系统中,如何对多片SHARC DSP进行程序加载是一个比较实际的问题,本文就是从硬件构架和软件流程上对双片ADSP-21160的SHARC系统的加载问题进行分析的。

1. 双片ADSP-21160系统的硬件构架1.1 双片ADSP-21160的连接以AD21160N为例。

两片SHARC分别为DSP1和DSP2,相应的ID2~0管脚置为001和010。

其中ID为001的是主片,ID为010的为从片。

如果系统采用非主机引导模式,每片的/HBG,/HBR分别置为无效状态(拉高)。

如果加载采用EPROM引导,每片SHARC的/BMS做线或后和EPROM的/CE相连。

并且每片的BR1,BR2对应相连,其余BRx置为无效(拉高)。

ACK信号决定了总线权的转移,应该把ACK强制拉高。

当ID = 000(单片系统),或者ID = 001(多片系统的主片)的时候,ACK会自动内部拉高。

为了保险起见,可以把主片和从片的ACK都在外部强制拉高。

否则,会出现总线权不能交给从片的现象。

地址总线和数据总线对应相连,并和EPROM的地址线,数据线相连。

当双片系统加电后,主片ADSP-21160和从片ADSP-21160都是从EPROM中读出256个字节的初始程序段。

基于SPI Flash的Sharc系列DSP程序加载

基于SPI Flash的Sharc系列DSP程序加载

基于SPI Flash的Sharc系列DSP程序加载
雷春梅;周群;刘谋云;应俊
【期刊名称】《微计算机信息》
【年(卷),期】2010(026)011
【摘要】DSP是针对数字信号处理需要而设计的一种具有特殊结构的微处理器.它需要通过程序加栽来进行信号处理,本文通过具体实例介绍了sharc系列的DSP通过其SPI口的程序加载,同时也介绍了相关系统的硬件设计和软件的调试.该技术可靠性高,使用灵活方便,具有很强的实用性.
【总页数】3页(P115-116,190)
【作者】雷春梅;周群;刘谋云;应俊
【作者单位】610065,四川成都,四川大学电气信息学院;610065,四川成都,四川大学电气信息学院;610065,四川成都,四川大学电气信息学院;610065,四川成都,四川大学电气信息学院
【正文语种】中文
【中图分类】TP319
【相关文献】
1.基于FLASH的多ADSP-TS101S程序加载 [J], 陈英;刘海昌
2.ADSP-BF53x系列DSP的SPI Flash程序加载 [J], 贾振月;马志刚;杨钏钏
3.基于FLASH的DSP嵌入式系统加载程序设计 [J], 金家保;朱立新;张凯
4.基于Flash的ADSP21363程序加载设计 [J], 杨侃;鲁争艳;李贵姣;金肖依;
5.基于TMS320C6455 DSP自动加载及Flash烧写程序的设计 [J], 卫菊红
因版权原因,仅展示原文概要,查看原文内容请购买。

基于串口通信的DSP程序动态加载技术

基于串口通信的DSP程序动态加载技术

基于串口通信的DSP程序动态加载技术李声飞;代华山【摘要】为解决特殊场合嵌入式设备程序升级困难,提出了一种基于串口的TMS320F2812程序动态加载技术.该方法充分利用F2812丰富的片内存储器资源和支持在线编程特点,采用二级引导方式,通过调用API编程函数对片内FLASH擦除和烧写,实现设备程序的在线加载.实验证明.该方法具有烧写稳定、效率高、操作方便等优点,能够应用于嵌入式设备程序的远程升级中.【期刊名称】《电讯技术》【年(卷),期】2011(051)006【总页数】4页(P121-124)【关键词】嵌入式设备;数字信号处理;串口通信;动态加载;二级引导【作者】李声飞;代华山【作者单位】中国西南电子技术研究所,成都610036;中国西南电子技术研究所,成都610036【正文语种】中文【中图分类】TN4091 引言TMS320F2812是TI公司推出的一款高性能的定点DSP[1],具有32位内核处理器,主频可达150MHz,片内集成 128 kbyte的 FLASH、16 kbyte的SARAM,以及丰富多样的外部接口,广泛应用于工业控制、移动通信、军事安全等领域。

随着电子技术的发展和用户需求的提升,对已投入使用嵌入式设备程序的升级也越来越频繁,而目前传统的程序升级方法是实地取下设备,通过JTAG仿真器来烧写程序[2]。

这种方法简单有效,但对于某些特殊场合,如设备在密闭的箱体内以及其它不便触及的地方,这种方式给升级带来了极大的不便,因此开发高效、便捷的升级技术成为一种迫切的需求。

笔者考虑到多数设备都有远程通信端口,如串口、SPI等,因此可采用在线升级方式,在不打开设备箱体的情况下,实现软件更新。

2 系统结构介绍如图1所示,系统硬件结构采用DSP+FPGA架构。

DSP(TMS320F2812)作为处理中心,通过数据总线和地址总线完成与FPGA的数据交换,实现复杂数据处理算法和外部控制。

FPGA利用其大规模硬件资源,实现接口扩展。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

技术创新DSP 开发与应用您的论文得到两院院士关注基于SPI Flash 的Sharc 系列DSP 程序加载The Procedures-load of Sharc Series of DSP Based on SPI Flash(四川大学)雷春梅周群刘谋云应俊LEI Chun-mei ZHOU Qun LIU Mou-yun YING Jun摘要:DSP 是针对数字信号处理需要而设计的一种具有特殊结构的微处理器。

它需要通过程序加载来进行信号处理,本文通过具体实例介绍了sharc 系列的DSP 通过其SPI 口的程序加载,同时也介绍了相关系统的硬件设计和软件的调试。

该技术可靠性高,使用灵活方便,具有很强的实用性。

关键词:程序加载;SPI 接口;数字信号处理;调试中图分类号:TP319文献标识码:BAbstract:DSP is designed to meet the need of Digital Signal Processing as a specific structuralized microprocessor,in which the signal processes through the procedures-load.In this paper,we introduce the course of loading the procedures via SPI port of DSP,which belongs to the sharc line,and also the relevant system ’s design of hardware and the debugging of software is introduced.With flexible and convenient,this method is of high reliability and highly practical.Key words:Procedures-load;SPI port;Digital Signal Processing;degug文章编号:1008-0570(2010)04-2-0115-021引言DSP 芯片主要用于数字信号处理。

当前占据市场大部分份额的DSP 生产厂商是美国的德州仪器与模拟器件两家公司。

在国内,尤以德州仪器生产的芯片使用更加广泛。

使用DSP 进行信号处理,就涉及到程序加载问题,不同厂家生产的不同系列DSP 的程序加载方式也大同小异。

现在应用得比较广泛的是从flash 中加载程序。

因为flash 是一种可在线编程的存储器,而且具有掉电后数据不丢失、功耗低、容量大、读取快、价格低、操作简单等优点。

Flash 存储器芯片又分为并口flash 和串口flash 。

对于并口flash,操作更为简单,数据并行传输,但占用较多的外围接口资源,因此这种程序加载方式比较适合芯片接口资源比较丰富的系统设计;而串口flash,虽然对其进行编程等操作相对复杂一些,但在接口资源比较紧张时却具有其他编程方式无可比拟的优势。

对flash 芯片的烧写,一般有两种方法:编程器烧写和在线编程。

编程器烧写,即是通过硬件编程器,将工程文件经过编译链接后得到的输出文件写入flash 芯片中,这种程序烧写方式实现起来比较简单,但需要额外的硬件编程器,因而一定程度上提高了开发成本。

另一方面,表贴式封装的flash 芯片不可能使用编程器烧写,只能采用在线编程。

本文将通过一个AD 公司生产的sharc 系列DSP 通过其SPI 口的程序加载的具体实例来详细介绍。

后面将通过硬件设计和软件架构来介绍其硬件和软件结构并总结了一些调试经验。

2硬件设计2.1flash 芯片M25P20-VMN6简介m25p20是美国ST 公司生产的一款flash 存储器芯片。

该芯片具有与工业标准SPI 接口兼容的外部引脚。

该芯片具有2Mbit 的存储空间,即256Kbytes 。

存储空间被分成四段,每段56Kbytes,并且每段存储空间由256页组成,每页大小为256Bytes 。

对该芯片进行编程,一次性连续写入最多256Bytes 。

该芯片具有一个状态寄存器,通过对其编程,可以实现芯片存储空间的保护,以及芯片写使能等操作。

另外,状态寄存器中也具有BUSY 标志位,通过该标志位,可以查询芯片当前状态。

除了读写状态寄存器以外,该存储器芯片还具有读、写、整片擦除、段擦除等命令。

其器件编程的指令时序见参考文献[2]。

2.2flash 芯片与DSP 芯片的硬件连接使用的flash M25P20芯片具有与工业标准SPI 接口兼容的外部引脚,我们使用的Sharc 系列DSP 芯片也具有同样的SPI 接口,因此,只需要将两个芯片SPI 接口的引脚对应连接即可。

这就大大的节省了DSP 芯片的外部接口资源。

由于Sharc 系列DSP 芯片的外设接口资源相当的丰富,而外部引脚数却极其的有限,因此,该系列DSP 芯片的引脚复用情况相当严重。

图1Sharc 系列DSP 的外设接口分为两个部分:DAI 与DPI 。

每个部分都含有各种类型的外设接口,比如,DAI 中有PCG(精确时钟产生器),DPI 中包括Timer(定时器)、UART(串口)等。

我们使用的SPI 接口就包含在DPI 中。

DPI,即数字外设接口,其占有的14个外部引脚可以使用SRU 宏分配给它包括的任意一个外设接口。

Sharc 系列DSP 包含两个SPI 接口,分别是DPI 中的SPI 和DAI 中的SPI B 。

在我们的硬件设计中,使用DPI 中的SPI 。

SPI 通信具有主从两种工作模式,在实例中,DSP 的SPI 接口工作于主模式,flash 芯片工作于从模式。

对于sharc 系列DSP,根据雷春梅:硕士研究生技术创新时钟极性和相位的不同,其SPI接口时钟有四种不同的组合,具体设置见参考文献[3]中的SPICTL寄存器。

将DPI的1,2,3,5号引脚分别指定为SPIMOSI、SPIMISO、SPICLK、SPIDS功能。

具体硬件连接示意图如图1所示。

另外,在连接好SPI接口后,我们还需注意Sharc系列DSP程序加载方式的硬件设置。

对于Sharc系列DSP,具有三种程序加载方式,分别是:SPI接口主模式程序加载、SPI接口从模式程序加载以及并行flash程序加载。

具体使用的是哪种程序加载方式,需要通过DSP芯片命名为BOOTCFG0、BOOTCFG1的两个引脚的状态设置来判断。

每种启动方式引脚状态的详细设置请参考文献。

在我们的应用中,使用的程序加载方式为SPI接口主模式程序加载。

3软件设计3.1SPI接口的两种数据传输模式DSP通过其SPI接口向Flash写入数据,具有两种方式:DMA方式与核控制方式。

DMA方式,即是直接存储器存取方式,此方式可在不受CPU核的控制下完成存储器中一个数据块的读写。

在数据读写的时间内,CPU可工作于其他任务中。

DMA方式可以显著提高CPU的利用率。

而核控制方式是指在CPU核的控制下,通过查询指定寄存器的特定位,完成一次数据的传输,而且每次只能传送一个数据字。

对于Sharc系列DSP,一个数据字可以是8位,16位,也可以是32位。

数据字长度的设置是通过设置特定寄存器(SPICTL寄存器)的特定位来实现的。

具体寄存器配置,请参考文献[7]。

在CPU核控制方式下,在进行下一次数据传输之前,为了保证数据传输的正确性,CPU必须查询状态位,因此,CPU会不断的查询SPI接口状态寄存器SPISTAT中的状态位,因此,CPU的利用率较DMA方式低。

图23.2Sharc系列DSP中断系统在Sharc系列DSP中,外设接口较多,每种类型的外设接口都会产生相应的中断。

但是,DSP芯片的中断号以及其对应的中断向量表是有限的,这就导致了中断向量的复用,即同一个中断号,可以被分配给不同的中断源。

另外,该系列DSP的中断号对应的中断源也只是部分能被重分配。

并且每一个中断号都有一默认中断源。

所以,在DMA与核控制方式下,SPI口的四个接口在数据传输时占用相同的中断号,因此也具有相同的中断向量。

3.3软件流程及各模块功能从SPI Flash中加载程序,必须先把工程文件编译链接得到的ldr文件写入SPI Flash存储器中。

对flash编程的程序流程图如图2所示。

在对M25P20进行擦除、写数据等写操作前,必须设置状态寄存器中写使能位以使能写操作。

在擦除M25P20后,写使能被自动禁止,因此,在继续写数据之前,必须重新设置存储器的状态寄存器,以写使能其状态。

在我们的系统中,程序被分成了三个模块,分别是:系统初始化模块、对Flash操作模块和数据写入与校对模块。

系统初始化模块主要包括实现设置系统锁相环参数、设置系统中断向量等初始化系统功能的子函数;对Flash操作模块则主要包括实现一些对Flash状态查询、设置以及擦出等功能的子函数;数据写入与校对模块则是实现将工程的ldr文件写入Flash,然后读出并与原始数据进行校对等功能的子函数。

4结束语在这提出几个值得注意的问题。

一是关于使用的SPI Flash的存储结构组织问题,具体的组织结构请参考文献,需要注意的是在对该存储器进行编程时,需要小心一次性写入的数据量大小,这由存储器每块(sector)的容量决定。

当一次性写入的数据量超过该容量时,会发生数据覆盖,从而导致得不到正确的写入。

二是注意该Flash芯片的写使能与片或段擦除之间的相互影响,这在前文中已给出了叙述。

三是在对Flash芯片进行操作时,无论是擦出操作,还是写入操作,在相应操作完成后必须读取该存储器芯片的状态寄存器,根据某些状态位的状态判断操作是否完成。

四是通过DMA方式对该存储器进行数据写入或者擦除操作时,在根据SPI状态寄存器中状态标志判断操作已完成后必须延迟一定的时间,因为判断DMA传输是否完成无论采用的是DMA中断方式,还是DMA状态寄存器状态查询方式,当DSP根据上述条件作出判断时,实际情况是数据并没有完成传输。

最后,希望通过本文,能对从事ADI公司DSP开发与应用的相关人员提供一些帮助。

本文作者创新点:基于SPI Flash的Sharc系列DSP程序加载,在整个系统的设计与调试过程中,无论是硬件上,还是软件部分都遇到的问题,都一一提出了解决方案。

参考文献[1]STMicroelectronics.M25P20[M].STMicro-electronics group ofcompanies,2004.[2]Analog Device.ADSP-21368SHARC Processor HardwareReference[M].Analog Devices,Inc,2006.[3]Analog Device.Visual DSP++5.0Getting Started Guide[M].Analog Devices,Inc,2006.[4]Analog Device.Getting Started With SHARC Processors[M].Analog Devices,Inc,2006.[5]薛东方,尚朝轩,何强,周相阳等。

相关文档
最新文档