欢迎来到天天文库
浏览记录
ID:25201644
大小:54.00 KB
页数:6页
时间:2018-11-18
《如何通过网络接口实现dsp片外flash在线系统编程论文》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、如何通过网络接口实现DSP片外Flash在线系统编程论文.freelmer”,但是该工具需要使用JTAG接口,并且需要专用仿真器。另外一种方法是采用RS232作为通信接口,通过一段引导程序来进行Flash的在系统编程,缺点是速度很慢。由于目前大多数电子仪器都已经具有网络接口,本文设计了一种通过网络接口进行Flash在系统编程的方案。采用的网络接口芯片为常见的DM9000a,由于网络通信中常见的TCP/IP协议栈过于庞大,本文中未使用协议栈,而是设计了一种简单的实现方法:直接构建含特殊标记头的UDP广播包来代替。一、BF531的Flash启动加载
2、过程LDR文件是最终烧写到FLASH上面的程序文件,可以有多种格式。这里,我们生成的LDR文件是二进制格式,LDR文件分为多个块,每个块都分为一个“BLOCK”和一个10字节的“HEAD”。在“HEAD”中,头四个字节表示块应加载在BF531地址空间的地址,后四个字节表示“BLOCK”的大小,最后两个字节表示块的属性。BF531芯片本身已经提供了4种启动代码加载方式,通过启动模式引脚BMODE来选择,本设计中将该引脚设置为最常见的“01”模式,即“从8/16位的FLASH/PROM启动”模式。BF531内部有一个BOOTROM区,用以存放“引导
3、核”,BF531启动的时候会先运行该引导核,自动将从Flash起始地址0x2000000开始的LDR文件分块按照用户的要求分别加载到片内RAM和SDRAM中。加载完毕后,引导核会修改程序指针PC,使之为片内RAM的启动地址0xFFA08000,启动用户自己的应用程序。二、总体设计需要设计一个Bootloader程序和一个与之配合的上位机程序,并将Bootloader烧在地址0x20000000处。DSP启动后,“引导核”会自动启动该程序,Bootloader程序延时判断上位机是否发出了连接命令。如果有,进入更新固件模式,可以进行Flash的烧写
4、;否则,则进入正常启动模式,用以加载并执行用户程序。(一)Bootloader与用户程序根据上面所述,启动的顺序是:“引导核”自动启动Bootloader,运行完成后再加载运行用户程序。所以Bootloader程序应该独立于用户程序,因为Bootloader一般不需要更新,而且,在系统编程出现意外的时候,不会导致Bootloader被破坏。由于Bootloader需要在启动的时候就运行,所以应该事先通过JTAG使用仿真器将其烧写到地址0x20000000处。而对于常用的NorFlash,编程的时候会先把相应的整个扇区擦除,所以为了方便编程,应该
5、使用户程序的LDR文件的起始烧写地址固定,并且为一个扇区的起始地址,本设计中固定为0x20004000。(二)网络通信协议设计嵌入式仪器一般资源都比较少,所以Bootloader体积应该设计的尽量的小。最常用的网络通信协议为TCP/IP协议栈,虽然功能强大,但是体积过于庞大。考虑Bootloader只需要网络接口完成最简单的通讯功能,而且通信量很小,本文设计了一种简单的方法:直接构建含特殊标记头的UDP广播包。详细的实现方法:上位机端发送数据的时候,在普通的UDP包的“payload”区加上一个自定义字符串的“标记头”,并定义为广播包,发送。B
6、ootloader端接受时采用“杂散模式”接受,直接分析网络芯片DM9000A接受到的数据,如果发现是UDP包并且具有自定义字符串的“标记头”,则接受,否则,抛弃。相反,Bootloader端发送数据的时候,按照UDP包标准格式直接手动填充一个完整的UDP广播包,并加上“标记头”,上位机接受的时候,按正常接收方式,即可根据“标记头”判断是否是Bootloader传出来的包。三、Bootloader设计如图1所示,Bootloader功能上可以分为4个模块,主控制模块,数据通信讯模块,Flash操作模块,用户程序加载启动模块。Bootloader
7、运行的时候,先向上位机发出握手请求,等待1秒,如果有握手回应信号则证明有上位机相连,Bootloader进入命令等待状态,如果没有,则直接进入用户程序加载启动模块。当一个完整的上位机命令被接收到后,Bootloader解析命令,并执行相应的功能。执行完相应的功能后会再发出握手请求(除非命令为退出命令),等待上位机握手,周而复始。(一)主控制模块实现功能:实现Bootloader与上位机的握手,解析并执行上位机发出的命令,并总体控制各个模块。(二)数据通信模块实现功能:控制网络控制芯片DM9000A进行数据输入和输出。主要需要实现数据接收功能,数
8、据发送功能,DM9000A芯片的初始化和复位功能。本设计中采用了上文中已经叙述的特殊的网络通信方式。设计数据发送函数时,先定义一个UDP的标准广播包的
此文档下载收益归作者所有