首页 如何通过网络接口实现DSP片外Flash在线系统编程

如何通过网络接口实现DSP片外Flash在线系统编程

举报
开通vip

如何通过网络接口实现DSP片外Flash在线系统编程如何通过网络接口实现DSP片外Flash在线系统编程 DOC格式论文,方便您的复制修改删减 如何通过网络接口实现DSP片外Flash 在线系统编程 (作者:___________单位: ___________邮编: ___________) 摘要,文章针对传统设计采用RS232作为数据传输手段而造成的速度过慢的问题,设计了一种通过网络接口,使用一种特殊的UDP包对BF531片外Flash在线系统编程的方案,并给出了在系统编程的具体步骤和实现结果。实践证明该方法无须实现TCP/IP协议栈,速度快,体积很小,很...

如何通过网络接口实现DSP片外Flash在线系统编程
如何通过网络接口实现DSP片外Flash在线系统编程 DOC格式 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 ,方便您的复制修改删减 如何通过网络接口实现DSP片外Flash 在线系统编程 (作者:___________单位: ___________邮编: ___________) 摘要,文章针对传统 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 采用RS232作为数据传输手段而造成的速度过慢的问题,设计了一种通过网络接口,使用一种特殊的UDP包对BF531片外Flash在线系统编程的 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,并给出了在系统编程的具体步骤和实现结果。实践证明该方法无须实现TCP/IP 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 栈,速度快,体积很小,很好地解决了以DSP为核心的应用系统软件的维护和升级问题。 关键词,BF531,Flash,网络接口,ISP,UDP 在以DSP为核心的现代电子设备中,通常将可执行代码存放在Flash中,设备启动的时候,DSP通过引导加载机制将Flash中的代码转移到高速存储器中运行。Flash在系统编程,ISP,是指以在不改变硬件环境的条件下,在线将程序代码,固件,下载到Flash中,从而方便地实现系统软件的调试和升级。BF531是ADI公司生产的一款高性能DSP。ADI公司在其软件VDSP下提供了通用的在 DOC格式论文,方便您的复制修改删减 系统编程工具“FlashProgrammer”,但是该工具需要使用JTAG接口,并且需要专用仿真器。另外一种方法是采用RS232作为通信接口,通过一段引导程序来进行Flash的在系统编程,缺点是速度很慢。由于目前大多数电子仪器都已经具有网络接口,本文设计了一种通过网络接口进行Flash在系统编程的方案。采用的网络接口芯片为常见的DM9000a,由于网络通信中常见的TCP/IP协议栈过于庞大,本文中未使用协议栈,而是设计了一种简单的实现方法,直接构建含特殊标记头的UDP广播包来代替。 一、BF531的Flash启动加载过程 LDR文件是最终烧写到FLASH上面的程序文件,可以有多种格式。这里,我们生成的LDR文件是二进制格式,LDR文件分为多个块,每个块都分为一个“BLOCK”和一个10字节的“HEAD”。在“HEAD”中,头四个字节表示块应加载在BF531地址空间的地址,后四个字节表示“BLOCK”的大小,最后两个字节表示块的属性。 BF531芯片本身已经提供了4种启动代码加载方式,通过启动模式引脚BMODE来选择,本设计中将该引脚设置为最常见的“01”模式,即“从8/16位的FLASH/PROM启动”模式。 BF531内部有一个BOOTROM区,用以存放“引导核”,BF531启动的时候会先运行该引导核,自动将从Flash起始地址0x2000000开始的LDR文件分块按照用户的要求分别加载到片内RAM和SDRAM中。加载完毕后,引导核会修改程序指针PC,使之为片内RAM的启动地址0xFFA08000,启动用户自己的应用程序。 DOC格式论文,方便您的复制修改删减 二、总体设计 需要设计一个Bootloader程序和一个与之配合的上位机程序,并将Bootloader烧在地址0x20000000处。DSP启动后,“引导核”会自动启动该程序,Bootloader程序延时判断上位机是否发出了连接命令。如果有,进入更新固件模式,可以进行Flash的烧写,否则,则进入正常启动模式,用以加载并执行用户程序。 ,一,Bootloader与用户程序 根据上面所述,启动的顺序是,“引导核”自动启动Bootloader,运行完成后再加载运行用户程序。所以Bootloader程序应该独立于用户程序,因为Bootloader一般不需要更新,而且,在系统编程出现意外的时候,不会导致Bootloader被破坏。由于Bootloader需要在启动的时候就运行,所以应该事先通过JTAG使用仿真器将其烧写到地址0x20000000处。而对于常用的NorFlash,编程的时候会先把相应的整个扇区擦除,所以为了方便编程,应该使用户程序的LDR文件的起始烧写地址固定,并且为一个扇区的起始地址,本设计中固定为0x20004000。 ,二,网络通信协议设计 嵌入式仪器一般资源都比较少,所以Bootloader体积应该设计的尽量的小。最常用的网络通信协议为TCP/IP协议栈,虽然功能强大,但是体积过于庞大。考虑Bootloader只需要网络接口完成最简单的通讯功能,而且通信量很小,本文设计了一种简单的方法,直接构建含特殊标记头的UDP广播包。 DOC格式论文,方便您的复制修改删减 详细的实现方法,上位机端发送数据的时候,在普通的UDP包的“payload”区加上一个自定义字符串的“标记头”,并定义为广播包,发送。Bootloader端接受时采用“杂散模式”接受,直接分析网络芯片DM9000A接受到的数据,如果发现是UDP包并且具有自定义字符串的“标记头”,则接受,否则,抛弃。相反,Bootloader端发送数据的时候,按照UDP包标准格式直接手动填充一个完整的UDP广播包,并加上“标记头”,上位机接受的时候,按正常接收方式,即可根据“标记头”判断是否是Bootloader传出来的包。 三、Bootloader设计 如图1所示,Bootloader功能上可以分为4个模块,主控制模块,数据通信讯模块,Flash操作模块,用户程序加载启动模块。Bootloader运行的时候,先向上位机发出握手请求,等待1秒,如果有握手回应信号则证明有上位机相连,Bootloader进入命令等待状态,如果没有,则直接进入用户程序加载启动模块。当一个完整的上位机命令被接收到后,Bootloader解析命令,并执行相应的功能。执行完相应的功能后会再发出握手请求,除非命令为退出命令,,等待上位机握手,周而复始。 ,一,主控制模块 实现功能,实现Bootloader与上位机的握手,解析并执行上位机发出的命令,并总体控制各个模块。 ,二,数据通信模块 实现功能,控制网络控制芯片DM9000A进行数据输入和 DOC格式论文,方便您的复制修改删减 输出。主要需要实现数据接收功能,数据发送功能,DM9000A芯片的初始化和复位功能。 本设计中采用了上文中已经叙述的特殊的网络通信方式。设计数据发送函数时,先定义一个UDP的标准广播包的模版,在UDP包的“payload”区开始的地方添加好自定义的“标记头”,发送的时候直接在该模版的“payload”区后上加入准备传送的数据, 通知 关于发布提成方案的通知关于xx通知关于成立公司筹建组的通知关于红头文件的使用公开通知关于计发全勤奖的通知 DM9000A发送即可,为了避免计算校验位造成速度减慢,本设计中将UDP头的校验位设置为0,即不校验。设计数据接收函数时,只需要先读取“payload”的头几个字节,判断是否为定义的“标记头”,如果是,则去掉该“标记头”和UDP包的头,获得真正需要的数据,如果不是,则抛弃。 ,三,Flash操作模块 实现功能,实现一些常用的操作Flash功能接口函数,供主控制模块使用。主要需要实现的功能函数有,Flash写函数,Flash读函数,Flash块擦除函数,Flash解锁函数,Flash校验函数。 普通的nor Flash编程前需要将相应的扇区解锁并擦除,所以如果该扇区有别的数据,会被一并擦除。为了能自由地编程任意地址的数据,本设计中特别定义了一个1个块大小的缓冲区,暂存原Flash块里面的数据,编程的时候将更新数据和原数据进行合并再后在一起编程进入Flash,解决了该问题。 ,四,用户程序加载启动模块 实现功能,完成类似BOOTROM区“引导核”的工作,即加 DOC格式论文,方便您的复制修改删减 载起始地址为0x20004000的用户程序LDR文件到片内RAM或SDRAM,然后清空所有相关堆栈和寄存器,最后修改PC指针为0xFFA08000,开始执行用户程序,所以该程序应该使用汇编编写。ADI在VDSP下提供“引导核”的示例程序,可以参考该程序设计本模块。需要注意的是本模块绝对不能被加载的用户程序覆盖掉,所以不能把这段程序放到片内RAM,而应该把这段程序放在SDRAM的最后,保护起来。 四、上位机设计 本设计中上位机在Windows XP操作系统下采用NI公司的Labwindows/CVI 8.0开发设计,如图2所示。需要实现通过UDP包与Bootloader的通信和程控面板的显示。由于CVI8.0自身没有带UDP相关驱动,需要加入Windows的API库wsock32.lib进行开发。调用该库进行SOCKET编程,设计好UDP的读、写、打开、关闭函数。在设计发送/接收函数的时候应该加上或去掉定义的“标记头”。 五、实现结果 本设计已经在使用DSP芯片BF531和网络控制芯片DM9000A的目标板上成功实现。完整的实现步骤如下,先将Bootloader生成LDR文件,再将其通过仿真器烧写到0x20000000,使用交叉双绞线将目标板与电脑相连接,在电脑上打开上位机,给目标板上电,此时上位机与目标板进行握手,如果成功,面板会显示“已经成功连接目标板”,选择需要烧写的用户程序的LDR文件和烧写地址,点击开始烧写即可。 DOC格式论文,方便您的复制修改删减 六、结语 本文提出了一种通过特殊的UDP广播包进行Flash的在系 统编程的方法,并成功实现。该方法抛弃了TCP/IP协议栈,因而大 大的减小了自身的体积,而且采用网络接口,使系统编程的速度得到 了极大的提升。很好地解决了目标系统的系统程序升级和调试的问 题。 参考文献 [1]Analog Devices,Inc,ADSP-BF533 Blackfin Processor Hardware Reference,2007, [2]Analog Devices,Inc,VisualDSP++4.5 Loader and Utilities Manual,2006, [3]Analog Devices,Inc,ADSP-BF533 Blackfin Booting Process,2006, [4]Lvzhiyong,Auto-load and auto-update the DSO’s software,2007,
本文档为【如何通过网络接口实现DSP片外Flash在线系统编程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_337177
暂无简介~
格式:doc
大小:19KB
软件:Word
页数:0
分类:
上传时间:2018-07-03
浏览量:29