最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

DSP片外Flash在系统编程的设计与实现

来源:动视网 责编:小OO 时间:2025-09-27 08:08:40
文档

DSP片外Flash在系统编程的设计与实现

DSP片外Flash在系统编程的设计与实现张兵陈欣吕迅竑(南京航空航天大学自动化学院南京210016)摘要:本文在研究ADSP21062从片外Flash加载过程的基础上,设计了一种通过RS232C接口对ADSP21062的片外Flash在系统编程的方法,给出了实现该方法所需的硬件构成和软件构成,并详细介绍了独特软件的功能,最后给出了使用该方法进行在系统编程的具体步骤以及实现结果。这种方法具有设备简单、操作方便和传输可靠等特点,解决了以DSP为核心的应用系统软件维护和升级问题。关键词:ADSP2
推荐度:
导读DSP片外Flash在系统编程的设计与实现张兵陈欣吕迅竑(南京航空航天大学自动化学院南京210016)摘要:本文在研究ADSP21062从片外Flash加载过程的基础上,设计了一种通过RS232C接口对ADSP21062的片外Flash在系统编程的方法,给出了实现该方法所需的硬件构成和软件构成,并详细介绍了独特软件的功能,最后给出了使用该方法进行在系统编程的具体步骤以及实现结果。这种方法具有设备简单、操作方便和传输可靠等特点,解决了以DSP为核心的应用系统软件维护和升级问题。关键词:ADSP2
DSP 片外Flash 在系统编程的设计与实现

张 兵 陈 欣 吕迅竑

(南京航空航天大学自动化学院 南京 210016)

摘 要:本文在研究A DSP21062从片外F lash 加载过程的基础上,设计了一种通过RS232C 接口对A DSP21062的片外Flash 在系统编程的方法,给出了实现该方法所需的硬件构成和软件构成,并详细介绍了独特软件的功能,最后给出了使用该方法进行在系统编程的具体步骤以及实现结果。这种方法具有设备简单、操作方便和传输可靠等特点,解决了以DSP 为核心的应用系统软件维护和升级问题。关键词:A DSP21062;RS232C;Flash;在系统编程中图分类号:T P368 文献标识码:B

Design and realization of in system programmable

outer chip Flash of DSP

Zhang Bing Chen Xin L v Xunho ng

(College of Aut omation Engineering,Nanjing University of Aeronautics and Astronaut ics,Nanjing 210016)

Abstract:Based on the study of the boo t loading pro cess fro m o uter chip F lash o f A DSP21062,an in system pr og rammable technique via RS232C interface w as designed for o uter chip Flash o f A DSP21062.T he hardw are component s and softw are co mpo nents for realizat ion of the technique wer e presented,and the functions of some unique so ftw are w ere introduced in detail.Lastly the detailed process of this in system pr og rammable technique and the result of t esting w ere given.Character ist ic of this technique such as simple constructio n,co nv enient operatio n and reliable transmitting enable it deal w ith mainte nance and updat ing pro blems fo r DSP co re application so ftwar e.Keywords:ADSP 21062;R S232C;F lash;in system pro gr ammable

作者简介:张兵(1983 ),男,硕士研究生,主要研究方向为计算机控制。

0 引 言

在以DSP 为核心的系统中,通常将可执行代码存放在非易失存储器中,在系统复位时通过DSP 的引导加载机制将代码转移到高速存储器中运行[1]。A DSP21062是AD 公司生产的高性能D SP,其内部并没有集成非易失存储器,一般选择从片外非易失存储器加载程序。外部非易失存储器一般可选EPRO M 、EEPRO M 或者N OR Flash 等,其中,F lash 具有可以在线编程、低电压擦写、反复擦写次数多、容量大等优点,因而现在越来越多的应用都选择Flash [2]。

通过对DSP 片外Flash 进行在系统编程,即更新DSP 固件可以实现在系统程序调试与软件升级。A D 公司的Visual DSP ++软件自带有 F lash Pro gr ammer 功能,使用该功能对片外Flash 在系统编程必须通过A DSP21062的JT A G 口,目前针对该系列DSP 的片外F lash 在系统编

程方法基本上也是基于JT A G 环境的[1 3]。JT AG 编程方式不仅需要使用JT A G 接口仿真器,而且要求上位机上有专用软件支持,因而只适合于在产品的设计开发阶段使用。在产品整机研制和出厂后维护阶段,要求更新D SP 固件的硬件和软件需求尽可能简单和通用。由于P C 上一般都有RS232C 接口,而且通过R S232C 接口传输文件的协议比较成熟和通用,因而选择采用R S232C 接口进行数据交换[4 5],实现对DSP 片外Flash 在系统编程。

1 Flash 加载过程

ADSP 21062复位时从外部存储空间的起始地址0x400000处开始自动加载256条指令(每条指令48b,即6B)到片内RA M 中,且从片内RA M 的起始地址0x20000处开始放置第一条指令,加载完成后从0x 20005(复位中断向量)开始执行程序。但是,用户程序一般多于256条指令,因而需要使用这自动加载的256条指令来完

这样加载过程分为两个步骤:第一步,引导核的自动加载;第二步,自动运行引导核,完成对L DR文件中用户程序的加载。引导核和用户程序的加载都是通过DM A方式来完成的,使用D M A6。

2 方案设计

2.1 设计思想

在DSP复位后,由驻留程序判断RS232C口的T D和CT S引脚是否短接:如果短接,则进入更新固件模式;如果没有短接,则进入正常工作模式。当进入更新固件模式后,P C(上位机)可以将LDR文件发送给DSP(目标机), DSP将边接收边对Flash进行编程操作,操作结果信息在PC超级终端窗口中显示。如果操作失败,DSP将重新进入接收L DR文件状态,直到成功。

2.2 Flash中的程序模块及加载执行顺序

根据上述设计思想,F lash中的程序模块主要有模式选择程序、更新固件模块和应用程序模块。其中,模式选择程序用于判断RS232C口的T D和CT S引脚是否短接,从而进入相应模式,应预先驻留在Flash中;更新固件模块用于通过RS232C实现在系统更新DSP固件;应用程序模块实现具体应用功能。

更新固件模块和应用程序模块必须分开编译链接成各自的L DR文件,因为如果这两个模块在同一LDR文件中,则如果在对F lash在系统编程过程中发生意外(例如断电),导致L DR文件已被破坏而无法加载,从而无法再通过RS232C在系统更新DSP固件,而只能通过JT A G方式,这与设计初衷相违背。这两个模块需要由模式选择程序根据不同模式加载运行,而模式选择程序的代码很小,完全可以在引导核中实现。另外,通过RS232C主要更新应用程序模块,而更新固件模块一般不用更新,因而将更新固件模块L DR文件中的引导核选择为包含模式选择程序的引导核;而应用程序模块L DR文件的引导核只有在从更新固件模块中加载应用程序模块的时候才使用,因而需要在缺省引导核的第一条指令之前加入修改SY SCO N 寄存器为复位值的指令。这样,ADSP21062复位后,各程序模块的加载执行顺序如图1所示。

对于一个全新的系统,Flash中并没有任何程序,更新固件模块L DR文件必须用JT AG方式编程写入F lash中。成功写入后,就可以通过RS232C更新DSP固件。由于更新固件模块在片内RA M中运行,因而其可以对片外Flash 的任何地址进行编程。但是,如果要对更新固件模块L DR 文件进行更新,则要确保编程过程中不会发生意外,否则只能通过JT A G方式将更新固件模块L DR文件重新编程写入Flash

中。

图1 各程序模块的加载执行顺序

2.3 两个LDR文件在Flash中的位置

由于复位后必须先加载运行包含模式选择程序的引导核,因而更新固件模块LD R文件必须放在DSP外部存储器空间起始地址0x400000对应的Flash空间开始处,一般就设计为Flash的最低地址处。

由于应用程序模块是由包含模式选择程序的引导核载入内部RA M的,因而其L DR文件也必须位于F lash中的固定位置。然而更新固件模块L DR文件的位置已定,而且其大小在定型以后一般变化较小,因而很方便选择应用程序模块L DR文件的位置。另外,由于对NO R Flash 编程之前需要将相应扇区擦除,因而为了方便编程,L DR 文件的起始地址必须为某个扇区的起始地址。

3 方案实现

3.1 硬件需求

通过RS232C对D SP片外F lash在系统编程的硬件需求主要有一台PC(有COM口)、DSP外扩的RS232C口以及连接这两者的电缆(称为 编程电缆)。

为了使DSP能够进入更新固件模式,其外扩的R S232C口必须有CT S信号,而且编程电缆中连接D SP一端的DB9插头内的3脚(T D)和8脚(CT S)必须短接起来。

3.2 软件设计

