一种用于实现DSP在线编程的方法与流程

文档序号:11176898阅读:1138来源:国知局
一种用于实现DSP在线编程的方法与流程

本发明涉及计算机技术领域,具体涉及一种用于实现dsp在线编程的方法。



背景技术:

随着微电子技术的飞速发展,通用数字信号处理器的性价比不断提高,在数字信号处理、通信、控制等领域运用的越来越广泛。而目前通用的对dsp编程的方法是通过jtag接口下载flash写入程序和代码数据到dsp片内运行,实现对flash的编程。这种方式jtag接口不能满足远距离传输要求,难以实现远端系统的在线编程;并且不能在高、低温等复杂环境下工作;同时接口信号太多,难以在小体积设备上应用。



技术实现要素:

(一)要解决的技术问题

本发明要解决的技术问题是:如何设计一种能够能满足远距离传输要求,改善dsp设备的易用性和可维护性的对dsp编程的方法。(二)技术方案

为了解决上述技术问题,本发明提供了一种用于实现dsp在线编程的方法,所述方法包括以下步骤:

步骤1:dsp上电启动,启动完成后判断flash中的dsp程序是否需要更新;

步骤2:若不需要更新,则直接将flash中的程序复制至dsp的内部ram中开始运行,如果需要更新,则进入更新的模式,将flash中原始的程序擦除,执行步骤3;

步骤3:dsp执行control程序,pc机端执行上位机软件,实现dsp与pc机端通过rs232串口进行通信,dsp接收需要更新的代码对应的二进制数据,执行用户程序更新。

优选地,步骤1中,dsp的启动流程具体为:在dsp芯片上电复位后,edma自动从flash拷贝1kb的数据到dsp内存地址0处,然后dsp开始执行拷贝到地址0处的1kb程序代码。

优选地,步骤3中,dsp自动将flash中前1k的程序复制到dsp内部ram中,执行引导程序;所述引导程序把flash中的control程序复制到dsp内部ram中,开始执行control程序。

优选地,步骤3中control程序设计的具体方法为:

步骤1:dsp初始化rs232串口,向pc机端发送0xff,表示请求更新用户程序;

步骤2:dsp接收pc机端的二进制数据,存入数组中,等待pc机端发送一组数据的时间;

如果dsp等待pc机端发送一组数据的时间后,接收到数据,则判断本组数据有无奇偶校验错误,如果没有错误则向pc机端返回0xff,表示接收成功,同时将接收的数据存入flash中的代码段,继续接收下一组数据;如果出现错误,则清除本组数据,同时向pc机端返回0x00,表示接收中出现问题,等待pc机端重新发送上一组数据;接收完成后,将更新后的代码段复制到dsp的内部ram中,开始执行更新后的程序,更新完成;

如果dsp等待pc机端发送一组数据的时间后,没有接收到数据,则认为更新完成,此时复制更新后的程序到ram中,执行用户程序,更新完成。

优选地,步骤3中上位机软件设计的具体方法为:

步骤1:pc机端打开新的用户程序对应的hex文件,将其中的十六进制数据进行分组;

步骤2:初始化rs232,读取dsp发送的数据;

步骤3:判断dsp发送的数据是否为0xff,如果是,则开始更新,通过rs232发送第一组数据,如果不为0xff则终止本程序;

步骤4:发送完第一组后,读取dsp发送的数据,判断是否为0xff,如果是则发送下一组,若果为0x00则重新发送上一组数据,如果为其他数据则终止本程序;

步骤5:发送完最后一组并接收到dsp返回0xff后终止本程序,更新完成。

优选地,所述上位机软件每次发送一组数据时发送128字节。

优选地,步骤3中dsp与pc机端进行通信时通过max3232进行数据的电平格式转换。

(三)有益效果

本发明能够通过rs232来对dsp进行配置,使dsp代码更新脱离仿真器,避免了代码更新过程中插拔仿真器以及拆卸dsp设备引起的损坏,使dsp代码更新变得更加的简单,易操作,改善了dsp设备的易用性和可维护性。由于使用串行接口,接口信号简单;同时rs232串行传输具有距离远(因此能够实现异地程序下载)、抗干扰性能好、环境适应性强等特点,适合于工业控制、遥测控制、自动控制等领域的dsp系统程序更新。与传统的jtag升级方式相比,升级时间有所增加,但解决了高空、密闭等特殊情况下程序升级的困难。这种方法具有操作简单,烧写稳定等优点,可广泛应用与嵌入式设备软件的更新配置中,是智能化设备的必然要求和趋势。

附图说明

图1为本发明的硬件实现框图;

图2为dsp的自启动流程图;

图3为pc机端的上位机软件设计流程图。

具体实施方式

为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。

