一种信号采集传输系统中链路节点的代码更新方法

文档序号:10612641阅读:309来源:国知局
一种信号采集传输系统中链路节点的代码更新方法
【专利摘要】本发明公开了一种信号采集传输系统中链路节点的代码更新方法,包括:将链路节点的代码存储区域划分为原始代码存储区、至少两个更新代码存储区、以及用于存储当前有效代码所对应当前区域标识的代码更新标识区;链路节点代码包括按顺序依次排列的启动程序和应用程序,其中启动程序用于读取代码更新标识区中的当前区域标识,依据该当前区域标识加载对应代码存储区中的应用程序;进行代码更新时,链路节点接收代码数据包,并读取代码数据包中的区域标识,依据区域标识,将代码数据写入相应的代码存储区,代码数据更新成功后,对代码更新标识区中的当前区域标识进行更新。本发明提供的代码更新方法操作简单,方便快捷,实现成本低,可靠性高。
【专利说明】
一种信号采集传输系统中链路节点的代码更新方法
技术领域
[0001] 本发明涉及信号采集传输技术领域,具体涉及一种信号采集传输系统中链路节点 的代码更新方法。
【背景技术】
[0002] 信号采集传输系统是将一定间隔的水听器,以线列阵型式布置到具有中性浮力的 透声保护导管内,由电缆拖在船尾后进行水中目标探测的装置,该装置具有声阵配置不受 舰体布置条件限制、声阵孔径大、工作频率低、探测距离远等优势。
[0003] 信号采集传输系统链路节点由高性能低功耗的DSP处理器及水声传感器构成,通 过网络相连,被置于透声保护导管内,完成声信号的采集及其他相应的控制等功能。如果链 路节点的业务逻辑需要改进,就需要更新DSP处理器中的软件代码。
[0004] -般情况下,DSP处理器中的代码更新可以通过仿真器或烧片器将软件代码烧录 到存储介质中完成,但是,信号采集传输系统的链路节点被放入到了透声保护导管内,且节 点个数较多,如果通过上述方式进行代码更新,需将节点从导管内取出,不仅费时费力,而 且成本较高。
[0005] 因此,发明一种可靠方便的信号采集传输系统链路节点的代码更新方法具有重要 的工程使用价值。

【发明内容】

