CN106547574A - 一种dsp程序和fpga程序的外部下载系统及方法 - Google Patents

一种dsp程序和fpga程序的外部下载系统及方法 Download PDF

Info

Publication number
CN106547574A
CN106547574A CN201611122983.1A CN201611122983A CN106547574A CN 106547574 A CN106547574 A CN 106547574A CN 201611122983 A CN201611122983 A CN 201611122983A CN 106547574 A CN106547574 A CN 106547574A
Authority
CN
China
Prior art keywords
dsp
programs
fpga
data
memory element
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201611122983.1A
Other languages
English (en)
Inventor
雷丹丹
刘鑫
李卫洁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Space Star Technology Co Ltd
Original Assignee
Space Star Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Space Star Technology Co Ltd filed Critical Space Star Technology Co Ltd
Priority to CN201611122983.1A priority Critical patent/CN106547574A/zh
Publication of CN106547574A publication Critical patent/CN106547574A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种DSP程序和FPGA程序的外部下载系统及方法,其中,所述系统包括1553B接口电路、DSP处理器、DSP存储单元、看门狗电路、FPGA、以及FPGA存储单元,所述1553B接口电路通过EMIFA接口与所述DSP处理器相连,所述看门狗电路通过GPIO接口与所述DSP处理器相连,所述DSP存储单元通过EMIFB接口和GPIO接口与所述DSP处理器相连,所述FPGA存储单元通过McBsp接口与所述DSP处理器相连,所述DSP处理器通过GPIO接口与所述FPGA相连,所述FPGA存储单元通过串行总线与所述FPGA相连。本发明提供的一种DSP程序和FPGA程序的外部下载系统及方法,能够提高外部下载系统的实用性、可靠性以及实时性。

Description

一种DSP程序和FPGA程序的外部下载系统及方法
技术领域
本发明涉及嵌入式设备技术领域,具体涉及一种DSP程序和FPGA程序的外部下载系统及方法。
背景技术
随着电子技术的不断发展以及用户需求的不断提升,需要经常对已经投入使用的嵌入式设备程序进行更新,一般的基于DSP和FPGA的软件程序更新是在开发环境下通过JTAG接口操作来实现的。基于JTAG接口的方法虽然易于操作,而且调试方便,但经常受空间以及传输距离的限制,对于某些特殊场合,如设备在密闭的箱体内以及其他不便触及的地方,这种方式给升级带来了极大的不便,因此开发高效、便捷的升级技术成为一种迫切的需求。
现有技术中公开了一种基于串口通信的适合于TMS320C2000系列DSP实现程序更新的在线升级,然而其缺点在于:该DSP程序存储FLASH位于DSP片内,容量小,无法满足复杂性较高的数字信号处理的需要,有一定的使用局限性;同时也未采用工作状态监控机制,不具备自恢复功能,可靠性和通用性不够完善。
现有技术还公开了一种在线升级方法,通过FLASH分区存储的方式提高软件升级的可靠性,将FLASH分为启动代码区和产品程序区两个不同的分区,启动代码区存储的在线升级软件,通过RS422/RS232/CAN接口对产品程序区进行读写,实现产品软件的引导和启动,但是缺点在于:该分区存储的方式并未扩展存储空间,启动代码区和产品程序区共享原有FLASH空间,当产品程序区有较多的数据存储需求时可能无法满足,扩展性较差;并且,没有实现在线重加载功能,产品程序区代码的加载需要断电重启才可以实现,实时性和灵活性较差;同样,该设计也未采用工作状态监控机制,不具备自恢复功能,可靠性和通用性不够完善。
此外,现有技术还公开了采用CPLD或DSP作为配置主控器实现基于FLASH工艺的FPGA在线升级和动态加载,其缺点在于:该方法需要基于JTAG接口,接口硬件连线较多,程序时序逻辑控制复杂,可靠性差;在FPGA程序文件较大的情况下具有很大的使用局限性,通用性差;同样,该设计也未采用工作状态监控机制,不具备自恢复功能。
综上,现有技术中都没有提出一种基于1553B总线、能够兼容DSP和FPGA两种嵌入式处理器在线升级、具备在线重加载功能和工作状态监控功能的具有较高可靠性和较好通用性的外部下载系统。
发明内容
本发明实施例的目的在于提供一种DSP程序和FPGA程序的外部下载系统及方法,能够在不打开机箱的条件下实现对DSP应用程序和FPGA程序的在线更新,同时实时监控DSP工作状态,及时处理异常状况,以提高外部下载系统的实用性、可靠性以及实时性。
为实现上述目的,本发明实施例一方面提供一种DSP程序和FPGA程序的外部下载系统,所述系统包括1553B接口电路、DSP处理器、DSP存储单元、看门狗电路、FPGA、以及FPGA存储单元,所述1553B接口电路通过EMIFA接口与所述DSP处理器相连,所述看门狗电路通过GPIO接口与所述DSP处理器相连,所述DSP存储单元通过EMIFB接口和GPIO接口与所述DSP处理器相连,所述FPGA存储单元通过McBsp接口与所述DSP处理器相连,所述DSP处理器通过GPIO接口与所述FPGA相连,所述FPGA存储单元通过串行总线与所述FPGA相连。
进一步地,所述1553B接口电路,用于实现上位机与所述DSP处理器之间的数据传输,以完成上位机向所述DSP处理器发送控制命令和程序数据,并从所述DSP处理器处接收反馈指令以及程序在线升级结果;所述DSP处理器,用于在上电复位后,从所述DSP存储单元加载并运行底层程序,并在自检初始化完成后与上位机建立1553B通信,以根据所述上位机的指令判断是否需要升级DSP程序或者FPGA程序;所述DSP存储单元,用于存储DSP底层程序数据和DSP用户程序数据;所述看门狗电路,用于监测喂狗信号是否正常,并在喂狗信号异常时向所述DSP处理器发送DSP复位信号;所述FPGA存储单元,用于存储FPGA程序数据;所述EMIFA接口,用于实现1553B数据的发送和接收功能;所述EMIFB接口,用于实现DSP用户程序在线升级与加载运行所需的数据传输功能;所述McBsp接口,用于实现FPGA程序在线升级所需的数据传输功能;所述GPIO接口,用于完成DSP底层程序和DSP用户程序在所述DSP存储单元中的分区存储与加载;在FPGA程序在线升级时,产生FPGA复位逻辑,以保证总线资源的独占性;在DSP程序运行中,按照预设时间周期向所述看门狗电路提供喂狗信号。
为实现上述目的,本申请另一方面还提供一种DSP程序和FPGA程序的外部下载方法,所述方法包括:当所述外部下载系统上电后,对所述EMIFA接口、EMIFB接口、McBsp接口以及GPIO接口进行初始化并将固化状态机的状态初始化为1;所述外部下载系统进入在线升级主循环中,并判断所述固化状态机的当前状态;如果所述固化状态机的当前状态为1,通过1553B总线接收设备对码指令,并将设备对码结果通过1553B总线反馈给上位机,并在设备对码成功后将固化状态机的状态设置为2;如果在预设时长内未收到设备对码命令,则重新加载DSP应用程序。
进一步地,所述方法还包括:如果所述固化状态机的状态为2,所述外部下载系统通过1553B总线接收文件头上传指令;响应于所述文件头上传指令,获取固化参数,并将所述固化参数通过1553B总线反馈给上位机,并在固化参数获取成功后将所述固化状态机的状态设置为3;其中,如果所述固化参数中包括固化DSP应用程序的参数,置地址高位GPIO为1;如果所述固化参数中包括固化FPGA程序的参数,置FPGA复位GPIO为0。
进一步地,所述方法还包括:如果所述固化状态机的状态为3,所述外部下载系统通过1553B总线接收介质清除指令,完成对DSP存储单元或FPGA存储单元的擦除操作;将擦除结果通过1553B总线反馈给上位机,并在擦除成功后将固化状态机的状态设置为4。
进一步地,所述方法还包括:如果所述固化状态机的状态为4,所述外部下载系统通过1553B总线接收程序文件数据包,当所述程序文件数据包的大小超出所述DSP存储单元可容纳的大小时,将所述程序文件数据包分批发给DSP底层程序;所述DSP底层程序接收并烧写完一批程序文件数据包后,再进行下一批程序文件数据包的接收和烧写,直至所有的程序文件数据包都烧写完毕;在烧写完毕后将程序文件固化结果通过1553B总线反馈给上位机,同时将所述固化状态机的状态设置为5。
进一步地,所述方法还包括:如果所述固化状态机的状态为5,所述外部下载系统等待1553B总线接收装订检查指令;响应于所述装订检查指令,DSP底层程序从DSP存储单元中读取软件版本号并在对计算程序文件数据进行检验后反馈给上位机,同时将所述固化状态机的状态设置为6。
进一步地,所述方法还包括:如果所述固化状态机的状态为6,DSP底层程序释放对地址高位GPIO和FPGA复位GPIO的控制,并等待预设时长后重新加载DSP应用程序。
进一步地,所述方法还包括:DSP底层程序加电或复位后,进行初始化和自检操作,同时将初始化和自检结果输入到主循环中;进入主循环后,查询1553B接口电路是否有数据接收/发送,并读取1553B接口电路对应的命令堆栈区,以获得子地址、数据帧长度、发送/接收标志;若1553B接口电路有数据发送,则清除子地址的标志位及对应的矢量字信息;若1553B接口电路有数据接收,则根据子地址和数据帧长度将数据缓存到对应的缓冲区,并判断数据帧校验是否正确。
进一步地,所述方法还包括:当数据帧校验正确时,若接收到设备对码命令,检测所述设备对码命令对应的模块,并将检查结果和模块的出厂设备信息编码写入指定的子地址单元;若接收到文件头上传命令,则存储文件头信息,并进行CRC32通讯校验;若接收到介质清除命令,则根据文件头信息中包含的软件代号及通道号确定擦除区域,并启动擦除操作;若接收到介质清除查询命令,则根据软件擦除状态向固化状态机下达状态设置指令;若接收到数据体记录上传命令,则对数据体数据进行CRC32通讯校验,并根据校验结果向固化状态机下达状态设置指令,同时根据文件头信息中包含的软件代号及通道号确定擦除区域,并启动固化操作。
本发明与现有技术相比的有益效果是:
(1)本发明采用FLASH分区存储的方式,提高软件升级的可靠性;同时,分区存储使用地址高位GPIO控制的方式,从物理上扩展了DSP FLASH的存储空间。
(2)本发明能够不断电重启DSP即可运行DSP应用程序,在对实时性要求较高的场合中具有明显优势。
(3)本发明所述的DSP底层程序监控DSP工作状态的工作机制,能够实时监控系统运行状态,硬件、软件和通信故障情况时可对系统自主复位,而不需要手动复位即可恢复系统工作状态,可满足某些无法手动控制断电重启的场合下的使用需求。
(4)本发明采用严谨的固化流程,DSP底层程序采用状态机机制,保证固化流程按照步骤严格执行,防止在固化参数未确定的情况下对芯片误操作或固化步骤错误导致的外部下载失败。
(5)本发明中所述的FPGA程序的外部下载充分利用了DSP的接口特点,使用McBSP和GPIO模拟产生FPGA存储单元的SPI时序,与现有技术中使用GPIO模拟JTAG时序的方法相比,具有硬件连线少,程序逻辑简单清晰,可靠性高等优势。
(6)本发明具有很强的通用性。在DSP+FPGA架构广泛应用于各种数字信号处理系统的研究背景下,本发明能够兼容DSP和FPGA两种嵌入式处理器的在线升级功能,应用范围广阔;同时,近年来软件无线电因被认为是无线通信技术未来的发展趋势而受到广泛关注,而其中重要的设计思路是尽可能地用可升级、可重配置的应用软件,本发明的在线下载方法具有良好的借鉴和使用价值;另外,在航空航天和兵器领域,1553B总线以高可靠性和强实时性得到了广泛的应用,在采用MIL-STD-1553B总线通用接口的系统中,本发明无需额外接口即可实现外部下载功能,具有良好的兼容性,大大简化了系统设计。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本发明实施例的内容和这些附图获得其他的附图。
图1是本实施例所述的DSP程序和FPGA程序的外部下载系统的结构示意图;
图2是本实施例所述的DSP程序和FPGA程序的外部下载方法的流程图;
图3是本实施例所述的基于状态机机制实现程序文件固化方法的工作流程图;
图4是本实施例中外部下载系统的功能模块图;
图5是本实施例中外部下载系统的控制流程图;
图6是本实施例中外部下载系统的数据流程图。
贯穿附图,应该注意的是,相似的标号用于描绘相同或相似的元件、特征和结构。
具体实施方式
提供以下参照附图的描述来帮助全面理解由权利要求及其等同物限定的本公开的各种实施例。以下描述包括帮助理解的各种具体细节,但是这些细节将被视为仅是示例性的。因此,本领域普通技术人员将认识到,在不脱离本公开的范围和精神的情况下,可对本文所述的各种实施例进行各种改变和修改。另外,为了清晰和简洁,公知功能和构造的描述可被省略。
以下描述和权利要求书中所使用的术语和词汇不限于文献含义,而是仅由发明人用来使本公开能够被清晰和一致地理解。因此,对于本领域技术人员而言应该明显的是,提供以下对本公开的各种实施例的描述仅是为了示例性目的,而非限制由所附权利要求及其等同物限定的本公开的目的。
应该理解,除非上下文明确另外指示,否则单数形式也包括复数指代。因此,例如,对“组件表面”的引用包括对一个或更多个这样的表面的引用。
请参阅图1,本申请实施方式提供一种DSP程序和FPGA程序的外部下载系统,所述系统集成于处理板上,所述处理板位于机箱内。其中,所述系统包括1553B接口电路、DSP处理器、DSP存储单元、看门狗电路、FPGA、以及FPGA存储单元,所述1553B接口电路通过EMIFA接口与所述DSP处理器相连,所述看门狗电路通过GPIO接口与所述DSP处理器相连,所述DSP存储单元通过EMIFB接口和GPIO接口与所述DSP处理器相连,所述FPGA存储单元通过McBsp接口与所述DSP处理器相连,所述DSP处理器通过GPIO接口与所述FPGA相连,所述FPGA存储单元通过串行总线与所述FPGA相连。
在本实施方式中,所述1553B接口电路,用于实现上位机与所述DSP处理器之间的数据传输,以完成上位机向所述DSP处理器发送控制命令和程序数据,并从所述DSP处理器处接收反馈指令以及程序在线升级结果。
所述DSP处理器,用于在上电复位后,从所述DSP存储单元加载并运行底层程序,并在自检初始化完成后与上位机建立1553B通信,以根据所述上位机的指令判断是否需要升级DSP程序或者FPGA程序。具体地,若需要升级,则将通过1553B接口发送来的代码烧写至相应存储单元,烧写完成后跳转到DSP应用程序处执行;如果不需要外部下载,则跳转到DSP应用程序处执行原有程序。当应用程序很大或DSP的内存空间较小时,可采用将DSP应用程序代码或FPGA程序代码分批发给DSP底层程序,DSP底层程序接收并烧写完一批代码后,再进行下一批代码的接收和烧写工作,直到所有的程序代码都烧写完毕。在DSP程序运行过程中对DSP工作状态进行监控,异常时可自主复位。
所述DSP存储单元为DSP外部非易失性存储器,用于存储DSP底层程序数据和DSP用户程序数据,DSP底层程序上电可自动加载至内存运行,DSP用户程序的升级和加载通过DSP底层程序实现。
所述看门狗电路,用于监测喂狗信号是否正常,并在喂狗信号异常时向所述DSP处理器发送DSP复位信号;
所述FPGA存储单元为FPGA外部非易失性存储器,用于存储FPGA程序数据,上电可自动加载运行,FPGA程序的升级通过DSP底层程序实现。
所述EMIFA接口为1553B接口电路与DSP处理器之间的并行总线接口,通过该接口完成1553B数据的发送和接收功能。
所述EMIFB接口为DSP存储单元与DSP处理器之间的并行总线接口,通过该接口实现DSP用户程序在线升级与加载运行等所需的数据传输功能。
所述McBsp接口为FPGA存储单元与DSP处理器之间的串行总线接口,通过该接口的SPI工作模式实现FPGA程序在线升级等所需的数据传输功能。
所述GPIO接口用于完成DSP底层程序和DSP用户程序在DSP存储单元中的分区存储与加载,从而保证程序数据的可靠性;在FPGA程序在线升级时,产生FPGA复位逻辑,保证总线资源的独占性;在DSP程序运行中,定时产生喂狗信号给看门狗电路,达到监控DSP工作状态的目的。
本实施方式中,各个模块中的芯片型号、规格及性能指标如下:
DSP底层软件运行在TI公司的TMS320C6416T芯片上,主频600MHz,具有1MB的L2RAM,64MB×4的EMIFB空间,256MB×4的EMIFA空间,含3个定时器,16个可用GPIO,3个McBSP接口。
1553B芯片选用HT61843,该芯片为4M 1553B总线接口通信协议模块,该芯片可支持8/16位微处理器接口,地址总线的映射采用字结构,与DSP的EMIFA接口相连接,采用CE0片选空间。
DSP Flash芯片选用JS28F128,该芯片具有16bit宽度的并行总线接口,128Mbit容量,时钟速率最快可高达52MHz,与DSP的EMIFB接口相连接,采用CE1片选空间。
FPGA Flash芯片选用N25Q128A,该存储器采用增强型SPI协议存取数据,128Mbit容量,读写速率最快可高达54MHz,与DSP的McBSP2接口相连接。
看门狗芯片选用MAX706,喂狗周期不大于1.6s。
请参阅图2和图3,本申请实施方式还提供一种DSP程序和FPGA程序的外部下载方法,所述方法包括以下步骤。
S1:当所述外部下载系统上电后,对所述EMIFA接口、EMIFB接口、McBsp接口以及GPIO接口进行初始化并将固化状态机的状态初始化为1;
S2:所述外部下载系统进入在线升级主循环中,并判断所述固化状态机的当前状态;
S3:如果所述固化状态机的当前状态为1,通过1553B总线接收设备对码指令,并将设备对码结果通过1553B总线反馈给上位机,并在设备对码成功后将固化状态机的状态设置为2;
S4:如果在预设时长内未收到设备对码命令,则重新加载DSP应用程序。
在本实施方式中,所述的基于状态机机制实现程序文件固化方法的工作流程如图3所示:
如果所述固化状态机的状态为2,所述外部下载系统通过1553B总线接收文件头上传指令;
响应于所述文件头上传指令,获取固化参数,并将所述固化参数通过1553B总线反馈给上位机,并在固化参数获取成功后将所述固化状态机的状态设置为3;
其中,如果所述固化参数中包括固化DSP应用程序的参数,置地址高位GPIO为1;如果所述固化参数中包括固化FPGA程序的参数,置FPGA复位GPIO为0。
如果所述固化状态机的状态为3,所述外部下载系统通过1553B总线接收介质清除指令,完成对DSP存储单元或FPGA存储单元的擦除操作;
将擦除结果通过1553B总线反馈给上位机,并在擦除成功后将固化状态机的状态设置为4。
如果所述固化状态机的状态为4,所述外部下载系统通过1553B总线接收程序文件数据包,当所述程序文件数据包的大小超出所述DSP存储单元可容纳的大小时,将所述程序文件数据包分批发给DSP底层程序;
所述DSP底层程序接收并烧写完一批程序文件数据包后,再进行下一批程序文件数据包的接收和烧写,直至所有的程序文件数据包都烧写完毕;
在烧写完毕后将程序文件固化结果通过1553B总线反馈给上位机,同时将所述固化状态机的状态设置为5。
如果所述固化状态机的状态为5,所述外部下载系统等待1553B总线接收装订检查指令;
响应于所述装订检查指令,DSP底层程序从DSP存储单元中读取软件版本号并在对计算程序文件数据进行检验后反馈给上位机,同时将所述固化状态机的状态设置为6。
如果所述固化状态机的状态为6,DSP底层程序释放对地址高位GPIO和FPGA复位GPIO的控制,并等待预设时长后重新加载DSP应用程序。
在本实施方式中,所述方法还包括:
DSP底层程序加电或复位后,进行初始化和自检操作,同时将初始化和自检结果输入到主循环中;
进入主循环后,查询1553B接口电路是否有数据接收/发送,并读取1553B接口电路对应的命令堆栈区,以获得子地址、数据帧长度、发送/接收标志;
若1553B接口电路有数据发送,则清除子地址的标志位及对应的矢量字信息;若1553B接口电路有数据接收,则根据子地址和数据帧长度将数据缓存到对应的缓冲区,并判断数据帧校验是否正确。
在本实施方式中,所述方法还包括:
当数据帧校验正确时,若接收到设备对码命令,检测所述设备对码命令对应的模块,并将检查结果和模块的出厂设备信息编码写入指定的子地址单元;
若接收到文件头上传命令,则存储文件头信息,并进行CRC32通讯校验;
若接收到介质清除命令,则根据文件头信息中包含的软件代号及通道号确定擦除区域,并启动擦除操作;
若接收到介质清除查询命令,则根据软件擦除状态向固化状态机下达状态设置指令;
若接收到数据体记录上传命令,则对数据体数据进行CRC32通讯校验,并根据校验结果向固化状态机下达状态设置指令,同时根据文件头信息中包含的软件代号及通道号确定擦除区域,并启动固化操作。
在一个具体场景中,如图4所示,DSP底层程序配置项划分为初始化、自检、1553B数据接收、1553B数据发送、应答数据组帧、DSP用户程序擦除、DSP用户程序固化、FPGA程序擦除、FPGA程序固化、加载DSP用户程序等10个子功能,根据功能与实际需求,对应设计了图3中的16个模块,实现上述10个子功能。图3中从上到下体现了模块间的调用关系。
如图5所示,DSP底层程序的控制流程为:
(a)系统上电后完成对EMIFA接口、EMIFB接口、McBsp接口、GPIO接口的初始化,实现对1553B接口电路的RT工作模式设置,固化状态机初始化为1;
(b)系统进入在线升级主循环中,如果固化状态机为1,则等待1553B总线接收设备对码指令,实现固化数据包和固化设备的状态控制和匹配性验证,将设备对码结果通过1553B总线反馈给PC机,同时设备对码成功后置固化状态机为2;如果在T1秒内未收到设备对码命令,则跳转到DSP应用程序重加载流程中。
(c)如果固化状态机为2,系统等待1553B总线接收文件头上传指令,获取固化相应参数,固化参数获取结果通过1553B总线反馈给PC机,同时参数获取成功置固化状态机为3;如果固化参数中要求固化DSP应用程序,则置地址高位GPIO为1,后续步骤对DSP存储单元高半区进行固化操作;如果固化参数中要求固化FPGA程序,则置FPGA复位GPIO为0,后续步骤在FPGA复位状态下进行固化操作;
(d)如果固化状态机为3,系统等待1553B总线接收介质清除指令,根据固化参数,完成对DSP或FPGA存储单元的擦除操作,将存储单元擦除结果通过1553B总线反馈给PC机,同时擦除成功后置固化状态机为4;
(e)如果固化状态机为4,系统等待1553B总线接收程序文件数据包,当应用程序很大或DSP的内存空间较小时,可采用将DSP应用程序文件数据包或FPGA程序文件数据包分批发给DSP底层程序,DSP底层程序接收并烧写完一批程序文件数据包后,再进行下一批程序文件数据包的接收和烧写工作,直到所有的程序代码都烧写完毕,烧写完毕后将程序文件固化结果通过1553B总线反馈给PC机,同时固化成功后置固化状态机为5;
(f)如果固化状态机为5,系统等待1553B总线接收装订检查指令,DSP底层程序从存储单元中读出软件版本号、计算程序文件数据检验和后反馈给PC机,同时置固化状态机为6,PC机判断版本号和校验和正确性;
(g)如果固化状态机为6,DSP底层程序释放对地址高位GPIO和FPGA复位GPIO的控制,等待T2秒后启动DSP应用程序重加载流程。
DSP底层程序实时监测喂狗信号是否正常,异常时给出DSP复位信号。
如图6所示,DSP底层程序的数据流程为:
DSP底层程序加电或复位后,首先进行初始化和自检操作,同时将初始化和自检结果输入到主循环。
进入主循环后,首先查询1553B接口是否有数据接收/发送,并读取1553B的命令堆栈区,获得子地址、数据帧长度、发送/接收标志等信息。若为数据发送,则清除子地址标志位及相关矢量字信息,以便下次发送;若为数据接收,则根据子地址和数据帧长度将数据缓存到相应缓冲区,并判断数据帧校验和是否正确,如果正确则进行下一步处理:
若接收到设备对码命令,则进行相关单元检查,并将检查结果和出厂设备等信息编码写入规定子地址单元;
若接收到文件头上传命令,则存储文件头信息,并进行CRC32通讯校验,给出相应命令执行状态消息;
若接收到介质清除命令,则给出相应命令执行状态消息,同时根据文件头信息中规定的“软件代号及通道号”确定擦除区域,启动清除操作;
若接收到介质清除查询命令,则根据软件擦除状态给出相应命令执行状态消息;
若接收到数据体记录上传命令,则对数据体数据进行CRC32通讯校验,并给出相应命令执行状态消息,同时根据文件头信息中规定的“软件代号及通道号”确定擦除区域,启动固化操作;
若接收到装订检查命令,则将软件版本号、标识单元写入状态参数单元,给出相应命令状态执行消息。
主循环结束后加载DSP用户程序。
本发明与现有技术相比的有益效果是:
(1)本发明采用FLASH分区存储的方式,提高软件升级的可靠性;同时,分区存储使用地址高位GPIO控制的方式,从物理上扩展了DSP FLASH的存储空间。
(2)本发明能够不断电重启DSP即可运行DSP应用程序,在对实时性要求较高的场合中具有明显优势。
(3)本发明所述的DSP底层程序监控DSP工作状态的工作机制,能够实时监控系统运行状态,硬件、软件和通信故障情况时可对系统自主复位,而不需要手动复位即可恢复系统工作状态,可满足某些无法手动控制断电重启的场合下的使用需求。
(4)本发明采用严谨的固化流程,DSP底层程序采用状态机机制,保证固化流程按照步骤严格执行,防止在固化参数未确定的情况下对芯片误操作或固化步骤错误导致的外部下载失败。
(5)本发明中所述的FPGA程序的外部下载充分利用了DSP的接口特点,使用McBSP和GPIO模拟产生FPGA存储单元的SPI时序,与现有技术中使用GPIO模拟JTAG时序的方法相比,具有硬件连线少,程序逻辑简单清晰,可靠性高等优势。
(6)本发明具有很强的通用性。在DSP+FPGA架构广泛应用于各种数字信号处理系统的研究背景下,本发明能够兼容DSP和FPGA两种嵌入式处理器的在线升级功能,应用范围广阔;同时,近年来软件无线电因被认为是无线通信技术未来的发展趋势而受到广泛关注,而其中重要的设计思路是尽可能地用可升级、可重配置的应用软件,本发明的在线下载方法具有良好的借鉴和使用价值;另外,在航空航天和兵器领域,1553B总线以高可靠性和强实时性得到了广泛的应用,在采用MIL-STD-1553B总线通用接口的系统中,本发明无需额外接口即可实现外部下载功能,具有良好的兼容性,大大简化了系统设计。
应该注意的是,如上所述的本公开的各种实施例通常在一定程度上涉及输入数据的处理和输出数据的生成。此输入数据处理和输出数据生成可在硬件或者与硬件结合的软件中实现。例如,可在移动装置或者相似或相关的电路中采用特定电子组件以用于实现与如上所述本公开的各种实施例关联的功能。另选地,依据所存储的指令来操作的一个或更多个处理器可实现与如上所述本公开的各种实施例关联的功能。如果是这样,则这些指令可被存储在一个或更多个非暂时性处理器可读介质上,这是在本公开的范围内。处理器可读介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光学数据存储装置。另外,用于实现本公开的功能计算机程序、指令和指令段可由本公开所属领域的程序员容易地解释。
本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。
尽管已参照本公开的各种实施例示出并描述了本公开,但是本领域技术人员将理解,在不脱离由所附权利要求及其等同物限定的本公开的精神和范围的情况下,可对其进行形式和细节上的各种改变。

Claims (10)

1.一种DSP程序和FPGA程序的外部下载系统,其特征在于,所述系统包括1553B接口电路、DSP处理器、DSP存储单元、看门狗电路、FPGA、以及FPGA存储单元,所述1553B接口电路通过EMIFA接口与所述DSP处理器相连,所述看门狗电路通过GPIO接口与所述DSP处理器相连,所述DSP存储单元通过EMIFB接口和GPIO接口与所述DSP处理器相连,所述FPGA存储单元通过McBsp接口与所述DSP处理器相连,所述DSP处理器通过GPIO接口与所述FPGA相连,所述FPGA存储单元通过串行总线与所述FPGA相连。
2.根据权利要求1所述的DSP程序和FPGA程序的外部下载系统,其特征在于:
所述1553B接口电路,用于实现上位机与所述DSP处理器之间的数据传输,以完成上位机向所述DSP处理器发送控制命令和程序数据,并从所述DSP处理器处接收反馈指令以及程序在线升级结果;
所述DSP处理器,用于在上电复位后,从所述DSP存储单元加载并运行底层程序,并在自检初始化完成后与上位机建立1553B通信,以根据所述上位机的指令判断是否需要升级DSP程序或者FPGA程序;
所述DSP存储单元,用于存储DSP底层程序数据和DSP用户程序数据;
所述看门狗电路,用于监测喂狗信号是否正常,并在喂狗信号异常时向所述DSP处理器发送DSP复位信号;
所述FPGA存储单元,用于存储FPGA程序数据;
所述EMIFA接口,用于实现1553B数据的发送和接收功能;
所述EMIFB接口,用于实现DSP用户程序在线升级与加载运行所需的数据传输功能;
所述McBsp接口,用于实现FPGA程序在线升级所需的数据传输功能;
所述GPIO接口,用于完成DSP底层程序和DSP用户程序在所述DSP存储单元中的分区存储与加载;在FPGA程序在线升级时,产生FPGA复位逻辑,以保证总线资源的独占性;在DSP程序运行中,按照预设时间周期向所述看门狗电路提供喂狗信号。
3.一种应用于如权利要求1或2所述的外部下载系统的DSP程序和FPGA程序的外部下载方法,其特征在于,所述方法包括:
当所述外部下载系统上电后,对所述EMIFA接口、EMIFB接口、McBsp接口以及GPIO接口进行初始化并将固化状态机的状态初始化为1;
所述外部下载系统进入在线升级主循环中,并判断所述固化状态机的当前状态;
如果所述固化状态机的当前状态为1,通过1553B总线接收设备对码指令,并将设备对码结果通过1553B总线反馈给上位机,并在设备对码成功后将固化状态机的状态设置为2;
如果在预设时长内未收到设备对码命令,则重新加载DSP应用程序。
4.根据权利要求3所述的DSP程序和FPGA程序的外部下载方法,其特征在于,所述方法还包括:
如果所述固化状态机的状态为2,所述外部下载系统通过1553B总线接收文件头上传指令;
响应于所述文件头上传指令,获取固化参数,并将所述固化参数通过1553B总线反馈给上位机,并在固化参数获取成功后将所述固化状态机的状态设置为3;
其中,如果所述固化参数中包括固化DSP应用程序的参数,置地址高位GPIO为1;如果所述固化参数中包括固化FPGA程序的参数,置FPGA复位GPIO为0。
5.根据权利要求4所述的DSP程序和FPGA程序的外部下载方法,其特征在于,所述方法还包括:
如果所述固化状态机的状态为3,所述外部下载系统通过1553B总线接收介质清除指令,完成对DSP存储单元或FPGA存储单元的擦除操作;
将擦除结果通过1553B总线反馈给上位机,并在擦除成功后将固化状态机的状态设置为4。
6.根据权利要求5所述的DSP程序和FPGA程序的外部下载方法,其特征在于,所述方法还包括:
如果所述固化状态机的状态为4,所述外部下载系统通过1553B总线接收程序文件数据包,当所述程序文件数据包的大小超出所述DSP存储单元可容纳的大小时,将所述程序文件数据包分批发给DSP底层程序;
所述DSP底层程序接收并烧写完一批程序文件数据包后,再进行下一批程序文件数据包的接收和烧写,直至所有的程序文件数据包都烧写完毕;
在烧写完毕后将程序文件固化结果通过1553B总线反馈给上位机,同时将所述固化状态机的状态设置为5。
7.根据权利要求6所述的DSP程序和FPGA程序的外部下载方法,其特征在于,所述方法还包括:
如果所述固化状态机的状态为5,所述外部下载系统等待1553B总线接收装订检查指令;
响应于所述装订检查指令,DSP底层程序从DSP存储单元中读取软件版本号并在对计算程序文件数据进行检验后反馈给上位机,同时将所述固化状态机的状态设置为6。
8.根据权利要求7所述的DSP程序和FPGA程序的外部下载方法,其特征在于,所述方法还包括:
如果所述固化状态机的状态为6,DSP底层程序释放对地址高位GPIO和FPGA复位GPIO的控制,并等待预设时长后重新加载DSP应用程序。
9.根据权利要求3所述的DSP程序和FPGA程序的外部下载方法,其特征在于,所述方法还包括:
DSP底层程序加电或复位后,进行初始化和自检操作,同时将初始化和自检结果输入到主循环中;
进入主循环后,查询1553B接口电路是否有数据接收/发送,并读取1553B接口电路对应的命令堆栈区,以获得子地址、数据帧长度、发送/接收标志;
若1553B接口电路有数据发送,则清除子地址的标志位及对应的矢量字信息;若1553B接口电路有数据接收,则根据子地址和数据帧长度将数据缓存到对应的缓冲区,并判断数据帧校验是否正确。
10.根据权利要求9所述的DSP程序和FPGA程序的外部下载方法,其特征在于,所述方法还包括:
当数据帧校验正确时,若接收到设备对码命令,检测所述设备对码命令对应的模块,并将检查结果和模块的出厂设备信息编码写入指定的子地址单元;
若接收到文件头上传命令,则存储文件头信息,并进行CRC32通讯校验;
若接收到介质清除命令,则根据文件头信息中包含的软件代号及通道号确定擦除区域,并启动擦除操作;
若接收到介质清除查询命令,则根据软件擦除状态向固化状态机下达状态设置指令;
若接收到数据体记录上传命令,则对数据体数据进行CRC32通讯校验,并根据校验结果向固化状态机下达状态设置指令,同时根据文件头信息中包含的软件代号及通道号确定擦除区域,并启动固化操作。
CN201611122983.1A 2016-12-08 2016-12-08 一种dsp程序和fpga程序的外部下载系统及方法 Pending CN106547574A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611122983.1A CN106547574A (zh) 2016-12-08 2016-12-08 一种dsp程序和fpga程序的外部下载系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611122983.1A CN106547574A (zh) 2016-12-08 2016-12-08 一种dsp程序和fpga程序的外部下载系统及方法