本发明提供了一种通过rs232串口来实现的dsp在线编程方法,基于该方法在不使用jtag的情况下将需要更新的dsp代码写入flash。

图1为本发明的硬件实现框图,包括dsp、flash、max232eue、pc机端(电脑端)。

dsp:为需要进行更新配置的对象,需要进行更新的dsp必须支持自启动的方式以及串口通信,在自启动后开始执行control程序段进行更新。

flash:在flash共存储3段程序,第一段为dsp引导程序,用于dsp启动;第二段为control程序,用于更新dsp;第三段为用户程序,即dsp正常运行的程序,当需要更新dsp程序时更换本段程序。

max3232:本芯片对该数据进行电平格式转换,将dsp的数字信号转化为rs232对应的物理电平信号,将pc机端的rs232转化为dsp的数字信号。

pc机端:用于与dsp进行数据交互,本发明在pc机端中设计了专门的上位机软件通过rs232来与dsp进行数据交换,上位机软件需要加载待更新的用户程序,配置rs232串口,同时在进行更新时需要接受判断dsp反馈的信息,发送加载好的用户程序。

本发明提供的一种通过rs232串口来实现的dsp在线编程方法,包括以下步骤:

步骤1:dsp上电自启动,启动完成后判断flash中的dsp程序是否需要更新;

步骤2:若不需要更新,则直接将flash中的程序复制至dsp的内部ram中开始运行,如果需要更新,则进入更新的模式,将flash中原始的程序擦除,执行步骤3;

步骤3:dsp执行control程序,pc机端执行上位机软件,实现dsp与pc机端通过rs232串口进行通信,dsp接收需要更新的代码对应的二进制数据,执行用户程序更新。

图2为步骤1中dsp的自启动流程图,在dsp芯片上电复位后,edma自动从flash拷贝1kb的数据到dsp内存地址0处,然后dsp开始执行拷贝到地址0处的1kb程序代码。具体步骤如下:

步骤11:系统复位,初始化edma,片上bootloader从flash空间复制前1kb代码到dsp内部ram中地址0处;

步骤12:cpu复位,dsp引导程序复制完整的应用程序到其运行地址,复制完成后跳转至应用程序的入口地址,即c_int00;

步骤13:跳转到c_int00,初始化c语言运行环境,跳转至主函数main(),执行应用程序。

步骤3中,dsp上电后自动将flash中前1k的程序复制到dsp内部ram中,执行引导程序;所述引导程序把flash中的control程序复制到dsp内部ram中,开始执行control程序。此过程为dsp在线配置流程。

步骤3中control程序设计的具体方法为:

步骤31:dsp初始化rs232串口,向pc机端发送0xff,表示请求更新用户程序;

步骤32:dsp接收pc机端的二进制数据,存入数组中,等待pc机端发送一组数据的时间;

如果dsp等待pc机端发送一组数据的时间后,接收到数据,则判断本组数据有无奇偶校验错误,如果没有错误则向pc机端返回0xff,表示接收成功,同时将接收的数据存入flash中的代码段,继续接收下一组数据;如果出现错误,则清除本组数据,同时向pc机端返回0x00,表示接收中出现问题,等待pc机端重新发送上一组数据;接收完成后,将更新后的代码段复制到dsp的内部ram中,开始执行更新后的程序,更新完成;

如果dsp等待pc机端发送一组数据的时间后,没有接收到数据,则认为更新完成,此时复制更新后的程序到ram中,执行用户程序,更新完成。

如图3所示,步骤3中上位机软件设计的具体方法为:

步骤31’:pc机端打开新的用户程序对应的hex文件,将其中的十六进制数据进行分组;

步骤32’:初始化rs232,读取dsp发送的数据;

步骤33’:判断dsp发送的数据是否为0xff,如果是,则开始更新,通过rs232发送第一组数据,如果不为0xff则终止本程序;所述上位机软件每次发送一组数据时发送128字节。

步骤34’:发送完第一组后,读取dsp发送的数据,判断是否为0xff,如果是则发送下一组,若果为0x00则重新发送上一组数据,如果为其他数据则终止本程序;

步骤35’:发送完最后一组并接收到dsp返回0xff后终止本程序,更新完成。

可以看出,本发明能够通过rs232来对dsp进行配置,使dsp代码更新脱离仿真器,避免了代码更新过程中插拔仿真器以及拆卸dsp设备引起的损坏,使dsp代码更新变得更加的简单,易操作。与传统的jtag升级方式相比,升级时间有所增加,但解决了高空、密闭等特殊情况下程序升级的困难。这种方法具有操作简单,烧写稳定等优点,可广泛应用与嵌入式设备软件的更新配置中,是智能化设备的必然要求和趋势。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1