CN101183314A - 一种实现数字信号处理器程序在线编程的方法 - Google Patents
一种实现数字信号处理器程序在线编程的方法 Download PDFInfo
- Publication number
- CN101183314A CN101183314A CNA2007101935266A CN200710193526A CN101183314A CN 101183314 A CN101183314 A CN 101183314A CN A2007101935266 A CNA2007101935266 A CN A2007101935266A CN 200710193526 A CN200710193526 A CN 200710193526A CN 101183314 A CN101183314 A CN 101183314A
- Authority
- CN
- China
- Prior art keywords
- digital signal
- signal processor
- program
- online programming
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种实现数字信号处理器程序在线编程的方法,该方法首先使用DSP仿真器通过JTAG接口对Flash存储器烧写用于用户程序编程数据的接收、校验及写入的内核程序;其次将数字信号处理器与计算机连接,运行用于计算机与数字信号处理器之间数据交换的在线编程应用软件,将用户程序写入Flash存储器;本发明烧写内核程序过程仅需一次,用户程序的写入及更新通过数字信号处理器的串口在线完成,因而用户程序能够很简捷地写入数字信号处理器外挂的Flash存储器中,增强了以DSP芯片为平台的系统可维护能力。
Description
技术领域
本发明涉及一种实现数字信号处理器程序在线编程的方法,特别涉及一种数字信号处理器外挂Flash芯片的在线编程方法。
技术背景
近年来,数字信号处理器(DSP)性价比的提高和开发环境的不断完善,使DSP在通信、计算机、控制、消费类电子产品等各个领域得到了广泛应用。对于以DSP芯片为平台的系统开发,除考虑系统本身的功能、性能实现,还应完善系统的可维护、可扩展能力,保证系统的可持续发展。对应于这种设计要求,开展基于DSP程序的在线编程技术研究就成为一项很有必要的工作。
目前,在DSP应用系统中,普遍采用Flash芯片作为DSP的程序存储器。一般来说,将用户程序代码烧写入外部Flash存储器的方法有两种:一种是使用通用编程器对Flash存储器进行编程;另一种是通过DSP的JTAG仿真接口对Flash存储器进行编程。第一种方法操作繁琐,随着贴片Flash的出现,逐步淡出主流设计。在线烧写Flash是一种简捷、有效、灵活的方法,但JIAG口的编程不能脱离CCS仿真环境、编程时需打开设备外壳等因素也很难适应现场编程的要求。
发明内容
本发明要解决的技术问题是提供一种实现数字信号处理器程序在线编程的方法,该方法使用户程序能够很简捷地写入数字信号处理器外挂的Flash存储器中,并且用户程序更新灵活。
本发明的实现数字信号处理器程序在线编程的方法包括下述步骤:
(一)、使用DSP仿真器通过JTAG接口对Flash存储器烧写内核程序;
(二)、将数字信号处理器与计算机连接,将在线编程应用软件存入计算机;
(三)、运行在线编程应用软件,将用户程序编写入Flash存储器;
所述的内核程序用于用户程序编程数据的接收、校验及写入;
所述的在线编程应用软件用于在线编程时计算机与数字信号处理器之间的数据交换。
所述的内核程序由编程文件接收模块、差错校验模块、接收应答模块、Flash写入模块、Flash擦除模块、完整性效验模块、二次加载模块和控制模块组成;
所述的在线编程应用软件由编程文件载入模块、串口配置模块、控制管理模块组成。
所述的步骤(二)中,数字信号处理器通过串行接口及异步串行通讯芯片与计算机连接。用户程序输入计算机后,通过串口输出;再经过串行接口电平转换及异步串行通讯芯片串并转换后,通过数字信号处理器写入Flash存储器。
所述的步骤(二)中,数字信号处理器还可以通过串行接口、异步串行通讯芯片及可编程逻辑芯片与计算机连接;可编程逻辑芯片作为Flash存储器和异步串行通讯芯片的译码选通,实现Flash存储器和异步串行通讯芯片与数字信号处理器的连接。用户程序输入计算机后,通过串口输出;再经过串行接口电平转换及异步串行通讯芯片串并转换后,通过数字信号处理器写入Flash存储器。
所述的内核程序与用户程序在Flash存储器里分开存储。
所述的内核程序设置为写保护,不能随便擦除,所以在操作过程中遇到突然掉电或误操作引起的擦除、写入不成功也不影响程序再次更新。
所述的内核程序中,编程文件接收模块负责接收来自计算机的用户程序编程文件,经差错校验模块校验无误后,把收到的字节缓存到分配的内存空间,为写入Flash存储器做好准备,并且接收应答模块对在线编程应用软件发出应答信号;如果差错校验没有通过,则接收应答模块不做任何应答,等待在线编程应用软件重发数据包。Flash擦除模块、Flash写入模块对Flash存储器实施在线编程的具体操作,待整个编程文件接收完毕后,启用Flash擦除模块、Flash写入模块完成Flash存储器的在线写入用户程序编程文件。写入完成后,由完整性效验模块对Flash存储器编程的正确性进行检查,把编程前数据的校验和编程后Flash存储器中读出数据的校验进行比较,确认编程是否成功。二次加载模块负责引导DSP用户程序的执行。控制模块是内核程序的调度者,通过对设定的在线编程等待时间的监视,控制当前是工作在接收串口信息状态,还是启用二次加载模块。
在线编程应用软件由编程文件载入模块、串口配置模块、控制管理模块组成。编程文件载入模块完成用户程序编程文件的装载,根据文件大小实现文件分片和校验;串口配置模块用于配置串口端口和速率;控制管理模块主要实现在线编程时与DSP的交互、发送数据包等功能。
本发明通过深入研究DSP的上电引导机制,采用预先使用DSP仿真器通过JTAG接口对Flash存储器烧写内核程序来实现数字信号处理器程序在线编程。对Flash存储器烧写内核程序的过程仅需一次,此后用户程序的编写及更新则都通过数字信号处理器的串口在线写入,不再需要仿真器的参与,因而用户程序能够很简捷地编写入数字信号处理器外挂的Flash存储器中,增强了以DSP芯片为平台的系统可维护能力。
当需要更新程序时,在计算机上运行在线编程应用软件,设置串口端口号和波特率,发出加载指令给数字信号处理器。内核程序实际是一个可以完成Flash操作和DSP代码加载的内核。DSP上电后或复位后,利用DSP固有的自举功能从Flash中加载内核程序到DSP内部并开始运行,在设定的时间内,内核程序监视串口的数据,如果检测到符合Flash编程数据格式的DSP代码,则开始接收代码并缓存到DSP片内,待代码全部正确接收后,启动Flash编程指令将代码编程到Flash中。如果在设定的时间内没有检测到指定格式的代码数据,则内核程序负责搬移Flash中的DSP代码开始运行。
下面结合附图和具体实施方式对本发明作进一步详细说明。
附图说明
图1为内核程序流程图。
图2为在线编程应用软件流程图。
图3为在线编程时软件操作时序图。
图4为数字信号处理器与计算机第一种连接方式示意图。图中1计算机,2串行接口,3异步串行通讯芯片,4数字信号处理器,5为Flash存储器。
图5为数字信号处理器与计算机第二种连接方式示意图。图中11计算机,12串行接口,13异步串行通讯芯片,14数字信号处理器,15为Flash存储器,16可编程逻辑芯片。
具体实施方式
本发明的实现数字信号处理器程序在线编程的方法具体步骤如下:
首先,使用DSP仿真器通过JTAG接口对Flash存储器烧写内核程序;
其次,将数字信号处理器与计算机连接,将在线编程应用软件存入计算机;
最后,运行在线编程应用软件,将用户程序写入Flash存储器;
所述的内核程序流程如图1所示,包括下述步骤:
a、开始;
b、编程文件接收模块接收来自计算机的用户程序编程文件数据;
c、差错校验模块对接收的数据进行校验;若数据正确,则把收到的字节缓存到分配的内存空间,并且接收应答模块对在线编程应用软件发出应答信号;若数据不正确,则丢弃数据,接收应答模块不做任何应答,等待在线编程应用软件重发数据包;
d、判断用户程序编程文件数据是否接收完毕;若是则启动Flash擦除模块、Flash写入模块,完成Flash存储器的在线写入用户程序编程文件;若否则返回步骤b;
e、完整性效验模块对Flash存储器编程的正确性进行检查,确认编程是否成功;若编程成功,则发送文件正确写入Flash应答信号;若不成功,则发送文件写入Flash失败应答信号;
f、结束。
所述的在线编程应用软件流程如图2所示,包括下述步骤:
①开始;
②配置串口端口和速率;
③发送请求帧;
④若收到应答帧,则转步骤⑤;若未收到应答帧,则返回步骤③;
⑤发送数据帧;
⑥若收到应答帧,则转步骤⑦;若未收到应答帧,则返回步骤⑤;
⑦判断数据是否发送完毕,是则转步骤⑧;否则返回步骤⑤;
⑧发送文件发送完毕帧;
⑨收到应答帧,则转步骤⑩;若未收到应答帧,则返回步骤⑧;
⑩显示烧写结果。
所述的数字信号处理器与计算机可以通过第一种方式连接,如图4所示,数字信号处理器4通过异步串行通讯芯片3和串行接口2与计算机1连接。用户程序输入计算机1后,通过串口输出;再经过串行接口2电平转换及异步串行通讯芯片3串并转换后,通过数字信号处理器4写入Flash存储器5。
所述的数字信号处理器与计算机还可以通过第二种方式连接,如图5所示,数字信号处理器14通过串行接口12、异步串行通讯芯片13和可编程逻辑芯片16与计算机11连接;可编程逻辑芯片16作为Flash存储器15和异步串行通讯芯片13的译码选通,实现Flash存储器15和异步串行通讯芯片13与数字信号处理器14的连接。用户程序输入计算机11后,通过串口输出;再经过串行接口12电平转换及异步串行通讯芯片13串并转换后,通过数字信号处理器14写入Flash存储器15。
所述的内核程序与用户程序在Flash存储器里分开存储。
所述的内核程序设置为写保护,不能随便擦除,所以在操作过程中遇到突然掉电或误操作引起的擦除、写入不成功也不影响程序再次更新。
本发明的数字信号处理器可以是美国德州仪器公司的(TI)TMS320C6416 DSP,它不仅具有强大的处理内核,能够完成各种复杂的数据处理任务,同时片内硬件资源充足,可以作为设备通用的微控制器来使用。数字信号处理器外挂的Flash存储器是AMD公司生产的CMOS单电压供电Flash存储器AM29LVO33C,具有低功耗、大容量、擦写速度快等特点,内部嵌入ISP(In System Program)功能,支持在线的实时擦除和再编程操作。通过TMS320C6416与AM29LVO33C的配接,为在线编程系统提供一个通用硬件操作平台。串行接口采用MAX232;异步串行通讯芯片采用ST16C550;可编程逻辑芯片采用XILINX XC2C256。
计算机采用RS232串口标准,通过串行接口MAX232实现电平格式转换,送往ST16C550实现串并数据转换(UART)和产生串口收发中断,通过CPLD完成译码选通,实现ST16C550和AM29LVO33C与DSP的连接,DSP程序存储在Flash芯片AM29LVO33C中。这只是本发明采用的一个硬件平台,实际上只要DSP能操作串口和Flash的硬件平台都可以使用。
为保证传输可靠性,计算机与DSP串行传输波特率固定设置为57600kbps,数据格式为:1个起始位,8个数据位,1个停止位。计算机端主动发起连接,在发出一帧数据后开始计时,若在两秒内没有收到DSP的正确响应,则重发当前帧,DSP端被动地接收计算机发出的数据,在收到正确的一帧数据后,根据协议作出相应的响应,如果收到的数据是错误的,DSP不做任何操作。在这里,随机码用来保证DSP和计算机之间的通信是针对当前连接的,每次连接的随机码是不同的。校验位是除帧头、帧尾以外每一帧数据的字节和。为了保证每一帧数据中不出现7E、7F帧头、帧尾标记,对数据中出现的7E、7F字节采用替换算法,对数据中出现的7E用7D5E两字节代替,对7F用7D5F代替,对7D用7D5D代替。
计算机端数据发送协议如下:
DSP就绪检测
7E | 01H | XXH | XXHXXHXXHXXH | XXHXXHXXHXXH | XXH | 7F |
帧头 | 命令字 | 随机码 | 代码尺寸 | 写入Flash的位置 | 校验位 | 帧尾 |
发送数据包
7E | 02H | XXH | XXHXXHXXHXXH | ……… | XXH | 7F |
帧头 | 命令字 | 随机码 | 数据包在代码中的起始位置 | 数据 | 校验位 | 帧尾 |
文件发送完毕
7E | 03H | XXH | XXH | 7F |
帧头 | 命令字 | 随机码 | 校验位 | 帧尾 |
DSP端数据响应协议:
可以开始接收新文件
7E | 31H | XXH | XXH | 7F |
帧头 | 命令字 | 随机码 | 校验位 | 帧尾 |
已经正确接收数据包
7E | 32H | XXH | XXHXXHXXHXXH | XXH | 7F |
帧头 | 命令字 | 随机码 | 已正确接收字节数 | 校验位 | 帧尾 |
已经正确保存整个文件
7E | 33H | XXH | XXH | 7F |
帧头 | 命令字 | 随机码 | 校验位 | 帧尾 |
文件正确写入Flash
7E | 34H | XXH | XXH | 7F |
帧头 | 命令字 | 随机码 | 校验位 | 帧尾 |
文件写入Flash失败
7E | 35H | XXH | XXH | 7F |
帧头 | 命令字 | 随机码 | 校验位 | 帧尾 |
Claims (8)
1.一种实现数字信号处理器程序在线编程的方法,其特征在于包括下述步骤:
(一)、使用DSP仿真器通过JTAG接口对Flash存储器烧写内核程序;
(二)、将数字信号处理器与计算机连接,将在线编程应用软件存入计算机;
(三)、运行在线编程应用软件,将用户程序写入Flash存储器;
所述的内核程序用于用户程序编程数据的接收、校验及写入;
所述的在线编程应用软件用于在线编程时计算机与数字信号处理器之间的数据交换。
2.根据权利要求1所述的实现数字信号处理器程序在线编程的方法,其特征在于所述的内核程序由编程文件接收模块、差错校验模块、接收应答模块、Flash写入模块、Flash擦除模块、完整性效验模块、二次加载模块和控制模块组成;
所述的在线编程应用软件由编程文件载入模块、串口配置模块、控制管理模块组成。
3.根据权利要求1所述的实现数字信号处理器程序在线编程的方法,其特征在于所述的步骤(二)中,数字信号处理器通过串行接口及异步串行通讯芯片与计算机连接;用户程序输入计算机后,通过串口输出;再经过串行接口电平转换及异步串行通讯芯片串并转换后,通过数字信号处理器写入Flash存储器。
4.根据权利要求3所述的实现数字信号处理器程序在线编程的方法,其特征在于串行接口采用MAX232;异步串行通讯芯片采用ST16C550。
5.根据权利要求1所述的实现数字信号处理器程序在线编程的方法,其特征在于所述的步骤(二)中,数字信号处理器通过串行接口、异步串行通讯芯片及可编程逻辑芯片与计算机连接;可编程逻辑芯片作为Flash存储器和异步串行通讯芯片的译码选通,实现Flash存储器和异步串行通讯芯片与数字信号处理器的连接;用户程序输入计算机后,通过串口输出;再经过串行接口电平转换及异步串行通讯芯片串并转换后,通过数字信号处理器写入Flash存储器。
6.根据权利要求5所述的实现数字信号处理器程序在线编程的方法,其特征在于串行接口采用MAX232;异步串行通讯芯片采用ST16C550,可编程逻辑芯片采用XILINXXC2C256。
7.根据权利要求1所述的实现数字信号处理器程序在线编程的方法,其特征在于所述的内核程序与用户程序在Flash存储器里分开存储。
8.根据权利要求7所述的实现数字信号处理器程序在线编程的方法,其特征在于所述的内核程序设置为写保护。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101935266A CN101183314A (zh) | 2007-12-11 | 2007-12-11 | 一种实现数字信号处理器程序在线编程的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101935266A CN101183314A (zh) | 2007-12-11 | 2007-12-11 | 一种实现数字信号处理器程序在线编程的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101183314A true CN101183314A (zh) | 2008-05-21 |
Family
ID=39448602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101935266A Pending CN101183314A (zh) | 2007-12-11 | 2007-12-11 | 一种实现数字信号处理器程序在线编程的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101183314A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101545933B (zh) * | 2009-04-28 | 2012-01-11 | 国网电力科学研究院 | 用于雷电探测的远程智能升级装置及其实现方法 |
CN102820061A (zh) * | 2012-08-31 | 2012-12-12 | 东北大学 | 嵌入式远程设备程序烧写装置及方法 |
CN105373389A (zh) * | 2015-12-05 | 2016-03-02 | 中国航空工业集团公司洛阳电光设备研究所 | 一种软件在线更新方法 |
CN105373407A (zh) * | 2015-12-07 | 2016-03-02 | 中国船舶重工集团公司第七〇五研究所 | 嵌入式系统dsp和fpga在线升级方法 |
CN105487404A (zh) * | 2015-11-28 | 2016-04-13 | 江苏宏宝电子有限公司 | 一种基于磁隔离技术的dsp仿真器 |
CN105955799A (zh) * | 2016-05-05 | 2016-09-21 | 青岛海信电器股份有限公司 | 软件升级系统、方法及仿真器 |
CN106648807A (zh) * | 2017-01-10 | 2017-05-10 | 北京电子工程总体研究所 | 一种基于flash存储器的dsp软件上传更新方法 |
CN107390566A (zh) * | 2016-03-29 | 2017-11-24 | 伊利诺斯工具制品有限公司 | 具有现场可编程硬件的焊接型系统 |
CN110990044A (zh) * | 2019-11-12 | 2020-04-10 | 中国航发南方工业有限公司 | 在应用编程方法、计算机可读取的存储介质 |
CN111563012A (zh) * | 2019-12-27 | 2020-08-21 | 天津津航计算技术研究所 | 一种检测norflash存储器全局位线短路故障的软件测试方法 |
CN112394964A (zh) * | 2020-12-14 | 2021-02-23 | 爱士惟新能源技术(扬中)有限公司 | 一种多核芯片的程序更新方法及系统 |
-
2007
- 2007-12-11 CN CNA2007101935266A patent/CN101183314A/zh active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101545933B (zh) * | 2009-04-28 | 2012-01-11 | 国网电力科学研究院 | 用于雷电探测的远程智能升级装置及其实现方法 |
CN102820061A (zh) * | 2012-08-31 | 2012-12-12 | 东北大学 | 嵌入式远程设备程序烧写装置及方法 |
CN102820061B (zh) * | 2012-08-31 | 2016-08-17 | 东北大学 | 嵌入式远程设备程序烧写装置及方法 |
CN105487404A (zh) * | 2015-11-28 | 2016-04-13 | 江苏宏宝电子有限公司 | 一种基于磁隔离技术的dsp仿真器 |
CN105373389A (zh) * | 2015-12-05 | 2016-03-02 | 中国航空工业集团公司洛阳电光设备研究所 | 一种软件在线更新方法 |
CN105373407A (zh) * | 2015-12-07 | 2016-03-02 | 中国船舶重工集团公司第七〇五研究所 | 嵌入式系统dsp和fpga在线升级方法 |
CN107390566A (zh) * | 2016-03-29 | 2017-11-24 | 伊利诺斯工具制品有限公司 | 具有现场可编程硬件的焊接型系统 |
CN105955799A (zh) * | 2016-05-05 | 2016-09-21 | 青岛海信电器股份有限公司 | 软件升级系统、方法及仿真器 |
CN106648807A (zh) * | 2017-01-10 | 2017-05-10 | 北京电子工程总体研究所 | 一种基于flash存储器的dsp软件上传更新方法 |
CN110990044A (zh) * | 2019-11-12 | 2020-04-10 | 中国航发南方工业有限公司 | 在应用编程方法、计算机可读取的存储介质 |
CN110990044B (zh) * | 2019-11-12 | 2023-06-30 | 中国航发南方工业有限公司 | 在应用编程方法、计算机可读取的存储介质 |
CN111563012A (zh) * | 2019-12-27 | 2020-08-21 | 天津津航计算技术研究所 | 一种检测norflash存储器全局位线短路故障的软件测试方法 |
CN111563012B (zh) * | 2019-12-27 | 2023-09-26 | 天津津航计算技术研究所 | 一种检测norflash存储器全局位线短路故障的软件测试方法 |
CN112394964A (zh) * | 2020-12-14 | 2021-02-23 | 爱士惟新能源技术(扬中)有限公司 | 一种多核芯片的程序更新方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101183314A (zh) | 一种实现数字信号处理器程序在线编程的方法 | |
CN104620564B (zh) | 用于经由利用数据隧道的接口的多协议数据元素的传输的装置和方法 | |
CN104823167B (zh) | 现场错误恢复 | |
CN101545933B (zh) | 用于雷电探测的远程智能升级装置及其实现方法 | |
CN103270497A (zh) | 实时错误恢复的方法和系统 | |
CN101339581B (zh) | 基于中断通讯的嵌入式系统的在线调试仿真方法 | |
CN103019788A (zh) | 一种基于can总线的远程在线升级方法 | |
CN107562504A (zh) | 一种dsp程序分段加载的串口实现方法 | |
CN106874054A (zh) | 一种直放站内模块程序在线升级方法与系统 | |
CN102033770A (zh) | 移动终端的触摸屏固件升级方法及装置 | |
CN113434162B (zh) | 远程在线更新fpga多版本程序的方法 | |
CN109842523A (zh) | 一种固件升级方法、装置、设备及存储介质 | |
CN112463614A (zh) | 一种基于硬件板卡接入的软件虚拟化测试环境构建方法 | |
CN106886438A (zh) | 基于fpga的系统远程更新方法 | |
CN109002310A (zh) | 固件升级方法 | |
CN105573794A (zh) | 一种嵌入式系统软件远程更新方法及系统 | |
CN114281394A (zh) | 一种快速在线升级程序的方法、系统、设备及介质 | |
CN106569833A (zh) | 一种具有二级boot的dsp程序在线升级方法 | |
CN108469961A (zh) | 一种基于微型化嵌入式平台远程升级系统及方法 | |
CN104077166A (zh) | 基于fpga中ip核的epcs与epcq存储器在线升级方法 | |
CN102253845B (zh) | 服务器系统 | |
CN117687664A (zh) | 一种dsp的在线升级配置方法及装置 | |
CN101196823A (zh) | 一种开放应用架构中软件在线升级的方法、系统及设备 | |
CN104320317A (zh) | 一种以太网物理层芯片状态的传送方法和装置 | |
CN108037931A (zh) | 一种对微处理器存储单元进行文件烧写的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |