System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及单片机,尤其涉及一种基于iic协议的软件升级方法。
技术介绍
1、bootloader又称引导加载程序,它是系统加电后运行的第一段软件代码,它能实现用户程序的引导启动和固件自更新两个功能。其中固件自更新需要向芯片提供额外的数据传输介质使得芯片能将接收到的机器代码写入自身的flash中。常见的通信有串口、网络等,这对于一些功能性高的芯片是没有问题的,但对于低端的芯片,功能可能没这么多,能实现升级的机会就比较少;同时,设备若已经组装好,需要更新程序,则要对设备进行拆卸,非常不方便。
技术实现思路
1、本专利技术的目的是提供一种基于iic协议的软件升级方法,以克服低端的芯片不便升级的问题。
2、为实现上述目的,采用以下技术方案:
3、一种基于iic协议的软件升级方法,包括如下步骤:
4、s1:pc机将要升级的从机软件加64字节版本信息并转换成bin文件格式,再通过网口将bin文件发送给主机,其中,所述bin文件包括加密信息、版本号、版本信息、长度、crc信息;
5、s2:主机对接收到的bin文件进行信息校验,并计算bin文件中的实际软件数据需要分割成多少个flash包,并将分割的flash包的总数与64字节版本信息组成信息包,其中,每个flash包大小为512字节,信息校验包括crc信息校验、长度校验、加密信息校验;
6、s3:在bin文件信息校验正确后,主机向从机下发升级命令,当主机收到从机返回应答后,向从机发送
7、s4:主机查询从机状态,在收到从机回复信息包正确后,主机向从机发送flash包;
8、s5:主机发送完所有flash包后,从机进行crc校验,校验通过并成功跳转回app,则认为升级成功。
9、进一步的,所述s2中的信息包大小为66个字节,其中,0~1字节为包的数量,2~6字节为升级密钥,14~17字节为升级版本号,58~61字节为flash包的crc信息,62~65字节为flash包的长度,其余字节保留或根据需要添加其他密钥。
10、进一步的,所述s3中,在主机收到从机返回应答后,会通过查询寄存器地址0的值,以确认从机是否进入升级进程,当主机确认从机进入升级进程后,再向从机发送信息包,否则,主机重新向从机下发升级命令。
11、进一步的,所述s3中,主机从寄存器地址2开始,一直到寄存器地址6,按照每一个寄存器地址最多只发送16个字节的方式,向从机发送信息包;同时,主机在发完信息包后,通过寄存器地址1向从机发送5个字节大小的完成包,以通知从机信息包发送完毕;从机会校验加密信息、信息包的大小、信息包的地址和信息包的长度是否正确。
12、进一步的,所述s4中,主机在延迟一预定的第一时间值后,通过查询寄存器地址1的值,判断从机状态。
13、进一步的,所述第一时间值为60ms。
14、进一步的,所述s4中,主机向从机发送flash包的具体步骤如下:
15、s41:主机从寄存器地址2开始,一直到寄存器地址33,按照每一个寄存器地址最多只发送16个字节的方式,向从机发送flash包;
16、s42:在主机发完一个flash包后,主机通过寄存器地址1向从机发送5个字节大小的完成包,以通知从机flash包发送完成;
17、s43:从机校验flash包的长度、flash包的地址,校验通过后,再将flash包中的数据写入从机的flash存储器中;
18、s44:主机延时一预定的第二时间值后,查询从机的状态,并在收到从机回复flash包正确后,重复步骤s41~s44,直至主机将所有flash包发送给从机。
19、进一步的,所述s44中,第二时间值为60ms;所述s44中,主机通过查询寄存器地址1的值,判断从机状态。
20、采用上述方案,本专利技术的有益效果是:
21、1)主机和从机存在常用的iic通信方式,不需要另外构建通信方式,只要根据定义好的协议,就可以进行对从机程序的更新,使用方便;
22、2)增加完成包的结构,使得主机和从机都有足够的时间,去处理收到的数据包,从机接收采用中断处理机制,在未收到完成包之前,使得从机专心收包减少出错,最后根据从机的处理需要多少时间,则主机就延时多久时间,这样灵活自由确定时间,可使得基本的芯片都能实现升级的处理;
23、3)配有容错机制,当升级失败时能够重发升级。
本文档来自技高网...【技术保护点】
1.一种基于IIC协议的软件升级方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的基于IIC协议的软件升级方法,其特征在于,所述S2中的信息包大小为66个字节,其中,0~1字节为包的数量,2~6字节为升级密钥,14~17字节为升级版本号,58~61字节为flash包的CRC信息,62~65字节为flash包的长度,其余字节保留或根据需要添加其他密钥。
3.根据权利要求2所述的基于IIC协议的软件升级方法,其特征在于,所述S3中,在主机收到从机返回应答后,会通过查询寄存器地址0的值,以确认从机是否进入升级进程,当主机确认从机进入升级进程后,再向从机发送信息包,否则,主机重新向从机下发升级命令。
4.根据权利要求2所述的基于IIC协议的软件升级方法,其特征在于,所述S3中,主机从寄存器地址2开始,一直到寄存器地址6,按照每一个寄存器地址最多只发送16个字节的方式,向从机发送信息包;同时,主机在发完信息包后,通过寄存器地址1向从机发送5个字节大小的完成包,以通知从机信息包发送完毕;从机会校验加密信息、信息包的大小、信息包的地址和信息包的长度是
5.根据权利要求4所述的基于IIC协议的软件升级方法,其特征在于,所述S4中,主机在延迟一预定的第一时间值后,通过查询寄存器地址1的值,判断从机状态。
6.根据权利要求5所述的基于IIC协议的软件升级方法,其特征在于,所述第一时间值为60ms。
7.根据权利要求5所述的基于IIC协议的软件升级方法,其特征在于,所述S4中,主机向从机发送flash包的具体步骤如下:
8.根据权利要求7所述的基于IIC协议的软件升级方法,其特征在于,所述S44中,第二时间值为60ms;所述S44中,主机通过查询寄存器地址1的值,判断从机状态。
...【技术特征摘要】
1.一种基于iic协议的软件升级方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的基于iic协议的软件升级方法,其特征在于,所述s2中的信息包大小为66个字节,其中,0~1字节为包的数量,2~6字节为升级密钥,14~17字节为升级版本号,58~61字节为flash包的crc信息,62~65字节为flash包的长度,其余字节保留或根据需要添加其他密钥。
3.根据权利要求2所述的基于iic协议的软件升级方法,其特征在于,所述s3中,在主机收到从机返回应答后,会通过查询寄存器地址0的值,以确认从机是否进入升级进程,当主机确认从机进入升级进程后,再向从机发送信息包,否则,主机重新向从机下发升级命令。
4.根据权利要求2所述的基于iic协议的软件升级方法,其特征在于,所述s3中,主机从寄存器地址2开始,一直到寄存器地址6,按照每一个寄存器地址最多...
【专利技术属性】
技术研发人员:林桂勇,常远,罗焕然,唐子坚,丁令武,
申请(专利权)人:深圳市西迪特科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。