整个在系统编程的软件分为两个部分:一个是运行于PC上的软件,包括W indo ws自带的超级终端和自编的格式转换程序;另一个是运行于DSP上的程序,包括模式选择程序和更新固件模块。

考虑到用户更新固件的方便性,选择使用W indow s自带的超级终端来发送L DR文件给DSP,采用X M ODEM 协议,并且超级终端支持CRC校验,保证了文件传输的可靠性。

V isual DSP++生成的LD R文件主要有 Hex和 A SCI I两种格式,其中 H ex格式主要用于编程写入Flash中。这种格式的L DR文件每行以 :开头,且每行为下列3种记录之一:扩展线性地址记录、数据记录和文件结尾记录。扩展线性地址记录含有其后面数据记录中数据地址的31~16位,而数据记录中只含有地址的15~0位,这样可以组成32位的Flash物理地址。直接发送 H ex格式L DR文件有如下缺点:第一,XM O DEM协议规定每个发送包包含128B的数据[6],这样DSP就要将数据包重新组合成LDR文件的各种记录,并提取出实际写入Flash的数据,工作量太大;第二, H ex格式文件用ASCII来表示十六进制数,即一个字节的十六进制数需要用两个字节来表示,传输时间太长。因而,在PC使用格式转换程序提取L DR文件中的有用信息,并转换为二进制格式,这些有用信息包括L DR文件在F lash中的起始地址以及实际写入F lash中的数据。

模式选择程序判断RS232C口的T D和CT S短接的方法为发送0x55字节数据,并在发送的过程中检测CT S引脚逻辑变化的次数;如果为10次,则表示T D和CT S已经短接。如果短接,则不用修改DM A6的外部地址寄存器EI6,引导核将加载运行更新固件模块,从而进入更新固件模式;如果没有短接,则将EI6修改为应用程序模块L DR 文件的起始地址+256∀6+F lash的偏移地址,这样引导核将加载运行应用程序模块,从而进入正常工作模式。

更新固件模块主要包含X M ODEM协议物理层程序、XM OD EM协议链路层程序、XM ODEM协议应用层程序、Flash操作程序以及加载引导核的程序。XM O DEM协议物理层程序用于控制U A RT器件[6];XM O DEM协议链路层程序实现XM OD EM的接收协议[6];XM O DEM协议应用层程序负责接收用户指令、检查起始地址以及将128B 的数据块组合成较大的数据块,并一起编程写入F lash中; Flash操作程序用于对NO R F lash进行读取、擦除、编程和复位;加载引导核的程序用于加载运行应用程序模块L DR 文件中的引导核。XM OD EM协议物理层和链路层程序以及Flash操作程序都是实现了一些通用的功能,这里主要介绍应用层程序和加载引导核的程序。

(1)应用层程序:应用层程序首先会发送信息给PC,表示DSP已进入更新固件模式,并由用户选择更新其中一个LDR文件,然后再通知链路层启动X M OD EM协议。应用层程序会根据用户的选择检查第一个数据包中的32位起始地址,如果错误,则通知链路层取消文件传输,并发送起始地址错误信息。

由于对N OR F lash编程之前需要先将相应扇区擦除,从而编程也最好以扇区为单位进行。A DSP21062内部RA M最多可有KB空间用于缓冲区,一般情况下可以载下整个扇区的数据。而如果扇区大于KB,由于L DR 文件的数据地址是连续的,因而擦除操作可以在扇区首次需要编程时进行,并设置已擦除标志。另外,在编程后还需要将Flash中的数据读出来比较。如果编程错误,则通知链路层取消文件传输,并发送编程错误信息。

在上述过程中如果发生错误,应用层程序将重新进入循环,并接收用户选择更新某个LD R文件;如果编程成功,则由用户选择加载运行应用程序模块或者复位DSP。

(2)加载引导核的程序:该程序加载运行应用程序模块L DR文件中的引导核,并由该引导核加载运行应用程序模块,从而进入正常工作模式。该程序必须先关闭除了EP0中断外的所有可屏蔽中断,并清除PC堆栈、状态堆栈、循环堆栈以及指令CA CH E;然后再使用DM A6加载引导核,加载完成后即跳至0x20005开始执行引导核,因而该程序必须用汇编语言编写。特别要注意的是在设置和使用DM A6之前,必须将DM AC6寄存器清零。

4 实现结果

上述通过RS232C对DSP片外F lash在系统编程的方法已在使用ADSP21062和S29JL0H的系统中成功实现。使用该方法进行在系统编程的步骤如下:

(1)使用V isual DSP++生成 H ex格式L DR文件;

