开云优惠体育网页版入口

开云优惠体育网页版入口:一种Modbus TCP网络场景下传感器终端节点升级方法及系统

更新时间:2026-09-01
一种Modbus TCP网络场景下传感器终端节点升级方法及系统 专利申请类型:发明专利;
地区:广西-桂林;
源自:桂林高价值专利检索信息库;

专利名称:一种Modbus TCP网络场景下传感器终端节点升级方法及系统

专利类型:发明专利

专利申请号:CN202211367134.8

专利申请(专利权)人:桂林电子开云优惠体育网页版入口大学
权利人地址:广西壮族自治区桂林市七星区金鸡路1号

专利发明(设计)人:刘争红,欧阳兆晃,王玫,李世雷,韦松

专利摘要:本发明属于Modbus?TCP网络技术领域,具体涉及一种Modbus?TCP网络场景下传感器终端节点升级方法及系统。本发明提供的方法可以通过整个网络将升级文件传输到指定的传感器终端节点,并且在遵循Modbus?TCP网络的传输协议下进行版本升级,从而降低维护成本和开发难度。本发明在文件传输过程中增加每一帧的序列号,能够保证升级固件在传输的过程中是连贯的,传感器终端节点在接收到数据后,能够按照顺序将接收到的升级固件拼接成完整的升级固件,以及检查序号的连贯性,避免升级失败导致设备故障,返厂维修增加人工成本。本发明的系统采用了串口转网络模块与传感器终端节点的组合,能够确保过低性能的传感器终端节点也可以使用本发明的方法完成固件升级。

主权利要求:
1.一种ModbusTCP网络场景下传感器终端节点升级方法,其特征在于,包括以下步骤:步骤S1,管理员通过网页前端将升级固件上传至服务器,服务器将升级固件进行分包和帧封装;
步骤S2,服务器发送身份认证指令,传感器终端节点确认服务器的身份合法,则服务器完成身份认证,获得进入该传感器终端节点的Bootloader程序许可,若是服务器的身份不合法,则服务器无法获得进入该传感器终端节点的Bootloader程序许可;
步骤S3,服务器向上述传感器终端节点通过采用Modbus协议发送让该传感器终端节点进入Bootloader程序的升级请求,该传感器终端节点进入Bootloader程序,等待文件传输;
步骤S4,服务器向该传感器终端节点发送文件传输的开始。衅髦斩私诘阕龊媒邮丈豆碳准备,开始帧将升级固件的大小发送至传感器终端节点,传感器终端节点发送开始帧的响应信号至服务器;
步骤S5,服务器发送若干帧传输帧至传感器终端节点;传感器终端节点开始接收并按照帧的顺序对升级固件进行拼接、组装、存储;
步骤S6,服务器完成传输数据后,发送结束帧用于结束升级固件的传输,传感器终端节点收到结束帧后开始运行新版本的升级固件;
所述步骤S1中管理员通过传感器终端节点的序列号统计出各个传感器终端节点上运行的固件版本,通过图形化的界面对不同传感器终端节点进行分类,在分类中选择需要升级的传感器终端节点进行升级,同时可以选择不同版本的固件进行升级,完成升级固件的管理;
所述步骤S4中的开始帧的功能码接下来的4个字节是正序号和反序号,在开始帧中,正序号为0x0000,反序号为0xffff,整个传输过程中序号会接着开始帧的序号进行递增;开始帧负责传输文件大。募大小的字节数按照ASCII码进行转换,按照位数转换成对应字节数的十六进制数据,储存在序号后128字节的数据内容中,所述数据内容的大小如果不够
128字节,则使用0填满剩下部分的数据内容;
所述步骤S4中还包括:
传感器终端节点接收到开始帧后,首先校验开始帧的功能码,根据功能码的内容进行对应的功能,如果Bootloader程序中没有该功能码,则会返回功能码错误的相应,等待服务器发送正确的功能码;
功能码校验正确后,会对正序号和反序号进行校验,判断正序号和反序号分别是否等于0x0000和0xffff,如果正序号或者反序号不符合数值,则会返回序列号错误的相应,并且等待服务器重新发送开始。
序列号判断正确后,传感器终端节点会将表示文件大小的ASCII码转化为整型数字后,开始比较文件大小是否大于传感器终端节点的剩余空间,如果大于传感器终端节点的剩余空间,则表示该升级固件过大,返回文件大小不合适的错误相应,需要等待服务器重新发送大小符合的固件,发送符合固件的开始。
当开始帧处理完毕后,等待服务器发送传输帧。
2.根据权利要求1所述的一种ModbusTCP网络场景下传感器终端节点升级方法,其特征在于,所述步骤S1中服务器将升级固件按照128字节划分,分成若干份符合传输帧传输数据的大。绻詈笠桓霭值降拇笮〔蛔128字节,则使用0x1A进行填充,补充到128字节大。詈蠓务器按照文件传输协议将所有的数据包封装好,等待发送。
3.根据权利要求1所述的一种ModbusTCP网络场景下传感器终端节点升级方法,其特征在于,所述步骤S2中服务器与传感器终端节点预先保存好相同的用于身份验证的密钥,传感器终端节点通过比较服务器发来的密钥以确定服务器的身份是否合法;具体使用随机数、设备序列号并采用SHA256算法计算出数字摘要作为密钥。
4.根据权利要求1所述的一种ModbusTCP网络场景下传感器终端节点升级方法,其特征在于,所述步骤S3中还包括:在传感器终端节点进入Bootloader程序之前会检查升级标志位是否被设置为升级,如果升级标志位被设置为升级,则传感器终端节点开始等待服务器发送升级固件;如果升级标志位没有被设置为升级,并且传感器终端节点中存储有APP程序,则会跳转至APP程序。
5.根据权利要求1所述的一种ModbusTCP网络场景下传感器终端节点升级方法,其特征在于,所述步骤S5具体包括:传感器终端节点接受到传输帧后,会首先判断功能码是否正确,如果功能码不正确,则会返回到步骤S4,重新等待服务器发送开始。
功能码判断正确后,再判断是否完成了开始。绻挥型瓿稍蚧岱祷匦蚝糯砦蟮南煊,返回步骤S4,等待服务器重新发送开始。
传感器终端节点在接收到传输帧后,会根据序号判断是否能够接收到完整的固件,通过每个传输帧的正序号和反序号的比较实现,如果序号发生错乱或者序号缺失,则会返回步骤S4,重新等待开始帧发送;
传感器终端节点在接受传输帧时,如果超过设定时间地没有接收到传输。蚧岱祷氐讲街鑃4,重新等待开始帧的发送;
服务器在接受传输帧响应时,如果超过设定时间地没有接收到传输帧响应,则会重新发送开始。匦麓涔碳。
6.根据权利要求1所述的一种ModbusTCP网络场景下传感器终端节点升级方法,其特征在于,所述步骤S6具体包括:传感器终端节点接收到结束帧时,首先判断是否完成了升级固件的接收,传感器终端节点在接收结束帧时,还没有接收够足够大小的固件,则没有接收固件没有完成,则会返回步骤S4,重新等待开始帧的发送;
然后判断序列号是否为结束帧的序列号,如果序列号不属于结束帧的序列号则会返回错误响应,返回步骤S4,等待开始帧的发送;
传感器终端节点完成判断后,返回正确的结束帧响应至服务器,然后运行新版本的固件,完成升级;
传感器终端节点接收固件完毕后,如果超过设定时间没有接收到结束。蚍祷夭街鑃4,重新等待开始帧的发送;
如果服务器超过设定时间没有接收到结束帧响应,则传感器终端节点通过新版本固件在启动时,向服务器发送启动成功的消息,通知服务器完成升级。
7.一种ModbusTCP网络场景下传感器终端节点升级系统,其特征在于,应用于权利要求1?6任一所述的升级方法,包括服务器、若干串口转网络接口模块、若干传感器终端节点;
所述服务器分别与若干串口转网络接口模块连接,若干所述串口转网络接口模块分别与若干传感器终端节点连接;所述服务器通过Modbus协议与串口转网络接口模块进行通信,所述串口转网络接口模块与传感器终端节点通过串口进行数据传输;所述服务器用于分包和封装升级固件,并将升级固件通过Modbus协议传输至串口转网络接口模块,所述串口转网络接口模块用于将服务器通过Modbus协议传输来的升级固件转换成串口传输至传感器终端节点,所述传感器终端节点具有Bootloader程序和APP程序,所述Bootloader程序用于按照文件传输协议接收服务器发送的升级固件,传感器终端节点完成接收后,运行新版本固件;所述APP程序用于响应服务器的相关业务请求。 说明书 : 一种ModbusTCP网络场景下传感器终端节点升级方法及系统技术领域[0001] 本发明属于ModbusTCP网络技术领域,具体涉及一种ModbusTCP网络场景下传感器终端节点升级方法及系统。背景技术[0002] 在国家政策推动,制造业技术转型升级等背景下,中国智能制造产业发展迅速,工业自动化跃升到新阶段,一套完整的工业控制系统已能够进行自动测量、控制和运动。而MODBUSTCP通讯协议作为管理和控制自动化设备的网络通讯协议,广泛应用于工业现场作为纽带,在控制网关与单个分散的传感器网络终端节点之间,连接成可以相互沟通信息、共同完成自动控制任务的网络系统,实现双向串行多节点数字通讯。由MODBUSTCP通讯协议构建的传感器网络具有分散控制、系统结构简单、节约硬件设备等优点。然而在实际应用场景中传感器网络终端节点,在设计开发过程中由于受制于前期需求分析不足或变化、开发人员技术能力限制等原因,导致需要对终端节点进行版本升级或者软件维护,但是终端节点一般分布范围广、数量大、种类多,并且在现场生产环境下的复杂,给维护和升级带来了不小的困难,需要人工到终端节点进行固件升级是会加大成本开销。[0003] 因此则需要在MODBUSTCP网络下,使用Modbus协议传输升级固件,将终端节点设备里的固件进行升级,达到远程升级的效果,从而降低维护和升级带来的人力成本,然而传统Modbus协议直接作为文件传输协议会给升级过程带来不便,因为传统的Modbus协议无法确保升级固件的完整性和可靠性。并且待升级的终端节点对于升级的固件有着严格的要求,传输后的固件必须能够在传感器终端节点下能够正常运行,如果启动了无法正常运行的固件,终端节点则会死机,需要返厂维修,这样大大地增加了维护的成本。因此本发明提供了一种ModbusTCP网络场景下传感器终端节点升级方法及系统,确保设备升级的固件的正确性和完整性,避免运行死机的情况。发明内容[0004] 为了解决上述问题,本发明提供了一种ModbusTCP网络场景下传感器终端节点升级方法及系统,可以通过整个网络将升级文件传输到指定的终端节点,并且在遵循ModbusTCP网络的传输协议下进行版本升级,从而降低维护成本和开发难度。具体技术方案如下:[0005] 一种ModbusTCP网络场景下传感器终端节点升级方法,包括以下步骤:[0006] 步骤S1,管理员通过网页前端将升级固件上传至服务器,服务器将升级固件进行分包和帧封装;[0007] 步骤S2,服务器发送身份认证指令,传感器终端节点确认服务器的身份合法,则服务器完成身份认证,获得进入该传感器终端节点的Bootloader程序许可,若是服务器的身份不合法,则服务器无法获得进入该传感器终端节点的Bootloader程序许可;[0008] 步骤S3,服务器向上述传感器终端节点通过采用Modbus协议发送让该传感器终端节点进入Bootloader程序的升级请求,该传感器终端节点进入Bootloader程序,等待文件传输;[0009] 步骤S4,服务器向该传感器终端节点发送文件传输的开始。衅髦斩私诘阕龊媒邮丈豆碳准备,开始帧将升级固件的大小发送至传感器终端节点,传感器终端节点发送开始帧的响应信号至服务器;[0010] 步骤S5,服务器发送若干帧传输帧至传感器终端节点;传感器终端节点开始接收并按照帧的顺序对升级固件进行拼接、组装、存储;[0011] 步骤S6,服务器完成传输数据后,发送结束帧用于结束升级固件的传输,传感器终端节点收到结束帧后开始运行新版本的升级固件。[0012] 优选地,所述步骤S1中管理员通过传感器终端节点的序列号统计出各个传感器终端节点上运行的固件版本,通过图形化的界面对不同传感器终端节点进行分类,在分类中选择需要升级的传感器终端节点进行升级,同时可以选择不同版本的固件进行升级,完成升级固件的管理。[0013] 优选地,所述步骤S1中服务器将升级固件按照128字节划分,分成若干份符合传输帧传输数据的大。绻詈笠桓霭值降拇笮〔蛔128字节,则使用0x1A进行填充,补充到128字节大。詈蠓务器按照文件传输协议将所有的数据包封装好,等待发送。[0014] 优选地,所述步骤S2中服务器与传感器终端节点预先保存好相同的用于身份验证的密钥,传感器终端节点通过比较服务器发来的密钥以确定服务器的身份是否合法;具体使用随机数、设备序列号并采用SHA256算法计算出数字摘要作为密钥。[0015] 优选地,所述步骤S3中还包括:[0016] 在传感器终端节点进入Bootloader程序之前会检查升级标志位是否被设置为升级,如果升级标志位被设置为升级,则传感器终端节点开始等待服务器发送升级固件;如果升级标志位没有被设置为升级,并且传感器终端节点中存储有APP程序,则会跳转至APP程序。[0017] 优选地,所述步骤S4中的开始帧的功能码接下来的4个字节是正序号和反序号,在开始帧中,正序号为0x0000,反序号为0xffff,整个传输过程中序号会接着开始帧的序号进行递增;开始帧负责传输文件大。募大小的字节数按照ASCII码进行转换,按照位数转换成对应字节数的十六进制数据,储存在序号后128字节的数据内容中,所述数据内容的大小如果不够128字节,则使用0填满剩下部分的数据内容。[0018] 优选地,所述步骤S4中还包括:[0019] 传感器终端节点接收到开始帧后,首先校验开始帧的功能码,根据功能码的内容进行对应的功能,如果Bootloader程序中没有该功能码,则会返回功能码错误的相应,等待服务器发送正确的功能码;[0020] 功能码校验正确后,会对正序号和反序号进行校验,判断正序号和反序号分别是否等于0x0000和0xffff,如果正序号或者反序号不符合数值,则会返回序列号错误的相应,并且等待服务器重新发送开始。籟0021] 序列号判断正确后,传感器终端节点会将表示文件大小的ASCII码转化为整型数字后,开始比较文件大小是否大于传感器终端节点的剩余空间,如果大于传感器终端节点的剩余空间,则表示该固件过大,返回文件大小不合适的错误相应,需要等待服务器重新发送大小符合的固件,发送符合固件的开始。籟0022] 当开始帧处理完毕后,等待服务器发送传输帧。[0023] 优选地,所述步骤S5具体包括:[0024] 传感器终端节点接受到传输帧后,会首先判断功能码是否正确,如果功能码不正确,则会返回到步骤S4,重新等待服务器发送开始。籟0025] 功能码判断正确后,再判断是否完成了开始。绻挥型瓿稍蚧岱祷匦蚝糯砦蟮南煊,返回步骤S4,等待服务器重新发送开始。籟0026] 传感器终端节点在接收到传输帧后,会根据序号判断是否能够接收到完整的固件,通过每个传输帧的正序号和反序号的比较实现,如果序号发生错乱或者序号缺失,则会返回步骤S4,重新等待开始帧发送;[0027] 传感器终端节点在接受传输帧时,如果超过设定时间地没有接收到传输。蚧岱祷氐讲街鑃4,重新等待开始帧的发送;[0028] 服务器在接受传输帧响应时,如果超过设定时间地没有接收到传输帧响应,则会重新发送开始。匦麓涔碳。[0029] 优选地,所述步骤S6具体包括:[0030] 传感器终端节点接收到结束帧时,首先判断是否完成了升级固件的接收,传感器终端节点在接收结束帧时,还没有接收够足够大小的固件,则没有接收固件没有完成,则会返回步骤S4,重新等待开始帧的发送;[0031] 然后判断序列号是否为结束帧的序列号,如果序列号不属于结束帧的序列号则会返回错误响应,返回步骤S4,等待开始帧的发送;[0032] 传感器终端节点完成判断后,返回正确的结束帧响应至服务器,然后运行新版本的固件,完成升级;[0033] 传感器终端节点接收固件完毕后,如果超过设定时间没有接收到结束。蚍祷夭街鑃4,重新等待开始帧的发送;[0034] 如果服务器超过设定时间没有接收到结束帧响应,则传感器终端节点通过新版本固件在启动时,向服务器发送启动成功的消息,通知服务器完成升级。[0035] 一种ModbusTCP网络场景下传感器终端节点升级系统,应用于所述的升级方法,包括服务器、若干串口转网络接口模块、若干传感器终端节点;[0036] 所述服务器分别与若干串口转网络接口模块连接,若干所述串口转网络接口模块分别与若干传感器终端节点连接;所述服务器通过Modbus协议与串口转网络接口模块进行通信,所述串口转网络接口模块与传感器终端节点通过串口进行数据传输;所述服务器用于分包和封装升级固件,并将升级固件通过Modbus协议传输至串口转网络接口模块,所述串口转网络接口模块用于将服务器通过Modbus协议传输来的升级固件转换成串口传输至传感器终端节点,所述传感器终端节点具有Bootloader程序和APP程序,所述Bootloader程序用于按照文件传输协议接收服务器发送的升级固件,传感器终端节点完成接收后,运行新版本固件;所述APP程序用于响应服务器的相关业务请求。[0037] 本发明的有益效果为:本发明提供的方法可以通过整个网络将升级文件传输到指定的传感器终端节点,并且在遵循ModbusTCP网络的传输协议下进行版本升级,从而降低维护成本和开发难度。[0038] MODBUSTCP网络基于Modbus总线协议传输,遵循主从模式,对于传统Modbus协议,本发明在文件传输过程中增加每一帧的序列号,能够保证升级固件在传输的过程中是连贯的,传感器终端节点在接收到数据后,能够按照顺序将接收到的升级固件拼接成完整的升级固件,以及检查序号的连贯性,避免升级失败导致设备故障,返厂维修增加人工成本。[0039] 考虑到传输带宽会不同,升级固件在服务器中将被按照128字节进行划分,因此本发明能够应用到不同性能的传感器终端节点中,保证使用到的传输设备都能将信息传输,升级固件按照128字节,保证传感器终端节点能够接收到。[0040] 在本发明中,为了防止他人恶意对从设备进行随意固件升级,服务器必须得到传感器终端节点的身份认证,才能对传感器终端节点进行升级。服务器需要使用提前得到的密钥,采用SHA256算法计算出数字摘要,与传感器终端节点计算出的数字摘要进行验证,验证通过的服务器才能对传感器终端节点进行升级,未经验证通过的服务器则被传感器终端节点拒绝升级,如此保证了传感器终端节点升级的安全性,避免升级错误需要返厂维修增加人工成本。[0041] 本发明的系统采用了串口转网络模块与传感器终端节点的组合,能够确保过低性能的传感器终端节点也可以使用本发明的方法完成固件升级。附图说明[0042] 为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。[0043] 图1为本发明的方法流程图;[0044] 图2为本发明的文件传输流程图;[0045] 图3为本发明实施例提供的文件传输帧格式结构图。[0046] 图4为本发明实施例提供的正确相应帧格式结构图。[0047] 图5为本发明实施例提供的错误相应帧格式结构图。[0048] 图6为本发明的系统原理图。具体实施方式[0049] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0050] 应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。[0051] 还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。[0052] 还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。[0053] 如图1所示,本发明的具体实施方式提供了一种ModbusTCP网络场景下传感器终端节点升级方法,升级过程是需要从APP程序跳转到Bootloader程序进行,所以步骤S1是在服务器中进行,步骤S2和步骤S3在APP程序中运行,步骤S4、步骤S5、步骤S6在Bootloader程序中运行。具体包括以下步骤:[0054] 步骤S1,管理员通过网页前端将升级固件上传至服务器,服务器将升级固件进行分包和帧封装。具体包括:[0055] 管理员通过传感器终端节点的序列号统计出各个传感器终端节点上运行的固件版本,通过图形化的界面对不同传感器终端节点进行分类,在分类中选择需要升级的传感器终端节点进行升级,同时可以选择不同版本的固件进行升级,完成升级固件的管理。如此实现对指定的传感器终端节点进行升级,提高升级效率,降低升级成本。[0056] 服务器将升级固件按照128字节划分,分成若干份符合传输帧传输数据的大。绻詈笠桓霭值降拇笮〔蛔128字节,则使用0x1A进行填充,补充到128字节大。詈蠓务器按照文件传输协议将所有的数据包封装好,等待发送。服务器将升级固件按照128字节划分,可以适应不同传输带宽,保证保证传感器终端节点能够接收到,因此本发明能够应用到不同性能的从设备中,保证使用到的传输设备都能将信息传输。[0057] 步骤S2,服务器发送身份认证指令,传感器终端节点确认服务器的身份合法,则服务器完成身份认证,获得进入该传感器终端节点的Bootloader程序许可,若是服务器的身份不合法,则服务器无法获得进入该传感器终端节点的Bootloader程序许可。[0058] 具体地,服务器和从传感器终端节点保存好相同的密钥,用于身份认证。身份认证具体是采用SHA256算法计算出数字摘要进行比较。SHA256算法可以将不定长的参数通过计算得到固定长度的32字节数字摘要。[0059] 具体地,身份认证通过服务器和传感器终端节点使用随机数、设备序列号、密钥等参数分别通过SHA256算法计算出数字摘要,通过比较服务器和传感器终端节点的数字摘要确定服务器对于传感器终端节点的身份是否合法,经过终端节点确认身份合法的服务器,可以进入该传感器终端节点的Bootloader程序,允许对该传感器终端节点进行升级。[0060] 步骤S3,服务器向上述传感器终端节点通过采用Modbus协议发送让该传感器终端节点进入Bootloader程序的升级请求,该传感器终端节点进入Bootloader程序,等待文件传输。[0061] 为了防止意外重启,导致传感器终端节点无法正常地运行APP程序而卡在Bootloader程序中,在传感器终端节点进入Bootloader程序之前会检查升级标志位是否被设置为升级,如果升级标志位被设置为升级,则传感器终端节点开始等待服务器发送升级固件;如果升级标志位没有被设置为升级,并且传感器终端节点中存储有APP程序,则会跳转至APP程序。[0062] 具体地,服务器会采用Modbus协议传输升级请求,功能码为0x06,在升级标志位寄存器中,写入升级的标志位,使传感器终端节点进行一次程序跳转,运行Bootloader程序,在Bootloader程序中识别升级标志位,等待服务器传输升级固件。如果在传感器终端节点没有通过服务器的身份认证,服务器发送进入Bootloader程序请求,传感器终端节点会返回没有通过身份证的响应,并且不会进入Bootloader程序。[0063] 如图2所示,步骤S4、S5、S6构成完成的文件传输过程,服务器发送的文件传输帧结构如图3所示。如图4、图5所示,该帧格式分别为传感器终端节点针对服务器发送的文件传输数据返回的正确和错误的帧格式。[0064] 步骤S4,服务器向该传感器终端节点发送文件传输的开始。衅髦斩私诘阕龊媒邮丈豆碳准备,开始帧将升级固件的大小发送至传感器终端节点,传感器终端节点发送开始帧的响应信号至服务器。[0065] 开始帧是整个传输过程的第一步,保证能在传输前能够让传感器终端节点对固件的属性信息进行匹配,只有固件属性和传感器终端节点匹配后,才能进行接下来的传输。开始帧采用的功能码为0x45,开始帧的功能码接下来的4个字节是正序号和反序号,在开始帧中,正序号为0x0000,反序号为0xffff,整个传输过程中正序号会接着开始帧的序号进行递增,反序号会接着开始帧的序号进行递减;开始帧负责传输文件大。募大小的字节数按照ASCII码进行转换,按照位数转换成对应字节数的十六进制数据,储存在序号后128字节的数据内容中,所述数据内容的大小如果不够128字节,则使用0填满剩下部分的数据内容。[0066] 传感器终端节点接收到开始帧后,首先校验开始帧的功能码,根据功能码的内容进行对应的功能,如果Bootloader程序中没有该功能码,则会返回功能码错误的相应,等待服务器发送正确的功能码;[0067] 功能码校验正确后,会对正序号和反序号进行校验,判断正序号和反序号分别是否等于0x0000和0xffff,如果正序号或者反序号不符合数值,则会返回序列号错误的相应,并且等待服务器重新发送开始。籟0068] 序列号判断正确后,传感器终端节点会将表示文件大小的ASCII码转化为整型数字后,开始比较文件大小是否大于传感器终端节点的剩余空间,如果大于传感器终端节点的剩余空间,则表示该固件过大,返回文件大小不合适的错误相应,需要等待服务器重新发送大小符合的固件,发送符合固件的开始。籟0069] 当开始帧处理完毕后,等待服务器发送传输帧。[0070] 步骤S5,服务器发送若干帧传输帧至传感器终端节点,传输信息为升级固件的128字节内容,需要发送若干帧完成整个升级固件的传输;传感器终端节点开始接收并按照帧的顺序对升级固件进行拼接、组装、存储。[0071] 具体地,服务器通过按照顺序发送若干个内容携带固件信息的传输。衅髦斩私诘悴欢系亟邮芄碳信息,构成完整的固件。传输帧的功能码为0x46。在序号上,传输帧从正序号0x0001开始,反序号从0xfffe开始,按顺序进行排序,正序号开始递增,反序号则开始递减。每个传输帧填充分好包的升级固件填充,大小为128字节。假设升级固件的大小不是128字节的倍数,传输帧最后一帧数据段则会小于128字节,会使用0x1A填充剩下的内容。[0072] 传感器终端节点接受到传输帧后,会首先判断功能码是否为0x46,如果功能码不正确,则会返回到步骤S4,重新等待服务器发送开始。籟0073] 功能码判断正确后,再判断是否完成了开始。绻挥型瓿稍蚧岱祷匦蚝糯砦蟮南煊,返回步骤S4,等待服务器重新发送开始。籟0074] 传感器终端节点在接收到传输帧后,会根据序号判断是否能够接收到完整的固件,通过每个传输帧的正序号和反序号的比较实现,如果序号发生错乱或者序号缺失,则会返回步骤S4,重新等待开始帧发送;[0075] 传感器终端节点在接受传输帧时,如果超过设定时间地没有接收到传输。蚧岱祷氐讲街鑃4,重新等待开始帧的发送;[0076] 服务器在接受传输帧响应时,如果超过设定时间地没有接收到传输帧响应,则会重新发送开始。匦麓涔碳。[0077] 步骤S6,服务器完成传输数据后,发送结束帧用于结束升级固件的传输,传感器终端节点收到结束帧后开始运行新版本的升级固件。[0078] 服务器在接受到最后一帧传输帧的响应后,将发送结束。衅髦斩私诘憬邮艿浇崾『,将会发送结束帧相应,并开始运行固件。结束帧的功能码为0x47,正序号为0xffff,反序号为0x0000;中间128字节的数据内容全为0。[0079] 传感器终端节点接收到结束帧时,首先判断是否完成了升级固件的接收,传感器终端节点在接收结束帧时,还没有接收够足够大小的固件,则没有接收固件没有完成,则会返回步骤S4,重新等待开始帧的发送;[0080] 然后判断序列号是否为结束帧的序列号,如果序列号不属于结束帧的序列号则会返回错误响应,返回步骤S4,等待开始帧的发送;[0081] 传感器终端节点完成判断后,返回正确的结束帧响应至服务器,然后运行新版本的固件,完成升级;[0082] 传感器终端节点接收固件完毕后,如果超过设定时间没有接收到结束。蚍祷夭街鑃4,重新等待开始帧的发送;[0083] 如果服务器超过设定时间没有接收到结束帧响应,则传感器终端节点通过新版本固件在启动时,向服务器发送启动成功的消息,通知服务器完成升级。[0084] 如图6所示,本发明的具体实施方式还提供了一种ModbusTCP网络场景下传感器终端节点升级系统,应用于所述的升级方法,包括服务器、若干串口转网络接口模块、若干传感器终端节点;[0085] 所述服务器分别与若干串口转网络接口模块连接,若干所述串口转网络接口模块分别与若干传感器终端节点连接;所述服务器通过Modbus协议与串口转网络接口模块进行通信,所述串口转网络接口模块与传感器终端节点通过串口进行数据传输;所述服务器用于分包和封装升级固件,并将升级固件通过Modbus协议传输至串口转网络接口模块,所述串口转网络接口模块用于将服务器通过Modbus协议传输来的升级固件转换成串口传输至传感器终端节点,所述传感器终端节点具有Bootloader程序和APP程序,所述Bootloader程序用于按照文件传输协议接收服务器发送的升级固件,传感器终端节点完成接收后,运行新版本固件;所述APP程序用于响应服务器的相关业务请求。[0086] 本发明的系统遵循主?从模式,由主设备服务器发送请求,从设备传感器终端节点根据请求做出响应。[0087] 服务器可以管理整个ModbusTCP网络的传感器终端节点,具体是管理员使用前端网页图形界面进行操作管理,方便管理员使用前端网页对传感器终端节点进行数据监测和升级固件管理。其中,升级固件管理是指管理员通过前端网页上传所需要升级的固件到服务器上,并且通过传感器终端节点的序列号统计出各个终端节点上运行的固件版本,通过服务器ModbusTCP传输将升级固件发送到指定的终端节点上,通过交互完成升级。[0088] 串口转网络接口模块将服务器通过ModbusTCP传输数据转化为RS485总线传输,需要配置与传感器终端节点匹配的波特率、数据位、校验位和停止位。所述传感器终端节点与串口转网络接口模块使用UART串口相连,通过Modbus协议与服务器进行通信,对服务器发出的请求做出对应的响应。[0089] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。[0090] 在本申请所提供的实施例中,应该理解到,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元可结合为一个单元,一个单元可拆分为多个单元,或一些特征可以忽略等。[0091] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

专利地区:广西

专利申请日期:2022-11-02

专利公开日期:2024-11-22

专利公告号:CN115766444B


以上信息来自国家知识产权局,如信息有误请联系我方更正!
该专利所有权非本平台所有,我方无法提供专利权所有者联系方式,请勿联系我方。
电话咨询
到底部
搜本页
回顶部
开云优惠体育(中国)官网 — 开云优惠体育app下载