本发明涉及软件工程,具体而言,涉及一种提高舵机软件在线上传功能容错性能的方法。
背景技术:
1、舵机产品随着集成化要求越来越高,拆装工艺复杂,舵机软件往往需要具备软件在线上传功能,否则当出现软件升级或者需要更改软件进行故障分析时,需要对舵机进行拆解后再通过仿真器接口烧写软件,极为不便。
2、目前的舵机软件在线上传方式大多是对舵机功能软件本身所占的flash扇区空间进行擦除和烧写。当接收到软件更新指令时,会先擦除软件的flash扇区空间,然后通过串口等总线方式接收软件数据信息,最后将接收到的程序信息烧写到flash扇区中。这样可以实现软件的在线上传功能,不需要通过仿真器硬件接口进行烧写软件,当需要进行软件调整时不要拆解舵机。
3、现有的软件上传方法如果在上传过程中发生断电,会导致程序空间数据缺失,当重新上电后舵机软件可能无法正常启动或者丧失软件重新上传功能。
技术实现思路
1、为解决现有舵机软件在线上传时存在异常状态下导致重新上电后舵机软件可能无法正常启动或者丧失软件重新上传功能的问题,本发明提供了一种提高舵机软件在线上传功能容错性能的方法。
2、第一方面,本发明提供了一种提高舵机软件在线上传功能容错性能的方法,应用于舵机系统,所述方法包括:
3、步骤1,上电,将第一运行程序通过仿真器固化到flasha扇区与flashb扇区内,使dsp芯片具有第一软件上传功能、软件检测功能和软件跳转功能;
4、步骤2,重新上电,dsp芯片的flasha扇区与flashb扇区的运行程序运行,执行第一软件上传功能,将第二运行程序固化到flashc扇区与flashd扇区内;其中,在执行步骤2时,上位机将第二运行程序输出的.out文件转化为可文本读取的hex文件,并对hex文件的数据信息进行解析,将第二运行程序固化的汇编代码空间分配给flashc扇区,将第二运行程序的其他代码空间分配给flashd扇区,同时上位机通过hex文件的数据信息计算获取第一校验和数值;
5、步骤3,再次上电,dsp芯片的flasha扇区与flashb扇区的运行程序运行,执行软件检测功能,通过对flashd扇区的起始地址、flashc扇区的起始地址和flashc扇区的终止地址的数值进行判断,若数值正确,则执行步骤4;
6、步骤4,在预设时间之后,执行软件跳转功能,跳转至dsp芯片的flashc扇区与flashd扇区的运行程序运行,上位机发送“校验和检测”指令,获取dsp芯片的flashc扇区与flashd扇区的运行程序的第二软件校验和;上位机通过对第二校验和数值与第一校验和数值进行判断,若数值不同,则执行步骤5;
7、步骤5,上位机连续发送“强制上传”指令,dsp芯片在预设时间内接收到上位机发送的“强制上传”指令并执行,直至执行舵机系统的伺服控制;其中,“强制上传”指令为:对dsp芯片进行重新上电,并且在预设时间之后dsp芯片的软件跳转功能不执行,同时执行第一软件上传功能,将第二运行程序重新固化到flashc扇区与flashd扇区内。
8、在一些实施例中,在步骤2中,上位机将hex文件中提取的第二运行程序信息按照地址从低到高的顺序将数据固化到dsp芯片的flahc扇区和flashd扇区上。
9、在一些实施例中,在步骤3中,还存在:若数值错误,此时在预设时间之后dsp芯片的软件跳转功能不执行,同时执行第一软件上传功能,将第二运行程序重新固化到flashc扇区与flashd扇区内。
10、在一些实施例中,在步骤4中,还存在:上位机发送“校验和检测”指令,此时dsp芯片的flashc扇区与flashd扇区的运行程序无应答,则执行步骤5。
11、在一些实施例中,在步骤4中,还存在:若数值相同,则执行舵机系统的伺服控制。
12、在一些实施例中,所述舵机系统包括:
13、智能处理单元,具有在线更新模块与功能模块,所述在线更新模块具有第一运行程序,所述功能模块具有第二运行程序;
14、dsp芯片,具有flasha扇区、flashb扇区、flashc扇区及flashd扇区;
15、上位机,与所述dsp芯片的flasha扇区及flashb扇区通过第一自定义协议通信;与所述dsp芯片的flashc扇区及flashd扇区通过第二自定义协议通信;所述第一自定义协议包括擦除协议、上传协议、烧写协议、及强制上传协议,所述第二自定义协议包括擦除协议、上传协议、烧写协议、及校验和检测协议。
16、在一些实施例中,dsp芯片在预设时间内接收到上位机发送的“强制上传”指令后、并在执行之前,所述dsp芯片通过第二自定义协议的擦除协议完成对dsp芯片的flashc扇区与flashd扇区内的运行程序进行擦除。
17、在一些实施例中,dsp芯片的flashc扇区与flashd扇区的运行程序运行,使dsp芯片具有第二软件上传功能;
18、舵机系统进行再次升级时,执行第二软件上传功能,将再次升级的第三运行程序固化到flashc扇区与flashd扇区内。
19、在一些实施例中,dsp芯片的flashc扇区与flashd扇区的运行程序运行时,舵机系统会将dsp芯片的flashc扇区与flashd扇区的运行程序拷贝到ram中运行;
20、当舵机系统进行再次升级时,所述dsp芯片通过第二自定义协议的擦除协议完成对dsp芯片的flashc扇区与flashd扇区内的运行程序进行擦除。
21、在一些实施例中,在步骤5中,上位机连续发送“强制上传”指令之后,还包括强制上传的运行方法,所述强制上传的运行方法包括:
22、步骤s1,重新上电;
23、步骤s2,在线更新模块初始化运行,即dsp芯片的flasha扇区与flashb扇区的运行程序运行;
24、步骤s3,在预设时间内接受到“强制上传”指令,dsp芯片的软件跳转功能不执行,同时执行第一软件上传功能,将第二运行程序重新固化到flashc扇区与flashd扇区内;
25、步骤s4,执行软件检测功能后继续执行软件跳转功能,上位机进行功能跳转判断;其中,跳转判断的条件为:1)对flashd扇区的起始地址、flashc扇区的起始地址和flashc扇区的终止地址的数值进行判断;2)第一校验和与第二校验和的数值是否相同,或dsp芯片的flashc扇区与flashd扇区的运行程序是否应答;
26、步骤s5,若正确,则舵机系统跳转至功能模块运行,即dsp芯片执行舵机系统的伺服控制;
27、若错误,则上位机连续发送“强制上传”指令,直至执行舵机系统的伺服控制。
28、为解决现有舵机软件在线上传时存在异常状态下导致重新上电后舵机软件可能无法正常启动或者丧失软件重新上传功能的问题,本发明有以下优点:
29、通过本发明的技术方案,利用舵机软件的自身特点分配dsp芯片的存储空间,第二运行程序的代码的数值可以固化并可以作为dsp芯片的存储空间是否存在上传异常的判据;
30、结合舵机软件与上位机的通信方式、通信协议及通信时序的综合设计,使舵机软件能够在在线上传异常情况时依然具备在线上传功能。
1.一种提高舵机软件在线上传功能容错性能的方法,应用于舵机系统,其特征在于,所述方法包括:
2.如权利要求1所述的提高舵机软件在线上传功能容错性能的方法,其特征在于,在步骤2中,上位机将hex文件中提取的第二运行程序信息按照地址从低到高的顺序将数据固化到dsp芯片的flahc扇区和flashd扇区上。
3.如权利要求2所述的提高舵机软件在线上传功能容错性能的方法,其特征在于,在步骤3中,还存在:若数值错误,此时在预设时间之后dsp芯片的软件跳转功能不执行,同时执行第一软件上传功能,将第二运行程序重新固化到flashc扇区与flashd扇区内。
4.如权利要求2所述的提高舵机软件在线上传功能容错性能的方法,其特征在于,在步骤4中,还存在:上位机发送“校验和检测”指令,此时dsp芯片的flashc扇区与flashd扇区的运行程序无应答,则执行步骤5。
5.如权利要求2所述的提高舵机软件在线上传功能容错性能的方法,其特征在于,在步骤4中,还存在:若数值相同,则执行舵机系统的伺服控制。
6.如权利要求1所述的提高舵机软件在线上传功能容错性能的方法,其特征在于,所述舵机系统包括:
7.如权利要求6所述的提高舵机软件在线上传功能容错性能的方法,其特征在于,dsp芯片在预设时间内接收到上位机发送的“强制上传”指令后、并在执行之前,所述dsp芯片通过第二自定义协议的擦除协议完成对dsp芯片的flashc扇区与flashd扇区内的运行程序进行擦除。
8.如权利要求5所述的提高舵机软件在线上传功能容错性能的方法,其特征在于,dsp芯片的flashc扇区与flashd扇区的运行程序运行,使dsp芯片具有第二软件上传功能;
9.如权利要求8所述的提高舵机软件在线上传功能容错性能的方法,其特征在于,dsp芯片的flashc扇区与flashd扇区的运行程序运行时,舵机系统会将dsp芯片的flashc扇区与flashd扇区的运行程序拷贝到ram中运行;
10.如权利要求1所述的提高舵机软件在线上传功能容错性能的方法,其特征在于,在步骤5中,上位机连续发送“强制上传”指令之后,还包括强制上传的运行方法,所述强制上传的运行方法包括: