微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 一种使用USB对ADSP_TS101S进行链路口加载的方案

一种使用USB对ADSP_TS101S进行链路口加载的方案

时间:10-18 来源:3721RD 点击:

3.3 LINK口发送模块与USB接口模块之间的接口

USB接口除用于加载TS101外,还可用于TS101正常工作时与PC机的数据传输,故对于不同意义的下行信息,需要根据其功能做不同处理。

上位机向FX2LP发送数据时,是通过将需要发送的数据打包(每包的大小由固件程序决定),每隔固定一段时间向下发送一包实现的。在这里,每包数据包含512个字节,其中前8个字节用来当帧头,后504个为需要下传的数据。可通过帧头的不同来区分下行信息的不同意义。其具体含义如表1所示。

FPGA轮询每包数据的帧头,如果是TS101与PC机交互数据,则送到双口RAM中;如果是TS101加载数据,则送到LINK口发送模块中;如果是/BMS拉高(低)指令,则通过相应的管脚拉高(低)/BMS;如果是复位TS101指令,则通知复位逻辑对TS101进行复位,同时复位数据缓冲FIF O。
在实现基于USB总线的TS101的LINK加载时,上位机将DSP加载文件(.ldr文件)打包后,通过USB线缆向FX2LP发送。.ldr文件的大小不一定为504字节的整倍数,因此最后一包数最后可能有很多0。必须把这些0去掉,否则可能在加载TS101时导致其死机。为解决该问题,在帧头定义中,用帧头2来区分是否为最后一包数,如果不是最后一包数,上位机打包时,帧头2赋为01F8(即504),如果是最后一包数,则把将有效数据长度赋给帧头2。FPGA不断将TS101加载数据送到LINK口发送模块中,当发现是最后一包数据时,读取有效数据的长度,并启动一个计数器,当计到该长度时,让FIFO读使能失效,则只有ldr文件的有效数据被加载到TS101中。

4 TS101程序在线重加载和固化的实现

首先通过上位机发送/BMS拉高指令,让FPGA将TS101的/BMS管脚拉高,然后发送复位TS101指令,复位TS101和FIFO;之后,发送/BMS拉低指令,让FPGA将TS101的/BMS管脚拉低,最后,将ldr文件打包为TS101加载数据包并向下发送。发送完毕后,TS101即可运行该程序。
若要实现TS101程序的固化,则可将要烧写的程序生成为ASCII格式的ldr文件,转化为.dat格式,通过include指令编译到EPROM(FLASH)的烧写程序中,生成为Link加载ldr文件,通过USB总线进行加载。烧写完成后,可通过闪灯或通过USB总线上传状态信息来指示烧写结果。

5 结束语

文中提出的基于USB的TS101链路口加载方法成功应用于某雷达信号处理平台的程序加载,其功能验证是通过使用本方法加载各种DSP应用程序并进行功能测试来完成的。使用该方案能稳定可靠的实现TS101程序的重加载,并且能对与之相连的FLASH芯片AT29LV040A进行成功烧写。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top