CN104836636A - 基于新型can帧进行通信的方法、装置及*** - Google Patents
基于新型can帧进行通信的方法、装置及*** Download PDFInfo
- Publication number
- CN104836636A CN104836636A CN201510086524.1A CN201510086524A CN104836636A CN 104836636 A CN104836636 A CN 104836636A CN 201510086524 A CN201510086524 A CN 201510086524A CN 104836636 A CN104836636 A CN 104836636A
- Authority
- CN
- China
- Prior art keywords
- node
- frame
- bus
- bus mode
- frame format
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
-
- 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/403—Bus networks with centralised control, e.g. polling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明实施例提供一种基于新型CAN帧进行通信的方法、装置及***。本发明实施例中,通过对原有CAN 2.0帧的数据域进行扩展,使之能够传输更多的数据,同时,还在新帧数据域及校验域中一些固定位置加入固定值,使得CAN 2.0设备能够采样到这些固定值,并完成正确校验,避免发生错误,实现对现有的CAN 2.0设备的兼容。
Description
技术领域
本发明实施例涉及通信技术,尤其涉及一种总线中的数据通讯方法、装置及***。
背景技术
控制器局域网络(Controller Area Network,简称:CAN)是标准化的串行通信总线协议,其最高物理层(Physical layer,简称:PHY)速率为1Mbps/s。灵活数据速率的CAN(CAN with Flexible Data rate,简称:CAN-FD)通过对CAN的PHY的速率提升实现1Mbps/s以上的总线通讯速率。
但是CAN-FD节点与现有的CAN 2.0节点共同工作时,CAN 2.0节点在处理CAN-FD节点的数据时会出现数据填充错误、循环冗余校验码(Cyclic Redundancy Check,简称:CRC)校验错误,导致CAN 2.0节点中断当前CAN通讯,因此,CAN-FD不能与现有的CAN总线方式兼容。
发明内容
本发明实施例提供一种总线中的数据通讯方法、装置及***,以实现第一总线方式的节点在提升PHY的速率的同时兼容现有的总线方式,解决两种总线方式共存时会出现数据填充错误、CRC校验错误,导致CAN 2.0节点中断当前CAN通讯的问题。
第一方面,本发明实施例提供一种总线中的数据通讯方法,所述方法适用于包括至少一个第一总线方式的节点和至少一个第二总线方式的节点的控制器局域网络CAN,所述方法包括:
节点根据预设总线帧确定数据通讯的总线方式,所述预设总线帧的帧格式包括第一帧格式和第二帧格式,所述第一帧格式与所述第一总线方式对应,所述第二帧格式与所述第二总线方式对应,所述预设总线帧包括身份标识,所述身份标识中有预设个数个比特位用于标识所述帧格式;
所述节点采用与确定的所述数据通讯的总线方式对应的帧格式进行通讯。
结合第一方面,在第一方面的第一种可能的实现方式中,所述节点为主节点;
所述节点根据预设总线帧确定数据通讯的总线方式,包括:
所述节点在预设轮询时间到达的时刻,根据所述预设总线帧确定所述数据通讯的总线方式;
所述节点采用与所述数据通讯的总线方式对应的帧格式进行通讯,包括:
所述节点在所述预设轮询时间未到达的时刻,采用与所述数据通讯的总线方式对应的帧格式进行通讯。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述节点为所述第一总线方式的节点;
所述节点在预设轮询时间到达的时刻,根据所述预设总线帧确定所述数据通讯的总线方式,包括:
所述节点在所述预设轮询时间到达的时刻,采用所述第一帧格式的所述预设总线帧对所有其他节点进行轮询;
所述节点接收第一信息应答,所述第一信息应答为所述第一帧格式;
所述节点根据所述第一信息应答获取发送所述第一信息应答的节点的所述身份标识,并将所述发送所述第一信息应答的节点确定为所述第一总线方式的节点,确定采用所述第一总线方式与所述第一总线方式的节点进行通讯;
所述节点在所述预设轮询时间到达的时刻,采用所述第二帧格式的所述预设总线帧对除所述确定为所述第一总线方式的节点外的其他节点进行轮询;
所述节点接收第二信息应答,所述第二信息应答为所述第二帧格式;
所述节点根据所述第二信息应答获取发送所述第二信息应答的节点的所述身份标识,并将所述发送所述第二信息应答的节点确定为所述第二总线方式的节点,确定采用所述第二总线方式与所述第二总线方式的节点进行通讯。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述节点在所述预设轮询时间未到达的时刻,采用与所述数据通讯的总线方式对应的帧格式进行通讯,包括:
所述节点在所述预设轮询时间未到达的时刻,通过所述第一帧格式以所述第一总线方式与所述第一总线方式的节点进行通讯;和/或,
所述节点在所述预设轮询时间未到达的时刻,通过所述第二帧格式以所述第二总线方式与所述第二总线方式的节点进行通讯。
结合第一方面的第一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述节点为所述第二总线方式的节点;
所述节点在预设轮询时间到达的时刻,根据所述预设总线帧确定所述数据通讯的总线方式,包括:
所述节点在所述预设轮询时间到达的时刻,采用所述第二帧格式的所述预设总线帧对所有其他节点进行轮询;
所述节点接收第三信息应答,所述第三信息应答为所述第二帧格式;
所述节点根据所述第三信息应答获取发送所述第三信息应答的节点的所述身份标识,并将所述发送所述第三信息应答的节点确定为所述第二总线方式的节点,确定采用所述第二总线方式与所述第二总线方式的节点进行通讯。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述节点在所述预设轮询时间未到达的时刻,采用与所述数据通讯的总线方式对应的帧格式进行通讯,包括:
所述节点在所述预设轮询时间未到达的时刻,通过所述第二帧格式以所述第二总线方式与所述第二总线方式的节点进行通讯。
结合第一方面的第一种至第五种中任一种可能的实现方式,在第一方面的第六种可能的实现方式中,所述节点根据预设总线帧确定数据通讯的总线方式之前,还包括:
所述节点启动轮询任务,并周期判断所述预设轮询时间是否到达。
结合第一方面,在第一方面的第七种可能的实现方式中,所述节点为从节点;
所述节点根据预设总线帧确定数据通讯的总线方式,包括:
所述节点主动向主节点发起握手通讯,根据所述预设总线帧确定所述数据通讯的总线方式。
结合第一方面的第七种可能的实现方式,在第一方面的第八种可能的实现方式中,所述节点为所述第一总线方式的节点;
所述节点主动向主节点发起握手通讯,根据所述预设总线帧确定所述数据通讯的总线方式,包括:
所述节点向所述主节点发送所述第一帧格式的所述预设总线帧;
所述节点接收所述主节点发送的第四信息应答,且所述第四信息应答为所述第一帧格式;
所述节点确定所述主节点为所述第一总线方式的节点,并采用所述第一总线方式与所述主节点进行通讯。
结合第一方面的第七种可能的实现方式,在第一方面的第九种可能的实现方式中,所述节点为所述第一总线方式的节点;
所述节点主动向主节点发起握手通讯,根据所述预设总线帧确定所述数据通讯的总线方式,包括:
所述节点向所述主节点发送所述第一帧格式的所述预设总线帧;
所述节点在预设超时之后还没有接收到所述主节点发送的所述第四信息应答,则所述节点确定所述主节点为所述第二总线方式的节点,并向所述主节点发送所述第二帧格式的所述预设总线帧;
所述节点接收所述主节点发送的第五信息应答,且所述第五信息应答为所述第二帧格式;
所述节点确定采用所述第二总线方式与所述主节点进行通讯。
结合第一方面的第七种可能的实现方式,在第一方面的第十种可能的实现方式中,所述节点为所述第二总线方式的节点;
所述节点主动向主节点发起握手通讯,根据所述预设总线帧确定所述数据通讯的总线方式,包括:
所述节点向所述主节点发送所述第二帧格式的所述预设总线帧;
所述节点接收所述主节点发送的第六信息应答,且所述第六信息应答为所述第二帧格式,所述主节点包括所述第一总线方式的节点和所述第二总线方式的节点;
所述节点确定采用所述第二总线方式与所述主节点进行通讯。
第二方面,本发明实施例提供一种控制器局域网络CAN节点,即基于新型CAN帧进行通信的CAN设备,所述CAN包括至少一个第一总线方式的节点和至少一个第二总线方式的节点,所述节点包括:
确定模块,用于根据预设总线帧确定数据通讯的总线方式,所述预设总线帧的帧格式包括第一帧格式和第二帧格式,所述第一帧格式与所述第一总线方式对应,所述第二帧格式与所述第二总线方式对应,所述预设总线帧包括身份标识,所述身份标识中有预设个数个比特位用于标识所述帧格式;
通讯模块,用于采用与确定的所述数据通讯的总线方式对应的帧格式进行通讯。
结合第二方面,在第二方面的第一种可能的实现方式中,所述节点为主节点;
所述确定模块,具体用于在预设轮询时间到达的时刻,根据所述预设总线帧确定所述数据通讯的总线方式;
所述通讯模块,具体用于在所述预设轮询时间未到达的时刻,采用与所述数据通讯的总线方式对应的帧格式进行通讯。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述节点为所述第一总线方式的节点;
所述确定模块,具体用于在所述预设轮询时间到达的时刻,采用所述第一帧格式的所述预设总线帧对所有其他节点进行轮询;接收第一信息应答,所述第一信息应答为所述第一帧格式;根据所述第一信息应答获取发送所述第一信息应答的节点的所述身份标识,并将所述发送所述第一信息应答的节点确定为所述第一总线方式的节点,确定采用所述第一总线方式与所述第一总线方式的节点进行通讯;在所述预设轮询时间到达的时刻,采用所述第二帧格式的所述预设总线帧对除所述确定为所述第一总线方式的节点外的其他节点进行轮询;接收第二信息应答,所述第二信息应答为所述第二帧格式;根据所述第二信息应答获取发送所述第二信息应答的节点的所述身份标识,并将所述发送所述第二信息应答的节点确定为所述第二总线方式的节点,确定采用所述第二总线方式与所述第二总线方式的节点进行通讯。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述通讯模块,具体用于在所述预设轮询时间未到达的时刻,通过所述第一帧格式以所述第一总线方式与所述第一总线方式的节点进行通讯;和/或,在所述预设轮询时间未到达的时刻,通过所述第二帧格式以所述第二总线方式与所述第二总线方式的节点进行通讯。
结合第二方面的第一种可能的实现方式,在第二方面的第四种可能的实现方式中,所述节点为所述第二总线方式的节点;
所述确定模块,具体用于在所述预设轮询时间到达的时刻,采用所述第二帧格式的所述预设总线帧对所有其他节点进行轮询;接收第三信息应答,所述第三信息应答为所述第二帧格式;根据所述第三信息应答获取发送所述第三信息应答的节点的所述身份标识,并将所述发送所述第三信息应答的节点确定为所述第二总线方式的节点,确定采用所述第二总线方式与所述第二总线方式的节点进行通讯。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述通讯模块,具体用于在所述预设轮询时间未到达的时刻,通过所述第二帧格式以所述第二总线方式与所述第二总线方式的节点进行通讯。
结合第二方面的第一种至第五种中任一种可能的实现方式,在第二方面的第六种可能的实现方式中,还包括:
判断模块,用于启动轮询任务,并周期判断所述预设轮询时间是否到达。
结合第二方面,在第二方面的第七种可能的实现方式中,所述节点为从节点;
所述确定模块,具体用于主动向主节点发起握手通讯,根据所述预设总线帧确定所述数据通讯的总线方式。
结合第二方面的第七种可能的实现方式,在第二方面的第八种可能的实现方式中,所述节点为所述第一总线方式的节点;
所述确定模块,具体用于向所述主节点发送所述第一帧格式的所述预设总线帧;接收所述主节点发送的第四信息应答,且所述第四信息应答为所述第一帧格式;确定所述主节点为所述第一总线方式的节点,并采用所述第一总线方式与所述主节点进行通讯。
结合第二方面的第七种可能的实现方式,在第二方面的第九种可能的实现方式中,所述节点为所述第一总线方式的节点;
所述确定模块,具体用于向所述主节点发送所述第一帧格式的所述预设总线帧;在预设超时之后还没有接收到所述主节点发送的所述第四信息应答,则所述节点确定所述主节点为所述第二总线方式的节点,并向所述主节点发 送所述第二帧格式的所述预设总线帧;接收所述主节点发送的第五信息应答,且所述第五信息应答为所述第二帧格式;确定采用所述第二总线方式与所述主节点进行通讯。
结合第二方面的第七种可能的实现方式,在第二方面的第十种可能的实现方式中,所述节点为所述第二总线方式的节点;
所述确定模块,具体用于向所述主节点发送所述第二帧格式的所述预设总线帧;接收所述主节点发送的第六信息应答,且所述第六信息应答为所述第二帧格式,所述主节点包括所述第一总线方式的节点和所述第二总线方式的节点;确定采用所述第二总线方式与所述主节点进行通讯。
第三方面,本发明实施例提供一种控制器局域网络CAN***,其特征在于,包括:至少一个第一总线方式的节点和至少一个第二总线方式的节点,其中,所述第一总线方式的节点采用第二方面、第二方面的第一种至第三种、第六种至第九种中任一种可能的实现方式所述的节点,所述第二总线方式的节点采用第二方面、第二方面的第一种、第四种至第七种、第十种中任一种可能的实现方式所述的节点。
本发明实施例总线中的数据通讯方法、装置及***,通过预设总线帧使得CAN中的节点确定进行通讯的总线方式,实现第一总线方式的节点在提升传输速率的同时兼容现有的总线方式,解决两种总线方式共存时会出现数据填充错误、CRC校验错误,导致CAN 2.0节点中断当前CAN通讯的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明CAN***的一个实施例的结构示意图;
图1A为本发明实施例中的总线帧格式示意图;
图2为本发明总线中的数据通讯方法的一个实施例的流程图;
图3为本发明总线中的数据通讯方法的另一个实施例的流程图;
图4为本发明总线中的数据通讯方法的又一个实施例的流程图;
图5为本发明总线中的数据通讯方法的第四个实施例的流程图;
图6为本发明总线中的数据通讯方法的第五个实施例的流程图;
图7为本发明总线中的数据通讯方法的第六个实施例的流程图;
图8为本发明CAN节点的一个实施例的结构示意图;
图9为本发明CAN节点的另一个实施例的结构示意图;
图10为本发明CAN***的另一个实施例的结构示意图;
图11为本发明第一总线方式的节点的一个实施例的结构示意图;
图12为本发明第一总线方式的节点的另一个实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了更方便理解以下各实施例,这里先对CAN协议进行一些简单介绍。经过多年的发展,现有业界所指的CAN协议以及本发明所指的CAN协议都是指CAN 2.0协议(以下简称“CAN 2.0”),CAN 2.0包括两个技术规范,分别是CAN 2.0A以及CAN 2.0B,其中,CAN 2.0A提供了标准的格式,使用11位ID;CAN 2.0B在标准格式上进行了扩展,使用29位ID。由于两者除在格式定义有一些小差别之外,其余处理基本一致,因此,为了说明方便,本发明以下各实施例中并不严格区分CAN 2.0A和CAN 2.0B,而统一使用CAN 2.0来进行说明。对于一些具体的举例说明,默认都是以CAN 2.0B为例,本领域技术人员可以在不付出创造性劳动的情况下基于CAN 2.0A来实现。
下面将通过各实施例来对本发明方案进行具体描述。
实施例一
本发明实施例公开了一种基于新型CAN帧进行通信的方法,该方法应用于如图1所示的CAN网络,该CAN网络包括一个或多个传统的CAN 2.0节点(如节点3、节点4)以及本实施例所提供的一个或多个新型CAN(CAN-HW)节点,如节点1、节点2)。各个节点通过印刷电路板PCB走线或线缆连接在一起,实现总线通讯。图中所示的CAN差分线匹配电阻设置方式跟现有技 术相同,这里不再赘述。
CAN网络中的通信是基于CAN帧来进行,本发明实施例中,新型CAN-HW节点可以使用新的CAN帧与其他CAN-HW节点进行比现有CAN 2.0速率更快的通信,同时,又能够避免背景技术中提到的CAN-FD在与CAN 2.0节点共同工作时产出的各种错误,实现与现有的CAN 2.0实现兼容。
具体的,本发明实施例一种基于新型CAN帧进行通信的方法包括如下步骤:
S11、生成新型CAN帧;
其中,新型CAN帧基于CAN 2.0帧的帧格式生成。这里的“基于”是指除本实施例下文所描述的进行了修改的内容(如某些域的定义)外,其余都可以参见现有的CAN 2.0协议定义的帧格式来进行。
参见图1A,为本实施例CAN 2.0帧以及新型CAN帧(CAN-HW)帧的格式示意图。其中,新型CAN帧包括新型数据域以及新型校验域(即图中的CRC域),新型数据域以及新型校验域分别通过对所述基于CAN 2.0帧的数据域以及校验域进行修改后得到。
具体的,新型数据域包括用户数据子域以及固定数据子域,其中:
用户数据子域的作用跟现有CAN 2.0中的数据域一样,都是用于传输真正的用户数据,但在本实施例中,用户数据子域的位数大于CAN 2.0帧中的数据域的位数;在另一实施例中,用户数据子域的位数可以约等于现有CAN 2.0最大数据位个数的整数倍。例如,假设现有CAN 2.0帧最大支持8字节共64位数据,那么用户数据子域的位数可以是128位(16字节)、或者512位(64字节),或者1024位(128字节)等等。这里的“约等于”表示实际中并不要求严格相等,可以比整数倍略少,少的部分被用于固定数据子域或者其他需要扩展的子域。
固定数据子域包括多个第一固定位组,每个第一固定位组包括一个或多个连续的值相同的第一固定位(0或1),多个第一固定位组被一一设置在多个能被基于CAN 2.0协议的CAN 2.0设备(如图1中的节点3、节点4)采样CAN 2.0数据域时的采样到的位置;优选地,第一固定位组的数量跟CAN 2.0设备要采样的数据位数据的位数一样,例如,假设CAN 2.0帧中的数据域有64位数据,那么在新型CAN帧中,相应地设置64组第一固定位组。需要 说明的是,本实施例中的“第一固定位组”中的前缀“第一”仅用于区分后续提到的用于其他地方(如校验域)中的固定位组,并无其他特殊含义,同理,后续提到的“第二”、“第三”之类的前缀也表示类似的含义。
本实施例中,“基于CAN 2.0协议的CAN 2.0设备”是指现有的能够处理CAN 2.0协议的各种设备,如图1中的节点3、节点4,这些CAN 2.0设备并不认识新型CAN帧的帧格式,对应于这些设备来讲,无论实际上接收到的是新型CAN设备(如节点1)发送的新型CAN帧,还是CAN 2.0设备发送的CAN 2.0帧,都按照处理CAN 2.0协议帧的方式来进行处理。本实施例中,由于每个第一固定位组被一一设置在多个CAN 2.0设备采样CAN 2.0数据域时的位置,即每个第一固定位组对应一个CAN 2.0设备的采样时刻,当CAN 2.0设备收到新型CAN帧后,如果按照CAN 2.0设备定义的方式去采样,那么采样到的就是各个第一固定位组的值(定义为该组中的任意一位的值,由于第一固定位组包括的一个或多个第一固定位的值都相同,因此,可以用“任意一位的值”来表示这个第一固定位组的值)。
下面来介绍如何设置第一固定位组的位置以及包括的固定位的个数,使得第一固定位组能够被CAN 2.0设备采样到。具体的,现有的CAN 2.0设备在采样时,可以通过配置让其以某个特定频率进行采样,并且,还可以配置在哪个相对时刻进行采样。例如,参见图1A,可以配置让CAN 2.0设备其以1MHz的频率进行发送及采样,并且,采样时刻在这个数据位所对应的信号波形的2/3处,在这种情况下,假设网络中CAN 2.0帧中的数据域为64位,新型数据域的位数经扩展后为原来的8倍,相当于原来CAN 2.0帧中的每一数据位在相同时间内被拆分成8份,这样,在CAN 2.0设备中1us传输一个数据,经过拆分后,新型CAN设备要做到1us传输8个数据。由于在2/3处采样,经计算后,1us的2/3约等于0.667us,即对应于第6位,则可以在第6位设置固定位(如图1A所示设为固定值0)。如果新型CAN 2.0帧对原有的数据域的位数扩展得更多,此时,相当于原来CAN 2.0帧中的每个数据位在相同时间内被拆分得更多(例如拆分成32倍),此时,为了防止CAN 2.0设备时钟不够精确导致无法精确地在2/3处采样,则可以在2/3附近再增加一些位数,这样,即使CAN 2.0早采样一点时间,或者晚采样一点时间都可以把固定位的值采样到。
与上述对CAN 2.0帧中的数据域进行修改类似,本实施例也对CAN 2.0帧中的校验域(或者也称CRC域)进行类似的修改。修改后新型CAN帧中的新型校验域位数大于CAN 2.0帧中的校验域的位数,新型校验域包括用户数据校验子域以及固定数据校验子域,其中,用户数据校验子域的值为对用户数据子域进行校验后的第一校验值;固定数据校验子域为对各个第一固定位组的值进行校验得到的第二校验值,固定数据校验子域包括多个第二固定位组,每个第二固定位组包括一个或多个连续的值相同的第二固定位,各个第二固定位组的值(即组中任意一个固定位值)构成上述第二校验值;多个第二固定位组被一一设置在多个能被CAN 2.0设备采样CAN 2.0校验域时采样到的位置,具体设置方法跟新型数据域中对第一固定位组的设置方法类似,这里不再赘述。
S12、发送所述新型CAN帧,其中,所述新型数据域以及所述新型校验域以高于CAN 2.0协议定义的最高发送速率发送。
由于本实施例对CAN 2.0帧中的数据域以及校验域进行了扩展,增加了位数,为了实现高速传输,对这些进行扩展了的域以更高的频率进行发送。例如,如果扩展到8倍,则也可以将频率提升到8倍,如果扩展到16倍,相应的,频率也可提升到16倍。当然,实际中也可以不必精确地提升到8倍或16倍,只要能够将扩展的数据位数进行发送,那么其他发送频率也是可以的。
对于其他数据域,如果没有进行扩展,则仍然按CAN 2.0协议规定的发送速率进行发送。在具体实现上,新型CAN 2.0设备相当于需要有两个寄存器来控制发送速率,一个寄存器用于控制扩展了位数,需要提升收发频率的域的收发频率,另一个寄存器跟现有的CAN 2.0速率控制寄存器一样,用于控制未进行修改的域的收发速率。
通过将新型CAN帧发送到CAN网络后,其他新型CAN设备由于能够识别该帧,因此,可以正确接收,并且,由于在发送的时候已经扩展了CAN 2.0帧的数据域的位数,并且加大频率发送,因此,增了传输速率。同时,现有的CAN 2.0设备在接收到该帧后,可以仍然按原来的采样方式进行采样,由于本实施例在CAN 2.0采样数据域以及校验域的位置处都是固定值,这样,CAN 2.0采样到固定数据子域的值,并进行校验计算后,其值必定与采样到的固定数据校验子域所指示的第二校验值一致,这样,就不会发生校验错误, 从而实现了与CAN 2.0设备的兼容。
实施例二
基于实施例一,本实施例对本方案进行更进一步的说明。
由于在图1所示的组网中有两种CAN帧(CAN设备),为了区分这两种帧,本实施例中,新型CAN帧还可以包括:用于指示CAN帧类型的类型指示子域,用于表明是CAN 2.0帧,或者新型帧。
类型指标子域可以由仲裁域中预留位来实现,例如,利用预留的两位,00表示CAN 2.0帧,11表示新型帧,当然,在这种情况下,CAN 2.0软件也需要对这些预留位进行判断,以判断接收到的是哪种帧格式。
类型指标子域也可以由CAN 2.0帧中的控制域中的R1、R0两位中的至少一位来实现,通过这两位中的至少一位作为所述类型指示子域。
由于此时并没有对这些域的位数进行扩展,因此,这些域仍然按CAN 2.0定义的速率发送。
本实施例中,新型CAN帧还可以包括:用于指示新型数据域中的用户数据子域位数数量的位数指示信息子域。
位数指示信息子域可以通过对CAN2.0中的控制域中的数据位进行扩展的方式来实现,其原理同扩展数据域的方式类似,由于进行了扩展,因此,后续也需要提升这部分的收发速率。此外,如果通过其他域中的预留位表标识,那么则不需要提升该域的收发速率。
本发明实施例中,还设置硬重同步,具体可以在新型CAN帧中的新型数据域中对应于CAN 2.0设备数据域中两位之间设置沿变。例如,新型CAN帧对CAN 2.0帧的数据域扩展了8倍,假设对CAN 2.0帧数据域第1位扩展后的8位为A1-A8,对CAN 2.0帧数据域第2位扩展后的8位为B1-B8,则可以在A8与B1这两位之间设置跳变沿,那么对应的,这两位也需要设置成固定值。
设置硬重同步可以对频率进行校验,防止由于频率偏差不停累加后导致的采样错误。
实施例三
基于上述各实施例,本发明实施例对具体的应用场景进行介绍。参见图1,如前述两实施例所示,第一总线方式为本发明新设计的总线方式,可以称之为CAN-HW,第二总线方式为现有的总线方式,即CAN 2.0,第一总线方式的帧格式与第二总线方式的帧格式可以兼容,即前者的帧格式与后者的帧格式相同,区别在于帧格式中填入的内容不同,因此第二总线方式的节点可以接收到两种总线方式的帧并进行解析,通过标识节点的总线类型的比特位区分帧,而第一总线方式的节点也可以接收到两种总线方式的帧,并且根据帧对应的总线类型确定进行通讯的总线方式。第一总线方式的节点可以同时采用两种总线方式,在提升传输速率的同时又兼容现有总线协议,从而实现两种总线方式混合网络的数据通讯。
图2为本发明总线中的数据通讯方法的一个实施例的流程图,如图2所示,本实施例的方法适用于图1所示的应用场景,该方法可以包括:
步骤101、节点根据预设总线帧确定数据通讯的总线方式;
本实施例中,所述预设总线帧的帧格式包括第一帧格式和第二帧格式,所述第一帧格式与所述第一总线方式对应,所述第二帧格式与所述第二总线方式对应,所述预设总线帧包括身份标识,所述身份标识中有预设个数个比特位用于标识所述帧格式。执行主体节点可以是图1中的任意一个节点。本发明设计第一帧格式:第一帧格式中的仲裁域、确认字符(Acknowledgement,简称:ACK)域和帧结束位与第二帧格式(CAN 2.0格式)相应的域兼容;设计第一帧格式中的控制域和仲裁域的预留比特位,使得第一总线方式的节点可以自动识别总线类型功能,并进行帧格式切换;设计第一帧格式中的数据域和CRC域,可以将PHY的速率提升为原来的N倍(N可以为1、2、3…);在设计数据域和CRC域时,对第二帧格式采用固定位置填充比特位的方式确保不会导致第二总线方式的节点误产生比特位错误、CRC校验错误,从而引发通讯中断。预设总线帧有两种格式,分别与上述两种总线方式对应,通过预设总线帧节点即可确定其对应的总线方式。
步骤102、所述节点采用与确定的所述数据通讯的总线方式对应的帧格式进行通讯。
节点在确定了总线方式后,即可采用该总线方式,并用该总线方式对应的帧格式与其他节点进行通讯,即若该节点是第一总线方式的节点,则该节 点可以采用第一总线方式向其他第一总线方式的节点发送第一帧格式的预设总线帧,还可以采用第二总线方式向其他第二总线方式的节点发送第二帧格式的预设总线帧;若该节点是第二总线方式的节点,则该节点只可以采用第二总线方式向其他节点发送第二帧格式的预设总线帧,由于第一总线方式的节点可以以两种总线方式进行通讯,因此这里的其他节点可以包括第一总线方式的节点和第二总线方式的节点。
本实施例,通过预设总线帧使得CAN中的节点确定进行通讯的总线方式,实现第一总线方式的节点在提升PHY的速率的同时兼容现有的总线方式,解决两种总线方式共存时会出现数据填充错误、CRC校验错误,导致CAN 2.0节点中断当前CAN通讯的问题。
进一步的,上述实施例中的节点为主节点,则步骤101具体的实现方法可以是:所述节点在预设轮询时间到达的时刻,根据所述预设总线帧确定所述数据通讯的总线方式;步骤102具体的实现方法可以是:所述节点在所述预设轮询时间未到达的时刻,采用与所述数据通讯的总线方式对应的帧格式进行通讯。
具体来讲,上述过程根据节点的不同,可以有两种实现流程。下面详细说明。
一种是所述节点为主节点且为所述第一总线方式的节点,所述节点在所述预设轮询时间到达的时刻,采用所述第一帧格式的所述预设总线帧对所有其他节点进行轮询;所述节点接收第一信息应答,所述第一信息应答为所述第一帧格式;所述节点根据所述第一信息应答获取发送所述第一信息应答的节点的所述身份标识,并将所述发送所述第一信息应答的节点确定为所述第一总线方式的节点,确定采用所述第一总线方式与所述第一总线方式的节点进行通讯;所述节点在所述预设轮询时间到达的时刻,采用所述第二帧格式的所述预设总线帧对除所述确定为所述第一总线方式的节点外的其他节点进行轮询;所述节点接收第二信息应答,所述第二信息应答为所述第二帧格式;所述节点根据所述第二信息应答获取发送所述第二信息应答的节点的所述身份标识,并将所述发送所述第二信息应答的节点确定为所述第二总线方式的节点,确定采用所述第二总线方式与所述第二总线方式的节点进行通讯。所述节点在所述预设轮询时间未到达的时刻,通过所述第一帧格式以所述第一 总线方式与所述第一总线方式的节点进行通讯;和/或,所述节点在所述预设轮询时间未到达的时刻,通过所述第二帧格式以所述第二总线方式与所述第二总线方式的节点进行通讯。
图3为本发明总线中的数据通讯方法的另一个实施例的流程图,如图3所示,本实施例的方法适用于图1所示的应用场景,第一总线方式的节点1作为主节点,该方法可以包括:
s201、节点1启动轮询任务,周期判断预设轮询时间是否到达;
当第一总线方式的节点作为主节点,采用令牌方式与CAN中其他节点通讯。节点1通过应用层软件启动定时轮询寻址功能,启动方式可以是上电启动或定时器计时,节点1在轮询时间到达的时刻即对CAN中的所有地址进行轮询,所有地址对应于CAN中的所有节点。
s202、节点1在预设轮询时间到达的时刻,采用第一帧格式的预设总线帧对节点2(3、4)进行轮询;
节点1首先采用第一帧格式轮询所有的节点,本实施例中即为向节点2(3、4)发送第一帧格式的预设总线帧。
s203、节点2采用第一帧格式向节点1发送第一信息应答;
节点2可以同时接收并解析第一帧格式和第二帧格式,根据预设总线帧中的总线类型比特位确定接收到的第一帧格式的,因此节点2自动设置成第一帧格式向节点1发送第一信息应答。
s204、节点3(4)不对节点1发送的第一帧格式的预设总线帧进行应答;
节点3(4)收到第一帧结构的预设总线帧后通过ID滤波功能,不对来自节点1的第一帧结构的预设总线帧进行处理,可以直接丢弃该帧,并且不对该预设总线帧进行应答。
s205、节点1根据第一信息应答获取发送第一信息应答的节点2的ID,并将节点2确定为第一总线方式的节点,确定采用第一总线方式与节点2进行通讯;
节点1上应用软件提取CAN中的第一信息应答,获取发送第一信息应答的节点2的ID,节点1可以通过建表的方式将所有发送第一信息应答的节点归为第一总线方式的节点,建表A,本实施例中即为节点2,节点1由表A的变化刷新CAN中新***或删除节点。
s206、节点1在预设轮询时间到达的时刻,采用第二帧格式的预设总线帧对节点3(4)进行轮询;
节点1再采用第二帧格式轮询除表A中的节点外的节点,本实施例中即为向节点3(4)发送第二帧格式的预设总线帧。
s207、节点3(4)采用第二帧格式向节点1发送第二信息应答;
节点3(4)可以对第二帧格式的预设总线帧进行解析,因此节点3(4)采用第二帧格式向节点1发送第二信息应答。
s208、节点1根据第二信息应答获取发送第二信息应答的节点3(4)的ID,并将节点3(4)确定为第二总线方式的节点,确定采用第二总线方式与节点3(4)进行通讯;
节点1上应用软件提取CAN中的第二信息应答,获取发送第二信息应答的节点3(4)的ID,节点1同样可以通过建表的方式将所有发送第二信息应答的节点归为第二总线方式的节点,建表B,本实施例中即为节点3(4),节点1由表B的变化刷新CAN中新***或删除节点。
s209、节点1在预设轮询时间未到达的时刻,通过第一帧格式以第一总线方式与节点2进行通讯;
节点1上应用层软件判断未启动轮询,节点1如果是与表A中节点(节点2)通讯,可以通过软件主动设置帧格式的方式采用第一帧格式与节点2进行通讯。
s210、节点1在预设轮询时间未到达的时刻,通过第二帧格式以第二总线方式与节点3(4)进行通讯。
节点1上应用层软件判断未启动轮询,节点1如果是与表B中节点(节点3(4))通讯,可以通过软件主动设置帧格式的方式采用第二帧格式与节点3(4)进行通讯。
另一种是所述节点为主节点且为所述第二总线方式的节点,所述节点在所述预设轮询时间到达的时刻,采用所述第二帧格式的所述预设总线帧对所有其他节点进行轮询;所述节点接收第三信息应答,所述第三信息应答为所述第二帧格式;所述节点根据所述第三信息应答获取发送所述第三信息应答的节点的所述身份标识,并将所述发送所述第三信息应答的节点确定为所述第二总线方式的节点,确定采用所述第二总线方式与所述第二总线方式的节 点进行通讯。所述节点在所述预设轮询时间未到达的时刻,通过所述第二帧格式以所述第二总线方式与所述第二总线方式的节点进行通讯。
图4为本发明总线中的数据通讯方法的又一个实施例的流程图,如图4所示,本实施例的方法适用于图1所示的应用场景,第二总线方式的节点3作为主节点,该方法可以包括:
s301、节点3启动轮询任务,周期判断预设轮询时间是否到达;
当第二总线方式的节点作为主节点,采用令牌方式与CAN中其他节点通讯。节点3通过应用层软件启动定时轮询寻址功能,启动方式可以是上电启动或定时器计时,节点3在轮询时间到达的时刻即对CAN中的所有地址进行轮询,所有地址对应于CAN中的所有节点。
s302、节点3在预设轮询时间到达的时刻,采用第二帧格式的预设总线帧对节点1(2、4)进行轮询;
节点3是第二总线方式的节点,只支持第二帧格式,因此节点3采用第二帧格式轮询所有的节点,本实施例中即为向节点1(2、4)发送第二帧格式的预设总线帧。
s303、节点1(2)采用第二帧格式向节点3发送第三信息应答;
节点1(2)可以同时接收并解析第一帧格式和第二帧格式,根据预设总线帧中的总线类型比特位确定接收到的第二帧格式的,因此节点1(2)自动设置成第二帧格式向节点3发送第三信息应答。
s304、节点4采用第二帧格式向节点3发送第三信息应答;
节点4只能处理第二帧格式,根据预设总线帧中的总线类型比特位确定接收到的第二帧格式的,因此节点4自动设置成第二帧格式向节点3发送第三信息应答。
s305、节点3根据第三信息应答获取发送第三信息应答的节点1(2、4)的ID,并确定采用第二总线方式与节点1(2、4)进行通讯;
节点3上应用软件提取CAN中的第三信息应答,获取发送第三信息应答的节点1(2、4)的ID,节点3可以通过建表的方式将所有发送第三信息应答的节点归为第二总线方式的节点,建表C,本实施例中即为节点1(2、4),节点3由表C的变化刷新CAN中新***或删除节点。
s306、节点3在预设轮询时间未到达的时刻,通过第二帧格式以第二总 线方式与节点1(2、4)进行通讯。
节点3上应用层软件判断未启动轮询,节点3与表C中节点(1(2、4))通讯,可以通过软件主动设置帧格式的方式采用第二帧格式与节点1(2、4)进行通讯。
进一步的,上述实施例中的节点为从节点,则步骤101具体的实现方法可以是:所述节点主动向主节点发起握手通讯,根据所述预设总线帧确定所述数据通讯的总线方式。
具体来讲,上述过程根据节点的不同,可以有三种实现流程。下面详细说明。
一种是所述节点为从节点且为所述第一总线方式的节点,所述节点向所述主节点发送所述第一帧格式的所述预设总线帧;所述节点接收所述主节点发送的第四信息应答,且所述第四信息应答为所述第一帧格式;所述节点确定所述主节点为所述第一总线方式的节点,并采用所述第一总线方式与所述主节点进行通讯。
这种情况是主节点为第一总线方式的节点,当第一总线方式的从节点主动发起握手通讯的时候,还不知道主节点是什么类型的节点,因此可以先发送第一帧格式的预设总线帧,如果第一总线方式的从节点收到了主节点发送的第一帧格式的第四信息应答,说明主节点是可以解析出从节点发送的预设总线帧的,而这种节点只有第一总线方式的节点才可以做到,因此从节点就可以以第一总线方式与主节点进行通讯。
图5为本发明总线中的数据通讯方法的第四个实施例的流程图,如图5所示,本实施例的方法适用于图1所示的应用场景,第一总线方式的节点1作为从节点,第一总线方式的节点2作为主节点,该方法可以包括:
s401、从节点1发起握手通讯,向主节点2发送第一帧格式的预设总线帧;
s402、主节点2采用第一帧格式向从节点1发送第四信息应答;
s403、从节点1确定主节点2为第一总线方式的节点;
s404、从节点1采用第一总线方式与主节点2进行通讯。
优选的,主节点2可以根据最近的一次收到的从节点1的预设总线帧的类型与从节点1进行通讯。
另一种是所述节点为从节点且为所述第一总线方式的节点,所述节点向所述主节点发送所述第一帧格式的所述预设总线帧;所述节点在预设超时之后还没有接收到所述主节点发送的所述第四信息应答,则所述节点确定所述主节点为所述第二总线方式的节点,并向所述主节点发送所述第二帧格式的所述预设总线帧;所述节点接收所述主节点发送的第五信息应答,且所述第五信息应答为所述第二帧格式;所述节点确定采用所述第二总线方式与所述主节点进行通讯。
这种情况是主节点为第二总线方式的节点,当第一总线方式的从节点主动发起握手通讯的时候,先发送第一帧格式的预设总线帧,而从节点在预设超时之后还是没有收到主节点的应答,说明主节点没有对从节点发送的第一帧结构的预设总线帧进行应答,优选的,从节点在发出第一帧格式的预设总线帧的同时即可启动定时器。通常情况下第二总线方式的节点是无法对第二帧结构进行解析处理的,因此从节点可以认为主节点是第二总线方式的节点,向其发送第二帧结构的预设总线帧,主节点收到该预设总线帧后根据其ID中的总线类型比特位识别出该帧并发送第二帧结构的第五信息应答,当从节点收到该第五信息应答后,即可采用第二总线方式与主节点进行通讯。
图6为本发明总线中的数据通讯方法的第五个实施例的流程图,如图6所示,本实施例的方法适用于图1所示的应用场景,第一总线方式的节点1作为从节点,第二总线方式的节点3作为主节点,该方法可以包括:
s501、从节点1发起握手通讯,向主节点3发送第一帧格式的预设总线帧;
s502、主节点3不对从节点1发送的第一帧格式的预设总线帧进行应答;
s503、从节点1在预设超时后再向主节点3发送第二帧格式的预设总线帧;
s504、主节点3采用第二帧格式向从节点1发送第五信息应答;
s505、从节点1确定主节点3为第二总线方式的节点;
s506、从节点1采用第二总线方式与主节点3进行通讯。
还有一种是所述节点为从节点且为所述第二总线方式的节点,所述节点向所述主节点发送所述第二帧格式的所述预设总线帧;所述节点接收所述主节点发送的第六信息应答,且所述第六信息应答为所述第二帧格式,所述主 节点包括所述第一总线方式的节点和所述第二总线方式的节点;所述节点确定采用所述第二总线方式与所述主节点进行通讯。
这种情况的主节点既可以是第一总线方式的节点,也可以是第二总线方式的节点,当第二总线方式的从节点主动发起握手通讯的时候,只能发送第二帧结构的预设总线帧,如果主节点是第一总线方式的节点,在收到从节点发送的第二帧结构的预设总线帧后,可以相应的设置为第二总线方式,返回第二帧格式的第六信息应答,如果主节点是第二总线方式的节点,在收到从节点发送的第二帧结构的预设总线帧后,可以对其识别并解析,因此也可以返回第二帧格式的第六信息应答。从节点则采用第二总线方式与主节点进行通讯。
图7为本发明总线中的数据通讯方法的第六个实施例的流程图,如图7所示,本实施例的方法适用于图1所示的应用场景,第二总线方式的节点3作为从节点,第一总线方式的节点1作为主节点,该方法可以包括:
s601、从节点3发起握手通讯,向主节点1发送第二帧格式的预设总线帧;
s602、主节点1设置成第二帧格式向从节点3发送第六信息应答;
s603、从节点3确定主节点1为第二总线方式的节点;
s604、从节点3采用第二总线方式与主节点1进行通讯。
另外,第二总线方式的节点既是主节点,又是从节点的情况是现有技术,此处不再赘述。
图8为本发明CAN节点的一个实施例的结构示意图,如图8所示,本实施例中的节点为图1所示应用场景中的任一节点,本实施例的节点可以包括:确定模块11和通讯模块12,其中,确定模块11,用于根据预设总线帧确定数据通讯的总线方式,所述预设总线帧的帧格式包括第一帧格式和第二帧格式,所述第一帧格式与所述第一总线方式对应,所述第二帧格式与所述第二总线方式对应,所述预设总线帧包括身份标识,所述身份标识中有预设个数个比特位用于标识所述帧格式;通讯模块12,用于采用与确定的所述数据通讯的总线方式对应的帧格式进行通讯。
本实施例的节点,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
进一步的,所述节点为从节点;所述确定模块11,具体用于主动向主节点发起握手通讯,根据所述预设总线帧确定所述数据通讯的总线方式。
进一步的,所述节点为所述第一总线方式的节点;所述确定模块11,具体用于向所述主节点发送所述第一帧格式的所述预设总线帧;接收所述主节点发送的第四信息应答,且所述第四信息应答为所述第一帧格式;确定所述主节点为所述第一总线方式的节点,并采用所述第一总线方式与所述主节点进行通讯。
上述节点可以用于执行图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
进一步的,所述节点为所述第一总线方式的节点;所述确定模块11,具体用于向所述主节点发送所述第一帧格式的所述预设总线帧;在预设超时之后还没有接收到所述主节点发送的所述第四信息应答,则所述节点确定所述主节点为所述第二总线方式的节点,并向所述主节点发送所述第二帧格式的所述预设总线帧;接收所述主节点发送的第五信息应答,且所述第五信息应答为所述第二帧格式;确定采用所述第二总线方式与所述主节点进行通讯。
上述节点可以用于执行图6所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
进一步的,所述节点为所述第二总线方式的节点;所述确定模块11,具体用于向所述主节点发送所述第二帧格式的所述预设总线帧;接收所述主节点发送的第六信息应答,且所述第六信息应答为所述第二帧格式,所述主节点包括所述第一总线方式的节点和所述第二总线方式的节点;确定采用所述第二总线方式与所述主节点进行通讯。
上述节点可以用于执行图7所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图9为本发明CAN节点的另一个实施例的结构示意图,如图9所示,本实施例中的节点为图1所示应用场景中的任一节点,本实施例的节点在图8所示节点结构的基础上,进一步地,还可以包括:判断模块13,用于启动轮询任务,并周期判断所述预设轮询时间是否到达。
所述节点为所述第一总线方式的节点;所述确定模块11,具体用于在所述预设轮询时间到达的时刻,采用所述第一帧格式的所述预设总线帧对所有 其他节点进行轮询;接收第一信息应答,所述第一信息应答为所述第一帧格式;根据所述第一信息应答获取发送所述第一信息应答的节点的所述身份标识,并将所述发送所述第一信息应答的节点确定为所述第一总线方式的节点,确定采用所述第一总线方式与所述第一总线方式的节点进行通讯;在所述预设轮询时间到达的时刻,采用所述第二帧格式的所述预设总线帧对除所述确定为所述第一总线方式的节点外的其他节点进行轮询;接收第二信息应答,所述第二信息应答为所述第二帧格式;根据所述第二信息应答获取发送所述第二信息应答的节点的所述身份标识,并将所述发送所述第二信息应答的节点确定为所述第二总线方式的节点,确定采用所述第二总线方式与所述第二总线方式的节点进行通讯。所述通讯模块12,具体用于在所述预设轮询时间未到达的时刻,通过所述第一帧格式以所述第一总线方式与所述第一总线方式的节点进行通讯;和/或,在所述预设轮询时间未到达的时刻,通过所述第二帧格式以所述第二总线方式与所述第二总线方式的节点进行通讯。
上述节点可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
所述节点为所述第二总线方式的节点;所述确定模块11,具体用于在所述预设轮询时间到达的时刻,采用所述第二帧格式的所述预设总线帧对所有其他节点进行轮询;接收第三信息应答,所述第三信息应答为所述第二帧格式;根据所述第三信息应答获取发送所述第三信息应答的节点的所述身份标识,并将所述发送所述第三信息应答的节点确定为所述第二总线方式的节点,确定采用所述第二总线方式与所述第二总线方式的节点进行通讯。所述通讯模块12,具体用于在所述预设轮询时间未到达的时刻,通过所述第二帧格式以所述第二总线方式与所述第二总线方式的节点进行通讯。
上述节点可以用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图10为本发明CAN***的一个实施例的结构示意图,如图10所示,本实施例的***包括:至少一个第一总线方式的节点11、12和至少一个第二总线方式的节点13、14,其中,所述第一总线方式的节点11、12采用图8或图9所示装置实施例的结构,其对应地,可以执行图2~图7中任一方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述;所述第二总线 方式的节点13、14采用图8或图9所示装置实施例的结构,其对应地,可以执行图2~图7中任一方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图11为本发明第一总线方式的节点的一个实施例的结构示意图,如图11所示,本实施例的节点10可以包括:控制器11和CAN驱动器12,其中,控制器11可以是微控制单元(Micro Control Unit,简称:MCU)或现场可编程门阵列(Field Programmable Gate Array,简称:FPGA),用于执行图2~图7中任一方法实施例的技术方案,此处不再赘述,CAN驱动器12将控制器11的输出转换成CAN差分线的信号,输出至CAN总线,或者将CAN总线上输入的信号转换后反馈给控制器11,实现第一总线方式的节点与CAN总线网络数据交互。
图12为本发明第一总线方式的节点的另一个实施例的结构示意图,如图12所示,第一总线方式的节点的控制器挂在高级高性能总线(Advanced High Performance Bus,简称:AHB)总线上,而AHB总线与控制寄存器连接,第一总线方式的节点的控制器可以包括:数据发送模块11、数据接收模块12以及控制模块13,其中,数据发送模块11还可以包括:发送缓存模块111,用于接收并缓存来自AHB的即要发送的数据,并对发送数据进行并串转换;协议选择模块112,根据控制寄存器命令选择发送数据采用的帧格式,并根据确定的帧格式对发送数据进行编码;发送模块113,根据控制寄存器命令将编码后的发送数据发给CAN驱动器;数据接收模块12还可以包括:数据帧识别模块121,用于接收CAN驱动器发送的数据,并对接收数据进行仲裁、数据帧类型识别,将处理结果反馈给控制寄存器,以使控制寄存器决定数据发送模块11是否继续发送;协议选择模块122,根据控制寄存器命令对接收数据采用对应的帧格式进行采样解调;接收缓存模块123,用于将协议选择模块解调后的接收数据进行串并转换和缓存,并提供AHB总线访问功能;控制模块13,用于实现AHB访问控制、发送帧格式发送、发送速率设置、接收数据状态查询功能。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而 前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (20)
1.一种基于新型CAN帧进行通信的方法,其特征在于,包括:
生成新型CAN帧;
其中,所述新型CAN帧基于CAN 2.0帧的帧格式生成,所述新型CAN帧包括新型数据域以及新型校验域,所述新型数据域以及新型校验域分别通过对所述基于CAN 2.0帧的数据域以及校验域进行修改后得到;
所述新型数据域包括用户数据子域以及固定数据子域,所述用户数据子域的位数大于所述CAN 2.0帧中的数据域的位数;所述固定数据子域包括多个第一固定位组,每个所述第一固定位组包括一个或多个连续的值相同的第一固定位,多个第一固定位组被一一设置在多个能被基于CAN 2.0协议的CAN 2.0设备采样CAN 2.0数据域时采样到的位置;
新型校验域包括用户数据校验子域以及固定数据校验子域,其中,用户数据校验子域的值为对所述用户数据子域进行校验后的第一校验值;所述固定数据校验子域为对各个第一固定位组的值进行校验得到的第二校验值,其中,所述固定数据校验子域包括多个第二固定位组,每个第二固定位组包括一个或多个连续的值相同的第二固定位,各个第二固定位组的值构成上述第二校验值;多个第二固定位组被一一设置在多个能被CAN 2.0设备采样CAN2.0校验域时采样到的位置;
发送所述新型CAN帧,其中,所述新型数据域以及所述新型校验域以高于所述CAN 2.0协议定义的最高发送速率发送。
2.如权利要求1所述的方法,其特征在于,所述新型CAN帧还包括:
用于指示发送的CAN帧类型的类型指示子域。
3.如权利要求1-2任一所述的方法,其特征在于:类型指标子域可以由仲裁域中预留位来实现;或者由CAN 2.0帧中的控制域中的R1、R0两位中的至少一位来实现。
4.如权利要求1-3任一所述的方法,其特征在于:所述新型CAN帧还包括:用于指示新型数据域中的用户数据子域位数数量的位数指示信息子域。
5.如权利要求4所述的方法,其特征在于:位数指示信息子域可以通过对CAN2.0中的控制域中的数据位进行扩展的方式来实现,发送所述新型帧时,对扩展后的控制域采用提升后的速率进行发送。
6.如权利要求1-5任一所述的方法,其特征在于:
在发送的时候通过寄存器设置的值来确定发送的速率,包括两个寄存器,其中一个用于配置提速后发送速率;另一个用于配置基于CAN 2.0的发送速率。
7.如权利要求1-6任一所述的方法,其特征在于,还包括:设置硬重同步。
8.如权利要求7所述的方法,其特征在于,设置硬重同步包括:在新型CAN帧中的新型数据域中对应于CAN 2.0设备数据域中两位之间设置沿变。
9.一种控制器局域网络CAN节点,其特征在于,所述CAN包括至少一个第一总线方式的节点和至少一个第二总线方式的节点,所述节点包括:
确定模块,用于根据预设总线帧确定数据通讯的总线方式,所述预设总线帧的帧格式包括第一帧格式和第二帧格式,所述第一帧格式与所述第一总线方式对应,所述第二帧格式与所述第二总线方式对应,所述预设总线帧包括身份标识,所述身份标识中有预设个数个比特位用于标识所述帧格式;
通讯模块,用于采用与确定的所述数据通讯的总线方式对应的帧格式进行通讯。
10.根据权利要求12所述的节点,其特征在于,所述节点为主节点;
所述确定模块,具体用于在预设轮询时间到达的时刻,根据所述预设总线帧确定所述数据通讯的总线方式;
所述通讯模块,具体用于在所述预设轮询时间未到达的时刻,采用与所述数据通讯的总线方式对应的帧格式进行通讯。
11.根据权利要求13所述的节点,其特征在于,所述节点为所述第一总线方式的节点;
所述确定模块,具体用于在所述预设轮询时间到达的时刻,采用所述第一帧格式的所述预设总线帧对所有其他节点进行轮询;接收第一信息应答,所述第一信息应答为所述第一帧格式;根据所述第一信息应答获取发送所述第一信息应答的节点的所述身份标识,并将所述发送所述第一信息应答的节点确定为所述第一总线方式的节点,确定采用所述第一总线方式与所述第一总线方式的节点进行通讯;在所述预设轮询时间到达的时刻,采用所述第二帧格式的所述预设总线帧对除所述确定为所述第一总线方式的节点外的其他 节点进行轮询;接收第二信息应答,所述第二信息应答为所述第二帧格式;根据所述第二信息应答获取发送所述第二信息应答的节点的所述身份标识,并将所述发送所述第二信息应答的节点确定为所述第二总线方式的节点,确定采用所述第二总线方式与所述第二总线方式的节点进行通讯。
12.根据权利要求14所述的节点,其特征在于,所述通讯模块,具体用于在所述预设轮询时间未到达的时刻,通过所述第一帧格式以所述第一总线方式与所述第一总线方式的节点进行通讯;和/或,在所述预设轮询时间未到达的时刻,通过所述第二帧格式以所述第二总线方式与所述第二总线方式的节点进行通讯。
13.根据权利要求13所述的节点,其特征在于,所述节点为所述第二总线方式的节点;
所述确定模块,具体用于在所述预设轮询时间到达的时刻,采用所述第二帧格式的所述预设总线帧对所有其他节点进行轮询;接收第三信息应答,所述第三信息应答为所述第二帧格式;根据所述第三信息应答获取发送所述第三信息应答的节点的所述身份标识,并将所述发送所述第三信息应答的节点确定为所述第二总线方式的节点,确定采用所述第二总线方式与所述第二总线方式的节点进行通讯。
14.根据权利要求16所述的节点,其特征在于,所述通讯模块,具体用于在所述预设轮询时间未到达的时刻,通过所述第二帧格式以所述第二总线方式与所述第二总线方式的节点进行通讯。
15.根据权利要求13~17中任一项所述的节点,其特征在于,还包括:
判断模块,用于启动轮询任务,并周期判断所述预设轮询时间是否到达。
16.根据权利要求12所述的节点,其特征在于,所述节点为从节点;
所述确定模块,具体用于主动向主节点发起握手通讯,根据所述预设总线帧确定所述数据通讯的总线方式。
17.根据权利要求19所述的节点,其特征在于,所述节点为所述第一总线方式的节点;
所述确定模块,具体用于向所述主节点发送所述第一帧格式的所述预设总线帧;接收所述主节点发送的第四信息应答,且所述第四信息应答为所述第一帧格式;确定所述主节点为所述第一总线方式的节点,并采用所述第一 总线方式与所述主节点进行通讯。
18.根据权利要求19所述的节点,其特征在于,所述节点为所述第一总线方式的节点;
所述确定模块,具体用于向所述主节点发送所述第一帧格式的所述预设总线帧;在预设超时之后还没有接收到所述主节点发送的所述第四信息应答,则所述节点确定所述主节点为所述第二总线方式的节点,并向所述主节点发送所述第二帧格式的所述预设总线帧;接收所述主节点发送的第五信息应答,且所述第五信息应答为所述第二帧格式;确定采用所述第二总线方式与所述主节点进行通讯。
19.根据权利要求19所述的节点,其特征在于,所述节点为所述第二总线方式的节点;
所述确定模块,具体用于向所述主节点发送所述第二帧格式的所述预设总线帧;接收所述主节点发送的第六信息应答,且所述第六信息应答为所述第二帧格式,所述主节点包括所述第一总线方式的节点和所述第二总线方式的节点;确定采用所述第二总线方式与所述主节点进行通讯。
20.一种控制器局域网络CAN***,其特征在于,包括:至少一个第一总线方式的节点和至少一个第二总线方式的节点,其中,所述第一总线方式的节点采用权利要求12~15、18~21中任一项所述的节点,所述第二总线方式的节点采用权利要求12~13、16~19、22中任一项所述的节点。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510086524.1A CN104836636B (zh) | 2015-02-17 | 2015-02-17 | 基于新型can帧进行通信的方法、装置及*** |
PCT/CN2016/073765 WO2016131404A1 (zh) | 2015-02-17 | 2016-02-14 | 基于新型can帧进行通信的方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510086524.1A CN104836636B (zh) | 2015-02-17 | 2015-02-17 | 基于新型can帧进行通信的方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104836636A true CN104836636A (zh) | 2015-08-12 |
CN104836636B CN104836636B (zh) | 2019-02-26 |
Family
ID=53814297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510086524.1A Active CN104836636B (zh) | 2015-02-17 | 2015-02-17 | 基于新型can帧进行通信的方法、装置及*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104836636B (zh) |
WO (1) | WO2016131404A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016131404A1 (zh) * | 2015-02-17 | 2016-08-25 | 华为技术有限公司 | 基于新型can帧进行通信的方法、装置及*** |
CN109905306A (zh) * | 2019-01-30 | 2019-06-18 | 北京深蓝同创科技有限公司 | 一种低成本多主总线通信控制*** |
CN111935728A (zh) * | 2020-07-10 | 2020-11-13 | 展讯半导体(成都)有限公司 | 一种握手方法、装置、相关设备、存储介质及*** |
CN111935725A (zh) * | 2020-07-10 | 2020-11-13 | 展讯半导体(成都)有限公司 | 通信时序规划方法、装置、相关设备、存储介质及*** |
CN116667971A (zh) * | 2023-07-28 | 2023-08-29 | 常州星宇车灯股份有限公司 | Can数据报文发送校验方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1560806A (zh) * | 2004-03-04 | 2005-01-05 | 深圳市泛海三江电子有限公司 | 基于can2.0b的火灾报警应用层数据传输方法 |
CN101808132A (zh) * | 2010-03-23 | 2010-08-18 | 武汉若比特机器人有限公司 | 一种can总线***中的应用层通讯方法 |
KR20110057348A (ko) * | 2009-11-24 | 2011-06-01 | 한국전자통신연구원 | Can 통신 보안 장치 및 방법 |
CN104301177A (zh) * | 2014-10-08 | 2015-01-21 | 清华大学 | Can报文异常检测方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104836636B (zh) * | 2015-02-17 | 2019-02-26 | 华为技术有限公司 | 基于新型can帧进行通信的方法、装置及*** |
-
2015
- 2015-02-17 CN CN201510086524.1A patent/CN104836636B/zh active Active
-
2016
- 2016-02-14 WO PCT/CN2016/073765 patent/WO2016131404A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1560806A (zh) * | 2004-03-04 | 2005-01-05 | 深圳市泛海三江电子有限公司 | 基于can2.0b的火灾报警应用层数据传输方法 |
KR20110057348A (ko) * | 2009-11-24 | 2011-06-01 | 한국전자통신연구원 | Can 통신 보안 장치 및 방법 |
CN101808132A (zh) * | 2010-03-23 | 2010-08-18 | 武汉若比特机器人有限公司 | 一种can总线***中的应用层通讯方法 |
CN104301177A (zh) * | 2014-10-08 | 2015-01-21 | 清华大学 | Can报文异常检测方法及*** |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016131404A1 (zh) * | 2015-02-17 | 2016-08-25 | 华为技术有限公司 | 基于新型can帧进行通信的方法、装置及*** |
CN109905306A (zh) * | 2019-01-30 | 2019-06-18 | 北京深蓝同创科技有限公司 | 一种低成本多主总线通信控制*** |
CN111935728A (zh) * | 2020-07-10 | 2020-11-13 | 展讯半导体(成都)有限公司 | 一种握手方法、装置、相关设备、存储介质及*** |
CN111935725A (zh) * | 2020-07-10 | 2020-11-13 | 展讯半导体(成都)有限公司 | 通信时序规划方法、装置、相关设备、存储介质及*** |
CN111935725B (zh) * | 2020-07-10 | 2023-01-31 | 展讯半导体(成都)有限公司 | 通信时序规划方法、装置、相关设备、存储介质及*** |
CN116667971A (zh) * | 2023-07-28 | 2023-08-29 | 常州星宇车灯股份有限公司 | Can数据报文发送校验方法、装置、计算机设备及存储介质 |
CN116667971B (zh) * | 2023-07-28 | 2023-10-27 | 常州星宇车灯股份有限公司 | Can数据报文发送校验方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104836636B (zh) | 2019-02-26 |
WO2016131404A1 (zh) | 2016-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106951388B (zh) | 一种基于PCIe的DMA数据传输方法及*** | |
CN104836636A (zh) | 基于新型can帧进行通信的方法、装置及*** | |
RU2596582C2 (ru) | Способ и устройство для адаптируемой к размерам памяти последовательной передачи данных | |
CN104954096B (zh) | 一种一主多从的高速同步串行通信数据传输方法 | |
CN104113517A (zh) | 时间戳生成方法、装置及*** | |
CN104811273A (zh) | 一种高速单总线通信的实现方法 | |
CN106959935B (zh) | 一种兼容i2c通信与ipmb通信的方法 | |
CN103401726A (zh) | 网络路径探测方法及装置、*** | |
CN107025203B (zh) | 第一板卡、第二板卡及一种设备 | |
JPH1083375A (ja) | Scsiシステム | |
CN102821082A (zh) | 一种数据传输方法、装置和*** | |
US10474604B2 (en) | Transmitting universal serial bus (USB) data over alternate mode connection | |
CN103178943A (zh) | 用于链路自适应的方法、装置和*** | |
CN104899164B (zh) | 集成电路总线的地址寻址方法、集成电路总线设备和*** | |
CN104615573A (zh) | 一种通信方法及装置 | |
CN102929828B (zh) | 同时支持标准和非标准i2c接口的数据传输方法及装置 | |
CN110750478A (zh) | 一种多串口通信方法及*** | |
KR20160147373A (ko) | 광 신호를 이용한 sata 호스트 버스 어댑터 및 sata 저장소 연결 방법 | |
CN104717109A (zh) | 广域网链路模拟测试方法及*** | |
CN111371799B (zh) | Mctp控制器收发数据的控制方法、装置及设备 | |
CN105262655B (zh) | 一种可兼容can2.0总线的具有更高速率的通信方法 | |
CN109753461B (zh) | 一种dma设备及数据传输的方法 | |
CN111026590B (zh) | 接口电路的数据验证方法及平台 | |
CN114567445A (zh) | 一种验签数据传输方法、装置、设备及介质 | |
CN103577368A (zh) | 一种基于spi协议的iic扩展通信方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |