CN105323133A - 一种can总线冗余通信方法及系统 - Google Patents
一种can总线冗余通信方法及系统 Download PDFInfo
- Publication number
- CN105323133A CN105323133A CN201510772072.2A CN201510772072A CN105323133A CN 105323133 A CN105323133 A CN 105323133A CN 201510772072 A CN201510772072 A CN 201510772072A CN 105323133 A CN105323133 A CN 105323133A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- link
- destination node
- source node
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40169—Flexible bus arrangements
- H04L12/40176—Flexible bus arrangements involving redundancy
- H04L12/40182—Flexible bus arrangements involving redundancy by using a plurality of communication lines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种CAN总线冗余通信方法及系统,方法包括:源节点通过自身处理器中保存的链路状态表判断与目标节点之间CAN总线的链路状态是否正常;链路状态表用来表征该节点与其他节点之间CAN总线的链路状态;如果判断源节点与目标节点之间的两条CAN总线的链路状态均正常,则选择一条CAN总线将数据发送至所述目标节点;如果判断所述源节点与目标节点之间仅有一条CAN总线的链路状态正常,则选择正常的CAN总线将数据发送至所述目标节点;如果判断所述源节点与目标节点之间的两条CAN总线的链路状态均故障,则丢弃发送的数据。根据链路状态表选择一条CAN总线传输数据,可以节省链路选择时间,提高了总线的利用率。
Description
技术领域
本发明涉及工业总线控制技术领域,尤其涉及一种CAN总线冗余通信方法及系统。
背景技术
控制器局域网(CAN,ControllerAreaNetwork)总线是国际上应用最广泛的现场总线之一。由于CAN总线支持多主、总线利用率高、节点在错误严重的情况下具有自动退出总线的功能、支持按优先级通信、抗电磁干扰性强、检错能力强等优点,在工业和汽车等领域广泛使用。
虽然CAN总线已经具备较高的可靠性,但单条总线上的任何部位出现故障,仍将可能引起整条总线的通信异常。因此,在工业控制领域,一般采用冗余的方法进一步提高CAN总线的可靠性。
现有技术中CAN总线的冗余通信主要有以下三种情况:
第一种,发送设备在两条冗余CAN总线上同时发送相同的数据帧,接收设备在过滤重复的数据帧后完成数据接收。这种方法首先在重复数据帧过滤时,由于网络延时、总线冲突等原因存在一定技术难点和风险,也增加了节点处理负荷;其次虽然使用两条CAN总线,但实际有效的通信带宽并没有增加到两倍。
第二种,两条CAN总线分别作为工作通道和备用通道,各节点仅在工作通道上发送数据;当工作通道发生故障后,切换到备用通道上发送数据。这种方法虽然实现较简单,不存在过滤重复数据帧的问题,但当两条CAN总线各有一个节点故障时,就无法维持完整的通信链路;其次,这种方法也没有增加实际有效的通信带宽。
第三种,采用通信登记表的方法选择一条CAN总线进行数据传输,但该通信登记表是在每次数据通信前,通过两个节点之间的测试帧临时建立的,这样就在每次通讯前增加了多余的报文和通道选择时间。另外,该将数据按长度分为单帧报文和大批量报文,并在通信异常时采用不同的重传机制。但在很多实际情况中,长度并非数据的最重要特征,数据所要实现的功能更能够代表其本质。
因此,本领域技术人员提供一种CAN总线冗余通信方法及系统,能够保证数据传输的可靠性,并且提高CAN总线的利用率。
发明内容
为了解决现有技术,本发明提供一种CAN总线冗余通信方法及系统,能够保证数据传输的可靠性,并且提高CAN总线的利用率。
本实施例提供一种CAN总线冗余通信方法,应用于CAN总线系统,该系统包括:两条CAN总线和多个节点,所述两条CAN总线分别为第一条CAN总线和第二条CAN总线,每个节点包括:处理器、第一CAN收发器和第二CAN收发器;所述第一CAN收发器连接所述第一条CAN总线,所述第二CAN收发器连接所述第二条CAN总线;包括以下步骤:
源节点通过自身处理器中保存的链路状态表判断与目标节点之间CAN总线的链路状态是否正常;每个所述节点的处理器中均保存所述链路状态表,所述链路状态表用来表征该节点与其他节点之间CAN总线的链路状态;每个节点按照预定周期将节点状态数据广播到所述两条CAN总线上,其他节点按照接收的所述节点状态数据更新自身处理器中的链路状态表;
如果判断所述源节点与目标节点之间的两条CAN总线的链路状态均正常,则选择其中一条CAN总线将数据发送至所述目标节点;所述数据包括实时数据和非实时数据,所述实时数据是指周期性传输,用于节点输入输出或实时处理的数据;所述非实时数据是指非周期性传输,用于节点管理和节点配置的数据;
如果判断所述源节点与目标节点之间仅有一条CAN总线的链路状态正常,则选择正常的CAN总线将数据发送至所述目标节点;
如果判断所述源节点与目标节点之间的两条CAN总线的链路状态均故障,则丢弃发送的数据。
优选地,当所述源节点发送给目标节点的数据为非实时数据时,所述源节点将数据发送至所述目标节点之前还包括:
步骤a:所述源节点通过选择的CAN总线向所述目标节点发送链接请求帧;
步骤b:当所述源节点在预定时间内接收到所述目标节点发送的链接应答帧时,才将数据发送至所述目标节点。
优选地,当所述源节点在预定时间内没有收到所述目标节点发送的链接应答帧时,所述源节点重复执行所述步骤a;
当所述源节点重复执行步骤a预定次数后还没有收到所述目标节点发送的链接应答帧时,丢弃发送的数据;
当所述源节点重复执行步骤a预定次数的过程中,收到所述目标节点发送的链接应答帧时,则发送数据至所述目标节点。
优选地,所述源节点重复执行所述步骤a的过程中,如果第一条CAN总线和第二条CAN总线均正常时,则更换选择的CAN总线。
优选地,还包括:所述源节点将需要发送的数据全部发送至所述目标节点后,所述源节点向所述目标节点发送断开请求帧,如果所述源节点在预定时间内接收到所述目标节点发送的断开应答帧,则停止发送数据。
本发明还提供一种CAN总线冗余通信系统,包括:两条CAN总线和多个节点,所述两条CAN总线分别为第一条CAN总线和第二条CAN总线,每个节点包括:处理器、第一CAN收发器和第二CAN收发器;所述第一CAN收发器连接所述第一条CAN总线,所述第二CAN收发器连接所述第二条CAN总线;每个所述节点的处理器中均保存所述链路状态表,所述链路状态表用来表征该节点与其他节点之间CAN总线的链路状态;每个节点按照预定周期将节点状态数据广播到所述两条CAN总线上,其他节点按照接收的所述节点状态数据更新自身处理器中的链路状态表;
源节点的处理器查询自身保存的链路状态表判断与目标节点之间CAN总线的链路状态是否正常;如果判断所述源节点与目标节点之间的两条CAN总线的链路状态均正常,则选择其中一条CAN总线将数据发送至所述目标节点;所述数据包括实时数据和非实时数据,所述实时数据是指周期性传输,用于节点输入输出或实时处理的数据;所述非实时数据是指非周期性传输,用于节点管理和节点配置的数据;如果判断所述源节点与目标节点之间仅有一条CAN总线的链路状态正常,则选择正常的CAN总线将数据发送至所述目标节点;如果判断所述源节点与目标节点之间的两条CAN总线的链路状态均故障,则丢弃发送的数据。
优选地,当所述源节点发送给目标节点的数据为非实时数据时,所述源节点的处理器包括:控制单元、链接请求单元和应答接收单元;所述CAN收发器包括发送单元;
所述链接请求单元,用于将数据发送至所述目标节点之前,通过选择的CAN总线向所述目标节点发送链接请求帧;
所述应答接收单元,用于判断所述源节点在预定时间内是否接收到所述目标节点发送的链接应答帧;
所述控制单元,用于在所述应答接收单元判断所述源节点在预定时间内接收到所述目标节点发送的链接应答帧时,控制所述发送单元将数据发送至所述目标节点。
优选地,所述源节点的处理器还包括:计时单元;
所述应答接收单元,还用于在所述计时单元计时达到预定时间没有收到所述目标节点发送的链接应答帧,则所述链接请求单元重复向所述目标节点发送链接请求帧;当重复发送链接请求帧预定次数后还没有收到所述目标节点发送的链接应答帧时,所述发送单元丢弃发送的数据;当所述链接请求单元重复发送所述链接请求帧预定次数的过程中,所述应答接收单元收到所述目标节点发送的链接应答帧时,则所述发送单元发送数据至所述目标节点。
优选地,所述链接请求单元重复发送所述链接请求帧预定次数的过程中,如果第一条CAN总线和第二条CAN总线均正常时,则更换选择的CAN总线。
优选地,所述源节点的CAN收发器还包括:断开请求单元和断开应答接收单元;
所述断开请求单元,用于所述发送单元将需要发送的数据全部发送至所述目标节点后,向所述目标节点发送断开请求帧;
所述断开应答接收单元,用于判断是否在预定时间内接收到所述目标节点发送的断开应答帧;
所述控制单元,还用于所述断开应答接收单元在预定时间内接收到所述目标节点发送的断开应答帧时,控制所述发送单元停止发送数据。
与现有技术相比,本发明至少具体以下优点:
将数据分为实时数据、非实时数据和节点状态数据,其中,节点状态数据用来维护链路状态表,每个节点周期性地广播节点状态数据,这样所有节点根据接收的节点状态数据的情况建立自己的链路状态表,而不是在每次发送数据之前才通过测试帧与其他节点建立通信,根据链路状态表选择一条CAN总线传输数据,可以节省链路选择时间,提高了总线的利用率。源节点和目标节点之间传送的数据包括实时数据和非实时数据。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明提供的CAN总线冗余通信方法实施例一流程图;
图2为本发明提供的CAN总线冗余通信系统实施例一示意图;
图3为本发明提供的CAN总线冗余通信方法实施例二流程图;
图4为本发明提供的CAN总线冗余通信系统实施例二示意图;
图5是本发明提供的CAN总线冗余通信系统实施例三示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
方法实施例一:
参见图1,该图为本发明提供的CAN总线冗余通信方法实施例一流程图。
本实施例提供的CAN总线冗余通信方法,应用于CAN总线系统,如图2所示,该图为本发明提供的CAN总线系统示意图。
该系统包括:两条CAN总线和多个节点,所述两条CAN总线分别为第一条CAN总线A和第二条CAN总线B,每个节点包括:处理器201、第一CAN收发器202和第二CAN收发器203;所述第一CAN收发器202连接所述第一条CAN总线A,所述第二CAN收发器203连接所述第二条CAN总线B;如图2所示,两条CAN总线上挂着N个节点,分别是节点1,节点2,直到节点N,所有节点的内部结构是相同的。
本发明实施例提供的方法包括以下步骤:
S101:源节点通过自身处理器中保存的链路状态表判断与目标节点之间CAN总线的链路状态是否正常;每个所述节点的处理器中均保存所述链路状态表,所述链路状态表用来表征该节点与其他节点之间CAN总线的链路状态;每个节点按照预定周期将节点状态数据广播到所述两条CAN总线上,其他节点按照接收的所述节点状态数据更新自身处理器中的链路状态表;
需要说明的是,节点状态数据是为了维护链路状态表,每个节点中都保存链路状态表,通过查询链路状态表可以判断源节点与目标节点之间的链路是否正常。
例如,如果超过2个预定周期未在总线A上接收到某个节点的节点状态数据,或某节点的节点状态数据中表明其总线A上的CAN收发器故障,则在链路状态表中标注与该节点的总线A通信的链接状态故障。若超过2个预定周期未在总线B上接收到某个节点的节点状态数据,或某节点的节点状态数据中表明其总线B上的CAN收发器故障,则在链路状态表中标注与该节点的总线B通信的链接状态故障。
如果在总线A上接收到某个节点的节点状态数据,且该节点的状态数据中表明其总线A上的CAN收发器正常,则在链路状态表中标注与该节点的总线A通信的链接状态正常。若在总线B上接收到某个节点的节点状态数据,且该节点的节点状态数据中申请其总线B上的CAN收发器正常,则在链路状态表中标注与该节点的总线B通信的链接状态正常。
S102:如果判断所述源节点与目标节点之间的两条CAN总线的链路状态均正常,则选择其中一条CAN总线将数据发送至所述目标节点;所述数据包括实时数据和非实时数据,所述实时数据是指周期性传输,用于节点输入输出或实时处理的数据;所述非实时数据是指非周期性传输,用于节点管理和节点配置的数据;
可以理解的是,本实施例中将数据按照功能分为:节点状态数据、实时数据和非实时数据。由于节点状态数据需要维护链路状态表,因此,节点状态数据需要广播到两个CAN总线上。而实时数据和非实时数据只需要选择其中一条CAN总线进行传输即可。
S103:如果判断所述源节点与目标节点之间仅有一条CAN总线的链路状态正常,则选择正常的CAN总线将数据发送至所述目标节点;
S104:如果判断所述源节点与目标节点之间的两条CAN总线的链路状态均故障,则丢弃发送的数据。
本实施例提供的方法,将数据分为实时数据、非实时数据和节点状态数据,其中,节点状态数据用来维护链路状态表,每个节点周期性地广播节点状态数据,这样所有节点根据接收的节点状态数据的情况建立自己的链路状态表,而不是在每次发送数据之前才通过测试帧与其他节点建立通信,根据链路状态表选择一条CAN总线传输数据,可以节省链路选择时间,提高了总线的利用率。源节点和目标节点之间传送的数据包括实时数据和非实时数据。
方法实施例二:
参见图3,该图为本发明提供的CAN总线冗余通信方法实施例二流程图。
由于实时数据是周期性地传输,即使通信失败1-2次,也只是数据延时到达目标节点,使系统的响应时间变长,但是不会造成严重的后果。而非实时数据丢失后可能就无法恢复,造成不可逆的影响,因此,对于非实时数据的传输要求可靠性更高,本发明实施例中提供的方法可以提高非实时数据的传输可靠性,对于实时数据的传输可以依据方法实施例一提供的方法,对于非实时数据也可以采用方法实施例一的方法,优选可以采用本实施例提供的方法。
S301与S101相同,在此不再赘述。
S302:如果判断所述源节点与目标节点之间的两条CAN总线的链路状态均正常,则选择其中一条CAN总线作为通信通道;
需要说明的是,两条CAN总线均正常时,可以根据预先设置的规则进行CAN总线的选择,例如,如果节点地址是偶数则选择总线A,如果节点地址是偶数则选择总线B,这样可以保证两条CAN总线相对平均地分配通信负荷。其中节点可以为源节点,也可以为目标节点。
本实施例提供的CAN总线冗余通信方法,当所述源节点发送给目标节点的数据为非实时数据时,所述源节点将数据发送至所述目标节点之前还包括:
S303:所述源节点通过选择的CAN总线向所述目标节点发送链接请求帧;
S304:判断源节点在预定时间内是否收到目标节点发送的链接应答帧,如果是,则执行S305;如果否,则执行S306;
S305:将数据通过选择的CAN总线发送到目标节点;
S306:所述源节点重复执行所述S303;当所述源节点重复执行S303预定次数后还没有收到所述目标节点发送的链接应答帧时,丢弃发送的数据;当所述源节点重复执行S303预定次数的过程中,收到所述目标节点发送的链接应答帧时,则发送数据至所述目标节点。所述源节点重复执行所述S303的过程中,如果第一条CAN总线和第二条CAN总线均正常时,则更换选择的CAN总线。
S307:所述源节点将需要发送的数据全部发送至所述目标节点后,所述源节点向所述目标节点发送断开请求帧,如果所述源节点在预定时间内接收到所述目标节点发送的断开应答帧,则停止发送数据。
如果在两次数据发送中间,节点发生故障,可能造成发送的实时数据未能正常传输。但因为实时数据周期性的传输,即使通信失败1~2次,也只是引起数据延后达到,造成系统响应时间变长,而不会造成严重后果。因此只要合理设置节点状态数据的传输周期和实时数据的传输周期,保证实时数据可能发生的通信失败次数可以接受,就不会对系统造成实质性后果。
需要说明的是,非实时数据除了节点管理和节点配置的数据以外,还可能包括诊断数据、日志数据等非实时数据。
本实施例提供的方法,对于非实时数据的传输采用建立链接和重发机制,发送数据之前先发送链接请求帧,待收到目标节点的链接应答帧时,才发送数据。如果没有收到链接应答帧,则继续发送链接请求帧,当重复发了N次链接请求帧没有收到链接应答帧时,则丢弃数据。当发送完数据之后,需要发送断开请求帧,当收到断开应答帧时,停止发送数据。如果没有收到断开应答帧,也可以重复发送断开请求帧预定次数。本实施例提供的对于非实时数据的重发机制可以提高非实时数据的可靠性,确保非实时数据最大限度地传输成功。
基于以上实施例提供的一种CAN总线冗余通信方法,本发明实施例还提供一种CAN总线冗余通信系统,下面结合附图对其工作原理进行详细的介绍。
系统实施例一:
继续参见图2,该图为本发明提供的CAN总线冗余通信系统实施例一示意图。
本实施例提供的CAN总线冗余通信系统,包括:两条CAN总线和多个节点,所述两条CAN总线分别为第一条CAN总线A和第二条CAN总线B,每个节点包括:处理器201、第一CAN收发器202和第二CAN收发器203;所述第一CAN收发器202连接所述第一条CAN总线A,所述第二CAN收发器203连接所述第二条CAN总线B;每个所述节点的处理器201中均保存所述链路状态表,所述链路状态表用来表征该节点与其他节点之间CAN总线的链路状态;每个节点按照预定周期将节点状态数据广播到所述两条CAN总线上,其他节点按照接收的所述节点状态数据更新自身处理器中的链路状态表;
源节点的处理器查询自身保存的链路状态表判断与目标节点之间CAN总线的链路状态是否正常;如果判断所述源节点与目标节点之间的两条CAN总线的链路状态均正常,则选择其中一条CAN总线将数据发送至所述目标节点;所述数据包括实时数据和非实时数据,所述实时数据是指周期性传输,用于节点输入输出或实时处理的数据;所述非实时数据是指非周期性传输,用于节点管理和节点配置的数据;如果判断所述源节点与目标节点之间仅有一条CAN总线的链路状态正常,则选择正常的CAN总线将数据发送至所述目标节点;如果判断所述源节点与目标节点之间的两条CAN总线的链路状态均故障,则丢弃发送的数据。
需要说明的是,节点状态数据是为了维护链路状态表,每个节点中都保存链路状态表,通过查询链路状态表可以判断源节点与目标节点之间的链路是否正常。
例如,如果超过2个预定周期未在总线A上接收到某个节点的节点状态数据,或某节点的节点状态数据中表明其总线A上的CAN收发器故障,则在链路状态表中标注与该节点的总线A通信的链接状态故障。若超过2个预定周期未在总线B上接收到某个节点的节点状态数据,或某节点的节点状态数据中表明其总线B上的CAN收发器故障,则在链路状态表中标注与该节点的总线B通信的链接状态故障。
如果在总线A上接收到某个节点的节点状态数据,且该节点的状态数据中表明其总线A上的CAN收发器正常,则在链路状态表中标注与该节点的总线A通信的链接状态正常。若在总线B上接收到某个节点的节点状态数据,且该节点的节点状态数据中申请其总线B上的CAN收发器正常,则在链路状态表中标注与该节点的总线B通信的链接状态正常。
可以理解的是,本实施例中将数据按照功能分为:节点状态数据、实时数据和非实时数据。由于节点状态数据需要维护链路状态表,因此,节点状态数据需要广播到两个CAN总线上。而实时数据和非实时数据只需要选择其中一条CAN总线进行传输即可。
本实施例提供的系统,将数据分为实时数据、非实时数据和节点状态数据,其中,节点状态数据用来维护链路状态表,每个节点周期性地广播节点状态数据,这样所有节点根据接收的节点状态数据的情况建立自己的链路状态表,而不是在每次发送数据之前才通过测试帧与其他节点建立通信,根据链路状态表选择一条CAN总线传输数据,可以节省链路选择时间,提高了总线的利用率。源节点和目标节点之间传送的数据包括实时数据和非实时数据。
系统实施例二:
参见图4,该图为本发明提供的CAN总线冗余通信系统实施例二示意图。
本实施例提供的CAN总线冗余通信系统,当所述源节点发送给目标节点的数据为非实时数据时,所述源节点的处理器包括:控制单元401、链接请求单元402和应答接收单元403;所述CAN收发器包括发送单元404;
所述链接请求单元402,用于将数据发送至所述目标节点之前,通过选择的CAN总线向所述目标节点发送链接请求帧;
所述应答接收单元403,用于判断所述源节点在预定时间内是否接收到所述目标节点发送的链接应答帧;
所述控制单元401,用于在所述应答接收单元403判断所述源节点在预定时间内接收到所述目标节点发送的链接应答帧时,控制所述发送单元404将数据发送至所述目标节点。
所述源节点的处理器还包括:计时单元405;
所述应答接收单元403,还用于在所述计时单元405计时达到预定时间没有收到所述目标节点发送的链接应答帧,则所述链接请求单元402重复向所述目标节点发送链接请求帧;当重复发送链接请求帧预定次数后还没有收到所述目标节点发送的链接应答帧时,所述发送单元404丢弃发送的数据;当所述链接请求单元402重复发送所述链接请求帧预定次数的过程中,所述应答接收单元403收到所述目标节点发送的链接应答帧时,则所述发送单元404发送数据至所述目标节点。
所述链接请求单元402重复发送所述链接请求帧预定次数的过程中,如果第一条CAN总线和第二条CAN总线均正常时,则更换选择的CAN总线。
需要说明的是,两条CAN总线均正常时,可以根据预先设置的规则进行CAN总线的选择,例如,如果节点地址是偶数则选择总线A,如果节点地址是偶数则选择总线B,这样可以保证两条CAN总线相对平均地分配通信负荷。其中节点可以为源节点,也可以为目标节点。
所述源节点的CAN收发器还包括:断开请求单元406和断开应答接收单元407;
所述断开请求单元406,用于所述发送单元将需要发送的数据全部发送至所述目标节点后,向所述目标节点发送断开请求帧;
所述断开应答接收单元407,用于判断是否在预定时间内接收到所述目标节点发送的断开应答帧;
所述控制单元401,还用于所述断开应答接收单元407在预定时间内接收到所述目标节点发送的断开应答帧时,控制所述发送单元403停止发送数据。
由于实时数据是周期性地传输,即使通信失败1-2次,也只是数据延时到达目标节点,使系统的响应时间变长,但是不会造成严重的后果。而非实时数据丢失后可能就无法恢复,造成不可逆的影响,因此,对于非实时数据的传输要求可靠性更高,本发明实施例中提供的方法可以提高非实时数据的传输可靠性。
如果在两次数据发送中间,节点发生故障,可能造成发送的实时数据未能正常传输。但因为实时数据周期性的传输,即使通信失败1~2次,也只是引起数据延后达到,造成系统响应时间变长,而不会造成严重后果。因此只要合理设置节点状态数据的传输周期和实时数据的传输周期,保证实时数据可能发生的通信失败次数可以接受,就不会对系统造成实质性后果。
需要说明的是,非实时数据除了节点管理和节点配置的数据以外,还可能包括诊断数据、日志数据等非实时数据。
本发明系统实施例二仅描述了源节点的内部组成,可以理解的是,CAN冗余总线上挂接的所有节点均可以作为源节点,也可以作为目标节点。下面相对应于源节点的内部组成描述目标节点的内部组成,如图5所示,该图为本发明提供的系统实施例三示意图。
目标节点包括:控制单元401、计时单元405、链接接收单元501、应答发送单元502、断开请求接收单元503、断开应答发送单元504和接收单元505。
其中,链接接收单元501,用于接收源节点的链接请求单元发送的链接请求帧。
应答发送单元502,用于在链接接收单元501接收到所述链接请求帧时,发送链接应答帧给所述源节点的应答接收单元。
断开请求接收单元503,用于接收源节点的断开请求单元发送的断开请求帧;
断开应答发送单元504,用于在断开请求接收单元503收到断开请求帧时,向源节点的断开应答接收单元发送断开应答帧。
所述控制单元401,用于在所述应答发送单元发送链接应答帧后,控制所述接收单元505开始接收源节点发送单元发送的数据。
所述控制单元401,还用于在所述断开应答发送单元发送断开应答帧后,控制所述接收单元505停止源节点发送单元发送的数据。
所述控制单元401,还用于在所述计时单元405计时达到预定时间内接收单元505还没有完成数据的接收,控制接收单元505丢弃接收的数据,并删除已经建立的链接。
需要说明的是,由于所有的节点可能为源节点,也可能为目标节点,因此每个节点的控制单元即具有源节点控制单元的功能,也具有目标节点具有的功能。
本实施例提供的系统,对于非实时数据的传输采用建立链接和重发机制,发送数据之前先发送链接请求帧,待收到目标节点的链接应答帧时,才发送数据。如果没有收到链接应答帧,则继续发送链接请求帧,当重复发了N次链接请求帧没有收到链接应答帧时,则丢弃数据。当发送完数据之后,需要发送断开请求帧,当收到断开应答帧时,停止发送数据。如果没有收到断开应答帧,也可以重复发送断开请求帧预定次数。本实施例提供的对于非实时数据的重发机制可以提高非实时数据的可靠性,确保非实时数据最大限度地传输成功。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (10)
1.一种CAN总线冗余通信方法,其特征在于,应用于CAN总线系统,该系统包括:两条CAN总线和多个节点,所述两条CAN总线分别为第一条CAN总线和第二条CAN总线,每个节点包括:处理器、第一CAN收发器和第二CAN收发器;所述第一CAN收发器连接所述第一条CAN总线,所述第二CAN收发器连接所述第二条CAN总线;包括以下步骤:
源节点通过自身处理器中保存的链路状态表判断与目标节点之间CAN总线的链路状态是否正常;每个所述节点的处理器中均保存所述链路状态表,所述链路状态表用来表征该节点与其他节点之间CAN总线的链路状态;每个节点按照预定周期将节点状态数据广播到所述两条CAN总线上,其他节点按照接收的所述节点状态数据更新自身处理器中的链路状态表;
如果判断所述源节点与目标节点之间的两条CAN总线的链路状态均正常,则选择其中一条CAN总线将数据发送至所述目标节点;所述数据包括实时数据和非实时数据,所述实时数据是指周期性传输,用于节点输入输出或实时处理的数据;所述非实时数据是指非周期性传输,用于节点管理和节点配置的数据;
如果判断所述源节点与目标节点之间仅有一条CAN总线的链路状态正常,则选择正常的CAN总线将数据发送至所述目标节点;
如果判断所述源节点与目标节点之间的两条CAN总线的链路状态均故障,则丢弃发送的数据。
2.根据权利要求1所述的CAN总线冗余通信方法,其特征在于,当所述源节点发送给目标节点的数据为非实时数据时,所述源节点将数据发送至所述目标节点之前还包括:
步骤a:所述源节点通过选择的CAN总线向所述目标节点发送链接请求帧;
步骤b:当所述源节点在预定时间内接收到所述目标节点发送的链接应答帧时,才将数据发送至所述目标节点。
3.根据权利要求2所述的CAN总线冗余通信方法,其特征在于,当所述源节点在预定时间内没有收到所述目标节点发送的链接应答帧时,所述源节点重复执行所述步骤a;
当所述源节点重复执行步骤a预定次数后还没有收到所述目标节点发送的链接应答帧时,丢弃发送的数据;
当所述源节点重复执行步骤a预定次数的过程中,收到所述目标节点发送的链接应答帧时,则发送数据至所述目标节点。
4.根据权利要求3所述的CAN总线冗余通信方法,其特征在于,所述源节点重复执行所述步骤a的过程中,如果第一条CAN总线和第二条CAN总线均正常时,则更换选择的CAN总线。
5.根据权利要求2或3所述的CAN总线冗余通信方法,其特征在于,还包括:所述源节点将需要发送的数据全部发送至所述目标节点后,所述源节点向所述目标节点发送断开请求帧,如果所述源节点在预定时间内接收到所述目标节点发送的断开应答帧,则停止发送数据。
6.一种CAN总线冗余通信系统,其特征在于,包括:两条CAN总线和多个节点,所述两条CAN总线分别为第一条CAN总线和第二条CAN总线,每个节点包括:处理器、第一CAN收发器和第二CAN收发器;所述第一CAN收发器连接所述第一条CAN总线,所述第二CAN收发器连接所述第二条CAN总线;每个所述节点的处理器中均保存所述链路状态表,所述链路状态表用来表征该节点与其他节点之间CAN总线的链路状态;每个节点按照预定周期将节点状态数据广播到所述两条CAN总线上,其他节点按照接收的所述节点状态数据更新自身处理器中的链路状态表;
源节点的处理器查询自身保存的链路状态表判断与目标节点之间CAN总线的链路状态是否正常;如果判断所述源节点与目标节点之间的两条CAN总线的链路状态均正常,则选择其中一条CAN总线将数据发送至所述目标节点;所述数据包括实时数据和非实时数据,所述实时数据是指周期性传输,用于节点输入输出或实时处理的数据;所述非实时数据是指非周期性传输,用于节点管理和节点配置的数据;如果判断所述源节点与目标节点之间仅有一条CAN总线的链路状态正常,则选择正常的CAN总线将数据发送至所述目标节点;如果判断所述源节点与目标节点之间的两条CAN总线的链路状态均故障,则丢弃发送的数据。
7.根据权利要求6所述的CAN总线冗余通信系统,其特征在于,当所述源节点发送给目标节点的数据为非实时数据时,所述源节点的处理器包括:控制单元、链接请求单元和应答接收单元;所述CAN收发器包括发送单元;
所述链接请求单元,用于将数据发送至所述目标节点之前,通过选择的CAN总线向所述目标节点发送链接请求帧;
所述应答接收单元,用于判断所述源节点在预定时间内是否接收到所述目标节点发送的链接应答帧;
所述控制单元,用于在所述应答接收单元判断所述源节点在预定时间内接收到所述目标节点发送的链接应答帧时,控制所述发送单元将数据发送至所述目标节点。
8.根据权利要求7所述的CAN总线冗余通信系统,其特征在于,所述源节点的处理器还包括:计时单元;
所述应答接收单元,还用于在所述计时单元计时达到预定时间没有收到所述目标节点发送的链接应答帧,则所述链接请求单元重复向所述目标节点发送链接请求帧;当重复发送链接请求帧预定次数后还没有收到所述目标节点发送的链接应答帧时,所述发送单元丢弃发送的数据;当所述链接请求单元重复发送所述链接请求帧预定次数的过程中,所述应答接收单元收到所述目标节点发送的链接应答帧时,则所述发送单元发送数据至所述目标节点。
9.根据权利要求8所述的CAN总线冗余通信系统,其特征在于,所述链接请求单元重复发送所述链接请求帧预定次数的过程中,如果第一条CAN总线和第二条CAN总线均正常时,则更换选择的CAN总线。
10.根据权利要求8或9所述的CAN总线冗余通信系统,其特征在于,所述源节点的CAN收发器还包括:断开请求单元和断开应答接收单元;
所述断开请求单元,用于所述发送单元将需要发送的数据全部发送至所述目标节点后,向所述目标节点发送断开请求帧;
所述断开应答接收单元,用于判断是否在预定时间内接收到所述目标节点发送的断开应答帧;
所述控制单元,还用于所述断开应答接收单元在预定时间内接收到所述目标节点发送的断开应答帧时,控制所述发送单元停止发送数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510772072.2A CN105323133A (zh) | 2015-11-12 | 2015-11-12 | 一种can总线冗余通信方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510772072.2A CN105323133A (zh) | 2015-11-12 | 2015-11-12 | 一种can总线冗余通信方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105323133A true CN105323133A (zh) | 2016-02-10 |
Family
ID=55249769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510772072.2A Pending CN105323133A (zh) | 2015-11-12 | 2015-11-12 | 一种can总线冗余通信方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105323133A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110065525A (zh) * | 2019-05-21 | 2019-07-30 | 天津华泽瑞威信息技术有限公司 | 一种铁路lte-r应急机车设备及其实现方法 |
CN110601945A (zh) * | 2019-10-31 | 2019-12-20 | 上海无线电设备研究所 | 一种双冗余can总线通信系统和通信方法 |
CN111010259A (zh) * | 2019-12-25 | 2020-04-14 | 香港大德昌龙生物科技有限公司 | 通信方法和装置、体外诊断设备、计算机可读存储介质 |
CN111031134A (zh) * | 2019-12-17 | 2020-04-17 | 中车株洲电力机车有限公司 | 一种通讯方法及装置 |
CN113775415A (zh) * | 2021-09-10 | 2021-12-10 | 潍柴动力股份有限公司 | 指示灯的驱动状态确定方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286940A (zh) * | 2008-05-12 | 2008-10-15 | 北京邮电大学 | 双冗余can总线通信系统及其通信方法 |
CN101360036A (zh) * | 2007-07-31 | 2009-02-04 | 比亚迪股份有限公司 | Can总线网关控制器及can总线之间数据传输方法 |
CN101582799A (zh) * | 2009-06-22 | 2009-11-18 | 浙江大学 | 基于can冗余的总线切换方法 |
CN101710376A (zh) * | 2009-12-18 | 2010-05-19 | 浙江大学 | 安全计算机3取2表决方法硬件平台 |
CN102055633A (zh) * | 2010-09-29 | 2011-05-11 | 航天东方红卫星有限公司 | 一种星载双can总线节点故障自恢复系统 |
CN103516571A (zh) * | 2013-07-22 | 2014-01-15 | 浙江中控研究院有限公司 | 一种双can总线保证数据通信可靠性的系统架构及其方法 |
CN104866399A (zh) * | 2015-04-03 | 2015-08-26 | 张家祺 | Um-bus总线通道故障检测控制器及检测方法 |
-
2015
- 2015-11-12 CN CN201510772072.2A patent/CN105323133A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101360036A (zh) * | 2007-07-31 | 2009-02-04 | 比亚迪股份有限公司 | Can总线网关控制器及can总线之间数据传输方法 |
CN101286940A (zh) * | 2008-05-12 | 2008-10-15 | 北京邮电大学 | 双冗余can总线通信系统及其通信方法 |
CN101582799A (zh) * | 2009-06-22 | 2009-11-18 | 浙江大学 | 基于can冗余的总线切换方法 |
CN101710376A (zh) * | 2009-12-18 | 2010-05-19 | 浙江大学 | 安全计算机3取2表决方法硬件平台 |
CN102055633A (zh) * | 2010-09-29 | 2011-05-11 | 航天东方红卫星有限公司 | 一种星载双can总线节点故障自恢复系统 |
CN103516571A (zh) * | 2013-07-22 | 2014-01-15 | 浙江中控研究院有限公司 | 一种双can总线保证数据通信可靠性的系统架构及其方法 |
CN104866399A (zh) * | 2015-04-03 | 2015-08-26 | 张家祺 | Um-bus总线通道故障检测控制器及检测方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110065525A (zh) * | 2019-05-21 | 2019-07-30 | 天津华泽瑞威信息技术有限公司 | 一种铁路lte-r应急机车设备及其实现方法 |
CN110601945A (zh) * | 2019-10-31 | 2019-12-20 | 上海无线电设备研究所 | 一种双冗余can总线通信系统和通信方法 |
CN111031134A (zh) * | 2019-12-17 | 2020-04-17 | 中车株洲电力机车有限公司 | 一种通讯方法及装置 |
CN111010259A (zh) * | 2019-12-25 | 2020-04-14 | 香港大德昌龙生物科技有限公司 | 通信方法和装置、体外诊断设备、计算机可读存储介质 |
CN113775415A (zh) * | 2021-09-10 | 2021-12-10 | 潍柴动力股份有限公司 | 指示灯的驱动状态确定方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105323133A (zh) | 一种can总线冗余通信方法及系统 | |
WO2017067327A1 (zh) | 多个智能设备与服务器设备的长连接方法及智能设备 | |
JP2017513371A (ja) | データパケットの処理方法及び装置 | |
CN102685839B (zh) | 物联网通信方法、网关、终端及系统 | |
CN103888215A (zh) | 数据传输方法、装置及通信系统 | |
CN106789493A (zh) | 一种汽车软件刷新控制方法、系统及网关 | |
CN103973414A (zh) | 一种数据传输方法及装置 | |
CN103997436A (zh) | 一种电梯物联网中的链路保持方法和网关 | |
CN101674235B (zh) | 数据传输方法和设备 | |
CN105530155B (zh) | 一种1553b总线全域消息触发控制方法 | |
CN108462537B (zh) | 一种一主多从通信的实现方法 | |
CN110808917B (zh) | 多链路聚合数据重传方法及发送设备 | |
CN103731285A (zh) | 分布式弹性网络互连drni的切换处理方法及装置 | |
CN102082696B (zh) | 一种冗余网络系统以及基于该系统的报文发送方法 | |
CN101867971B (zh) | 持久资源的处理方法、终端以及基站 | |
JP2019521540A (ja) | データ伝送方法、装置及びシステム | |
JPWO2021064921A5 (ja) | 端末、無線通信方法及びシステム | |
CN110719612A (zh) | 一种数据前转的方法和装置 | |
JP5955483B2 (ja) | データ伝送方法、データ受信装置、データ送信装置、基地局、移動局、データ送受信装置及び移動通信システム | |
CN210274135U (zh) | 一种远程连接系统 | |
TWI547191B (zh) | 用於無線系統之管理封包傳輸的方法 | |
CN102523157B (zh) | 通信设备、系统及通信方法 | |
CN102271045A (zh) | 一种基于vpn实例的设备间备份的方法、设备和系统 | |
CN104486329A (zh) | 一种抑制多虚拟局域网注册协议注册消息的方法和装置 | |
WO2014013560A1 (ja) | 無線通信システム、無線通信基地局および無線通信端末 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160210 |