一种DSP和FPGA系统在线升级方法与流程

文档序号:12786148阅读:592来源:国知局
一种DSP和FPGA系统在线升级方法与流程

本发明涉及数字信号处理技术领域,特别是涉及一种DSP和FPGA系统在线升级方法。



背景技术:

在目前的数字信号处理系统中,能够同时完成逻辑信号处理和高效数据运算的DSP+FPGA双芯片组合是普遍选择。DSP和FPGA的程序通常存储在Flash中,SPI接口的Nor Flash由于其总线位宽较少、硬件设计简单而备受青睐。通常的程序升级方法是利用JTAG下载线完成,需要拆开设备后利用DSP和FPGA的专用JTAG接口完成Flash内程序的更新。然而很多应用场合,拆卸设备是复杂且繁琐的,因此就需要一种无须拆卸设备而利用通用串行接口完成程序在线升级的方法。

在现有技术中,业界已经提出了一些DSP和FPGA在线升级的方法,例如,在申请号为:201510885026.3,名称为嵌入式系统DSP和FPGA在线升级方法的专利中,提出了利用主控板通过CPCI总线对DSP和FPGA进行程序在线升级的方法。然而,此方法需要使用复杂度较高的主控板,设计复杂度较高,而且采用CPCI总线为并行总线,对数字信号处理系统对外接口引线数量要求较高。因此,利用通用串行接口简洁高效地实现DSP+FPGA在线升级的技术还有所欠缺。



技术实现要素:

本发明的目的是为了克服现有在线升级方法在复杂度和接口方式方面的不足,提供一种简洁高效的DSP和FPGA系统在线升级方法。

本发明解决其技术问题所采用的技术方案是:一种DSP和FPGA系统在线升级方法,包括以下步骤:

步骤一、在上位机分别利用DSP设计工具和FPGA设计工具一一对应产生DSP二进制升级文件和FPGA二进制升级文件;

步骤二、上位机向DSP发送在线升级命令;

步骤三、DSP收到在线升级命令后,根据在线升级命令判断进入到DSP升级模式或FPGA升级模式;若进入到DSP升级模式,则执行步骤七;若进入到FPGA升级模式,则执行步骤四;

步骤四、DSP控制多路复用器选择由DSP的SPI接口读写FPGA的Flash存储器;

步骤五、上位机将FPGA二进制升级文件分成多个数据包通过通用串行接口传输给DSP;

步骤六、DSP接收到上位机下发的FPGA二进制升级文件后,自动的将FPGA二进制升级文件写入到FPGA的Flash存储器中,替换FPGA的Flash存储器中原内容,完成后,向上位机发送反馈命令,结束本流程;

步骤七、上位机将DSP二进制升级文件分成多个数据包通过通用串行接口传输给DSP;

步骤八、DSP接收到上位机下发的DSP二进制升级文件后,自动的将DSP二进制升级文件写入到DSP的Flash存储器中,替换DSP的Flash存储器中原内容,完成后,向上位机发送反馈命令;

完成DSP和FPGA系统的在线升级。

其中,步骤六和步骤八具体包括以下步骤:

a、DSP对接收到的数据包进行加载,并向相应的Flash存储器发送擦除命令;

b、Flash存储器擦除从地址0x0开始的大于等于数据包的存储空间,擦除完成后向DSP发送擦除完成命令;

c、若DSP收到Flash存储器反馈的擦除完成命令,则将数据包从地址0x0开始写入到Flash存储器中,执行步骤d;否则,则向上位机反馈“升级出错”,由操作人员进行相应处理,结束本流程;

d、DSP判断是否还有后续数据包,若有,返回步骤a;否则,DSP向上位机反馈“升级完成”,自动升级流程结束。

本发明的有益效果是:充分利用DSP丰富的接口资源,通过通用串行接口实现升级文件的数据传输,接口设计简洁;利用多路复用器选择实现DSP对FPGA的Flash芯片进行读写,并在DSP上设计自动升级算法,通过DSP的SPI总线接口完成其自身Flash和FPGA的Flash的程序自动升级。无FPGA的算法的设计需求,软件设计复杂度低;自动升级算法能够自动的完成对Flash的控制和读写,具有较强的可操作性。本发明为DSP+FPGA组合的数字信号处理系统提供了一种便捷高效的在线升级方法,提高了系统的可维护性和可测试性。且接口简单,硬件设计复杂度低,为DSP和FPGA系统的在线升级提供了一种简洁有效的方法。

附图说明

图1是本发明实施例的硬件架构示意图;

图2是本发明实施例的Flash存储器控制与切换电路示意图;

图3是本发明实施例的DSP算法流程图。

具体实施方式

下面将结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。

根据本发明实施例,本发明一种DSP和FPGA系统在线升级方法具体实施如下:

首先对本实施例中的芯片型号进行介绍:FPGA芯片选用的是Altera公司的CycloneV系列5CEFA9F23,其存储器选用的是Altera公司的串行配置Flash EPCS128;DSP芯片选用的是TI公司的C674x系列TMS320C6748,其存储器选用的是Micron公司的SPI Nor Flash N25Q128;2选1多路复用器选用的是TI公司的SN74CB3Q3257;与上位机互连的串行接口总线选择为RS232电平的UART串行总线,RS232收发器选用Maxim公司的MAX3232。

