
本发明涉及嵌入式工业控制局域网,特别涉及一种基于flexray总线协议的嵌入式设备应用程序更新方法及系统。
背景技术:
1、flexray总线是一种可用于工业控制的高速的,可确定性的,具备故障容错能力的总线技术,它将时间触发和事件触发两种方式相结合,具有高效的网络利用率和系统灵活性特点,势必成为工业控制网络的主流技术。
2、嵌入式设备在研发阶段,应用程序的更新通常使用系统编程技术(in systemprogramming,isp)或者通过jtag(joint test action group)工具,这两种方法需要使用专用接口。当设备安装到系统中后,使用isp或者jtag技术进行应用程序更新就需要拆卸机壳,不够灵活,维护困难。为了解决上述问题,需要使用在应用编程技术(in applicationprogramming,iap),可以直接通过设备应用的flexray接口进行程序升级操作,此方法简单灵活,成本低,可靠性和稳定性较好,提高了工作效率 。
技术实现思路
1、本发明的目的在于提供一种基于flexray总线协议的嵌入式设备应用程序更新方法及系统, 本发明利用设备的现有flexray接口节约硬件成本,同时flexray总线具备的高速和可靠性提高了程序更新过程中的数据传输速率和稳定性。
2、为解决上述技术问题,本发明提供了一种基于flexray总线协议的嵌入式设备应用程序更新方法,包括:设备软件更新流程;包括如下步骤:
3、步骤一:通过上位机发送更新请求指令,下位机接收到指令后跳转到bootloader程序并进行硬件初始化;
4、完成后下位机发送数据接收指令,同时擦除备用存储区数据,上位机接收到下位机发送的数据接收指令后发送应用程序数据包;
5、步骤二:下位机接收到应用程序数据帧后,检测数据正确性;
6、如果数据正确,则写入到对应的备用存储区;如果数据错误,则发送重发指令,上位机重新发送此数据帧;
7、步骤三:如果重新发送的数据帧再次检测到错误,则下位机发送终止指令,重新运行原应用程序;
8、步骤四:如果所有应用程序帧都接收正确,则对备用存储区的应用程序数据进行crc校验;
9、如果校验正确,则将备用存储区的应用程序数据拷贝到应用程序存储区,并运行新的应用程序;如果校验错误,则不进行数据拷贝,直接重新运行原应用程序。
10、优选的,还包括设备启动流程,包括如下:
11、设备上电后首先运行应用程序,只有在接收到更新请求指令后才会跳转运行bootloader程序。
12、本发明还提供了一种基于flexray总线协议的嵌入式设备应用程序更新系统,包括:上位机、usb-flexray转换器和下位机;所述上位机和所述下位机之间通过所述usb-flexray转换器连接。
13、优选的,所述上位机为pc机,所述下位机为具有flexray总线接口的嵌入式设备;其中所述usb-flexray转换器分别通过usb接口与pc机连接,通过flexray接口与嵌入式设备连接。
14、优选的,该系统硬件设计使用tms570ls3137微控制器作为下位机的控制器;其中,所述tms570ls3137微控制器的flexray模块的硬件接口采用tja1080收发器;所述flexray模块根据flexray协议规范v2.1rev.a执行通信;所述tms570ls3137微控制器具有3mkb大小的flash空间,分别依次划分为应用程序区、bootloader区和备用存储区。
15、优选的,所述应用程序区的地址共1mb存储空间,为0x00000000-0x000fffff;所述备用存储区的地址共1mb存储空间,为0x00300000-0x003fffff;所述bootloader区的地址共1mb存储空间,为0x00200000-0x002fffff。
16、优选的,该系统软件设计中,所述下位机程序使用双缓存结构存储接收到的数据,每个缓存254字节;其中缓存二在接收数据的同时,将缓存一数据写入备用存储区;下一个通信周期使用缓存一接收数据,将缓存二数据写入备用存储区。
17、优选的,还包括数据帧结构;每个通信周期中,通信帧中包括:
18、上位机的一个静态段和一个动态段;其中静态段作为启动帧和同步帧,动态段用于发送更新请求指令和传输应用程序数据;
19、下位机的一个静态段和一个动态段;其中静态段作为启动帧和同步帧,动态段发送指令。
20、优选的,还包括通信错误处理流程;基于flexray通信的所有节点间的数据交互是在同一个通信周期中完成的,下位机本次即第n次接收的数据错误时,在下一个即第n+1次通信周期发送重发指令,同时上位机在第n+1周期接收到重发指令后,将第n次的数据在第n+2个通信周期中再次发送。
21、优选的,该系统通讯协议包括:更新请求指令,数据接收指令,数据传输帧,重发指令和终止指令;
22、该系统包括如下功能:上位机发送更新请求、下位机响应更新请求、发送应用程序数据包、擦除备用存储区数据、接收应用程序数据包、数据写入备用存储区、终止发送应用程序数据包、验证后更新程序、运行程序。
23、本发明与现有技术相比,具有如下有益效果:
24、本发明公开了一种嵌入式设备应用软件程序更新的系统方案、更新技术,该系统包括上位机、下位机、usb-flexray转接器。通信协议采用底层基于根据flexray协议规范v2.1rev.a执行通信,系统通讯连接过程采用握手通讯,更新技术采用嵌入式在应用编程技术,通过嵌入式系统中的启动控制程序bootloader实现对flash存储器的编程,本系统方案利用嵌入式设备的现有flexray接口节约硬件成本,同时flexray总线具备的高速和可靠性提高了程序更新过程中的数据传输速率和稳定性。
技术特征:1.一种基于flexray总线协议的嵌入式设备应用程序更新方法,其特征在于,包括:设备软件更新流程;包括如下步骤:
2.如权利要求1所述的基于flexray总线协议的嵌入式设备应用程序更新方法,其特征在于,还包括设备启动流程,包括如下:
3.一种基于flexray总线协议的嵌入式设备应用程序更新系统,采用如权利要求1-2任一项所述的基于flexray总线协议的嵌入式设备应用程序更新方法,其特征在于,包括:上位机、usb-flexray转换器和下位机;所述上位机和所述下位机之间通过所述usb-flexray转换器连接。
4.如权利要求3所述的基于flexray总线协议的嵌入式设备应用程序更新系统,其特征在于,所述上位机为pc机,所述下位机为具有flexray总线接口的嵌入式设备;其中所述usb-flexray转换器分别通过usb接口与pc机连接,通过flexray接口与嵌入式设备连接。
5.如权利要求3所述的基于flexray总线协议的嵌入式设备应用程序更新系统,其特征在于,该系统硬件设计使用tms570ls3137微控制器作为下位机的控制器;其中,所述tms570ls3137微控制器的flexray模块的硬件接口采用tja1080收发器;所述flexray模块根据flexray协议规范v2.1rev.a执行通信;所述tms570ls3137微控制器具有3mkb大小的flash空间,分别依次划分为应用程序区、bootloader区和备用存储区。
6.如权利要求5所述的基于flexray总线协议的嵌入式设备应用程序更新系统,其特征在于,所述应用程序区的地址共1mb存储空间,为0x00000000-0x000fffff;所述备用存储区的地址共1mb存储空间,为0x00300000-0x003fffff;所述bootloader区的地址共1mb存储空间,为0x00200000-0x002fffff。
7.如权利要求5所述的基于flexray总线协议的嵌入式设备应用程序更新系统,其特征在于,该系统软件设计中,所述下位机程序使用双缓存结构存储接收到的数据,每个缓存254字节;其中缓存二在接收数据的同时,将缓存一数据写入备用存储区;下一个通信周期使用缓存一接收数据,将缓存二数据写入备用存储区。
8.如权利要求7所述的基于flexray总线协议的嵌入式设备应用程序更新系统,其特征在于,还包括数据帧结构;每个通信周期中,通信帧中包括:
9.如权利要求8所述的基于flexray总线协议的嵌入式设备应用程序更新系统,其特征在于,还包括通信错误处理流程;基于flexray通信的所有节点间的数据交互是在同一个通信周期中完成的,下位机本次即第n次接收的数据错误时,在下一个即第n+1次通信周期发送重发指令,同时上位机在第n+1周期接收到重发指令后,将第n次的数据在第n+2个通信周期中再次发送。
10.如权利要求3所述的基于flexray总线协议的嵌入式设备应用程序更新系统,其特征在于,该系统通讯协议包括:更新请求指令,数据接收指令,数据传输帧,重发指令和终止指令;
技术总结本发明涉及嵌入式工业控制局域网技术领域,特别涉及一种基于FlexRay总线协议的嵌入式设备应用程序更新方法及系统。包括如下步骤:通过上位机发送更新请求指令,下位机接收到指令后跳转到Bootloader程序并进行硬件初始化;完成后下位机发送数据接收指令,同时擦除备用存储区数据,上位机接收到下位机发送的数据接收指令后发送应用程序数据包;下位机接收到应用程序数据帧后,检测数据正确性;如果数据正确,则写入到对应的备用存储区;如果数据错误,则发送重发指令;本发明利用设备的现有FlexRay接口节约硬件成本,同时FlexRay总线具备的高速和可靠性提高了程序更新过程中的数据传输速率和稳定性。
技术研发人员:尚国庆,强小燕,张铆
受保护的技术使用者:中国电子科技集团公司第五十八研究所
技术研发日:技术公布日:2024/1/16