掌桥专利:专业的专利平台
掌桥专利
首页

一种基于1553B总线的DSP多核数据烧写方法

文献发布时间:2023-06-19 09:26:02


一种基于1553B总线的DSP多核数据烧写方法

技术领域

本发明涉及一种基于1553B总线的DSP多核数据烧写方法,特别针对具备DSP烧写模块的激光惯组进行多核数据烧写操作。

背景技术

在惯组软件研制进入运行维护阶段后,如何对惯组软件实现快速,简便,可靠的升级,是惯组软件运行维护阶段的一个关键问题。除了软件需要维护升级,惯组内存储的诸元数据同样在维护阶段需要更新,激光惯组精度受到自身各种误差因素的影响,需要定期进行标定,并将标定的零偏、刻度因素、安装误差等系数烧写到惯组计算机板中。惯组计算机板DSP中需要固化烧写模块,用于DSP程序的升级、用户应用程序开发、调试、加载等工作。DSP型号不同、计算机板硬件差异,会导致激光惯组的烧写模块有所差异,但一般都具有上传、擦除、烧写、下载等功能接口。

为保证激光惯组工作的可靠性,惯组数据通常会烧写到多片FLASH扇区作为冗余备份。烧写完成需要对多片扇区的烧写正确性进行校验,调研的已知方式有以下两种。

方式一:通过JTAG接口,使用CCS仿真模式,运行惯组烧写模块,将数据烧写到每片FLASH中,然后再将每片FLASH中数据下载保存到上位机(调试计算机)上,与烧写文件进行比对。该方式有以下缺点:

(1)需要在激光惯组未完成装配封盖的前提下操作,装配完成必须拆装惯组才能进行;

(2)仿真环境的搭建需要专门的设备和专业的DSP设计人员,操作繁琐;

(3)需要人工线下进行文件对比,效率较低。

方式二:编写上位机软件,调用烧写模块的上传、擦除、烧写等接口,DSP接收到上位机数据之后首先进行数据校验,校验正确进行数据烧写,并将校验结果回传到上位机。对其余扇区进行上述重复操作。该方式有以下缺点:

(1)对于不同的扇区,需要进行重复的烧写操作,效率较低;

(2)由于人为的疏忽,很容易导致扇区的漏烧和漏判,可靠性差;

(3)先校验后烧写的方式无法避免烧写过程的错误,可靠性差。

发明内容

本发明解决的技术问题是:克服现有技术的不足,提供了一种基于1553B总线的DSP多核数据烧写方法,实现与烧写模块的通讯和指令控制,通过选择相应的BIN文件,实现对计算机板0-3核惯组软件,诸元系数,温补参数等的烧写升级。

本发明的技术解决方案是:一种基于1553B总线的DSP多核数据烧写方法,包括如下步骤:

准备并连接上位机、下位机和激光惯组,上位机和下位机通过网线连接,下位机和激光惯组通过1553B总线连接;将需要烧写的惯组软件或系数文件转换为可烧写的二进制BIN文件;

将二进制BIN文件进行分割处理,分包发送给下位机;

下位机按设定速率将数据逐帧发送至激光惯组;

激光惯组对接收到的每帧数据进行校验,若校验正确,则将接收的数据存入SDRAM中,并对有效数据位数进行累加;否则,终止接收;

当接收到所有数据和完成所有有效数据位数累加后,将SDRAM的数据搬运到FLASH相应扇区进行烧写;

烧写完成后激光惯组重新上电,对FLASH中的程序进行检测,检测完成后完成数据烧写。

进一步地,每个数据帧为32个字节;数据帧包括数据内容、上传指令、核标号、状态字和校验码,上传指令表示传输的BIN文件对应的程序或数据类型,核标号表示要进行程序或数据升级的核的序号,状态字用于判断当前数据帧为首帧、中间帧或尾帧,校验码用于进行校验。

进一步地,所述数据内容的长度为28个字节

进一步地,所述设定速率为10ms每帧。

进一步地,同一个程序存储在两个FLASH扇区中,对该程序进行擦写时,每次对两个FLASH扇区中的一个进行擦写;擦写成功后,再擦写另一个,实现双扇区存储。

进一步地,对FLASH中的程序进行检测包括如下步骤:

对两个FLASH扇区中的程序进行检测;若第一扇区中程序运行正常,则运行第一扇区中存储的程序;若第一扇区中程序校验失败,则继续检测第二扇区中的程序,第二扇区中程序正常则运行第二扇区中程序,并复制第二扇区中程序写入第一扇区中,若第二扇区中程序同时校验失败,则反馈故障信息。

进一步地,所述进行校验的方法为CRC校验。

进一步地,所述激光惯组包括激光陀螺、加速度计和导航计算机;激光惯组的导航计算机包括DSP模块和外扩FLASH,所述DSP模块支持浮点型运算,用于进行导航解算、与下位机通讯以及对外扩FLASH的操作,外扩FLASH用于存储烧写程序和惯组系数。

进一步地,所述上位机对应测试仪中的上位机板卡,运行供用户操作使用的Windows系统。

进一步地,所述下位机对应测试仪中的下位机板卡,运行Vxworks系统,用于进行数据采集和发送总线指令。

本发明与现有技术相比的优点在于:

(1)本方法通过编写上下位机软件,实现与烧写模块的通讯,烧写惯组软件和系数不必进行产品拆装,准备额外的串口线缆,操作过程简便,降低了工作量,节约了成本;

(2)本方法设计了双冗余备份,即使在擦除烧写过程中遇到断电等异常情况,不会使惯组程序丢失,重新上电后可正常工作,提高了可靠性;

(3)本方法自动进行不同核的烧写和校验,并将最终的校验CRC结果进行对比,避免了人为因素误判、漏烧的情况发生,提高了烧写和校验的效率以及准确性。

附图说明

图1为本发明基于1553B总线的DSP多核数据烧写方法步骤流程图。

具体实施方式

为了更好的理解上述技术方案,下面通过附图以及具体实施例对本申请技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。

以下结合说明书附图对本申请实施例所提供的一种基于1553B总线的DSP多核数据烧写方法做进一步详细的说明,具体实现方式可以包括(如图1所示):

(1)将需要烧写的惯组软件或系数文件转换为可烧写的二进制BIN文件;

(2)上位机软件选择相应的BIN文件,将文件进行分解,计算CRC等操作后,逐帧发送给惯组;

(3)惯组将接收的数据存入SDRAM中;

(4)进行CRC校验,若正确则开始擦除FLASH;

(5)将SDRAM的程序或数据搬运到FLASH相应扇区。

在本申请实施例所提供的方案中,激光惯组包括激光陀螺、加速度计和导航计算机;激光惯组的导航计算机包括DSP模块和外扩FLASH,所述DSP模块支持浮点型运算,用于进行导航解算、与下位机通讯以及对外扩FLASH的操作,外扩FLASH用于存储烧写程序和惯组系数。

可选的,上位机对应测试仪中的上位机板卡,运行供用户操作使用的Windows系统。下位机对应测试仪中的下位机板卡,运行Vxworks系统,用于进行数据采集和发送总线指令。

读取相应核的软件或系数的二进制BIN文件。进行分割处理,分包发送给下位机。

进一步,包括如下步骤:

1)选择程序升级或数据烧写对应的指令,核序号,通过按钮打开窗体,选择对应的Bin文件。

2)计算读取文件的大小,并据此计算出发送文件所需要的数据帧数,最后一帧数据长度等。

3)将读取的文件存入数组中,供后续处理使用。

1553B总线一帧数据最多发送32个字。在一种可能实现的方式中,根据协议设计,除了帧头,校验等,1帧内发送的实际数据为28个字。在计算发送总包数时,按照1帧28字进行计算,最后一帧数据如果不够28字,按照实际剩余长度进行发送。

在本申请实施例所提供的方案中,将文件读取存入数组后,按照协议对数据进行重新分组,通过网线发送给下位机。

根据1553B总线数据帧特点制定发送协议,一帧数据长度为32个字,由指令部分,数据部分和CRC组成,大致格式如下:

表1程序和参数上传指令格式

在一种可能实现的方式中,上位机每次向下位机按照每包最多32帧数据进行发送,经过短暂延迟后发送接下来1包数据。直至全部发送完毕。期间在上位机界面可以看到发送进度,也可以进行停止发送操作,通常需要半分钟以内的时间进行所有数据的发送。

可选的,下位机接收后,按照10ms每帧的速度通过1553B总线发送给惯组。如果使用更高性能的1553B总线板卡,可以使传输速率进行提升。

进一步,在一种可能实现的方式中,惯组端在接收到数据后,会根据接收数据的第一个字进行消息类别判断;根据第二个字选取相应的DSP进行数据固化;根据第三个字中的消息类别作为数据接收的开始和结束。

进一步,收到每一帧数据时,首先对接收数据进行CRC等验证,验证通过后对状态字中的消息类别进行判断,若为首条消息,则开始数据存储流程,按顺序将数据写入在SDRAM中,并对有效数据位数进行累加,直至收到状态字为最后一条消息的数据帧。期间每收到一帧数据,惯组端向相应子地址写入应答帧,下位机对数据应答消息读取后可以发送给上位机进行显示,格式大致如下:

表2数据上传应答

完成所有数据的SDRAM存储和有效数据位数累加后,关闭中断,将接收数据第二个状态字对应核标号的FLASH扇区擦除,然后按有效数据位数长度将SDRAM中存储的数据搬运至该FLASH扇区中,全部数据FLASH擦写成功后,打开中断,惯组重新上电运行,完成程序升级或数据烧写流程。

进一步,为了避免在传输或烧写过程中造成丢失,设计了FLASH双冗余存储,将数据通过两个FLASH扇区进行存储,每次程序加载对其中一片扇区进行擦写,校验成功后进行双扇区存储。通过保证至少一片扇区程序或数据是正常状态,即使出现意外断电情况,也不会造成惯组程序因升级异常而导致无法工作的现象。

在一种可能实现的方式中,产品重新上电后,监控程序对冗余扇区中的程序进行检测,若第一扇区中程序正常,则运行第一扇区中存储的程序;若第一扇区中程序校验失败,则继续检测第二扇区中的程序,第二扇区中程序正常则运行第二扇区中程序,并复制第二扇区中程序写入第一扇区中,若第二扇区中程序同时校验失败,则反馈故障信息。在烧写程序过程中,优先烧写第一扇区,不会造成双扇区同时校验失败的情况。

惯组端在接收数据过程中对每帧数据进行消息反馈,若接收数据正常,则反馈接收数据成功;若接收数据异常,则反馈接收数据异常,同时退出数据接收流程,惯组恢复正常工作。

本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行图1所述的方法。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。

相关技术
  • 一种基于1553B总线的DSP多核数据烧写方法
  • 一种基于1553B总线和CAN总线的二级总线程序在线烧写方法
技术分类

06120112162155