(2)用格式转换程序将L DR文件转换为二进制格式;

(3)用编程电缆将P C和DSP连接起来;

(4)打开超级终端,然后给DSP上电,其应进入更新固件模式,如图2所示;

(5)选择更新哪个LDR文件,然后使用超级终端发送二进制L DR文件,如图3所示;

(6)超级终端窗口中会显示编程结果。如果成功,则可以选择加载运行应用程序模块或者复位DSP,如图4所示;如果失败,则会重新进入更新固件模式,并可重复(5)和(6),如图2所示。

5 结束语

本文提出了一种通过RS232C接口实现对DSP片外F lash在系统编程的方法,

并成功实现。该方法具有设备

图2 DSP已进入更新固件模式

图3 发送L DR

文件

图4 编程成功

简单、操作方便和传输可靠等特点,解决了目标系统成形状态下的系统程序调试和软件升级问题,同时该方法的设计开发思想对同类系统或类似系统的设计开发提供了有益借鉴。

参考文献

[1]刘德生,李杰.基于JTAG 的DSP 外部Flash 在线编程

与引导技术[J].电子技术应用,2005(3):61 63.[2]冯地耘,张杨.基于ADSP 21160的Flash 接口应用设

计[J].实验科学与技术,2004(4):38 40.

[3]帖翊,刘娜,张世稳.基于ADSP21160的Flash 在系统

编程与实现[J].无线电通信技术,2004,30(4):37 38.

[4]赖欣,胡泽,赖晓斌,等.TMS320LF240XA 系列DSP 片

内FLASH 编程技术[J].国外电子测量技术,2005,24(9):20 23.

[5]李兴建,曹五顺,李琨.T MS320LF240x 系列DSP 片内

Flash 的在线编程[J].国外电子元器件,2003(6):68 70.

[6]陈坚,孙志月.MODEM 通信编程技术[M].西安:西安

电子科技大学出版社,1998.

(上接第25页)

4.4 确定扩展不确定度4.4.1 计算有效自由度

v ef f =u 4c (V )/(

C 4A u 4A

v A +C 4(v)u 4(v )v v +C 4(f )u 4

(f )v f

+C 4(B)u 4(B)v B +C 4(L )u 4(L )v L +C 4(Z)u 4(Z)

v Z +

C 4(K c )u 4(K c )

v K C

=62

4.4.2 取置信概率p =95%,查t(v ef f )分布表,求包含因子为:

k p =t p (v e f f )=t 0.95(62)=2.00扩展不确定度为:

U p =k p u c (V )=2.00∀0.91=1.8dB

5 测量结果

EU T 电源线传导发射测量结果见∀∀图V f 曲线,(图∀中某频率f 的电压(V (f )#1.8)dBuV 所确定的区间具有95%的置信概率)扩展不确定度为U = 1.8dB,U 是由合成不确定度u c =0.91dB 和包含因子k = 2.00确定

的,k 基于t 分布,由有效自由度v e f f =62及置信概率p =0.95得到。

6 结束语

通过上述不确定度的评定可以知道,影响不确定度的因素很多,如测量仪器、实验室、被测件、测量方法,分析起来非常复杂,要想得到可信度的测量结果,必须考虑影响测量结果的各个因素。

参考文献

[1]GJB152A 97.军用设备和分系统电磁发射和敏感度要求

[S].

[2]NIS81 2002.EMC 测量中的不确定度处理[S].[3]汪振科.EMC 电场辐射发射测量不确定度评定[J].电

子产品可靠性与环境实验,2007,25(147):18 21.[4]陈海航.电力线载波EMC 分析及干扰排查[J].国外电

子测量技术,2007,26(5):60 62.

[5]周洵.不确定度评估在电磁兼容领域应用分析[J].电子

质量,2005(10):67 70.

文档

DSP片外Flash在系统编程的设计与实现

DSP片外Flash在系统编程的设计与实现张兵陈欣吕迅竑(南京航空航天大学自动化学院南京210016)摘要:本文在研究ADSP21062从片外Flash加载过程的基础上,设计了一种通过RS232C接口对ADSP21062的片外Flash在系统编程的方法,给出了实现该方法所需的硬件构成和软件构成,并详细介绍了独特软件的功能,最后给出了使用该方法进行在系统编程的具体步骤以及实现结果。这种方法具有设备简单、操作方便和传输可靠等特点,解决了以DSP为核心的应用系统软件维护和升级问题。关键词:ADSP2
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top