CN107505932B - 一种基于串行通信的dsp远程调试装置及方法 - Google Patents
一种基于串行通信的dsp远程调试装置及方法 Download PDFInfo
- Publication number
- CN107505932B CN107505932B CN201710704433.9A CN201710704433A CN107505932B CN 107505932 B CN107505932 B CN 107505932B CN 201710704433 A CN201710704433 A CN 201710704433A CN 107505932 B CN107505932 B CN 107505932B
- Authority
- CN
- China
- Prior art keywords
- data
- dsp
- fpga
- address
- serial
- 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.)
- Active
Links
- 238000004891 communication Methods 0.000 title claims abstract description 50
- 238000000034 method Methods 0.000 title claims abstract description 15
- 230000005540 biological transmission Effects 0.000 claims abstract description 13
- 230000002457 bidirectional effect Effects 0.000 claims abstract description 9
- 230000008023 solidification Effects 0.000 claims abstract description 4
- 238000011161 development Methods 0.000 claims description 29
- 238000009825 accumulation Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 7
- 238000005094 computer simulation Methods 0.000 claims description 4
- 238000013500 data storage Methods 0.000 claims description 2
- 238000012544 monitoring process Methods 0.000 claims description 2
- BNIILDVGGAEEIG-UHFFFAOYSA-L disodium hydrogen phosphate Chemical compound [Na+].[Na+].OP([O-])([O-])=O BNIILDVGGAEEIG-UHFFFAOYSA-L 0.000 claims 35
- RZXLPPRPEOUENN-UHFFFAOYSA-N Chlorfenson Chemical compound C1=CC(Cl)=CC=C1OS(=O)(=O)C1=CC=C(Cl)C=C1 RZXLPPRPEOUENN-UHFFFAOYSA-N 0.000 claims 7
- 238000006243 chemical reaction Methods 0.000 claims 1
- 238000007711 solidification Methods 0.000 abstract 1
- 101100388215 Arabidopsis thaliana DSP5 gene Proteins 0.000 description 16
- 238000010586 diagram Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B23/00—Testing or monitoring of control systems or parts thereof
- G05B23/02—Electric testing or monitoring
- G05B23/0205—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
- G05B23/0208—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the configuration of the monitoring system
- G05B23/0213—Modular or universal configuration of the monitoring system, e.g. monitoring system having modules that may be combined to build monitoring program; monitoring system that can be applied to legacy systems; adaptable monitoring system; using different communication protocols
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24065—Real time diagnostics
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于串行通信的DSP远程调试装置及方法,该方法在本地计算机上将源程序编译链接生产目标文件,利用双向RS422串行通信总线将目标文件传送到远程目标板FPGA中,调试时使用FPGA模拟Flash功能,FPGA接收完目标文件后复位DSP,DSP从FPGA中读取程序数据并运行,并利用FPGA交换观察变量存储地址,在本地计算机中可查看和记录所需要的观察变量,完成DSP调试后,利用FPGA再将目标文件写入Flash中,完成程序的固化工作。本发明适合矿山、核电站等需要远程调试和程序远程加载的场合,同时也适合大型转台等无法使用断点调试的场合,采用RS422串行传输,距离可长达数千米。
Description
技术领域
本发明属于计算机控制领域,具体涉及一种基于串行通信的DSP远程调试装置及方法。
背景技术
数字信号处理器DSP(Digital Signal Processor)具有强大的处理和运算能力,广泛应用在图像处理、雷达信号处理、工业控制等领域,目前DSP软件开发人员在调试时大都依赖于通过USB专用仿真器在厂商提供的集成开发环境中调试,使用厂商专用JTAG调试协议,该协议并不对用户开放。因为USB传输距离,目标板距离调试计算机不能太远,且在集成开发环境中观察程序中变量只能通过断点方式,更无法记录程序实际运行中变量变化情况,而在矿山、核电站等场合,目标板所在位置因环境受限,调试人员无法在现场调试,只能远程调试,通过USB专用仿真器的调试方式无法完成远程调试和数据记录,需要研究通用的、脱离仿真器和具体调试协议限制的远程DSP调试方法。
发明内容
为了解决上述现有技术存在的问题,本发明的目的在于提出一种基于串行通信的DSP调试方法,该方法在本地计算机上完成源程序编译链接生成目标文件,然后利用RS422串行通信将目标文件传送到远程目标板FPGA中完成DSP调试。本发明能脱离DSP仿真器,方便、快捷的完成DSP调试和调试过程中的数据记录。
本发明的解决上述问题采用的技术方案为:一种基于串行通信的DSP远程调试装置,包括本地调试计算机、远程目标板、双向RS422串行通信总线;所述的远程目标板包括FPGA、Flash程序存储器和DSP;所述的FPGA内部逻辑包括串行接收模块串行发送模块数据判断及地址产生模块,所述本地调试计算机包括集成开发环境CCS、多串口卡和用户调试软件界面,所述多串口卡通过双向RS422串行通信总线与远程目标板相连,完成双向RS422串行通信;所述的远程目标板中FPGA和Flash程序存储器挂接在DSP的EMIF总线上,DSP的程序存储器片选信息CE1、CE0、外部存储器读取信号RD,写信号WR和Flash程序存储器的片选管脚和读允许管脚接入FPGA中,DSP需要读取程序数据时,片选信号CE和RD有效,FPGA可根据本地调试计算机命令选取Flash程序存储器读有效或者FPGA内部程序存储双口RAM读有效,当本地调试计算机命令是读取FPGA内部程序存储双口RAM中程序数据时,控制Flash程序存储器处于非选中状态,保持Flash程序存储器总线处于高阻状态,DSP从FPGA中读取数据;系统上电或者当本地调试计算机命令是读取外部Flash程序存储器时,FPGA控制Flash程序存储器有效,DSP从Flash程序存储器中读取数据。
进一步地,FPGA内部程序存储双口RAM为双端口RAM,其中写端由FPGA控制,读取端由DSP控制;
所述的远程目标板中DSP复位由FPGA逻辑控制,DSP的Boot模式设置为外部程序存储器引导模式;
DSP的EMIF写信号WR,片选CE0、EMIF数据信号接入FPGA中,DSP可将变量数据写入FPGA中的串行发送模块;
DSP的EMIF读信号RD,片选CE1接入FPGA中,Flash程序存储器片选信号CE接入FPGA中,DSP数据信号同时和FPGA和Flash程序存储器相连,DSP启动时可以根据FPGA选择从FPGA内部RAM读取数据或者从Flash程序存储器读取数据;
FPGA中串行接收模块的数据总线与数据判断及地址产生模块、程序存储双口RAM和Flash程序存储器相连,数据判断及地址产生模块产生程序存储双口RAM和Flash程序存储器的写地址、片选、写运行由数据判断及地址产生模块控制;
远程目标板中的FPGA逻辑包括:串行接收模块、串行发送模块、数据判断及地址产生模块和程序存储双口RAM,串行接收模块的功能是将串行数据转化为并行数据,每转换一个字节完成后产生一个脉冲,数据判断及地址产生模块的功能是根据接收字节判断帧头、数据帧类型,决定是否选通程序存储双口RAM或者Flash程序存储器,并在收到帧头、数据帧类型后将地址总线清零,以及控制DSP复位,之后每收到一个字节地址累加1,串行发送模块的功能是将写入并行数据转化为串行数据发送。
进一步地,集成开发环境CCS是DSP厂商所提供的集成开发环境,在计算机中将该环境设置为计算机仿真simulation调试模式,完成DSP程序的编辑、编译、链接生成用于通过JTAG加载的.out文件,以及说明各全局变量存放地址的.map文件。
进一步地,所述用户调试界面是用户编写软件,用户调试界面主要完成功能:
1)集成开发环境CCS所生成的.out文件不能直接加载在RAM中,用户调试界面完成将所述集成开发环境CCS所生成的.out文件转化为可以用于RAM加载的.hex文件;
2)读取本地调试计算机中集成开发环境CCS所生成的.map文件在调试界面上显示,用户可通过下拉列表选择需要观察的变量,用户调试界面查找map文件,找到变量编译后在DSP中存放的地址;
3)用户调试界面附加上数据包帧头、待发送文件或者命令、需要显示的变量地址等写入多串口卡中,通过所述RS422串行通信总线发送到远程目标板;
4)用户调试界面读取远程目标板返回变量数据、远程目标板状态等信息显示在界面上供调试人员观察和记录,判断DSP运行状态。
进一步地,所述用户调试界面是用户编写软件,主要完成将所述集成开发环境CCS所生成的.hex文件,附加上数据包帧头、命令后组成新文件,将该新文件写入多串口卡中,通过所述Rs422串行通信总线发送到远程目标板并按照固定帧频读取所需要显示的变量地址,将变量地址通过所述Rs422串行通信总线发送到远程目标板;
所述用户调试界面将集成开发环境CCS所生成的.out文件转化为.hex文件,用户调试界面采用调用集成开发环境CCS中的应用程序,C6000系列DSP调用hex6x.exe应用程序,C5000系列DSP调用hex500应用程序;
用户调试界面读取集成开发环境CCS所生成的.hex后,其数据帧头为0x55,0xaa,0x55,0xaa共4个字节,帧头后为命令类型字节;
帧头后的命令类型字节0x00代表帧头之后数据加载至程序存储双口RAM中,远程目标板中数据判断及地址产生模块使程序存储双口RAM写有效,FPGA将数据加载到程序存储双口RAM中,该程序存储双口RAM与Flash程序存储器有相同地址;帧头后的命令类型字节0x01代表之后数据加载至Flash程序存储器中,此时数据判断及地址产生模块使Flash程序存储器写有效,FPGA将数据加载到片外Flash程序存储器中;此时为程序烧写模式,帧头后的命令类型字节0x02代表之后数据为待观察变量地址,FPGA将数据加载到程序存储双口RAM中;帧头后的命令类型字节0x03代表复位命令1,FPGA收到后产生DSP复位和并保持Flash程序存储器处于非选中状态,DSP复位后从FPGA中读出程序运行;帧头后的命令类型字节0x04代表复位命令2,FPGA收到后产生DSP复位并保持FPGA输出高阻,Flash程序存储器处于选中状态,DSP复位后从Flash程序存储器中读取程序运行;
用户调试界面读取DSP工程编译完成后的.map文件将DSP程序的中全局变量在用户调试界面通过下拉列表显示,用户在下拉列表中选取所要观察的变量后,用户调试界面读取.map文件,获取这些变量对应地址,并将变量对应地址通过所述RS422串行通信总线发送到远程目标板。
进一步地,远程目标板上FPGA中的所述串行接收模块监测串行总线上开始位,当监测到开始位后按照设定波特率接收串行数据,8位数据均接收完后在串行数据的结束位后送出8bit并行数据,并送出一个字节接收完成脉冲。
进一步地,远程目标板上FPGA中的程序存储双口RAM分为程序存放段和变量地址数据存放段,所述的数据判断及地址产生模块,监测到数据帧头、数据类型字和命令字,根据不同的数据类型和命令,每收到一个字节地址累加,将收到用户调试界面所发来的.hex文件根据命令选择,生成RAM写信号确定写入FPGA内部程序存储双口RAM或者生成Flash程序存储器写信号,将数据写入Flash程序存储器中,或者将收到用户调试界面所发来的待观察变量地址写入RAM相应地址中;
远程目标板上目标DSP运行用户代码,用户代码含读取程序存储双口RAM中观察变量地址相应代码,目标DSP运行时并读取该地址中所存放数据,将读出的数据写入串行发送模块中。
进一步地,串行发送模块收到DSP所写入数据后,将写入8bit数据按串行数据经Rs422串行通信总线发送到本地调试计算机中。
进一步地,用户调试界面将收到的数据分别显示在对应的变量列表中,并可记录相应变量供事后分析和处理。
本发明还提供一种基于串行通信的DSP远程调试方法,实现步骤如下:
第一步,调试计算机中所安装的CCS集成开发环境是DSP厂商所提供的集成开发环境,在计算机中将该环境设置为计算机仿真simulation调试模式,在该模式下,CCS集成开发环境运行无需连接目标板即可完成DSP程序的编辑、编译、链接和生成.out文件,以及说明各全局变量存放地址的.map文件;
第二步,用户调试界面是用户编写软件,用户调试界面读取所述CCS集成开发环境所生成的.out文件,调用CCS集成开发环境中的hex6x.exe或者hex500应用程序,将out文件转化为可以用于Flash加载的.hex文件;
第三步,用户调试界面读取.hex文件,附加上数据包帧头0x55,0xAA,0x55,0xAA、帧类型字0x00,写入多串口卡中,通过所述RS422串行通信总线发送到远程目标板;
第四步,远程目标板上FPGA串行接收模块接收到本地调试计算机所发生的串行数据后,先解析数据包帧头,解析出数据包帧头后并判断随后的命令类型,如果命令类型为0x00,该数据包为将.hex文件加载到程序存储双口RAM程序段中;
第五步,远程目标板上FPGA中数据判断及地址产生模块控制程序存储双口RAM程序段为选中状态,并保持Flash程序存储器写无效,此时目标板上FPGA为将数据写入程序存储双口RAM程序段状态;
第六步,远程目标板上FPGA中数据判断及地址产生模块在收到数据帧头和数据包类型字节后,确认数据帧类型为写FPGA内部数据帧,将地址总线清零,之后串行接收模块每收到一个字节,数据判断及地址产生模块产生的地址加1,将数据按地址累加写入程序存储双口RAM中,直到所有.hex均写入程序存储双口RAM中;
第七步,用户调试界面向目标板发送复位命令1数据帧;
第八步,远程目标板上FPGA中数据判断及地址产生模块在收到数据帧头和数据包类型字节后,确认数据帧类型为复位命令1数据帧,数据判断及地址产生模块控制Flash程序存储器片选和读允许无效,并产生DSP复位脉冲,控制DSP复位;
第九步,DSP复位后,DSP通过EMIF口读取CE1空间,此时数据判断及地址产生模块控制外部Flash程序存储器为非选中状态,FPGA片内程序存储双口RAM为选中状态,DSP读取第六步写入程序存储双口RAM中的数据后开始运行程序;
第十步,用户在用户调试界面的多个下拉列表中选择所需要显示的变量名称,用户调试界面查找.map文件找到变量的对应地址;
第十一步,用户在用户调试界面将变量对应地址附加上数据包帧头、数据帧类型0x03组成变量地址传送帧,将变量地址传送帧写入多串口卡中,多串口卡将变量地址数据发送到远程目标板中;
第十二步,远程目标板上FPGA中数据判断及地址产生模块在收到数据帧头和数据包类型字节后,确认数据帧类型为变量地址传送帧,将数据写入FPGA片内程序存储双口RAM的变量地址存放区中;
第十三步,DSP程序运行时,通过EMIF口读取FPGA片内程序存储双口RAM,获取所需要显示的变量在DSP中存储地址,然后读取该地址中存放数据,即用户调试界面选择显示变量对应数据,DSP将该数据写入FPGA内部串行发送模块中;
第十四步,用户在用户调试界面收到DSP返回变量数据后,显示在界面上,供调试人员观察,必要时可将数据记录在用户调试计算机本地硬盘中,供事后数据处理和分析;
第十五步,调试完成以后,用户在调试界面将目标DSP的最终工程所生成的.hex文件附加上帧头和命令类型字节0x01写入多串口卡中,多串口卡将数据发送到远程目标板;
第十六步,远程目标板上FPGA中数据判断及地址产生模块确认数据帧类型为写外部Flash数据帧,控制片外Flash程序存储器为选中状态和Flash程序存储器写有效,此时目标板上FPGA为将数据写入片外Flash程序存储器状态;
第十七步,远程目标板上FPGA中数据判断及地址产生模块在收到数据帧头和数据包类型字节后,确认数据帧类型为写片外Flash程序存储器数据帧,将地址总线清零,之后串行接收模块每收到一个字节,数据判断及地址产生模块产生的地址加1,并产生Flash程序存储器写命令,将数据按地址累加写入Flash程序存储器中,直到所有.hex文件均写入Flash程序存储器中;
第十八步,用户调试界面读取.hex文件完成之后,向目标板发送复位命令2数据帧;
第十九步,远程目标板上FPGA中数据判断及地址产生模块在收到数据帧头和数据包类型字节后,确认数据帧类型为复位命令2数据帧,数据判断及地址产生模块控制Flash程序存储器片选和读允许有效,FPGA片内程序存储双口RAM无效,完成远程烧写Flash程序存储器,实现程序固化,并产生DSP复位脉冲,控制DSP复位并正常运行。
本发明与现有技术相比的优点在于:
(1)本发明目标板上利用FPGA模拟Flash功能,在本地计算机上编译完源文件后生成.hex文件,通过Rs422串行通信总线将.hex文件将写入Flash中,DSP启动时选择从FPGA中读取程序,与现有使用专用USB仿真器调试方法相比,本发明可实现远距离调试,且方法更为简单、方便、快捷,适合矿山、核电站等调试人员无法到达现场的场合。如果使用Rs422串行通信总线无线数据传,还可以实现远距离无线调试。
(2)本发明在本地调试计算机上完成源文件的编译和链接,利用FPGA中的双口RAM交换观察变量地址,并在本地调试计算机界面上显示和记录,与现有的使用专用USB仿真器调试方法相比,可实时观察和记录程序每一个运行周期中变量值变化,而不中断程序运行,适合大型转台调试过程中无法中断等场合。在本地调试计算机中记录数据更方便,可记录数据时间更长、可记录的变量更多,且在界面上可更为方便的显示变量的实时走向趋势。
附图说明
图1为本发明一种基于串行通信的DSP调试方法的硬件结构图;
图2为本发明一种基于串行通信的DSP远程调试方法流程图;
图3为FPGA内部RAM分区示意图;
图4为串行通信数据帧。
图中附图标记含义为:1为本地调试计算机,2为远程目标板,3为双向RS422串行通信总线,4为FPGA,5为DSP,6为串行接收模块,7为串行发送模块,8为数据判断及地址产生模块,11为程序存储双口RAM,12为Flash程序存储器,13为集成开发环境CCS,14为用户调试界面,15为多串口卡。
具体实施方式
下面结合附图以及具体实施方式进一步说明本发明。
如图1所示,本发明一种基于串行通信的DSP调试方法,硬件包括:本地调试计算机1、远程目标板2、RS422串行通信总线3;所述的远程目标板2包括FPGA 4、Flash程序存储器12和DSP 5;所述的FPGA 4内部逻辑包括串行接收模块6、串行发送模块7、数据判断及地址产生模块8、程序存储双口RAM11。所述本地调试计算机1包括软件集成开发环境CCS13、多串口卡15和用户调试界面14。所述多串口卡15通过RS422串行通信总线3与远程目标板2相连,完成双向RS422通信。所述本地调试计算机1包括集成开发环境CCS13,用户调试界面14和多串口卡15。
远程目标板2中FPGA 4和Flash程序存储器12挂接在DSP 5的EMIF总线上。DSP 5的程序存储器片选信息CE1、CE0,外部存储器读取信号RD写信号WR和Flash程序存储器12的片选管脚和读允许管脚接入FPGA 4中,DSP 5需要读取外部程序存储器时,存储器片选信号CE1和RD有效,FPGA4可根据本地调试计算机1命令选取Flash程序存储器12读有效或者FPGA4内部程序存储双口RAM11读有效。当需要读取FPGA 4内部程序存储双口RAM11中程序数据时,控制Flash程序存储器12处于非选中状态,保持Flash程序存储器12总线处于高阻状态,DSP5从FPGA4中读取数据;而系统上电时,选取Flash程序存储器12有效,DSP5从Flash程序存储器12中读取数据。
如图2所示,一种基于串行通信的DSP远程调试方法,实现步骤如下:
第一步,调试计算机中所安装的集成开发环境CCS13是DSP5厂商所提供的集成开发环境,在计算机中将该环境设置为计算机仿真调试模式,在该模式下,CCS运行无需连接目标板即可完成DSP5程序的编辑、编译、链接和生成.out文件,以及说明各全局变量存放地址的.map文件。
第二步,用户调试界面14是用户编写软件。用户调试界面14读取所述集成开发环境CCS13所生成的.out文件,调用集成开发环境CCS中的hex6x.exe或者hex500应用程序,将out文件转化为可以用于Flash程序存储器12加载的.hex文件。
第三步,用户调试界面14读取.hex文件,附加上数据包帧头0x55,0xAA,0x55,0xAA、帧类型字0x00,写入多串口卡15中,通过所述RS422串行通信总线3发送到远程目标板2。
第四步,远程目标板上FPGA4串行接收模块6接收到本地调试计算机1所发生的串行数据后,先解析数据包帧头,解析出数据包帧头后并判断随后的命令类型,如果命令类型为0x00,该数据包为将.hex文件加载到程序存储双口RAM 11程序段中。
第五步,远程目标板上FPGA4中数据判断及地址产生模块8控制程序存储双口RAM11程序段为选中状态,并保持Flash程序存储器12写无效,此时目标板上FPGA4为将数据写入程序存储双口RAM 11程序段状态。
第六步,远程目标板上FPGA4中数据判断及地址产生模块8在收到数据帧头和数据包类型字节后,确认数据帧类型为写FPGA4内部数据帧,将地址总线清零,之后串行接收模块6每收到一个字节,数据判断及地址产生模块8产生的地址加1,将数据按地址累加写入程序存储程序存储双口RAM 11中。
第七步,用户调试界面14向目标板发送复位命令1数据帧。
第八步,远程目标板上FPGA4中数据判断及地址产生模块8在收到数据帧头和数据包类型字节后,确认数据帧类型为复位命令1数据帧,数据判断及地址产生模块8控制Flash程序存储器12片选和读允许无效,并产生DSP 5复位脉冲,控制DSP 5复位。
第九步,DSP 5复位后,DSP 5通过EMIF口读取CE1空间,此时数据判断及地址产生模块8控制外部Flash程序存储器12为非选中状态,FPGA4片内程序存储双口RAM11为选中状态,DSP 5读取第六步写入程序存储双口RAM 11中的数据后开始运行程序。
第十步,用户在用户调试界面14的多个下拉列表中选择多个所需要显示的变量名称,用户调试界面14查找.map文件找到变量的对应地址。
第十一步,用户在用户调试界面14将变量对应地址附加上数据包帧头、数据帧类型0x03组成变量地址传送帧,将变量地址传送帧写入多串口卡15中,多串口卡15将变量地址数据发送到远程目标板2中。
第十二步,远程目标板上FPGA4中数据判断及地址产生模块8在收到数据帧头和数据包类型字节后,确认数据帧类型为变量地址传送帧,将数据写入FPGA4内部程序存储双口RAM 11的变量地址存放区中。
第十三步,DSP 5程序运行时,通过EMIF口读取FPGA4内部程序存储双口RAM 11,获取所需要显示的变量在DSP 5中存储地址,然后读取该地址中存放数据,即用户调试界面14选择显示变量对应数据,DSP 5将该数据写入FPGA4内部串行发送模块中。
第十四步,用户在用户调试界面14收到DSP 5返回变量数据后,显示在界面上,供调试人员观察,必要时可将数据记录在用户调试计算机本地硬盘中,供事后数据处理和分析。
第十五步,调试完成以后,用户在调试界面14将目标DSP5的最终工程所生成的.hex文件附加上帧头和命令类型字节0x01写入多串口卡15中,多串口卡将数据发送到远程目标板。
第十六步,远程目标板上FPGA4中数据判断及地址产生模块8确认数据帧类型为写外部Flash程序存储器数据帧,控制片外Flash程序存储器12为选中状态和Flash程序存储器12写有效,此时目标板上FPGA4为将数据写入片Flash程序存储器12状态。
第十七步,远程目标板上FPGA4中数据判断及地址产生模块8在收到数据帧头和数据包类型字节后,确认数据帧类型为写片外Flash程序存储器12数据帧,将地址总线清零,之后串行接收模块6每收到一个字节,数据判断及地址产生模块8产生的地址加1,并产生Flash程序存储器12写命令,将数据按地址累加写入Flash程序存储器12中,直到所有.hex文件均写入Flash程序存储器12中。
第十八步,用户调试界面14读取.hex文件完成之后,向目标板发送复位命令2数据帧。
第十九步,远程目标板上FPGA4中数据判断及地址产生模块8在收到数据帧头和数据包类型字节后,确认数据帧类型为复位命令2数据帧,数据判断及地址产生模块8控制Flash程序存储器12片选和读允许有效,FPGA4片内程序存储双口RAM 11无效,完成远程烧写Flash程序存储器12,实现程序固化。并产生DSP 5复位脉冲,控制DSP 5复位并正常运行。
如图3所示,远程目标板上FPGA4中程序存储双口RAM按地址分为2个区域,一个区域为DSP5程序存放区,FPGA4内部将程序写入该区域,DSP5加载时通过EMIF口读取该区域内的程序数据,另一个区域为观察变量地址存放区,FPGA4内部将收到观察变量地址写入该区域,DSP5程序运行时读取该区域中的变量地址,然后根据变量地址,读取这些地址所指向的数据返回调试界面。
如图4所示,串行通信数据帧分为5中类型,分别是写FPGA4内部程序存储双口RAM数据帧、写外部Flash程序存储器12数据帧、变量地址传送帧、复位命令1帧和复位命令2帧,FPGA4收到不同的命令帧后,按照命令进行不同的操作。
Claims (9)
1.一种基于串行通信的DSP远程调试装置,其特征在于:包括本地调试计算机(1)、远程目标板(2)、双向RS422串行通信总线(3);所述的远程目标板(2)包括FPGA(4)、Flash程序存储器(12)和DSP(5);所述的FPGA(4)内部逻辑包括串行接收模块(6)串行发送模块(7)数据判断及地址产生模块(8),所述本地调试计算机(1)包括集成开发环境CCS(13)、多串口卡(15)和用户调试界面(14),所述多串口卡(15)通过双向RS422串行通信总线(3)与远程目标板(2)相连,完成双向RS422串行通信;所述的远程目标板(2)中FPGA(4)和Flash程序存储器(12)挂接在DSP(5)的EMIF总线上,DSP(5)的程序存储器片选信息CE1、CE0、外部存储器读取信号RD,写信号WR和Flash程序存储器(12)的片选管脚和读允许管脚接入FPGA(4)中,DSP(5)需要读取程序数据时,片选信号CE1和RD有效,FPGA(4)可根据本地调试计算机(1)命令选取Flash程序存储器(12)读有效或者FPGA(4)内部程序存储双口RAM(11)读有效,当本地调试计算机(1)命令是读取FPGA(4)内部程序存储双口RAM(11)中程序数据时,控制Flash程序存储器(12)处于非选中状态,保持Flash程序存储器(12)总线处于高阻状态,DSP(5)从FPGA(4)中读取数据;系统上电或者当本地调试计算机(1)命令是读取外部Flash程序存储器(12)时,FPGA(4)控制Flash程序存储器(12)有效,DSP(5)从Flash程序存储器(12)中读取数据;所述用户调试界面(14)是用户编写软件,主要完成将所述集成开发环境CCS(13)所生成的.hex文件,附加上数据包帧头、命令后组成新文件,将该新文件写入多串口卡(15)中,通过所述RS422串行通信总线(3)发送到远程目标板(2)并按照固定帧频读取所需要显示的变量地址,将变量地址通过所述RS422串行通信总线(3)发送到远程目标板(2);
所述用户调试界面(14)将集成开发环境CCS(13)所生成的.out文件转化为.hex文件,用户调试界面(14)采用调用集成开发环境CCS(13)中的应用程序,C6000系列DSP调用hex6x.exe应用程序,C5000系列DSP调用hex500应用程序;
用户调试界面(14)读取集成开发环境CCS(13)所生成的.hex后,其数据帧头为0x55,0xaa,0x55,0xaa共4个字节,帧头后为命令类型字节;
帧头后的命令类型字节0x00代表帧头之后数据加载至程序存储双口RAM(11)中,远程目标板(2)中数据判断及地址产生模块(8)使程序存储双口RAM(11)写有效,FPGA(4)将数据加载到程序存储双口RAM(11)中,该程序存储双口RAM(11)与Flash程序存储器(12)有相同地址;帧头后的命令类型字节0x01代表之后数据加载至Flash程序存储器(12)中,此时数据判断及地址产生模块(8)使Flash程序存储器(12)写有效,FPGA(4)将数据加载到片外Flash程序存储器(12)中;此时为程序烧写模式,帧头后的命令类型字节0x02代表之后数据为待观察变量地址,FPGA(4)将数据加载到程序存储双口RAM(11)中;帧头后的命令类型字节0x03代表复位命令1,FPGA(4)收到后产生DSP复位和并保持Flash处于非选中状态,DSP(5)复位后从FPGA(4)中读出程序运行;帧头后的命令类型字节0x04代表复位命令2,FPGA(4)收到后产生DSP(5)复位并保持FPGA(4)输出高阻,Flash程序存储器(12)处于选中状态,DSP(5)复位后从Flash程序存储器(12)中读取程序运行;
用户调试界面(14)读取DSP(5)工程编译完成后的.map文件将DSP(5)程序中的全局变量在用户调试界面(14)通过下拉列表显示,用户在下拉列表中选取所要观察的变量后,用户调试界面(14)读取.map文件,获取这些变量对应地址,并将变量对应地址通过所述RS422串行通信总线(3)发送到远程目标板(2)。
2.根据权利要求1所述的基于串行通信的DSP远程调试装置,其特征在于:FPGA(4)内部程序存储双口RAM(11)为双端口RAM,其中写端由FPGA(4)控制,读取端由DSP(5)控制;
所述的远程目标板(2)中DSP(5)复位由FPGA(4)逻辑控制,DSP(5)的Boot模式设置为外部程序存储器引导模式;
DSP(5)的EMIF写信号WR,片选CE0、EMIF数据信号接入FPGA(4)中,DSP(5)可将变量数据写入FPGA(4)中的串行发送模块(7);
DSP(5)的EMIF读信号RD,片选CE1接入FPGA(4)中,Flash程序存储器(12)片选信号CE接入FPGA(4)中,DSP(5)数据信号同时和FPGA(4)和Flash程序存储器(12)相连,DSP(5)启动时可以根据FPGA(4)选择从FPGA(4)内部RAM读取数据或者从Flash程序存储器(12)读取数据;
FPGA(4)中串行接收模块(6)的数据总线与数据判断及地址产生模块(8)、程序存储双口RAM(11)和Flash程序存储器(12)相连,数据判断及地址产生模块(8)产生程序存储双口RAM(11)和Flash程序存储器(12)的写地址、片选,写运行由数据判断及地址产生模块(8)控制;
远程目标板(2)中的FPGA(4)逻辑包括:串行接收模块(6)、串行发送模块(7)、数据判断及地址产生模块(8)和程序存储双口RAM(11),串行接收模块(6)的功能是将串行数据转化为并行数据,每转换一个字节完成后产生一个脉冲,数据判断及地址产生模块(8)的功能是根据接收字节判断帧头、数据帧类型,决定是否选通程序存储双口RAM(11)或者Flash程序存储器(12),并在收到帧头、数据帧类型后将地址总线清零,以及控制DSP(5)复位,之后每收到一个字节地址累加1,串行发送模块的功能是将写入并行数据转化为串行数据发送。
3.根据权利要求1所述的基于串行通信的DSP远程调试装置,其特征在于:CCS集成开发环境(13)是DSP(5)厂商所提供的集成开发环境,在计算机中将该环境设置为计算机仿真simulation调试模式,完成DSP(5)程序的编辑、编译、链接生成用于通过JTAG加载的.out文件,以及说明各全局变量存放地址的.map文件。
4.根据权利要求1所述的基于串行通信的DSP远程调试装置,其特征在于:所述用户调试界面(14)是用户编写软件,用户调试界面(14)主要完成功能:
1)集成开发环境CCS(13)所生成的.out文件不能直接加载在RAM中,用户调试界面(14)完成将所述集成开发环境CCS(13)所生成的.out文件转化为可以用于RAM加载的.hex文件;
2)读取本地调试计算机(1)中集成开发环境CCS(13)所生成的.map文件在调试界面上显示,用户可通过下拉列表选择需要观察的变量,用户调试界面(14)查找map文件,找到变量编译后在DSP(5)中存放的地址;
3)用户调试界面(14)附加上数据包帧头、待发送文件或者命令、需要显示的变量地址写入多串口卡(15)中,通过所述RS422串行通信总线(3)发送到远程目标板(2);
4)用户调试界面(14)读取远程目标板返回变量数据、远程目标板状态信息显示在界面上供调试人员观察和记录,判断DSP(5)运行状态。
5.根据权利要求1所述的基于串行通信的DSP远程调试装置,其特征在于:远程目标板(2)上FPGA(4)中的所述串行接收模块(6)监测串行总线上开始位,当监测到开始位后按照设定波特率接收串行数据,8位数据均接收完后在串行数据的结束位后送出8bit并行数据,并送出一个字节接收完成脉冲。
6.根据权利要求1所述的基于串行通信的DSP远程调试装置,其特征在于:远程目标板(2)上FPGA(4)中的程序存储双口RAM(11)分为程序存放段和变量地址数据存放段,所述的数据判断及地址产生模块(8),监测到数据帧头、数据类型字和命令字,根据不同的数据类型和命令,每收到一个字节地址累加,将收到用户调试界面(14)所发来的.hex文件根据命令选择,生成RAM写信号确定写入FPGA(4)内部程序存储双口RAM(11)或者生成Flash程序存储器(12)写信号,将数据写入Flash程序存储器(12)中,或者将收到用户调试界面(14)所发来的待观察变量地址写入RAM相应地址中;
远程目标板(2)上目标DSP(5)运行用户代码,用户代码含读取程序存储双口RAM(11)中观察变量地址相应代码,目标DSP(5)运行时并读取该地址中所存放数据,将读出的数据写入串行发送模块(7)中。
7.根据权利要求1所述的基于串行通信的DSP远程调试装置,其特征在于:串行发送模块(7)收到DSP(5)所写入数据后,将写入8bit数据按串行数据经RS422串行通信总线(3)发送到本地调试计算机(1)中。
8.根据权利要求1所述的基于串行通信的DSP远程调试装置,其特征在于:用户调试界面(14)将收到的数据分别显示在对应的变量列表中,并可记录相应变量供事后分析和处理。
9.一种基于串行通信的DSP远程调试方法,利用权利要求2-8任一项所述的基于串行通信的DSP远程调试装置,其特征在于:实现步骤如下:
第一步,调试计算机中所安装的集成开发环境CCS(13)是DSP(5)厂商所提供的集成开发环境,在计算机中将该环境设置为计算机仿真simulation调试模式,在该模式下,集成开发环境CCS(13)运行无需连接目标板即可完成DSP(5)程序的编辑、编译、链接和生成.out文件,以及说明各全局变量存放地址的.map文件;
第二步,用户调试界面(14)是用户编写软件,用户调试界面(14)读取所述集成开发环境CCS(13)所生成的.out文件,调用集成开发环境CCS(13)中的hex6x.exe或者hex500应用程序,将out文件转化为可以用于Flash程序存储器(12)加载的.hex文件;
第三步,用户调试界面(14)读取.hex文件,附加上数据包帧头0x55,0xAA,0x55,0xAA、帧类型字0x00,写入多串口卡(15)中,通过所述RS422 串行通信总线(3)发送到远程目标板(2);
第四步,远程目标板上FPGA(4)串行接收模块(6)接收到本地调试计算机(1)所发生的串行数据后,先解析数据包帧头,解析出数据包帧头后并判断随后的命令类型,如果命令类型为0x00,该数据包为将.hex文件加载到程序存储双口RAM(11)程序段中;
第五步,远程目标板上FPGA(4)中数据判断及地址产生模块(8)控制程序存储双口RAM(11)程序段为选中状态,并保持Flash程序存储器(12)写无效,此时目标板上FPGA(4)为将数据写入程序存储双口RAM(11)程序段状态;
第六步,远程目标板上FPGA(4)中数据判断及地址产生模块(8)在收到数据帧头和数据包类型字节后,确认数据帧类型为写FPGA(4)内部数据帧,将地址总线清零,之后串行接收模块(6)每收到一个字节,数据判断及地址产生模块(8)产生的地址加1,将数据按地址累加写入程序存储双口RAM(11)中,直到所有.hex均写入程序存储双口RAM(11) 中;
第七步,用户调试界面(14)向目标板发送复位命令1数据帧;
第八步,远程目标板上FPGA(4)中数据判断及地址产生模块(8)在收到数据帧头和数据包类型字节后,确认数据帧类型为复位命令1数据帧,数据判断及地址产生模块(8)控制Flash程序存储器(12)片选和读允许无效,并产生DSP(5)复位脉冲,控制DSP(5)复位;
第九步,DSP(5)复位后,DSP(5)通过EMIF口读取CE1空间,此时数据判断及地址产生模块(8)控制外部Flash程序存储器(12)为非选中状态,FPGA(4)片内程序存储双口RAM(11)为选中状态,DSP(5)读取第六步写入程序存储双口RAM(11)中的数据后开始运行程序;
第十步,用户在用户调试界面(14)的多个下拉列表中选择所需要显示的变量名称,用户调试界面(14)查找.map文件找到变量的对应地址;
第十一步,用户在用户调试界面(14)将变量对应地址附加上数据包帧头、数据帧类型0x03组成变量地址传送帧,将变量地址传送帧写入多串口卡(15)中,多串口卡(15)将变量地址数据发送到远程目标板(2)中;
第十二步,远程目标板上FPGA(4)中数据判断及地址产生模块(8)在收到数据帧头和数据包类型字节后,确认数据帧类型为变量地址传送帧,将数据写入FPGA(4)片内程序存储双口RAM(11)的变量地址存放区中;
第十三步,DSP(5)程序运行时,通过EMIF口读取FPGA(4)片内程序存储双口RAM(11),获取所需要显示的变量在DSP(5)中存储地址,然后读取该地址中存放数据,即用户调试界面(14)选择显示变量对应数据,DSP(5)将该数据写入FPGA(4)内部串行发送模块中;
第十四步,用户在用户调试界面(14)收到DSP(5)返回变量数据后,显示在界面上,供调试人员观察,必要时可将数据记录在用户调试计算机本地硬盘中,供事后数据处理和分析;
第十五步,调试完成以后,用户在调试界面(14)将目标DSP(5)的最终工程所生成的.hex文件附加上帧头和命令类型字节0x01写入多串口卡(15)中,多串口卡将数据发送到远程目标板;
第十六步,远程目标板上FPGA(4)中数据判断及地址产生模块(8)确认数据帧类型为写外部Flash数据帧,控制片外Flash程序存储器(12)为选中状态和Flash程序存储器(12)写有效,此时目标板上FPGA(4)为将数据写入片外Flash程序存储器(12)状态;
第十七步,远程目标板上FPGA(4)中数据判断及地址产生模块(8)在收到数据帧头和数据包类型字节后,确认数据帧类型为写片外Flash程序存储器(12)数据帧,将地址总线清零,之后串行接收模块(6)每收到一个字节,数据判断及地址产生模块(8)产生的地址加1,并产生Flash程序存储器(12)写命令,将数据按地址累加写入Flash程序存储器(12)中,直到所有.hex文件均写入Flash程序存储器(12)中;
第十八步,用户调试界面(14)读取.hex文件完成之后,向目标板发送复位命令2数据帧;
第十九步,远程目标板上FPGA(4)中数据判断及地址产生模块(8)在收到数据帧头和数据包类型字节后,确认数据帧类型为复位命令2数据帧,数据判断及地址产生模块(8)控制Flash程序存储器(12)片选和读允许有效,FPGA(4)片内程序存储双口RAM(11)无效,完成远程烧写Flash程序存储器(12),实现程序固化,并产生DSP(5)复位脉冲,控制DSP(5)复位并正常运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710704433.9A CN107505932B (zh) | 2017-08-17 | 2017-08-17 | 一种基于串行通信的dsp远程调试装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710704433.9A CN107505932B (zh) | 2017-08-17 | 2017-08-17 | 一种基于串行通信的dsp远程调试装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107505932A CN107505932A (zh) | 2017-12-22 |
CN107505932B true CN107505932B (zh) | 2020-05-01 |
Family
ID=60692038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710704433.9A Active CN107505932B (zh) | 2017-08-17 | 2017-08-17 | 一种基于串行通信的dsp远程调试装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107505932B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108196527B (zh) * | 2017-12-29 | 2020-04-07 | 上海航天计算机技术研究所 | 可重构配置的fpga和dsp紧耦合架构的测试验证系统 |
CN110392096A (zh) * | 2019-06-21 | 2019-10-29 | 深圳市金锐显数码科技有限公司 | 一种文件分发的方法、装置、主控制器及存储介质 |
CN111431973B (zh) * | 2020-03-06 | 2023-04-07 | 东南大学 | 基于uart的面向计算机系统实践教学的程序在线下载系统和方法 |
CN112463662B (zh) * | 2020-12-16 | 2024-04-05 | 福州创实讯联信息技术有限公司 | 一种用户态控制i2c设备的方法与终端 |
CN113377457B (zh) * | 2021-06-26 | 2024-07-12 | 西安电子工程研究所 | 一种信号处理分系统及数字信号处理dsp程序在线加载方法 |
CN113791568B (zh) * | 2021-11-11 | 2022-02-11 | 西安热工研究院有限公司 | 一种基于火电厂高速串口的调试装置及使用方法 |
CN117370257B (zh) * | 2023-10-17 | 2024-05-14 | 广东高云半导体科技股份有限公司 | 串口转总线的装置、现场可编程门阵列及其调试方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN203101586U (zh) * | 2011-12-15 | 2013-07-31 | 李进 | 一种开发调试装置 |
CN104133705A (zh) * | 2014-07-31 | 2014-11-05 | 武汉邮电科学研究院 | 一种串口加载PowerPC系统引导文件的系统及方法 |
CN106293807A (zh) * | 2016-07-26 | 2017-01-04 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种基于DSP的Flash芯片引导加载方法 |
-
2017
- 2017-08-17 CN CN201710704433.9A patent/CN107505932B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN203101586U (zh) * | 2011-12-15 | 2013-07-31 | 李进 | 一种开发调试装置 |
CN104133705A (zh) * | 2014-07-31 | 2014-11-05 | 武汉邮电科学研究院 | 一种串口加载PowerPC系统引导文件的系统及方法 |
CN106293807A (zh) * | 2016-07-26 | 2017-01-04 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种基于DSP的Flash芯片引导加载方法 |
Non-Patent Citations (2)
Title |
---|
一种新型的FPGA实现RS422串口通信方法;刘杰 等;《计算机测量与控制》;20170330;第25卷(第3期);正文191-194页 * |
基于FPGA实现的DSP远程在线编程;谢登科 等;《微计算机信息》;20050731;第21卷(第7-2期);正文148-150页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107505932A (zh) | 2017-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107505932B (zh) | 一种基于串行通信的dsp远程调试装置及方法 | |
US12085612B2 (en) | On-chip debugging device and method | |
CN102004219B (zh) | 一种红外焦平面阵列探测器模拟装置及模拟方法 | |
CN104461894B (zh) | 安卓软件的操作录制装置和方法 | |
CN102360329B (zh) | 总线监控与调试控制装置及进行总线监控与总线调试的方法 | |
CN102411535B (zh) | 导航SoC芯片仿真、验证和调试平台 | |
CN201886122U (zh) | 一种基于pxi总线的数字测试模块 | |
CN102917242A (zh) | 一种多格式视频解码器的测试系统和测试方法 | |
CN103593271A (zh) | 一种片上系统芯片追踪调试的方法及装置 | |
CN203260029U (zh) | 基于fpga的系统芯片原型验证调试装置 | |
CN113835945B (zh) | 芯片的测试方法、装置、设备及系统 | |
CN107153413A (zh) | 一种汽车电动尾门综合诊断系统 | |
CN109254883B (zh) | 一种片上存储器的调试装置及方法 | |
CN107301042B (zh) | 一种带自检功能的SoC应用程序引导方法 | |
CN103838899A (zh) | 针对硬核mcu的中断控制器的仿真验证系统及方法 | |
CN112596743B (zh) | 一种基于jtag接口的军用fpga通用重构电路 | |
CN108628734A (zh) | 一种功能程序调试方法和终端 | |
CN109634256A (zh) | 一种通用can控制器芯片的板级验证系统 | |
CN117234939A (zh) | 程序定位方法、装置、电子设备、存储介质 | |
CN104679963B (zh) | 一种基于tcl的仿真验证装置和方法 | |
CN102288298B (zh) | 一种探测器模拟器装置 | |
CN104678292B (zh) | 一种复杂可编程逻辑器件cpld测试方法和装置 | |
CN116090771A (zh) | 一种航空光电设备过程信息管理方法及装置 | |
CN101714114A (zh) | 一种支持处理器硅后调试的装置和方法 | |
CN106066822B (zh) | 一种支持覆盖率统计功能的仿真器及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |