一种数据流的解析方法及使用该方法的智能电表技术

技术编号:32964893 阅读:15 留言:0更新日期:2022-04-09 11:19
本发明专利技术涉及一种数据流的解析方法,所述数据流由至少两个传输通道传来的数据帧组成,该解析方法包括以下步骤:步骤1、启动数据流分析,此时数据流处于初始状态;步骤2、在初始状态下,缓冲数据流中的数据帧,并对数据帧的帧头进行判断,得到该数据帧所属的传输通道;步骤3、从缓冲中接收数据帧,保存数据帧并发送到对应的传输通道。并公开了一种使用上述数据流的解析方法的智能电表。该方法能有序处理不同传输通道汇集而来的信息数据,避免大数据报文在传输过程中产生分包或者粘包,而造成电表解析错误导致电表异常。同时该方法形成一道隔离防护,阻止异常数据进入电表,保证电表安全稳定的工作环境,防止网络恶意攻击。防止网络恶意攻击。防止网络恶意攻击。

【技术实现步骤摘要】
一种数据流的解析方法及使用该方法的智能电表


[0001]本专利技术涉及数据处理领域,特别涉及一种数据流的解析方法及使用该方法的智能电表。

技术介绍

[0002]目前市场上多数智能电表厂商都采用外挂远程通讯模块方案来完成远程抄表等业务功能,这就要求电能表模块能高效处理多个通道传来的数据流,由于这些数据流适用场景和面向对象各不相同,所以数据流所遵循的协议也不尽相同。如下图1,普通通讯模块既要接收处理远程连接传输的应用层数据(多个协议),也要处理本地串口传输的表计通讯数据和调试数据等,这就要求表计外挂的远程通讯模块在设计之初就要考虑多种协议数据的软件分析器的处理方式。
[0003]另外,TCP传输是以数据流的方式来处理数据的,主机和通讯模块在进行远程TCP通讯过程中,受发送窗口、拥塞窗口,最大传输单元以及网络质量等多重因素的影响,通讯模块接收到的数据包顺序和时间与发送端并不一致,这可能会导致通讯模块接收到的数据在极端恶劣的环境下会产生粘包或漏包,如图2所示为数据的理想传输状态,图3为数据可能出现的粘包传输。当通讯模块接收到粘包或者不完整数据后透传到电表可能引发电表运行异常。

技术实现思路

[0004]本专利技术所要解决的第一个技术问题是针对上述现有技术提供一种能对数据包进行解析以识别出异常数据的数据流的解析方法。
[0005]本专利技术所要解决的第二个技术问题是针对上述现有技术提供一种使用上述数据流的解析方法的智能电表,能有效改善电表运行异常。
[0006]本专利技术解决上述第一个技术问题所采用的技术方案为:一种数据流的解析方法,其特征在于:所述数据流由至少两个传输通道传来的数据帧组成,所述数据流的解析方法包括以下步骤:
[0007]步骤1、启动数据流分析,此时数据流处于初始状态;
[0008]步骤2、在初始状态下,缓冲数据流中的数据帧,并对数据帧的帧头进行判断,得到该数据帧所属的传输通道;
[0009]步骤3、从缓冲中接收数据帧,保存数据帧并发送到对应的传输通道。
[0010]本方案中,建立状态机,所述数据流即通过状态机进行解析;
[0011]其中,建立的状态机包括初始状态以及每个传输通道对应的解析状态,每个传输通道对应的解析状态中均至少包括接收数据状态;
[0012]在初始状态下,如果数据帧的第一个字符为属于任意一个传输通道的帧头时,即进入到所属传输通道对应的解析状态;否则,则回到初始状态。
[0013]另外,每个传输通道对应的解析状态中还包括判断数据帧携带的长度信息是否合
法的状态。
[0014]本专利技术解决上述第二个技术问题所采用的技术方案为:一种智能电表,包括MCU以及与MCU相连接的通讯模块,其特征在于:所述通讯模块使用如上述的数据流的解析方法对接收到的数据流进行解析。
[0015]优选地,所述传输通道为三个,分别为与主站相通讯连接的远程传输通道、与表计通讯的第一串口传输通道以及用于通讯模块调试的第二串口传输通道。
[0016]具体的,所述远程传输通道对应的解析状态包括与初始状态依次相连接的第一远程状态、第二远程状态和第一接收数据状态;
[0017]在初始状态下,如果数据帧中的第一个字符属于远程数据帧头,则进入到第一远程状态;否则,则一直处于初始状态;
[0018]在第一远程状态下,如果数据帧中之后的字符解析后符合远程数据流规定的信息域,则进入到第二远程状态;否则,则返回到初始状态;
[0019]在第二远程状态下,如果检测到数据帧携带的数据长度信息在合法范围内,则处于第一接收数据状态;如否,则返回初始状态;
[0020]在第一接收数据状态下,如果实际接收长度等于指定长度时,则保存数据帧并发送到对应的传输通道;如果实际接收长度小于指定长度,则一直处于第一接收数据状态。
[0021]具体的,所述第一串口传输通道对应的解析状态包括与初始状态依次相连接的第一表计状态、第二表计状态和第二接收数据状态;
[0022]在初始状态下,如果数据帧中的第一个字符属于表计数据帧头,则进入到第一表计状态;否则,则一直处于初始状态;
[0023]在第一表计状态下,如果数据帧中的信息区解析正常时,则进入到第二表计状态;否则,则返回到初始状态;
[0024]在第二表计状态下,如果检测到数据帧携带的数据长度信息在合法范围内,则进入到第二接收数据状态;否则,则返回到初始状态。
[0025]进一步的,在第二接收数据状态下,如果数据接收完成,则进行CRC校验;如否,则继续保持在第二接收数据状态;
[0026]如果CRC校验成功,则保存数据帧并发送到对应的传输通道;如否,则返回到初始状态。
[0027]具体的,所述第二串口传输通道对应的解析状态包括与初始状态依次相连接的调试状态和第三接收数据状态;
[0028]在初始状态下,如果数据帧中的第一个字符属于调试帧头,则进入到调试状态;否则,则一直处于初始状态;
[0029]在调试状态下,如果检测到数据帧携带的数据长度信息在合法范围内,则进入到第三接收数据状态;否则,则回到初始状态;
[0030]在第三接收数据状态下,如果之后接收的字符不为结束符且接收的字符长度小于数据域长度时,就继续保持在这个状态;如果接收的字符为结束符时,则保存数据帧并发送到对应的传输通道。
[0031]为了能对数据流中的每个数据帧进行解析,当将数据帧发送到对应的传输通道后,则返回到初始状态。
[0032]与现有技术相比,本专利技术的优点在于:通过对至少两个传输通道发来的数据流进行解析拆分,并根据数据帧的帧头判断出所属的传输通道,从而通过将数据帧发送到对应的传输通道进行处理,因此该方法能有序处理不同传输通道汇集而来的信息数据,避免大数据报文在传输过程中产生分包或者粘包,而造成电表解析错误导致电表异常。同时该方法形成一道隔离防护,阻止异常数据进入电表,保证电表安全稳定的工作环境,防止网络恶意攻击。
附图说明
[0033]图1为现有技术中智能电表的通讯模块接收数据流的框图;
[0034]图2为现有技术中智能电表的通讯模块与主站之间数据的理想传输状态图;
[0035]图3为现有技术中智能电表的通讯模块与主站之间数据可能出现的粘包传输状态图;
[0036]图4为本专利技术实施例中状态机的运行原理图;
[0037]图5为本专利技术实施例中状态机的转换图。
具体实施方式
[0038]以下结合附图实施例对本专利技术作进一步详细描述。
[0039]本实施例中的数据流由至少两个传输通道传来的数据帧组成,为此,该数据流的解析方法包括以下步骤:
[0040]步骤1、启动数据流分析,此时数据流处于初始状态;
[0041]步骤2、在初始状态下,缓冲数据流中的数据帧,并对数据帧的帧头进行判断,得到该数据帧所属的传输通道;
[0042]步骤3、从缓冲中接收数据帧,保存数据帧并发送到对应本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据流的解析方法,其特征在于:所述数据流由至少两个传输通道传来的数据帧组成,所述数据流的解析方法包括以下步骤:步骤1、启动数据流分析,此时数据流处于初始状态;步骤2、在初始状态下,缓冲数据流中的数据帧,并对数据帧的帧头进行判断,得到该数据帧所属的传输通道;步骤3、从缓冲中接收数据帧,保存数据帧并发送到对应的传输通道。2.根据权利要求1所述的数据流的解析方法,其特征在于:建立状态机,所述数据流即通过状态机进行解析;其中,建立的状态机包括初始状态以及每个传输通道对应的解析状态,每个传输通道对应的解析状态中均至少包括接收数据状态;在初始状态下,如果数据帧的第一个字符为属于任意一个传输通道的帧头时,即进入到所属传输通道对应的解析状态;否则,则回到初始状态。3.根据权利要求2所述的数据流的解析方法,其特征在于:每个传输通道对应的解析状态中还包括判断数据帧携带的长度信息是否合法的状态。4.一种智能电表,包括MCU以及与MCU相连接的通讯模块,其特征在于:所述通讯模块使用如权利要求2或3所述的数据流的解析方法对接收到的数据流进行解析。5.根据权利要求4所述的智能电表,其特征在于:所述传输通道为三个,分别为与主站相通讯连接的远程传输通道、与表计通讯的第一串口传输通道以及用于通讯模块调试的第二串口传输通道。6.根据权利要求5所述的智能电表,其特征在于:所述远程传输通道对应的解析状态包括与初始状态依次相连接的第一远程状态、第二远程状态和第一接收数据状态;在初始状态下,如果数据帧中的第一个字符属于远程数据帧头,则进入到第一远程状态;否则,则一直处于初始状态;在第一远程状态下,如果数据帧中之后的字符解析后符合远程数据流规定的信息域,则进入到第二远程状态;否则,则返回到初始状态;在第二远程状态下,如果检测到数据帧携带的数据长度...

【专利技术属性】
技术研发人员:石蟠虹
申请(专利权)人:宁波三星智能电气有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1