打印

使用串口对DSP进行应用可编程的方法

[复制链接]
1916|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
GG_GG|  楼主 | 2013-1-24 21:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
摘  要  本文介绍了一种通过串口对DSP进行应用可编程的方法,该方法简单易操作,文中给出了具体的实现方法。 关键词  DSP;IAP;串口


1 引言通过串口总线可以对TMS320LF2407A  FLASH进行编程。串口编程可以对DSP系统编程,同时本文给出了一种可编程的应用方法。
该DSP拥有一个片内串口,可以通过一个外部的电平转换器件与标准RS232器件通讯。该串口不仅仅用于编程,在编程结束后可以配置成标准的串口使用。
Bootloader是一个让用户方便对片内FLASH或RAM进行重新编程升级的工具。Bootloader本身不包含某些编程算法,嵌入在片内的Bootloader只具有一些基本的代码下载指令,并在片内RAM运行。Bootloader一般都提供一些编程片内程序存储器的ISP和IAP的接口。
ISP(In-System Programming):使用片内的Bootloader软件和通讯接口,对片内存储器进行编程和重编程。IAP(In Application Programming):IAP对片内存储器执行擦除和写操作,可以由用户代码来执行。
2 工作过程2.1 DSP初始化 上电以后,程序首先从地址0x0000开始执行,然后立即跳转到bootloade程序。
         .sect   "vectors"         
    RESET:    B   _bootloader ; 地址0x0000
    ……..
    _bootloader :
Bootloade首先对串口进行配置,8位数据位,一位停止位,无校验位,建立与计算机的通讯。在此过程中,计算机始终向DSP发送检测字符,0x0D. Bootloade一直通过串口监听计算机通讯,如果连续接受到三个字符与0X0D不相符合,则改为下一个波特率进行监听。当波特率匹配成功后,Bootloade就准备接收9个相同的字符。一旦9个字符接收成功后,Bootloade将发送一个应答信号0XAA,表示通讯建立,从此开始,Bootloade接收到的每一个字符都将发送给计算机,以验证通讯是否正确。图1是Bootloade工作流程图。
图1 Bootloade工作流程
2.2 内核传输内核通过通讯接口,以字节为单位进行传输。首先发送的是低字节,后面是高字节。数据包格式如下:
计算机发送:
①启动地址:一个字(16 bits),每次传输一个字节,低字节优先。
②数据包容量(要传输的字的数目):一个字(16 bits),每次传输一个字节,低字节优先。
③内核代码:每次传输一个字节,低字节优先。一旦内核传输到Ram,内核会发送状态字节来表示初始化的状态。0X0表示发送成功,其它内容表示发送失败,计算机会终止传输。
2.3 内核操作内核只要成功传输,则内核程序将接管控制功能。对于TMS320LF2407A,内核程序算法必须满足以下要求:
①内核必须小于0X100字,并且必须在程序空间0Xfe00-0Xfeff安装和执行,程序起始点必须是0Xfe00。
②内核必须返回程序的状态。
③内核程序必须能够将控制功能返回,不会破坏程序使用的变量。
④内核等待擦除,置1和编程的算法。
⑤内核必须装载到有效的地址内存空间内。
2.4 擦除算法擦除算法是第一个被下载到目标芯片内的算法。它将FLASH第一扇区和第二扇区的内容清0,为FLASH置位作准备。成功擦除后,返回0x0,不然就返回一个非零值。

相关帖子

沙发
GG_GG|  楼主 | 2013-1-24 21:11 | 只看该作者
2.5 置位下载置位算法,它可以置位FLASH。成功置位后,返回0x0,不然就返回一个非零值。
2.6 编程
图2 编程流程图
下载编程算法,但编程算法并不立即执行,而是下载第一组编程数据。一旦得到编程数据,将会调用编程算法,将下载的编程数据烧写到FLASH里。图2是编程步骤的流程图。
对FLASH第一扇区的编程操作结束以后,编程算法将向计算机返回状态。并一直等待下一组编程数据,一直到接收到最后一组数据标志为止。将编程数据烧写到FLASH后,编程算法将控制权交给工作程序。
3 使用方法为了使用该软件将程序下载到FLASH里,首先要通过编译器将程序编译、调试通过,一般编译器生成的文件格式为COFF格式,该文件包含程序二进制代码,但不包含要烧写到FLASH里的二进制文件。需要使用工具将该文件格式转换为可下载的文件格式。
在芯片内有四个字的密码,在下载程序时要注意。如果下载程序里的密码是0X0000 或0X0FFFF,则不用关心,但如果其它的密码,则需要记录下来,以备下次下载时使用,将密码设置到要下载的程序里,解密原来的芯片。
Password1:set  0000h ;在地址0x0040中的密码
Password2:set  0000h ;在地址0x0041中的密码
Password3:set  0000h ;在地址0x0042中的密码
Password4:set  0000h ;在地址0x0043中的密码
4 结果使用该方法可以方便的对芯片进行程序下载,成本低、操作方便。本方法已经在北京瑞泰公司的DSP开发板上调试通过,稳定可靠。

使用特权

评论回复
板凳
biechedan| | 2013-1-24 21:37 | 只看该作者
楼主试验过了吗?

使用特权

评论回复
地板
biechedan| | 2013-1-24 21:38 | 只看该作者
好像有对2812的串口编程

使用特权

评论回复
5
tianli1980| | 2013-1-25 16:59 | 只看该作者
这介方法简单易操作,还不错,感谢楼主分享。

使用特权

评论回复
6
358387627| | 2013-1-25 19:56 | 只看该作者
赞一个,不知道能不能调通我

使用特权

评论回复
7
pmp| | 2013-1-26 19:56 | 只看该作者
给力,省了下载器了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

893

帖子

7

粉丝