Publications (1)

Publication Number Publication Date
CN106547574A true CN106547574A (zh) 2017-03-29

Family

ID=58396963

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611122983.1A Pending CN106547574A (zh) 2016-12-08 2016-12-08 一种dsp程序和fpga程序的外部下载系统及方法

Country Status (1)

Country Link
CN (1) CN106547574A (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107992322A (zh) * 2017-12-04 2018-05-04 上海无线电设备研究所 一种雷达信号处理机dsp代码自更新方法
CN108037945A (zh) * 2017-12-13 2018-05-15 天津津航计算技术研究所 基于1553b总线的fpga在线升级装置
CN108153541A (zh) * 2017-12-13 2018-06-12 天津津航计算技术研究所 基于1553b总线的fpga在线升级方法
CN109032642A (zh) * 2018-07-26 2018-12-18 昆山岩古风智能科技有限公司 一种基于wifi的dsp与arm双核控制器在线升级系统及其方法
CN109388531A (zh) * 2018-09-05 2019-02-26 天津市英贝特航天科技有限公司 基于dsp板卡的测试装置及其测试方法
CN109459945A (zh) * 2018-09-27 2019-03-12 北京精密机电控制设备研究所 一种新型多通道离线可烧写的控制驱动器及烧写方法
CN109491686A (zh) * 2018-11-02 2019-03-19 天津津航技术物理研究所 基于xilinx公司k7系列的FPGA程序在线升级方法
CN109614366A (zh) * 2018-11-15 2019-04-12 广东工贸职业技术学院 运动控制系统的可配置方法及装置
CN109766117A (zh) * 2018-12-12 2019-05-17 天津津航技术物理研究所 一种基于dsp通用平台在线升级方法
CN109902036A (zh) * 2019-01-29 2019-06-18 湖北三江航天红峰控制有限公司 基于emif接口的双速率1553b总线设备通信方法
CN111240725A (zh) * 2020-03-24 2020-06-05 东莞铭普光磁股份有限公司 一种dsp固件加载电路及方法、光模块
CN111562932A (zh) * 2020-05-08 2020-08-21 北京计算机技术及应用研究所 一种高可靠嵌入式软件升级方法及系统
CN112433589A (zh) * 2020-10-30 2021-03-02 天津航空机电有限公司 一种双裕度dsp防复位锁死电路
CN113010233A (zh) * 2021-04-15 2021-06-22 天津讯联科技有限公司 一种适用商业卫星的fpga多备份程序加载方法及装置
CN114295120A (zh) * 2021-11-24 2022-04-08 华中光电技术研究所(中国船舶重工集团公司第七一七研究所) 一种星敏感器
CN114897150A (zh) * 2022-04-01 2022-08-12 中国科学技术大学苏州高等研究院 一种ai智能模组的可靠性设计方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050070180A (ko) * 2003-12-29 2005-07-07 엘지전자 주식회사 유에스비케이블을 이용한 디에스피가 구비된 장비의부팅제어장치 및 그 제어방법
CN1928824A (zh) * 2006-09-20 2007-03-14 华为技术有限公司 一种加载fpga目标程序的方法及系统
CN103092633A (zh) * 2011-10-31 2013-05-08 北京精密机电控制设备研究所 一种基于1553b总线的伺服控制软件在线烧录方法
CN103530146A (zh) * 2013-09-16 2014-01-22 成都交大光芒科技股份有限公司 低功耗嵌入式设备远程无线升级方法
CN104166566A (zh) * 2014-08-12 2014-11-26 福建星网锐捷网络有限公司 一种fpga配置文件升级方法及系统
CN104461660A (zh) * 2014-12-30 2015-03-25 西安电子科技大学 一种异构系统的多模式动态加载方法
CN105653307A (zh) * 2014-11-27 2016-06-08 航天恒星科技有限公司 上位机、收发处理端机及程序加载的系统
CN105955783A (zh) * 2016-05-09 2016-09-21 浙江大学 一种基于fpga控制的远程fpga逻辑代码的下载方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050070180A (ko) * 2003-12-29 2005-07-07 엘지전자 주식회사 유에스비케이블을 이용한 디에스피가 구비된 장비의부팅제어장치 및 그 제어방법
CN1928824A (zh) * 2006-09-20 2007-03-14 华为技术有限公司 一种加载fpga目标程序的方法及系统
CN103092633A (zh) * 2011-10-31 2013-05-08 北京精密机电控制设备研究所 一种基于1553b总线的伺服控制软件在线烧录方法
CN103530146A (zh) * 2013-09-16 2014-01-22 成都交大光芒科技股份有限公司 低功耗嵌入式设备远程无线升级方法
CN104166566A (zh) * 2014-08-12 2014-11-26 福建星网锐捷网络有限公司 一种fpga配置文件升级方法及系统
CN105653307A (zh) * 2014-11-27 2016-06-08 航天恒星科技有限公司 上位机、收发处理端机及程序加载的系统
CN104461660A (zh) * 2014-12-30 2015-03-25 西安电子科技大学 一种异构系统的多模式动态加载方法
CN105955783A (zh) * 2016-05-09 2016-09-21 浙江大学 一种基于fpga控制的远程fpga逻辑代码的下载方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
汪晶晶等: "基于串口通信的DSP应用程序在线升级方法", 《微型机与应用》 *

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107992322B (zh) * 2017-12-04 2021-06-04 上海无线电设备研究所 一种雷达信号处理机dsp代码自更新方法
CN107992322A (zh) * 2017-12-04 2018-05-04 上海无线电设备研究所 一种雷达信号处理机dsp代码自更新方法
CN108037945A (zh) * 2017-12-13 2018-05-15 天津津航计算技术研究所 基于1553b总线的fpga在线升级装置
CN108153541A (zh) * 2017-12-13 2018-06-12 天津津航计算技术研究所 基于1553b总线的fpga在线升级方法
CN109032642A (zh) * 2018-07-26 2018-12-18 昆山岩古风智能科技有限公司 一种基于wifi的dsp与arm双核控制器在线升级系统及其方法
CN109388531A (zh) * 2018-09-05 2019-02-26 天津市英贝特航天科技有限公司 基于dsp板卡的测试装置及其测试方法
CN109388531B (zh) * 2018-09-05 2022-03-22 天津市英贝特航天科技有限公司 基于dsp板卡的测试装置及其测试方法
CN109459945A (zh) * 2018-09-27 2019-03-12 北京精密机电控制设备研究所 一种新型多通道离线可烧写的控制驱动器及烧写方法
CN109491686A (zh) * 2018-11-02 2019-03-19 天津津航技术物理研究所 基于xilinx公司k7系列的FPGA程序在线升级方法
CN109614366B (zh) * 2018-11-15 2023-06-06 广东工贸职业技术学院 运动控制系统的可配置方法及装置
CN109614366A (zh) * 2018-11-15 2019-04-12 广东工贸职业技术学院 运动控制系统的可配置方法及装置
CN109766117A (zh) * 2018-12-12 2019-05-17 天津津航技术物理研究所 一种基于dsp通用平台在线升级方法
CN109902036A (zh) * 2019-01-29 2019-06-18 湖北三江航天红峰控制有限公司 基于emif接口的双速率1553b总线设备通信方法
CN109902036B (zh) * 2019-01-29 2023-07-25 湖北三江航天红峰控制有限公司 基于emif接口的双速率1553b总线设备通信方法
CN111240725A (zh) * 2020-03-24 2020-06-05 东莞铭普光磁股份有限公司 一种dsp固件加载电路及方法、光模块
CN111562932A (zh) * 2020-05-08 2020-08-21 北京计算机技术及应用研究所 一种高可靠嵌入式软件升级方法及系统
CN111562932B (zh) * 2020-05-08 2023-09-26 北京计算机技术及应用研究所 一种高可靠嵌入式软件升级方法及系统
CN112433589A (zh) * 2020-10-30 2021-03-02 天津航空机电有限公司 一种双裕度dsp防复位锁死电路
CN112433589B (zh) * 2020-10-30 2022-11-01 天津航空机电有限公司 一种双裕度dsp防复位锁死电路
CN113010233A (zh) * 2021-04-15 2021-06-22 天津讯联科技有限公司 一种适用商业卫星的fpga多备份程序加载方法及装置
CN114295120A (zh) * 2021-11-24 2022-04-08 华中光电技术研究所(中国船舶重工集团公司第七一七研究所) 一种星敏感器
CN114897150A (zh) * 2022-04-01 2022-08-12 中国科学技术大学苏州高等研究院 一种ai智能模组的可靠性设计方法

Similar Documents

Publication Publication Date Title
CN106547574A (zh) 一种dsp程序和fpga程序的外部下载系统及方法
CN107977217B (zh) 在线加载xilinx-fpga多版本更新程序的方法
CN100446126C (zh) 使用多个命令周期的闪存存储器访问
CN102662785B (zh) 一种Android系统内核错误信息获取方法及装置
CN105930186B (zh) 多cpu的软件加载方法及基于多cpu的软件加载装置
CN103777972B (zh) 基于现场可编程门阵列的系统、配置方法以及升级方法
CN100383737C (zh) 单片机在线加载升级方法及系统
CN107479913A (zh) 一种fpga配置多启动低资源占用更新方法及实施系统
CN101377749B (zh) 存储器数据校验方法、装置、可编程逻辑器件及系统
CN113434162B (zh) 远程在线更新fpga多版本程序的方法
US10606677B2 (en) Method of retrieving debugging data in UEFI and computer system thereof
US20060224821A1 (en) System for parallel updating flash memory and method for the same
CN102945173A (zh) 用户程序在线升级系统和升级方法
CN101211266A (zh) 一种实现fpga自动下载和在线升级的方法
CN106775855B (zh) 一种基于eclipse的flash烧写方法、插件和系统
CN107870775A (zh) 一种处理器及BootLoader程序的更新方法
CN109656756B (zh) 多核cpu板卡调试方法及装置、移动存储介质
CN108694052B (zh) 一种固件升级方法、固件升级装置及固件升级系统
CN103064695A (zh) 现场可编程门阵列的动态加载系统及其加载方法
CN104077166A (zh) 基于fpga中ip核的epcs与epcq存储器在线升级方法
CN109582341A (zh) 一种机车信号车载系统设备的主机系统及其程序变更方法
CN103761129A (zh) 一种在Bootloader层实现SDIO接口驱动的方法
CN109445691A (zh) 一种提高ftl算法开发和验证效率的方法及装置
CN103019969A (zh) 闪存储存装置及其不良储存区域的判定方法
CN115357262A (zh) 一种驱动器固件批量升级的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170329