本实用新型涉及嵌入式开发技术领域,尤其涉及一种基于网络的多单片机一次刷机系统。
背景技术:
传统的单片机刷机时需要人工接线刷机,当需要刷写固件的单片机达到一定数量时,通过人工接线刷写固件的方式效率低下,且费时费力;当单片机置于包装外壳内时,刷写固件往往还需要拆开外壳,十分不便利;当固件内容过大单片机不能一次性存储时,需要逐条刷写。
技术实现要素:
本实用新型目的在于解决传统的单片机刷机时需要人工接线刷机,当需要刷写固件的单片机达到一定数量时,通过人工接线刷写固件的方式效率低下,且费时费力;当单片机置于包装外壳内时,刷写固件往往还需要拆开外壳,十分不便利;当固件内容过大单片机不能一次性存储时,需要逐条刷写的问题的不足而提供的一种新型基于网络的多单片机一次刷机系统。
本实用新型是通过以下技术方案来实现的:一种基于网络的多单片机一次刷机系统,由需要刷固件的若干个单片机和一个PC端构成;若干个单片机通过网络与所述PC端同时连接。
进一步地,所述若干个单片机包含外接串口转WIFI模块或者树莓派模块支持WIFI模块。
进一步地,所述PC端包含发送固件模块和界面显示模块。
进一步地,所述网络为路由器发射WIFI信号,并且若干个单片机和PC端同时连接上这个WIFI信号。
一种基于网络的多单片机一次刷机系统实现方法为:
(1)准备构建基于网络的多单片机一次刷机系统的硬件系统;硬件系统由需要刷固件的若干个单片机和一个PC端构成;
(2)若干个单片机和PC端同时连接网络;
(3)PC端通过不同的IP地址对单片机进行识别;
(4)通过自定义的通信协议,PC端发送固件内容到若干个单片机并逐条刷写固件到若干个单片机;
(5)通过自定义的通信协议验证固件内容;
(6)完成发送固件内容。
进一步地,所述步骤(1)中硬件系统由需要刷固件的若干个单片机和一个PC端构成,若干个单片机包含外接串口转WIFI模块或者树莓派支持WIFI的系统模块,PC端必须支持发送固件和界面显示。
进一步地,所述步骤(2)若干个单片机和PC端同时连接网络;由路由器发射WIFI信号,并且若干个单片机和PC端同时连接上这个WIFI信号。
进一步地,所述步骤(3)PC端通过不同的IP地址对单片机进行识别;在连接网络信号的前提下,用PC端逐一连接单片机,并对单片机的IP地址进行修改,如修改为192.168.1.1,192.168.1.2,192.168.1.3,192.168.1.4···,192.168.1.n。
进一步地,所述步骤(4)通过自定义的通信协议,PC端发送固件内容到若干个单片机并逐条刷写固件到若干个单片机;自定义的通信协议为:0xbe+1byte id+1byte sequence+2bytes length+N bytes data,每次发送下一条消息时,序列号加一,重传时,序列号不变。
进一步地,所述步骤(5)通过自定义的通信协议验证固件内容;PC端每次发送一条消息之后,需要收到单片机发出的相同的序列号的应答才进行下一条序列号消息的发送,否则1s后自动重新发送该条消息,序列号不变,重传5次之后仍未收到应答则判定为超时;若多次收到相同序列号的消息,则只有第一次收到的消息有效,在原来基础上,当主机发送Send_Over后,下位机需要给上位机应答一个相同序列号的02号消息;之后下位机在发送下一个序列号给上位机来发送验证消息;
经验证,如果发送信息与应答信息不能相互匹配,则该条消息失效,返回到步骤(4),继续发送固件内容;
经验证,如果发送信息与应答信息能够相互匹配,则该条消息正确发送,转到步骤(6),成功发送固件内容。
进一步地,所述步骤(6)完成发送固件内容,PC端界面显示刷机成功。
本实用新型的有益效果在于:
(1)效率更高,传统刷写方法中,接线之后才能刷机,且每次只能刷写一个单片机的固件,引入网络刷机方法之后,可以同时支持多片单片机的固件更新,极大提高了更新固件的效率,大大减少工作量;
(2)刷写固件更方便,当需要刷写固件的单片机达到一定数量时,通过人工接线刷写固件的方式非常不方便,且费时费力,当单片机置于包装外壳内时,刷写固件往往还需要拆开外壳,十分不便利,通过网络的方式刷写固件更加方便;
(3)刷写功能更加多样化,引入自定义的通信协议之后,使得单片机更新固件时不必一次性存储全部固件,很好地解决了固件内容过大的问题,使刷写固件功能多样化。
【附图说明】
图1为本实用新型基于网络的多单片机一次刷机系统结构示意图;
附图标记:1、PC端;11、发送固件模块;12、界面显示模块;2、单片机;3、WIFI模块;4、路由器。
【具体实施方式】
下面结合附图及具体实施方式对本实用新型做进一步描述:
如图1所示,一种基于网络的多单片机一次刷机系统,由需要刷固件的若干个单片机2和一个PC端1构成;若干个单片机2通过网络与所述PC端1同时连接。
优选地,所述若干个单片机2包含外接串口转WIFI模块或者树莓派模块支持WIFI模块3。
优选地,所述PC端1包含发送固件模块11和界面显示模块12。
优选地,所述网络为路由器4发射WIFI信号,并且若干个单片机2和PC端1同时连接上这个WIFI信号。
一种基于网络的多单片机一次刷机系统实现方法为:
(1)准备构建基于网络的多单片机一次刷机系统的硬件系统;硬件系统由需要刷固件的若干个单片机和一个PC端构成;
(2)若干个单片机和PC端同时连接网络;
(3)PC端通过不同的IP地址对单片机进行识别;
(4)通过自定义的通信协议,PC端发送固件内容到若干个单片机并逐条刷写固件到若干个单片机;
(5)通过自定义的通信协议验证固件内容;
(6)完成发送固件内容。
优选地,所述步骤(1)中硬件系统由需要刷固件的若干个单片机和一个PC端构成,若干个单片机包含外接串口转WIFI模块或者树莓派支持WIFI的系统模块,PC端必须支持发送固件和界面显示。
优选地,所述步骤(2)若干个单片机和PC端同时连接网络;由路由器发射WIFI信号,并且若干个单片机和PC端同时连接上这个WIFI信号。
优选地,所述步骤(3)PC端通过不同的IP地址对单片机进行识别;在连接网络信号的前提下,用PC端逐一连接单片机,并对单片机的IP地址进行修改,如修改为192.168.1.1,192.168.1.2,192.168.1.3,192.168.1.4···,192.168.1.n。
优选地,所述步骤(4)通过自定义的通信协议,PC端发送固件内容到若干个单片机并逐条刷写固件到若干个单片机;自定义的通信协议为:0xbe+1byteid+1byte sequence+2bytes length+N bytes data,每次发送下一条消息时,序列号加一,重传时,序列号不变。
优选地,所述步骤(5)通过自定义的通信协议验证固件内容;PC端每次发送一条消息之后,需要收到单片机发出的相同的序列号的应答才进行下一条序列号消息的发送,否则1s后自动重新发送该条消息,序列号不变,重传5次之后仍未收到应答则判定为超时;若多次收到相同序列号的消息,则只有第一次收到的消息有效,在原来基础上,当主机发送Send_Over后,下位机需要给上位机应答一个相同序列号的02号消息;之后下位机在发送下一个序列号给上位机来发送验证消息;
经验证,如果发送信息与应答信息不能相互匹配,则该条消息失效,返回到步骤(4),继续发送固件内容;
经验证,如果发送信息与应答信息能够相互匹配,则该条消息正确发送,转到步骤(6),成功发送固件内容。
优选地,所述步骤(6)完成发送固件内容,PC端界面显示刷机成功。
根据上述说明书的揭示和教导,本实用新型所属领域的技术人员还可以对上述实施方式进行适当的变更和修改。因此,本实用新型并不局限于上面揭示和描述的具体实施方式,对本实用新型的一些修改和变更也应当落入本实用新型的权利要求的保护范围内。此外,尽管本说明书中使用了一些特定的术语,但这些术语只是为了方便说明,并不对本实用新型构成任何限制。