另外的,在实际实施中,上位机与DSP的串行接口总线也可以选择RS422电平的UART串行总线、I2C串行总线、SPI串行总线、USB串行总线或Ethernet串行总线等。其选择所依据的原则是,充分借助设备已有的对外接口,以尽量少的接口冗余实现在线升级。

图2是Flash存储器控制与切换电路示意图,从图2中可以看出,对于DSP的Flash存储器,可将其直接连接到DSP芯片的SPI总线上,由DSP处理器通过选择该Flash的片选信号(SCS0)实现擦写。对于FPGA的Flash存储器,根据SPI总线的主从设备连接要求,DSP和FPGA同时连接FPGA的Flash时应使用2选1多路复用器SN74CB3Q3257,避免两个SPI主设备连接同一个从设备而产生总线竞争。DSP通过GPIO引脚对多路复用器进行控制:在默认状态,GPIO输出为低电平,此时多路复用器的1B1、2B1、3B1、4B1分别与1A、2A、3A、4A相连,由FPGA对Flash进行控制;在FPGA程序在线升级状态,GPIO输出为高电平,此时多路复用器的1B2、2B2、3B2、4B2分别与1A、2A、3A、4A相连,由DSP对Flash进行控制。在多路复用器的S引脚使用1kΩ的电阻下拉到GND,其目的是当设备上电初始化时,DSP尚未启动,此时GPIO引脚为三态,用下拉电阻确保S引脚输入电平为低,使多路复用器工作在默认状态。

升级文件产生:对于DSP升级文件,使用TI公司的转换工具“AISgen for D800K008”将DSP程序编译产生的*.out文件转化为二进制文件*.bin;对于FPGA升级文件,使用Altera的编译工具“Quartus”将编译产生的*.sof文件转化为原始配置数据Raw Programming Data文件*.rpd。

升级文件的分包与传输:由上位机将升级文件分块并按照一定的帧格式组成数据包,数据包大小不应超过100kB,并按照顺序发送给DSP。

本发明一种DSP和FPGA系统在线升级方法,包括以下步骤:如图3;

步骤一、在上位机分别利用DSP设计工具和FPGA设计工具一一对应产生DSP二进制升级文件和FPGA二进制升级文件;

步骤二、上位机向DSP发送在线升级命令;

步骤三、DSP收到在线升级命令后,根据在线升级命令判断进入到DSP升级模式或FPGA升级模式;若进入到DSP升级模式,则执行步骤七;若进入到FPGA升级模式,则执行步骤四;

步骤四、DSP控制多路复用器选择由DSP的SPI接口读写FPGA的Flash存储器;

步骤五、上位机将FPGA二进制升级文件分成多个数据包通过RS232通用串行接口传输给DSP,数据包大小不应超过100kB;

步骤六、自动升级算法:DSP接收到上位机下发的FPGA二进制升级文件后,自动的将FPGA二进制升级文件写入到FPGA的Flash存储器中,替换FPGA的Flash存储器中原内容,完成后,向上位机发送反馈命令,在线升级过程完毕,结束本流程;

步骤七、上位机将DSP二进制升级文件分成多个数据包通过RS232通用串行接口传输给DSP,数据包大小不应超过100kB;

步骤八、自动升级算法:DSP接收到上位机下发的DSP二进制升级文件后,自动的将DSP二进制升级文件写入到DSP的Flash存储器中,替换DSP的Flash存储器中原内容,完成后,向上位机发送反馈命令;

完成DSP和FPGA系统的在线升级。

步骤六和步骤八为DSP算法流程图,具体包括以下步骤:

DSP的自动升级算法:

a、DSP对接收到的数据包进行加载,并向DSP的Flash存储器发送擦除命令;

b、DSP的Flash存储器擦除从地址0x0开始的大于等于数据包的存储空间,擦除完成后向DSP发送擦除完成命令;

c、若DSP收到DSP的Flash存储器反馈的擦除完成命令,则将数据包从地址0x0开始写入到DSP的Flash存储器中,执行步骤d;否则,则向上位机反馈“升级出错”,由操作人员进行相应处理,结束本流程;

d、DSP判断是否还有后续数据包,若有,返回步骤a;否则,DSP向上位机反馈“升级完成”,自动升级流程结束。

FPGA的自动升级算法:

e、DSP对接收到的数据包进行加载,并向FPGA的Flash存储器发送擦除命令;

f、FPGA的Flash存储器擦除从地址0x0开始的大于等于数据包的存储空间,擦除完成后向DSP发送擦除完成命令;

g、若DSP收到FPGA的Flash存储器反馈的擦除完成命令,则将数据包从地址0x0开始写入到FPGA的Flash存储器中,执行步骤h;否则,则向上位机反馈“升级出错”,由操作人员进行相应处理,结束本流程;

h、DSP判断是否还有后续数据包,若有,返回步骤e;否则,DSP向上位机反馈“升级完成”,自动升级流程结束。

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