本发明涉及汽车通信技术,尤其涉及一种控制器。
背景技术:
目前,CAN总线技术已经广泛应用于各种检测和控制系统中,它是一种有效支持分布式控制系统的串行通信网络,CAN总线将汽车电子设备和汽车底盘的电子控制单元(Electronic Control Unit,ECU)有效的连接了起来,通常CAN总线连接不止一个ECU。
现有技术中,CAN总线系统架构中的两个ECU之间只存在一条CAN路径,当该条CAN路径出现故障时,会造成ECU之间无法通信。因此,亟需提出一种与双冗余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总线接收到的所述第二报文信息中的报文数据;从而实现了对双冗余CAN总线的应用,第一CAN总线和第二CAN总线互为冗余,增强了CAN总线抗失效的能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在 不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明应用双冗余CAN总线的物理结构图;
图2为本发明实施例提供的控制器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明应用双冗余CAN总线的物理结构图,如图1所示,多个电子控制单元(Electronic Control Unit,ECU)连接在两条独立的CAN总线之间,在物理上,以CAN-A为主CAN总线,即本发明实施例中的第一CAN总线,以CAN-B为冗余总线,即本发明实施例中的第二CAN总线。需要说明的是,CAN-A和CAN-B遵循相同的协议,每个ECU向CAN-A和CAN-B发送相同的报文信息。
图2为本发明实施例提供的控制器的结构示意图。如图2所示,该控制器具体用于与第一CAN总线和第二CAN总线通讯,包括:
编码模块11,用于按照预设编码规则对第一报文信息进行编码;其中,所述第一报文信息包含多帧CAN消息;
发送模块12,用于将编码后的所述第一报文信息发送给所述第一CAN总线和所述第二CAN总线;
接收模块13,用于从所述第一CAN总线接收第二报文信息,同时从所述第二CAN总线接收所述第二报文信息;
判断模块14,用于按照判断所述预设判断规则判断所述第二报文信息是否正确;
选择模块15,用于根据预设选择规则,确定所应用的所述第二报文信息;其中,所述预设选择规则包括:从所述第一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总线抗失效的能力。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。