[0006] 本发明提供了一种信号采集传输系统中链路节点的代码更新方法,该方法操作简 单,方便快捷,可靠性高,成本低廉,出现错误情况时,易于恢复。
[0007] -种信号采集传输系统中链路节点的代码更新方法,包括:将链路节点的代码存 储区域划分为原始代码存储区、至少两个更新代码存储区、以及用于存储当前有效代码所 对应当前区域标识的代码更新标识区;链路节点代码包括按顺序依次排列的启动程序和应 用程序,其中启动程序用于读取代码更新标识区中的当前区域标识,依据该当前区域标识 加载对应代码存储区中的应用程序;
[0008] 进行代码更新时,链路节点接收代码数据包,并读取代码数据包中的区域标识,依 据区域标识,将代码数据写入相应的代码存储区,代码数据更新成功后,对代码更新标识区 中的当前区域标识进行更新。
[0009] 本发明中,原始代码存储区和更新代码存储区用于存储实际的链路节点代码,原 始代码存储区和更新代码存储区分别设有对应的区域标识,代码更新标识区中用于存储当 前有效代码所对应的当前区域标识。
[0010]在链路节点出厂时,节点代码已被烧录在原始代码存储区,该区域的节点代码的 正确性由生产过程中的验证来保证。若代码更新标识区中的当前区域标识为〇,则(默认)加 载原始代码存储区的应用程序。
[0011]需要更新链路节点代码时,上位机为节点代码文件计算校验和,并将该校验和添 加到节点代码文件的末尾,将上述重新生成的节点代码文件分成一个一个长度固定的代码 数据包,并通过网络下发。
[0012] 本发明中,链路节点代码分为两部分进行设计,分别为启动程序和应用程序,启动 程序主要用于初始化若干基本的硬件婚检,读取代码更新标识区中的当前区域标识,依据 当前区域标识,将对应区域的应用程序部分搬运至内存中执行。应用程序用于实现信号采 集传输系统中信号的采集及代码更新等业务逻辑。
[0013] 作为优选,启动程序和应用程序分别包括头部和实际代码,头部包括区分启动程 序和应用程序的类型标识和实际代码的长度。
[0014] 作为优选,启动程序还用于接收网络下发的启动标识符,并依据启动标识符加载 对应代码存储区中的应用程序。
[0015] 当更新的链路节点代码由于某些原因出现故障,导致链路节点无法正常启动时, 在链路节点启动过程中,通过网络下发启动标识符,加载对应的代码存储区的应用程序,使 链路节点正常启动。
[0016] 例如,代码更新标识区中的当前区域标识为某一更新代码存储区的区域标识,而 该更新代码存储区的代码发生故障,可通过网络下发启动标识符,加载原始代码存储区的 应用程序,然后采用本发明提供的更新方法进行代码的更新,以替换更新代码存储区的代 码,消除故障。
[0017] 作为优选,所述更新代码存储区为两个,分别为第一更新代码存储区和第二更新 代码存储区。若代码更新标识区中的当前区域标识为〇xf f f f f f f f或者Oxaaaaaaaa,将接收 到的代码数据包写入第一更新代码存储区,更新成功后,将代码更新标识区中的当前区域 标识更新为0x55555555;
[0018]若代码更新标识区中的当前区域标识为0x55555555,将接收到的代码数据包写入 第二更新代码存储区,更新成功后,将代码更新标识区中的当前区域标识更新为
[0019] 更新代码时,已在运行的节点应用程序中的更新代码逻辑将首先读取代码更新标 识区中的当前区域标识,如果为Oxffffffff,表示首次通过网络更新节点代码,将通过网络 接收的节点代码数据包写入第一更新代码存储区。
[0020] 接收完代码数据包后,计算循环冗余校验码的校验和,并将该校验和与收到的校 验和进行比对,若比对一致,则代码更新成功。
[0021 ]在更新链路节点代码时,由上位机计算节点代码文件的CRC校验和,并将该校验和 发送给链路节点,链路节点接收完代码数据包后计算CRC校验和,并与上位机下发的校验和 进行比对,结果一致则更新当前区域标识,有效避免了因网络链路传输中的异常情况导致 的节点代码文件有误。
[0022]如果节点代码数据包本身存在错误导致链路节点无法正常启动,可以在启动中, 通过网络下发启动标识符,选择从原始代码区域的应用程序启动,保证节点可以正常启动。 [0023]作为优选,若代码更新标识区中的当前区域标识为Oxffffffff,则加载原始代码 存储区的应用程序;若代码更新标识区中的当前区域标识为0x55555555,则加载第一更新 代码存储区的应用程序;若代码更新标识区中的当前区域标识为Oxaaaaaaaa,则加载第二 更新代码存储区的应用程序。
[0024] 相较于现有的技术,本发明具有以下有益技术效果:
[0025] (1)对信号采集传输系统链路节点进行代码更新时,无需将链路节点从透声保护 导管中取出,即不需要破坏导管,借用系统本身固有的网络通信链路即可完成节点的代码 更新,显著降低成本。
[0026] (2)方便快捷,可以将同一份节点代码同时更新到信号采集传输系统链路中的多 个链路节点,只需由上位机控制向哪些需要更新的链路节点发送更新代码数据包即可。
[0027] (3)可靠性高,不会因为代码更新失败导致系统链路节点无法正常工作。
【附图说明】
[0028] 图1为本发明中链路节点的存储区域划分示意图;
[0029]图2为本发明中链路节点应用程序的代码更新流程图;
[0030]图3为本发明中链路节点的启动流程图。
【具体实施方式】
[0031]下面结合附图,对本发明信号采集传输系统中链路节点的代码更新方法做详细描 述。
[0032]如图1所示,链路节点的存储区域被划分为原始代码存储区、第一更新代码存储 区、第二更新代码存储区以及代码更新标识区,其中,原始代码存储区、第一更新代码存储 区、第二更新代码存储区均用于存储链路节点代码,代码更新标识区存储当前有效代码所 对应当前区域标识。
[0033]如表1所示,链路节点的代码被分成两部分设计,分别是启动代码部分及应用程序 代码部分,在链路节点的代码文件中,启动代码与应用程序代码顺序依次排列,启动代码和 应用程序代码的结构组成都为一个头部及对应的实际代码。头部中包含类型标识及当前的 实际代码长度,类型标识表示该部分程序为启动代码或应用程序代码;代码长度表示该部 分程序的实际代码长度值。
[0034] 表 1
[0035]
[0037] 启动代码主要完成如下功能:读取代码更新标识区中的当前有效代码的当前区域 标识,
[0038] 如果当前区域标识为Oxffffffff,则从原始代码存储区的首地址读取启动代码的 头部,获取启动代码的长度值后,偏移该长度,得到应用程序代码的位置,将应用程序搬运 到内存中运行;
[0039] 如果当前区域标识为0x55555555,则从第一更新代码存储区的首地址读取启动代 码的头部,获取启动代码的长度值后,偏移该长度,得到应用程序代码的位置,将应用程序 搬运到内存中运行;
[0040] 如果当前区域标识为Oxaaaaaaaa,则从第二更新代码存储区的首地址读取启动代 码的头部,获取启动代码的长度值后,偏移该长度,得到应用程序代码的位置,将应用程序 搬运到内存中运行。
[0041] 应用程序主要完成信号采集传输,声数据采集及相应控制、代码更新等逻辑功能。
[0042] 当链路节点出厂时,链路节点的原始代码已被烧录在原始代码存储区(该部分代 码的烧写通过仿真器或烧片器完成),原始代码存储区的链路节点代码的正确性由生产过 程中的验证来保证。当前代码更新标识区中的当前区域标识为〇时,表示默认将从原始代码 存储区的应用程序启动。
[0043]如图2所示,链路节点中应用程序的代码更新逻辑流程如下:
[0044] (1)接收上位机下传的开始更新链路节点代码命令,获取将要下传的链路节点代 码的总长度。
[0045] (2)接收上位机下发的链路节点代码数据包,读取代码更新标识区中当前区域标 识,如果为Oxffffffff或者Oxaaaaaaaa,将数据包从第一更新代码存储区的首地址开始依 次写入到存储介质中;如果为0x55555555,则将数据包从第二更新代码存储区首地址开始 依次写入到存储介质中。
[0046] (3)判断接收到的链路节点代码数据包是否为最后一个,如果不是,则重复步骤 (2),如果是最后一个数据包,则从该数据包末尾获取CRC(即循环冗余校验码)校验和,对已 写入到缓存区的链路节点代码数据进行CRC校验和计算,并与下传的校验和进行比对,如果 一致,则将代码更新标识区中的区域标识置为当前区域标识,向上位机返回更新成功回应; 如果不一致,向上位机返回更新失败回应。
[0047]例如,在第二更新代码存储区中写入新代码,且最后一个数据包末尾获取的CRC校 验和,与下传的校验和比对一致,将代码更新标识区中的当前区域标识更改为第二更新代 码存储区对应的区域标识。
[0048]如图3所示,信号采集传输系统链路节点的启动流程如下:
[0049] (1)上电后,DSP处理器默认从存储介质首地址读取代码并执行,即链路节点默认 从原始代码存储区的启动程序开始运行。
[0050] (2)原始代码存储区的启动程序首先循环等待若干秒,判断是否有网络下发的启 动标识符,如果收到启动标识符,则根据该启动标识符选择从对应的代码存储区域搬运链 路节点代码中的应用程序部分到内存中执行;如果没有收到启动标识符,则跳转到步骤 ⑶。
[0051] (3)读取代码更新标识区中的当前区域标识,根据当前区域标识选择从对应的代 码存储区域搬运链路节点代码中的应用程序部分到内存中执行。
[0052] 由链路节点代码的启动流程可知,如果更新的链路节点代码文件存在错误,链路 节点无法从该代码正常启动,则只需在启动程序等待网络下发启动标识符的时间段内下发 某个启动标识符,即可使链路节点正常启动,从而重新更新正确的链路节点代码。
【主权项】
1. 一种信号采集传输系统中链路节点的代码更新方法,其特征在于,包括:将链路节点 的代码存储区域划分为原始代码存储区、至少两个更新代码存储区、以及用于存储当前有 效代码所对应当前区域标识的代码更新标识区;链路节点代码包括按顺序依次排列的启动 程序和应用程序,其中启动程序用于读取代码更新标识区中的当前区域标识,依据该当前 区域标识加载对应代码存储区中的应用程序; 进行代码更新时,链路节点接收代码数据包,并读取代码数据包中的区域标识,依据区 域标识,将代码数据写入相应的代码存储区,代码数据更新成功后,对代码更新标识区中的 当前区域标识进行更新。2. 如权利要求1所述的信号采集传输系统中链路节点的代码更新方法,其特征在于,启 动程序还用于接收网络下发的启动标识符,并依据启动标识符加载对应代码存储区中的应 用程序。3. 如权利要求1或2所述的信号采集传输系统中链路节点的代码更新方法,其特征在 于,若代码更新标识区中的当前区域标识为〇,则加载原始代码存储区的应用程序。4. 如权利要求3所述的信号采集传输系统中链路节点的代码更新方法,其特征在于,启 动程序和应用程序分别包括头部和实际代码,头部包括区分启动程序和应用程序的类型标 识和实际代码的长度。5. 如权利要求4所述的信号采集传输系统中链路节点的代码更新方法,其特征在于,所 述更新代码存储区为两个,分别为第一更新代码存储区和第二更新代码存储区。6. 如权利要求5所述的信号采集传输系统中链路节点的代码更新方法,其特征在于,若 代码更新标识区中的当前区域标识为〇xf f f f f f f f或者Oxaaaaaaaa,将接收到的代码数据包 写入第一更新代码存储区,更新成功后,将代码更新标识区中的当前区域标识更新为 0x55555555; 若代码更新标识区中的当前区域标识为0x55555555,将接收到的代码数据包写入第二 更新代码存储区,更新成功后,将代码更新标识区中的当前区域标识更新为Oxaaaaaaaa。7. 如权利要求6所述的信号采集传输系统中链路节点的代码更新方法,其特征在于,若 代码更新标识区中的当前区域标识为Oxffffffff,则加载原始代码存储区的应用程序;若 代码更新标识区中的当前区域标识为0x55555555,则加载第一更新代码存储区的应用程 序;若代码更新标识区中的当前区域标识为Oxaaaaaaaa,则加载第二更新代码存储区的应 用程序。8. 如权利要求1或2所述的信号采集传输系统中链路节点的代码更新方法,其特征在 于,接收完代码数据包后,计算循环冗余校验码的校验和,并将该校验和与收到的校验和进 行比对,若比对一致,则代码更新成功。
【文档编号】G06F9/445GK105975312SQ201610316192
【公开日】2016年9月28日
【申请日】2016年5月12日
【发明人】周斯忠, 汤家兴
【申请人】苏州联视泰电子信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1