CN112214441B - 基于串行总线轮询协议的通信切换方法、设备和系统 - Google Patents

基于串行总线轮询协议的通信切换方法、设备和系统 Download PDF

Info

Publication number
CN112214441B
CN112214441B CN202011421613.4A CN202011421613A CN112214441B CN 112214441 B CN112214441 B CN 112214441B CN 202011421613 A CN202011421613 A CN 202011421613A CN 112214441 B CN112214441 B CN 112214441B
Authority
CN
China
Prior art keywords
master station
packet
data packet
station
serial bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011421613.4A
Other languages
English (en)
Other versions
CN112214441A (zh
Inventor
贺学文
刘冲
陆建军
孙凌丽
刘小树
张保航
房茂彬
宋小莉
熊辉
李剑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Helishi System Integration Co ltd
Original Assignee
Beijing Hollysys Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Hollysys Co Ltd filed Critical Beijing Hollysys Co Ltd
Priority to CN202011421613.4A priority Critical patent/CN112214441B/zh
Publication of CN112214441A publication Critical patent/CN112214441A/zh
Application granted granted Critical
Publication of CN112214441B publication Critical patent/CN112214441B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明提供了基于串行总线轮询协议的通信切换方法、设备和系统,其中,系统包括第一主站、第二主站和从站,第一主站和第二主站通过第一串行总线与从站通信连接;当第一主站作为当前主用主站且第二主站作为当前备用主站时,第二主站基于串行总线轮询协议从第一串行总线上监听第一主站与从站之间的轮询通信过程,并获得轮询通信过程所包括的正常通信周期的数量,其中,每个正常通信周期均包括:一次请求过程以及对请求过程的一次响应过程;第二主站根据获得的正常通信周期的数量,确定是否需要进行主备切换,若是,则第二主站切换为所述当前主用主站,第一主站切换为当前备用主站,否则第一主站保持为当前主用主站,第二主站保持为当前备用主站。

Description

基于串行总线轮询协议的通信切换方法、设备和系统
技术领域
本发明涉及通信技术领域,特别是涉及一种基于串行总线轮询协议的通信切换方法、设备和系统。
背景技术
目前的数据采集系统经常使用冗余主站的方案,即在主站这一端,一般设置两个主站,在某一个时刻只能有一个主站作为当前主用主站与从站设备通信,另一个主站作为当前备用主站,保持静默状态。而许多从站设备的通信只支持串口单通道,即从站设备只提供一个RS485串口,设备以RS485半双工串行总线模式连接到冗余主站。
从站设备和主站之间的通信通常采用主从应答的方式,那么就必须对串口链路的写操作加以管理,即两个主站要保证不同时向从站设备发送数据请求等指令,否则就会导致链路访问冲突,致使链路数据混乱,使通信失效。目前,解决这个问题的现有方案是在冗余主站之间建立点对点通信,双方协调规约交互过程:在两个主站之间设置以太网或专用串口通道,或同时设置网络和串行通道,分优先级选路,统称为冗余主站的心跳线。双方以“协商”的方式向从站设备发送下行数据,同时,两个主站之间通常也需要通过冗余主站的心跳线相互知悉对方的状态。现有技术要实现串行总线轮询协议下冗余主站切换主备,需要依赖冗余主站的心跳线来进行。一旦冗余主站的心跳线发生故障,则由于冗余主站不能相互知悉对方实际的通信状态,可能会导致当前备用主站误以为当前主用主站与从站设备之间的通信出现故障,从而切换当前主用主站为备用主站,同时,当前备用主站切换为主用主站(简称为:主备切换)。若心跳线长时间故障,则会导致当前备用主站误以为是当前主用主站与从站设备之间的通信出现问题,而持续不断进行主备切换,影响主站与从站设备之间的通信过程。
发明内容
本发明实施例的目的在于提供一种基于串行总线轮询协议的通信切换方法、设备和系统,以实现当前备用主站无需通过心跳线来获取当前主用主站与从站设备之间的通信状态,并且在当前主用主站与从站设备之间的通信出现问题时,可以进行主备切换。避免了因心跳线故障导致当前备用主站误判,从而进行不必要的主备切换,一定程度上可以提高系统的可靠性。具体技术方案如下:
第一方面,一种冗余主站系统,包括:第一主站、第二主站和从站,所述第一主站和所述第二主站通过第一串行总线与所述从站通信连接;
当所述第一主站作为当前主用主站且所述第二主站作为当前备用主站时,所述第二主站基于串行总线轮询协议从所述第一串行总线上监听所述第一主站与所述从站之间的轮询通信过程,并获得所述轮询通信过程所包括的正常通信周期的数量,其中,每个正常通信周期均包括:一次请求过程以及对所述请求过程的一次响应过程;
所述第二主站根据获得的所述正常通信周期的数量,确定是否需要进行主备切换,若是,则所述第二主站切换为所述当前主用主站,所述第一主站切换为所述当前备用主站,否则所述第一主站保持为所述当前主用主站,所述第二主站保持为所述当前备用主站。
第二方面,一种基于串行总线轮询协议的通信切换方法,应用于一种冗余主站系统,所述冗余主站系统包括:第一主站、第二主站和从站;
所述基于串行总线轮询协议的通信切换方法,包括:
所述第一主站作为当前主用主站,基于串行总线轮询协议与所述从站进行轮询通讯过程;
所述第二主站作为当前备用主站,基于串行总线轮询协议监听所述第一主站与所述从站之间的轮询通信过程,以获得所述轮询通信过程中的正常通信周期;
所述第二主站根据获得的所述正常通信周期的数量,确定是否需要进行主备切换,若是,则所述第二主站切换为所述当前主用主站,所述第一主站切换为所述当前备用主站,否则所述第一主站保持为所述当前主用主站,所述第二主站保持为当前备用主站。
结合第二方面,在某些可选的实施方式中,所述轮询通信过程中的一个所述正常通信周期至少包括:第一请求包和第一响应包,所述第一请求包是所述第一主站发送给所述从站的请求包,所述第一响应包是所述从站针对所述第一请求包、在第一预设时间阈值内发送到所述第一主站的响应包。
结合上一个实施方式,在某些可选的实施方式中,所述第二主站作为当前备用主站,基于串行总线轮询协议监听所述第一主站与所述从站之间的轮询通信过程,以获得所述轮询通信过程中的正常通信周期,包括:
所述第二主站作为当前备用主站,基于串行总线轮询协议在第二预设时间阈值到达之前,反复执行下述过程:
所述第二主站获得当前在串行总线中传输的第一数据包;
所述第二主站判断所述第一数据包是否是所述第一请求包,若不是,则丢弃所述第一数据包,并获得在所述串行总线中传输的后续至少一个数据包,直到获得所述第一请求包为止;
在获得所述第一请求包后,所述第二主站获得在所述串行总线中传输的所述第一请求包之后的最近一个数据包,并判断所述最近一个数据包是否是所述第一响应包,若是,则确定所述第二主站获得所述轮询通信过程中的一个所述正常通信周期;
在确定所述第二主站获得所述轮询通信过程中的一个所述正常通信周期后,所述第二主站将所述正常通信周期的数量增大1并获得增大后的正常通信周期的数量,所述正常通信周期的数量的初始值为0。
结合上一个实施方式,在某些可选的实施方式中,所述第二主站判断所述第一数据包是否是所述第一请求包,包括:
所述第二主站获得所述第一数据包中的功能码、检验和、目标地址和数据长度,其中,所述数据长度是所述第一数据包整体所占的字节长度;
所述第二主站从配置信息库中获得所述第一主站所使用的串行总线轮询协议的协议类型;
所述第二主站根据所述协议类型和所述第一数据包中的功能码、检验和、目标地址、数据长度以及所述第一数据包,判断所述第一数据包是否是所述第一请求包。
结合上一个实施方式,在某些可选的实施方式中,所述第二主站根据所述协议类型和所述第一数据包中功能码、检验和、目标地址、数据长度以及所述第一数据包,判断所述第一数据包是否是所述第一请求包,包括:
所述第二主站判断所述第一数据包中功能码、检验和、目标地址、数据长度以及所述第一数据包是否分别满足第一条件、第二条件、第三条件、第四条件和第五条件,若是,则确定所述第一数据包是所述第一请求包,否则,确定所述第一数据包不是所述第一请求包;
其中,所述第一条件是所述第一数据包中的功能码是所述协议类型规定的读取数据功能码;
所述第二条件是所述第一数据包中的校验和,与根据所述第一数据包中的数据计算得到的校验和相等;
所述第三条件是所述目标地址是所述从站的地址;
所述第四条件是所述数据长度不小于所述协议类型规定的最小数据长度;
所述第五条件是所述第一数据包对应的数据读取请求是所述第一主站的轮询表中存在的数据读取请求。
结合第二方面的第二个实施方式,所述判断所述最近一个数据包是否是所述第一响应包,包括:
所述第二主站根据所述最近一个数据包中的目标地址、字节个数、校验和,判断所述最近一个数据包是否是所述第一响应包,其中,所述字节个数是所述最近一个数据包中的目标数据所占的字节的个数。
结合上一个实施方式,在某些可选的实施方式中,所述第二主站根据所述最近一个数据包中的目标地址、字节个数值和校验和,判断所述最近一个数据包是否是所述第一响应包,包括:
所述第二主站判断所述最近一个数据包中的目标地址、字节个数和校验和是否分别满足第六条件、第七条件和第八条件,若是,则确定所述最近一个数据包是所述第一响应包,否则,确定所述最近一个数据包不是所述第一响应包;
其中,所述第六条件是所述最近一个数据包中的目标地址是所述第一主站的地址;
所述第七条件是所述最近一个数据包中的字节个数与所述第一请求包中的功能码相匹配;
所述第八条件是所述最近一个数据包中的校验和,与根据所述最近一个数据包中的数据计算得到的校验和相等。
结合第二方面,在某些可选的实施方式中,所述第二主站根据所述正常通信周期的数量,确定是否需要进行主备切换,包括:
判断所述正常通信周期的数量是否大于预设数量阈值,若大于,则确定不需要进行主备切换,否则,确定需要进行主备切换。
第三方面,一种通信切换设备,所述设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序,所述程序至少用于实现上述任一项所述的基于串行总线轮询协议的通信切换方法。
本发明实施例提供的基于串行总线轮询协议的通信切换方法、设备和系统,通过所述第一主站作为当前主用主站,基于串行总线轮询协议与所述从站进行轮询通讯过程;所述第二主站作为当前备用主站,基于串行总线轮询协议监听所述第一主站与所述从站之间的轮询通信过程,以获得所述轮询通信过程中的正常通信周期;所述第二主站根据获得的所述正常通信周期的数量,确定是否需要进行主备切换,若是,则所述第二主站切换为所述当前主用主站,所述第一主站切换为所述当前备用主站,否则所述第一主站保持为所述当前主用主站,所述第二主站保持为当前备用主站。由此可以看出,本发明可以实现当前备用主站无需通过心跳线来获取当前主用主站与从站设备之间的通信状态,并且在当前主用主站与从站设备之间的通信出现问题时,可以进行主备切换。避免了因心跳线故障导致当前备用主站误判,从而进行不必要的主备切换,一定程度上可以提高系统的可靠性。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种冗余主站系统的结构示意图;
图2为本发明提供的一种基于串行总线轮询协议的通信切换方法的流程图;
图3为本发明提供的另一种基于串行总线轮询协议的通信切换方法的流程图;
图4为本发明提供的一种基于串行总线轮询协议的通信切换装置的结构示意图;
图5为本发明提供的一种通信切换设备的结构示意图。
具体实施方式
冗余主站系统是在设计监控系统的数据采集系统时常用的系统方案,该方案的主要构思点就是构建两个主站与从站设备进行通信,避免因某个主站故障导致监控系统无法获得数据的情况,从而保证监控系统的可靠性。目前,从站设备和主站之间的通信规约一般采用主从应答方式,即必须对串口链路的写操作加以管理,两个主站要保证不同时向从站设备发送数据请求等指令,否则就会导致链路数据混乱,使通信失效。目前,解决这个问题的一种思路是在冗余主站之间建立点对点通信,双方协调规约交互过程:在冗余主站之间设置以太网或专用串口通道,或同时设置网络和串行通道,分优先级选路,以上统称为心跳线。
采用上述心跳线方案时,链路访问冲突管理由数据采集功能借助冗余主站之间的握手机制实现,双方以“协商”的方式来发送下行数据。
同时,冗余主站之间通常也需要通过心跳线相互知悉对方的状态,现有技术要实现串行总线轮询协议下冗余主站的主备切换(当前主用主站切换为备用主站,当前备用主站切换为主用主站,主用主站与从站设备进行轮询通信,备用主站处于静默状态,不与从站设备进行轮询通信),需要依赖心跳线来进行,一旦心跳线发生故障,则由于冗余主站之间不能相互知悉对方实际的通信状态,就则很难再由常规方法实现主备切换,以及会因为心跳线故障导致误判,从而进行不必要的主备切换。
经本发明人研究发现,串行总线上任意一个通信节点发送的报文,在串行总线上的其他节点均能收到该通信节点发送的报文。在半双工串行总线模式下,从站设备和主站之间的通信规约通常采用主从应答方式,即主站要依次向串行总线下的从站设备发送数据请求等指令,每次只能由一个主站给从站设备发送一个请求,从站设备收到请求后按要求向主站反馈应答报文,主站在接收并处理完应答报文后方能给从站设备发送下一个请求,如此循环,简称轮询。基于这个特点,当当前主用主站与从站通信期间,虽然当前备用主站静默不发送报文,但是当前备用主站还是能收到通信主机发送的请求报文以及从站发送的应答报文,并且基于串行总线协议是可以识别当前主用主站发送的请求报文和从站设备发送的应答报文的。即当前备用主站在静默期间所接收到的数据流中,一定依次包含了当前主用主站发送的请求报文以及从站设备发送的应答报文。通过串行总线协议的规约属性,当前备用主站先识别出当前主用主站发送的请求报文,再识别出从站设备发送的应答报文,从而当前备用主站根据接收数据流中所解析出的请求报文和应答报文,可以获悉当前主用主站进行了请求发送并且从站设备进行了应答响应。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明提供了一种冗余主站系统,包括:第一主站、第二主站和从站,所述第一主站和所述第二主站通过第一串行总线与所述从站通信连接;
当所述第一主站作为当前主用主站且所述第二主站作为当前备用主站时,所述第二主站基于串行总线轮询协议从所述第一串行总线上监听所述第一主站与所述从站之间的轮询通信过程,并获得所述轮询通信过程所包括的正常通信周期的数量,其中,每个正常通信周期均包括:一次请求过程以及对所述请求过程的一次响应过程;
所述第二主站根据获得的所述正常通信周期的数量,确定是否需要进行主备切换,若是,则所述第二主站切换为所述当前主用主站,所述第一主站切换为所述当前备用主站,否则所述第一主站保持为所述当前主用主站,所述第二主站保持为所述当前备用主站。
可选的,本发明的第一主站和第二主站之间不通过心跳线进行通信,而是第一主站通过第一串行总线与从站通信连接,第二主站也通过第一串行总线与从站通信连接,使得第二主站可以通过第一串行总线监听第一主站与从站的通信过程,本发明对此不做限制。
可选的,一个正常通信周期可以包括:一次请求过程以及对所述请求过程的一次响应过程,其中,一次请求过程是所述当前主用主站顺利向所述从站发送请求包,且所述从站顺利收到所述请求包的过程;一次响应过程是所述从站在收到所述请求包后,针对所述请求包及时向所述当前主用主站发送响应包,且所述主站接收到所述响应包的过程。且一个正常通信周期必须是先执行一次请求过程再执行一次响应过程,若执行顺序颠倒,则不是一个正常通信周期。
可选的,若当前主用主站无法发送出请求包、或从站无法接收到请求包、或从站接收到的请求包超时或错误,则说明该请求过程不是上述一次请求过程,即该通信周期不是一个正常通信周期。
可选的,若从站无法发送出响应包、或当前主用主站无法接收到响应包、或当前主用主站接收到的响应包超时或错误,则说明该响应过程不是上述一次响应过程,即该通信周期不是一个正常通信周期。
可选的,所述当前主用主站与所述从站进行轮询通信的过程中,所述当前备用主站可以监听所述轮询通信过程,以获得所述当前主用主站与所述从站进行轮询通信的过程中的正常通信周期的数量,该正常通信周期的数量可以是预设时间内、正常通信周期的数量,本发明对此不做限制。
可选的,若正常通信周期的数量大于预设的数量阈值,则说明当前主用主站与从站之间的通信状态良好,无需进行主备切换;若正常通信周期的数量不大于预设的数量阈值,则说明当前主用主站与从站之间的通信状态较差,可以进行主备切换。
可选的,主备切换可以理解为当当前主用主站与从站的通信状态较差时,将当前备用主站切换为当前主用主站,相应地,原来的当前主用主站切换为当前备用主站。在具体一个时刻,仅由当前主用主站与从站进行轮询通信,当前备用主站保持静默状态。
如图2所示,本发明提供了一种基于串行总线轮询协议的通信切换方法,应用于一种冗余主站系统,所述冗余主站系统包括:第一主站、第二主站和从站;
所述基于串行总线轮询协议的通信切换方法,包括:
S100、所述第一主站作为当前主用主站,基于串行总线轮询协议与所述从站进行轮询通讯过程;
可选的,当第一主站作为当前主用主站时,第一主站可以基于串行总线轮询协议与从站进行轮询通信过程,即与从站进行轮询通信。
S200、所述第二主站作为当前备用主站,基于串行总线轮询协议监听所述第一主站与所述从站之间的轮询通信过程,以获得所述轮询通信过程中的正常通信周期;
可选的,当第二主站作为当前备用主站时,第二主站不与从站进行轮询通信,但可以基于串行总线轮询协议监听第一主站与从站之间的轮询通信过程。
可选的,轮询通信过程可以指的是当前主用主站与从站之间进行一问一答的通信过程(当前主用主站向从站发送一个请求包,从站接收到请求包后响应一个响应包;当前主用主站接收到响应包后发送下一个请求包,如此反复循环)。
可选的,一个正常通信周期可以理解为:当前主用主站顺利向从站发送一个请求包,从站接收到该请求包且未超时,从站针对该请求包向当前主用主站发送一个响应包,当前主用主站接收到该响应包且未超时。轮询通信过程中可能存在一些非正常通信周期,也可以理解为非正常通信过程。例如,以当前主用主站向从站发送一个请求包,从站接收到请求包后响应一个响应包,当前主用主站接收到响应包为一个周期。若在该周期内出现下述至少一种情况,则说明该周期是一个非正常通信周期。
情况1:当前主用主站发送的请求包发生错误;
情况2:从站无法接收都请求包或接收到的请求包超时或接收到的请求包不是上述请求包;
情况3:从站无法针对上述请求包发送响应包;
情况4:当前主用主站无法接收到响应包或接收到的响应包超时或接收到的响应包不是针对上述请求包所发送的响应包。
例如,结合图2所示的实施方式,在某些可选的实施方式中,所述轮询通信过程中的一个所述正常通信周期至少包括:第一请求包和第一响应包,所述第一请求包是所述第一主站发送给所述从站的请求包,所述第一响应包是所述从站针对所述第一请求包,在第一预设时间阈值内发送到所述第一主站的响应包。
可选的,第一请求包是第一主站发送给从站且未超时的请求包;第一响应包是从站针对第一请求包发送给第一主站且未超时的响应包,即在第一预设时间阈值内发送到所述第一主站的响应包,本发明对此不做限制。
S300、所述第二主站根据获得的所述正常通信周期的数量,确定是否需要进行主备切换,若是,则执行S310,否则执行S320;
可选的,正常通信周期的数量可以说明当前主用主站与从站之间的通信状态是否良好,即可以根据正常通信周期的数量确定是否需要进行主备切换。例如,可以获得预设时间长度范围内的正常通信周期的数量,结合图2所示的实施方式,在某些可选的实施方式中,所述步骤S300,包括:
判断所述正常通信周期的数量是否大于预设数量阈值,若大于,则确定不需要进行主备切换,否则,则确定需要进行主备切换。
可选的,本文所说的预设时间长度范围和预设数量阈值可以根据实际需要进行设定,本发明对此不做限制。
S310、所述第二主站切换为所述当前主用主站,所述第一主站切换为所述当前备用主站;
可选的,若确定需要进行主备切换,则可以执行步骤S310,并且在所述第二主站切换为当前主用主站后,所述第二主站与从站进行轮询通信过程;所述第一主站切换为当前备用主站后,所述第一主站保持静默状态,直到再次切换为当前主用主站为止。
S320、所述第一主站保持为所述当前主用主站,所述第二主站保持为当前备用主站。
可选的,若确定不需要进行主备切换,则可以执行步骤S320。即所述第一主站继续与从站进行轮询通信过程,所述第二主站继续保持静默状态,直到所述第二主站切换为当前主用主站为止。
如图3所示,结合上一个实施方式,在某些可选的实施方式中,所述步骤S200,包括:
所述第二主站作为当前备用主站,基于串行总线轮询协议在第二预设时间阈值到达之前,反复执行下述过程:
S210、所述第二主站获得当前在串行总线中传输的第一数据包;
可选的,第二预设时间阈值可以理解为统计周期,即以第二预设时间阈值为周期,统计各个周期内的正常通信周期的数量。具体一个周期内的正常通信周期的数量可以说明在该周期的时间段内,当前主用主站与从站之间的通信状况,从而可以在步骤S300中根据正常通信周期的数量确定是否需要进行主备切换。
可选的,所述第二主站获得当前在串行总线中传输的第一数据包,但并不确定该第一数据包一定是下述的第一请求包,该第一数据包也有可能是除第一请求包外的其它数据包。对于第一数据包是除第一请求包外的其它数据包的情况,需要进行一些特殊的处理,例如丢弃或删除该数据包,并重新执行步骤S210,直到获得的第一数据包是第一请求包才执行后续步骤,但该过程并不影响对第二预设时间阈值的计时,本发明对此不做限制。
S220、所述第二主站判断所述第一数据包是否是所述第一请求包,若不是,则执行S230,若是则执行S240;
可选的,串行总线轮询协议可以细分为多种不同的协议,基于不同的协议可以根据相应的报文格式确定第一数据包是否是第一请求包,具体可以参见不同的串行总线轮询协议的详细规约,本发明对此不过多描述。
S230、丢弃所述第一数据包,并获得在所述串行总线中传输的后续至少一个数据包,直到获得所述第一请求包为止;
可选的,基于串行总线轮询协议的特点:采用一问一答的通信方式,在具体一个时刻,串行总线中传输一个数据包,各个数据包按时间的顺序依次传输。所以若第一数据包不是第一请求包,则可以接着获得后续的数据包,直到在获得第一请求包后,可以执行后续的步骤S240。本文所说的直到获得所述第一请求包为止,并不是说终止执行本发明的方法或终止执行后续过程,而是说明若获得的第一数据包不是第一请求包,则不往后执行步骤S240,直到获得的第一数据包是第一请求包后,再往后执行步骤S240。
S240、获得所述第一请求包;
可选的,若确定第一数据包是第一请求包,则可以获得第一数据包,即获得第一请求包。在获得第一请求包后,还可以解析获得的第一请求包中的请求报文,以便于可以根据请求报文执行其他操作,本发明对此不做限制。
S250、在获得所述第一请求包后,所述第二主站获得在所述串行总线中传输的所述第一请求包之后的最近一个数据包,并判断所述最近一个数据包是否是所述第一响应包,若是,则确定所述第二主站获得所述轮询通信过程中的一个所述正常通信周期;
可选的,基于串行总线轮询协议的特点:采用一问一答的通信方式,在具体一个时刻,串行总线中传输一个数据包,各个数据包按时间的顺序依次传输。所以一个正常通信周期除了有第一请求包外,还应该有针对第一请求包的第一响应包,并且第一响应包应该紧跟在第一请求包之后在串行总线中传输。所以可以获得第一请求包之后的最近一个数据包,若该最近一个数据包是第一响应包,则可以确定该第一请求包和该第一响应包构成一个正常通信周期。
若最近一个数据包不是第一响应包,则说明该第一请求包和最近一个数据包构成的周期不是一个正常通信周期,是一个非正常通信周期。这种情况下,可以返回从步骤S210开始往后执行,即反复执行本实施方式提供的方法。
S260、在确定所述第二主站获得所述轮询通信过程中的一个所述正常通信周期后,所述第二主站将所述正常通信周期的数量增大1并获得增大后的正常通信周期的数量,所述正常通信周期的数量的初始值为0。
可选的,本发明可以统计在统计周期内(第二时间阈值内)的正常通信周期的数量,所以可以在确定出一个正常通信周期后,将正常通信周期的数量增大1。
可选的,在每个统计周期刚开始的时候,可以将正常通信周期的数量初始化为0,本发明对此不做限制。
结合上一个实施方式,在某些可选的实施方式中,所述第二主站判断所述第一数据包是否是所述第一请求包,包括:
步骤一、所述第二主站获得所述第一数据包中的功能码、检验和、目标地址和数据长度,其中,所述数据长度是所述第一数据包整体所占的字节长度;
可选的,串行总线轮询协议一般是采用报文的方式传输数据,所以可以通过解析第一请求包从而获得相应的请求报文,并从请求报文中获得功能码、检验和、目标地址和数据长度等信息,本发明对此不做限制。
步骤二、所述第二主站从配置信息库中获得所述第一主站所使用的串行总线轮询协议的协议类型;
可选的,串行总线轮询协议的协议类型不同,则其对功能码、检验和、目标地址和数据长度等信息的规约也不同,所以可以获得串行总线轮询协议的协议类型,以便于执行后续步骤。
步骤三、所述第二主站根据所述协议类型和所述第一数据包中的功能码、检验和、目标地址、数据长度以及所述第一数据包,判断所述第一数据包是否是所述第一请求包。
可选的,串行总线轮询协议的协议类型不同,则判断所述第一数据包是否是所述第一请求包的方法也不同,具体可以参考不同的串行总线轮询协议的规约。
可选的,当第一数据包中的功能码、检验和、目标地址、数据长度以及所述第一数据包均满足所述协议类型的规定时,可以确定第一数据包是第一请求包,否则确定第一数据包不是第一请求包。
结合上一个实施方式,在某些可选的实施方式中,所述步骤三,包括:
所述第二主站判断所述第一数据包中功能码、检验和、目标地址、数据长度以及所述第一数据包是否分别满足第一条件、第二条件、第三条件、第四条件和第五条件,若是,则确定所述第一数据包是所述第一请求包,否则,确定所述第一数据包不是所述第一请求包;
其中,所述第一条件是所述第一数据包中的功能码是所述协议类型规定的读取数据功能码;
所述第二条件是所述第一数据包中的校验和,与根据所述第一数据包中的数据计算得到的校验和相等;
所述第三条件是所述目标地址是所述从站的地址;
所述第四条件是所述数据长度不小于所述协议类型规定的最小数据长度;
所述第五条件是所述第一数据包对应的数据读取请求是所述第一主站的轮询表中存在的数据读取请求。
可选的,当协议类型不同时,本文所说的第一条件、第二条件、第三条件、第四条件和第五条件也不同,具体可以参见相应的协议类型的规约,本分发明对此不做限制。例如,当第一主站所使用的串行总线轮询协议的协议类型是101协议时,则判断所述第一数据包是否是所述第一请求包,包括:
第二主站判断第一数据包的首字节是否为68H,若是则执行下一步骤,否则确定第一数据包不是第一请求包;
第二主站获取第一数据包的第五字节并判断是否第五字节的次高位为1,且第五字节的数据长度合法,且第五字节的校验和合法,若是则确定第一数据包为第一请求包,否则确定第一数据包不是第一请求包。
或者,当第一主站所使用的串行总线轮询协议的协议类型是101协议时,则判断所述第一数据包是否是所述第一请求包,包括:
第二主站判断第一数据的首字节是否为10H,若是则执行下一步骤,否则确定第一数据包不是第一请求包;
第二主站获取第一数据包的第二字节并判断是否所述第二字节的次高位为1,且第二字节的数据长度合法,且第二字节的校验和合法,若是则确定第一数据包是第一请求包,否则确定第一数据包不是第一请求包。
又例如,当第一主站所使用的串行总线轮询协议的协议类型是103协议时,则判断所述第一数据包是否是所述第一请求包,包括:
第二主站判断第一数据包的首字节是否为68H,若是则执行下一步骤,否则确定第一数据包不是第一请求包;
第二主站获取第一数据包的第五字节并判断是否第五字节的次高位为1,且第五字节的数据长度合法,且第五字节的校验和合法,若是则确定第一数据包是第一请求包,否则确定第一数据包不是第一请求包。
或者,当第一主站所使用的串行总线轮询协议的协议类型是103协议时,则判断所述第一数据包是否是所述第一请求包,包括:
第二主站判断第一数据包的首字节是否为10H,若是则执行下一步骤,否则确定第一数据包不是第一请求包;
第二主站获取第一数据包的第二字节并判断是否所述第二字节的次高位为1,且第二字节的数据长度合法,且第二字节的校验和合法,若是则确定第一数据包是第一请求包,否则确定第一数据包不是第一请求包。
可选的,至于如何确定数据长度是否合法、以及如何确定检验和是否合法,均是具体通信协议的常规方法,本发明对此不做过多描述。
结合图3所示的实施方式,在某些可选的实施方式中,所述步骤S250中的判断所述最近一个数据包是否是所述第一响应包,包括:
所述第二主站根据所述最近一个数据包中的目标地址、字节个数、校验和,判断所述最近一个数据包是否是所述第一响应包,其中,所述字节个数是所述最近一个数据包中的目标数据所占的字节的个数。
可选的,判断所述最近一个数据包是否是所述第一响应包的过程也可以根据协议类型以及最近一个数据包中的目标地址、字节个数、校验和进行判断,具体可以参见相应协议类型的规约,本发明对此不做限制。
结合上一个实施方式,在某些可选的实施方式中,所述第二主站根据所述最近一个数据包中的目标地址、字节个数值和校验和,判断所述最近一个数据包是否是所述第一响应包,包括:
所述第二主站判断所述最近一个数据包中的目标地址、字节个数和校验和是否分别满足第六条件、第七条件和第八条件,若是,则确定所述最近一个数据包是所述第一响应包,否则,确定所述最近一个数据包不是所述第一响应包;
其中,所述第六条件是所述最近一个数据包中的目标地址是所述第一主站的地址;
所述第七条件是所述最近一个数据包中的字节个数与所述第一请求包中的功能码相匹配;
所述第八条件是所述最近一个数据包中的校验和,与根据所述最近一个数据包中的数据计算得到的校验和相等。
可选的,对于不同的协议类型,本文所说的第六条件、第七条件和第八条件也不同,具体可以参见相应协议类型的规约,本文不做过多描述。
可选的,本发明还可以设置一个第三预设时间阈值,所述第三预设时间阈值可以避免长时间未发生主备切换带来的安全隐患。若系统从计时开始,到第三预设时间阈值截止时,期间没有发生过一次主备切换,则说明系统长时间未进行主备切换了,为了避免是因为一些未知的故障原因导致系统没有进行主备切换,在第三预设时间阈值截止时,可以进行一次主备切换。若系统从计时开始,到第三预设时间阈值到截止时,期间已经发生过至少一次主备切换,则可以在每次主备切换后将计时清零,重新开始计时,本发明对此不做限制。
如图2所示,本发明提供了一种基于串行总线轮询协议的通信切换装置,包括:第一主站单元100、第二主站单元200、和从站单元300;
所述第一主站单元100,被配置为执行作为当前主用主站,基于串行总线轮询协议与所述从站单元300进行轮询通讯过程;
所述第二主站单元200,被配置为执行作为当前备用主站,基于串行总线轮询协议监听所述第一主站单元100与所述从站单元300之间的轮询通信过程,以获得所述轮询通信过程中的正常通信周期,并根据获得的所述正常通信周期的数量,确定是否需要进行主备切换,若是,则所述第二主站单元200切换为所述当前主用主站,所述第一主站单元100切换为所述当前备用主站,否则所述第一主站单元100保持为所述当前主用主站,所述第二主站单元200保持为当前备用主站。
结合如图2所示的实施方式,在某些可选的实施方式中,所述第二主站单元200执行作为当前备用主站,基于串行总线轮询协议监听所述第一主站单元100与所述从站单元300之间的轮询通信过程,以获得所述轮询通信过程中的正常通信周期,具体包括:
所述轮询通信过程中的一个所述正常通信周期至少包括:第一请求包和第一响应包,所述第一请求包是所述第一主站单元100发送给所述从站单元300的请求包,所述第一响应包是所述从站单元300针对所述第一请求包、在第一预设时间阈值内发送到所述第一主站单元100的响应包;
所述第二主站单元200作为当前备用主站,基于串行总线轮询协议在第二预设时间阈值到达之前,反复执行下述过程:
所述第二主站单元200获得当前在串行总线中传输的第一数据包;
所述第二主站单元200判断所述第一数据包是否是所述第一请求包,若不是,则丢弃所述第一数据包,并获得在所述串行总线中传输的后续至少一个数据包,直到获得所述第一请求包为止;
在获得所述第一请求包后,所述第二主站单元200获得在所述串行总线中传输的所述第一请求包之后的最近一个数据包,并判断所述最近一个数据包是否是所述第一响应包,若是,则确定所述第二主站单元200获得所述轮询通信过程中的一个所述正常通信周期;
在确定所述第二主站单元200获得所述轮询通信过程中的一个所述正常通信周期后,所述第二主站单元200将所述正常通信周期的数量增大1并获得增大后的正常通信周期的数量,所述正常通信周期的数量的初始值为0。
结合上一个实施方式,在某些可选的实施方式中,所述第二主站单元200执行判断所述第一数据包是否是所述第一请求包,具体包括:
所述第二主站单元200获得所述第一数据包中的功能码、检验和、目标地址和数据长度,其中,所述数据长度是所述第一数据包整体所占的字节长度;
所述第二主站单元200从配置信息库中获得所述第一主站单元100所使用的串行总线轮询协议的协议类型;
所述第二主站单元200根据所述协议类型和所述第一数据包中的功能码、检验和、目标地址、数据长度以及所述第一数据包,判断所述第一数据包是否是所述第一请求包。
结合上一个实施方式,在某些可选的实施方式中,所述第二主站单元200执行根据所述协议类型和所述第一数据包中功能码、检验和、目标地址、数据长度以及所述第一数据包,判断所述第一数据包是否是所述第一请求包,具体包括:
所述第二主站单元200判断所述第一数据包中功能码、检验和、目标地址、数据长度以及所述第一数据包是否分别满足第一条件、第二条件、第三条件、第四条件和第五条件,若是,则确定所述第一数据包是所述第一请求包,否则,确定所述第一数据包不是所述第一请求包;
其中,所述第一条件是所述第一数据包中的功能码是所述协议类型规定的读取数据功能码;
所述第二条件是所述第一数据包中的校验和,与根据所述第一数据包中的数据计算得到的校验和相等;
所述第三条件是所述目标地址是所述从站单元300的地址;
所述第四条件是所述数据长度不小于所述协议类型规定的最小数据长度;
所述第五条件是所述第一数据包对应的数据读取请求是所述第一主站单元100的轮询表中存在的数据读取请求。
结合图4实施方式的第二个可选实施方式,所述第二主站单元200执行判断所述最近一个数据包是否是所述第一响应包,具体包括:
所述第二主站单元200根据所述最近一个数据包中的目标地址、字节个数、校验和,判断所述最近一个数据包是否是所述第一响应包,其中,所述字节个数是所述最近一个数据包中的目标数据所占的字节的个数。
结合上一个实施方式,在某些可选的实施方式中,所述第二主站单元200执行根据所述最近一个数据包中的目标地址、字节个数值和校验和,判断所述最近一个数据包是否是所述第一响应包,具体包括:
所述第二主站单元200判断所述最近一个数据包中的目标地址、字节个数和校验和是否分别满足第六条件、第七条件和第八条件,若是,则确定所述最近一个数据包是所述第一响应包,否则,确定所述最近一个数据包不是所述第一响应包;
其中,所述第六条件是所述最近一个数据包中的目标地址是所述第一主站单元100的地址;
所述第七条件是所述最近一个数据包中的字节个数与所述第一请求包中的功能码相匹配;
所述第八条件是所述最近一个数据包中的校验和,与根据所述最近一个数据包中的数据计算得到的校验和相等。
结合图4实施方式,在某些可选的实施方式中,所述第二主站单元200执行根据所述正常通信周期的数量,确定是否需要进行主备切换,具体包括:
判断所述正常通信周期的数量是否大于预设数量阈值,若大于,则确定不需要进行主备切换,否则,确定需要进行主备切换。
所述基于串行总线轮询协议的通信切换装置包括处理器和存储器,上述第一主站单元100、第二主站单元200、和从站单元300等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现当前备用主站无需通过心跳线来获取当前主用主站与从站设备之间的通信状态,并且在当前主用主站与从站设备之间的通信出现问题时,可以进行主备切换。避免了因心跳线故障导致当前备用主站误判,从而进行不必要的主备切换,一定程度上可以提高系统的可靠性。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述基于串行总线轮询协议的通信切换方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述基于串行总线轮询协议的通信切换方法。
如图5所示,本发明实施例提供了一种通信切换设备70,设备70包括至少一个处理器701、以及与处理器701连接的至少一个存储器702、总线703;其中,处理器701、存储器702通过总线703完成相互间的通信;处理器701用于调用存储器702中的程序指令,以执行上述的基于串行总线轮询协议的通信切换方法。本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有上述的基于串行总线轮询协议的通信切换方法包括的步骤的程序。
本申请是参照根据本申请实施例的方法、设备、系统和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在一个典型的配置中,设备包括一个或多个处理器(CPU)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种冗余主站系统,其特征在于,包括:第一主站、第二主站和从站,所述第一主站和所述第二主站通过第一半双工串行总线与所述从站通信连接;
当所述第一主站作为当前主用主站且所述第二主站作为当前备用主站时,所述第二主站基于半双工串行总线轮询协议从所述第一半双工串行总线上监听所述第一主站与所述从站之间的轮询通信过程,并获得所述轮询通信过程所包括的正常通信周期的数量,其中,每个正常通信周期均包括:一次请求过程以及对所述请求过程的一次响应过程,所述第二主站保持静默状态;
所述第二主站根据获得的所述正常通信周期的数量,确定是否需要进行主备切换,若是,则所述第二主站切换为所述当前主用主站,所述第一主站切换为所述当前备用主站,否则所述第一主站保持为所述当前主用主站,所述第二主站保持为所述当前备用主站。
2.一种基于半双工串行总线轮询协议的通信切换方法,其特征在于,应用于一种冗余主站系统,所述冗余主站系统包括:第一主站、第二主站和从站;
所述基于半双工串行总线轮询协议的通信切换方法,包括:
所述第一主站作为当前主用主站,基于半双工串行总线轮询协议与所述从站进行轮询通讯过程;
所述第二主站作为当前备用主站,基于半双工串行总线轮询协议监听所述第一主站与所述从站之间的轮询通信过程,以获得所述轮询通信过程中的正常通信周期,所述第二主站保持静默状态;
所述第二主站根据获得的所述正常通信周期的数量,确定是否需要进行主备切换,若是,则所述第二主站切换为所述当前主用主站,所述第一主站切换为所述当前备用主站,否则所述第一主站保持为所述当前主用主站,所述第二主站保持为当前备用主站。
3.根据权利要求2所述的基于半双工串行总线轮询协议的通信切换方法,其特征在于,所述轮询通信过程中的一个所述正常通信周期至少包括:第一请求包和第一响应包,所述第一请求包是所述第一主站发送给所述从站的请求包,所述第一响应包是所述从站针对所述第一请求包、在第一预设时间阈值内发送到所述第一主站的响应包。
4.根据权利要求3所述的基于半双工串行总线轮询协议的通信切换方法,其特征在于,所述第二主站作为当前备用主站,基于半双工串行总线轮询协议监听所述第一主站与所述从站之间的轮询通信过程,以获得所述轮询通信过程中的正常通信周期,包括:
所述第二主站作为当前备用主站,基于半双工串行总线轮询协议在第二预设时间阈值到达之前,反复执行下述过程:
所述第二主站获得当前在串行总线中传输的第一数据包;
所述第二主站判断所述第一数据包是否是所述第一请求包,若不是,则丢弃所述第一数据包,并获得在所述半双工串行总线中传输的后续至少一个数据包,直到获得所述第一请求包为止;
在获得所述第一请求包后,所述第二主站获得在所述半双工串行总线中传输的所述第一请求包之后的最近一个数据包,并判断所述最近一个数据包是否是所述第一响应包,若是,则确定所述第二主站获得所述轮询通信过程中的一个所述正常通信周期;
在确定所述第二主站获得所述轮询通信过程中的一个所述正常通信周期后,所述第二主站将所述正常通信周期的数量增大1并获得增大后的正常通信周期的数量,所述正常通信周期的数量的初始值为0。
5.根据权利要求4所述的基于半双工串行总线轮询协议的通信切换方法,其特征在于,所述第二主站判断所述第一数据包是否是所述第一请求包,包括:
所述第二主站获得所述第一数据包中的功能码、检验和、目标地址和数据长度,其中,所述数据长度是所述第一数据包整体所占的字节长度;
所述第二主站从配置信息库中获得所述第一主站所使用的半双工串行总线轮询协议的协议类型;
所述第二主站根据所述协议类型和所述第一数据包中的功能码、检验和、目标地址、数据长度以及所述第一数据包,判断所述第一数据包是否是所述第一请求包。
6.根据权利要求5所述的基于半双工串行总线轮询协议的通信切换方法,其特征在于,所述第二主站根据所述协议类型和所述第一数据包中功能码、检验和、目标地址、数据长度以及所述第一数据包,判断所述第一数据包是否是所述第一请求包,包括:
所述第二主站判断所述第一数据包中功能码、检验和、目标地址、数据长度以及所述第一数据包是否分别满足第一条件、第二条件、第三条件、第四条件和第五条件,若是,则确定所述第一数据包是所述第一请求包,否则,确定所述第一数据包不是所述第一请求包;
其中,所述第一条件是所述第一数据包中的功能码是所述协议类型规定的读取数据功能码;
所述第二条件是所述第一数据包中的校验和,与根据所述第一数据包中的数据计算得到的校验和相等;
所述第三条件是所述目标地址是所述从站的地址;
所述第四条件是所述数据长度不小于所述协议类型规定的最小数据长度;
所述第五条件是所述第一数据包对应的数据读取请求是所述第一主站的轮询表中存在的数据读取请求。
7.根据权利要求4所述的基于半双工串行总线轮询协议的通信切换方法,其特征在于,所述判断所述最近一个数据包是否是所述第一响应包,包括:
所述第二主站根据所述最近一个数据包中的目标地址、字节个数、校验和,判断所述最近一个数据包是否是所述第一响应包,其中,所述字节个数是所述最近一个数据包中的目标数据所占的字节的个数。
8.根据权利要求7所述的基于半双工串行总线轮询协议的通信切换方法,其特征在于,所述第二主站根据所述最近一个数据包中的目标地址、字节个数值和校验和,判断所述最近一个数据包是否是所述第一响应包,包括:
所述第二主站判断所述最近一个数据包中的目标地址、字节个数和校验和是否分别满足第六条件、第七条件和第八条件,若是,则确定所述最近一个数据包是所述第一响应包,否则,确定所述最近一个数据包不是所述第一响应包;
其中,所述第六条件是所述最近一个数据包中的目标地址是所述第一主站的地址;
所述第七条件是所述最近一个数据包中的字节个数与所述第一请求包中的功能码相匹配;
所述第八条件是所述最近一个数据包中的校验和,与根据所述最近一个数据包中的数据计算得到的校验和相等。
9.根据权利要求2所述的基于半双工串行总线轮询协议的通信切换方法,其特征在于,所述第二主站根据所述正常通信周期的数量,确定是否需要进行主备切换,包括:
判断所述正常通信周期的数量是否大于预设数量阈值,若大于,则确定不需要进行主备切换,否则,确定需要进行主备切换。
10.一种通信切换设备,其特征在于,所述设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序,所述程序至少用于实现权利要求2至9中任一项所述的基于半双工串行总线轮询协议的通信切换方法。
CN202011421613.4A 2020-12-08 2020-12-08 基于串行总线轮询协议的通信切换方法、设备和系统 Active CN112214441B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011421613.4A CN112214441B (zh) 2020-12-08 2020-12-08 基于串行总线轮询协议的通信切换方法、设备和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011421613.4A CN112214441B (zh) 2020-12-08 2020-12-08 基于串行总线轮询协议的通信切换方法、设备和系统

Publications (2)

Publication Number Publication Date
CN112214441A CN112214441A (zh) 2021-01-12
CN112214441B true CN112214441B (zh) 2021-03-23

Family

ID=74068177

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011421613.4A Active CN112214441B (zh) 2020-12-08 2020-12-08 基于串行总线轮询协议的通信切换方法、设备和系统

Country Status (1)

Country Link
CN (1) CN112214441B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114265808A (zh) * 2021-12-22 2022-04-01 杭州和利时自动化有限公司 一种通信方法、装置、ProfibusDP主站及介质
CN114401212B (zh) * 2022-01-22 2023-08-04 海南电网有限责任公司电力科学研究院 一种双主站通信规约测试的方法
CN114828130B (zh) * 2022-04-01 2024-05-28 Oppo广东移动通信有限公司 终端设备的网络切换方法、终端设备及存储介质
CN115277284B (zh) * 2022-05-26 2024-04-09 广东逸动科技有限公司 通信方法及通信装置、通信系统及计算机可读存储介质
CN115190054B (zh) * 2022-06-30 2024-04-05 海南电网有限责任公司电力科学研究院 一种双主站批量化通信规约分析方法
CN115189985B (zh) * 2022-08-24 2023-09-19 中国科学院沈阳自动化研究所 一种modbus多主站数据规划和转发装置
CN115933512A (zh) * 2022-11-25 2023-04-07 深圳市汇川技术股份有限公司 动态切换方法、装置、设备及计算机可读存储介质
CN118540181A (zh) * 2024-07-25 2024-08-23 杭州康奋威科技股份有限公司 一种csbs物流小车通讯方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106776436A (zh) * 2017-01-12 2017-05-31 烽火通信科技股份有限公司 一种适用于多点互联的高速串行总线结构及其通信方法
CN107992027A (zh) * 2017-12-13 2018-05-04 中核控制系统工程有限公司 一种dcs冗余通信模块切换方法
WO2019074906A1 (en) * 2017-10-10 2019-04-18 Qualcomm Incorporated I3C INTRABAND INTERRUPTIONS DIRECTED TO MULTIPLE EXECUTION ENVIRONMENTS
CN110879565A (zh) * 2019-12-06 2020-03-13 北京和利时智能技术有限公司 双机冗余控制系统及其冗余控制/故障监测方法和装置
CN110992203A (zh) * 2019-10-23 2020-04-10 北京微电子技术研究所 一种基于冗余技术的核电通信控制模块
CN111245687A (zh) * 2020-03-20 2020-06-05 北京和利时系统工程有限公司 一种通信状态更新方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106776436A (zh) * 2017-01-12 2017-05-31 烽火通信科技股份有限公司 一种适用于多点互联的高速串行总线结构及其通信方法
WO2019074906A1 (en) * 2017-10-10 2019-04-18 Qualcomm Incorporated I3C INTRABAND INTERRUPTIONS DIRECTED TO MULTIPLE EXECUTION ENVIRONMENTS
CN107992027A (zh) * 2017-12-13 2018-05-04 中核控制系统工程有限公司 一种dcs冗余通信模块切换方法
CN110992203A (zh) * 2019-10-23 2020-04-10 北京微电子技术研究所 一种基于冗余技术的核电通信控制模块
CN110879565A (zh) * 2019-12-06 2020-03-13 北京和利时智能技术有限公司 双机冗余控制系统及其冗余控制/故障监测方法和装置
CN111245687A (zh) * 2020-03-20 2020-06-05 北京和利时系统工程有限公司 一种通信状态更新方法和装置

Also Published As

Publication number Publication date
CN112214441A (zh) 2021-01-12

Similar Documents

Publication Publication Date Title
CN112214441B (zh) 基于串行总线轮询协议的通信切换方法、设备和系统
US10938710B2 (en) Protection switching method and system, and network device
CN108632099B (zh) 一种链路聚合的故障检测方法及装置
CN107528747B (zh) 主从站通信状态的诊断方法和装置及计算机可读存储介质
CN111884875A (zh) 一种离线设备确定方法及装置
CN112953785B (zh) 用于多核处理器的通信设备的链路检测方法及系统
CN113271238B (zh) Epa系统的链路检测方法、epa设备和计算机介质
CN112671575B (zh) 工作链路的切换方法及装置、存储介质、电子装置
CN110224872B (zh) 一种通信方法、装置及存储介质
CN114095901A (zh) 通信数据处理方法及装置
CN108599984B (zh) 共享端口状态的方法、接入设备及支持双归属保护的系统
CN115412483B (zh) 一种跨设备链路聚合保活报文交互的方法和系统
CN115348652A (zh) 一种无线低功耗有损网络的节点模式设置方法及其装置
EP2953299A1 (en) Protection switching method, system and node
WO2021098477A1 (zh) 信号劣化处理方法、装置及系统
CN110740094B (zh) 一种网络设备、bfd报文的传输方法及装置
CN114158072A (zh) 专网中数据传输的方法和装置
CN108616461B (zh) 一种策略切换方法及装置
CN116325895A (zh) 数据传输方法及相关设备
CN114301852A (zh) 报文传输控制、生成、传输方法及配置方法、设备、介质
US12101251B2 (en) Method and apparatus for switching length of bidirectional forwarding detection packet and storage medium
CN113518024B (zh) 一种节点的地址表刷新方法、装置、终端和存储介质
CN114158067B (zh) 专网中数据传输的方法和装置
WO2024217072A1 (zh) 网络状态的监测方法、电子设备及计算机可读介质
CN111224803A (zh) 一种堆叠系统中多主检测方法及堆叠系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211105

Address after: 100176 room 3412, floor 4, building 3, yard 2, Desheng Middle Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing

Patentee after: Beijing Helishi system integration Co.,Ltd.

Address before: 100176 courtyard 2, Disheng Middle Road, Daxing Economic and Technological Development Zone, Beijing

Patentee before: BEIJING HOLLYSYS Co.,Ltd.