CN116266803A - 用于控制器局域网的设备 - Google Patents
用于控制器局域网的设备 Download PDFInfo
- Publication number
- CN116266803A CN116266803A CN202211487487.1A CN202211487487A CN116266803A CN 116266803 A CN116266803 A CN 116266803A CN 202211487487 A CN202211487487 A CN 202211487487A CN 116266803 A CN116266803 A CN 116266803A
- Authority
- CN
- China
- Prior art keywords
- bitstream
- bit stream
- protocol decoder
- controller
- detecting
- 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
- 230000011664 signaling Effects 0.000 claims description 18
- 238000000034 method Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 7
- 230000004048 modification Effects 0.000 description 10
- 238000012986 modification Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 238000001514 detection method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 239000004020 conductor Substances 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
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
-
- 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/40006—Architecture of a communication node
- H04L12/40032—Details regarding a bus interface enhancer
-
- 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/40006—Architecture of a communication node
- H04L12/40013—Details regarding a bus controller
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B1/00—Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
- H04B1/38—Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
- H04B1/40—Circuits
-
- 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/40052—High-speed IEEE 1394 serial bus
- H04L12/40078—Bus configuration
-
- 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
-
- 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/40267—Bus for use in transportation systems
- H04L2012/40273—Bus for use in transportation systems the transportation system being a vehicle
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Small-Scale Networks (AREA)
Abstract
一种用于控制器局域网CAN节点的设备,所述节点包括CAN控制器和被配置成耦合到CAN总线的CAN收发器,所述设备包括CAN协议解码器和电路,所述设备被配置成:接收由所述CAN收发器生成的用于所述CAN控制器的RX位流;接收由所述CAN控制器生成的用于由所述CAN收发器接收的TX位流;其中所述CAN协议解码器被配置成基于所述TX位流接收用于对其中的CAN帧进行解码以监测所述CAN控制器的位流;并且其中所述电路被配置成:检测空闲状态;基于检测到所述空闲状态,修改由所述CAN协议解码器接收的所述位流,使得所述位流基于检测到所述RX位流中的帧起始位而另外包括帧起始位。
Description
技术领域
本公开涉及一种用于控制器局域网(CAN)节点的设备。本公开还涉及一种操作与所述CAN节点耦合的设备的方法。
背景技术
例如控制器局域网(CAN)、具有灵活数据速率的CAN(CAN FD)、本地互连网络(LIN)、FlexRay、基于以太网的网络总线以及其它类型的车载网络(IVN)总线可用于车辆内的通信。例如,控制器局域网(CAN)总线是通常在汽车内使用的基于消息的通信总线协议。应了解,CAN网络还具有在汽车领域之外的应用。CAN总线网络可包括多个总线装置、所谓的节点或电子控制单元(ECU),例如引擎控制模块(ECM)、传动系控制模块(PCM)、安全气囊、防抱死刹车、定速巡航、电动助力转向、音频系统、车窗、车门、后视镜调整、用于混合动力/电动汽车的电池和再充电系统等。CAN总线协议用于实现各种总线装置之间的通信。CAN协议的数据链路层被标准化为国际标准组织(ISO)11898-1:2003。作为标准化CAN数据链路层协议的扩展并同时集成到ISO11898-1:2015标准中的CAN灵活数据速率或“CAN FD”可提供更高的数据速率。标准化CAN数据链路层协议正被进一步扩展以提供甚至更高的数据速率。在CiA610(自动化中的CAN)下论述的定义阶段中,采用允许更高数据速率的新级别方案的称为CAN XL的另一扩展在CiA610下进行了论述,并且正在以另外更新现有ISO11898标准或新标准的形式朝着标准化方向发展。
发明内容
根据本公开的第一方面,提供一种用于控制器局域网CAN节点的设备,所述节点包括CAN控制器和被配置成耦合到CAN总线的CAN收发器,所述设备包括CAN协议解码器和电路,所述设备被配置成:
接收RX位流,所述RX位流包括由所述CAN收发器从自所述CAN总线接收的信令生成的用于所述CAN控制器的位流;
接收TX位流,所述TX位流包括由所述CAN控制器生成的用于由所述CAN收发器接收以在所述CAN总线上传输信令的位流;
其中所述CAN协议解码器被配置成基于所述TX位流接收用于对其中的CAN帧进行解码以监测所述CAN控制器的位流;并且其中所述电路被配置成:
基于所述RX位流和所述TX位流中的至少一个检测在CAN帧之间发生的空闲状态;
基于检测到所述空闲状态,修改由所述CAN协议解码器接收的所述位流,使得所述位流基于检测到所述RX位流中的帧起始位而另外包括帧起始位。
在一个或多个例子中,至少在当所述TX位流中不存在所述帧起始位时通过所述电路提供由所述CAN协议解码器接收的所述位流的所述修改。
在一个或多个实施例中,所述电路被配置成基于检测到所述空闲状态,从向所述CAN协议解码器提供用于解码的所述TX位流切换到向所述CAN协议解码器提供用于解码的所述RX位流和所述TX位流的组合。
在一个或多个实施例中,所述电路被配置成基于检测到所述空闲状态,从向所述CAN协议解码器提供用于解码的所述TX位流切换到向所述CAN协议解码器提供所述RX位流而不是所述TX位流。
在一个或多个实施例中,所述电路被配置成基于检测到所述RX位流和所述TX位流的所述组合中的显性位,切换到向所述CAN协议解码器提供用于解码的所述TX位流。
在一个或多个实施例中,所述电路被配置成基于检测到所述TX位流和所述RX位流两者中的六个或更多连续隐性位而确定所述空闲状态的发生。
在一个或多个实施例中,所述设备包括被配置成从所述CAN协议解码器接收解码CAN帧的符合性模块,所述符合性模块被配置成确定至少从所述TX位流导出的所述解码CAN帧是否符合基于所述CAN协议的规则集,并且如果所述CAN帧不符合,则生成错误信号。
在一个或多个例子中,基于所述CAN协议的所述规则集包括ISO标准11898-1的一个或多个规范。
在一个或多个实施例中,所述CAN协议解码器包括用于对至少部分地在所述TX位流中接收到的CAN帧进行解码的第一CAN协议解码器,并且其中所述设备包括被配置成对在所述RX位流中接收到的CAN帧进行解码的第二CAN协议解码器,或所述CAN协议解码器用于对所述TX位流和RX位流的组合进行解码,其中所述设备包括符合性模块,所述符合性模块被配置成将来自所述第一CAN协议解码器的解码CAN帧的至少部分与来自所述第二CAN协议解码器的解码CAN帧的至少部分进行比较,并且基于预定规则集和所述比较来确定所述CAN控制器的符合性状态,如果所述CAN控制器不符合,则生成错误信号。
在一个或多个实施例中,所述电路被配置成:
基于所述RX位流和所述TX位流检测CRC定界符位;
基于检测到所述CRC定界符位,修改由所述CAN协议解码器接收到的所述位流,使得所述位流基于至少在当所述TX位流中不存在ACK确认位时在所述RX位流中检测到所述ACK确认位而包括ACK确认位。
在一个或多个实施例中,所述电路被配置成:
基于所述RX位流检测下降沿,所述下降沿用于时间同步;以及
基于检测到所述下降沿,修改由所述CAN协议解码器接收的所述位流,使得所述位流在与所述RX位流中检测到的所述下降沿的时间相对应的时间,至少在仲裁时间期间的时间,包括下降沿。
在一个或多个实施例中,所述电路包括:
逻辑OR,所述逻辑OR被配置成在第一输入接收所述RX位流并且在第二输入接收允许SOF重新创建信号,基于检测到所述空闲状态,所述允许SOF重新创建信号被配置成逻辑低电平;
逻辑AND,所述逻辑AND被配置成在第一输入接收所述TX位流并且在第二输入接收所述逻辑OR的输出;并且
其中由所述CAN协议解码器接收的所述位流包括所述逻辑AND的输出。
在一个或多个例子中,所述设备被配置成基于所述检测所述RX位流和所述TX位流的组合中的显性位直到至少检测到后续空闲状态而将允许SOF重新创建信号提供为逻辑高电平。
应了解,其它事件可能触发所述设备在检测到所述后续空闲状态之前将所述允许SOF重新创建信号提供为逻辑低电平。
在一个或多个实施例中,所述设备包括所述CAN收发器的一部分。
在一个或多个例子中,所述电路包括用于生成位流中的位的位生成器,并且其中所述位生成器被配置成基于所述RX位流中逻辑零帧起始位的出现而提供所述TX位流中的逻辑零帧起始位。
在一个或多个实施例中,所述设备被配置成基于所述错误信号的所述生成而提供当前CAN帧的失效。
在一个或多个实施例中,所述CAN协议解码器被配置成根据ISO标准11898-1的规范操作。
根据本公开的第二方面,提供一种用于控制器局域网CAN节点的方法,所述节点包括CAN控制器和被配置成耦合到CAN总线的CAN收发器,所述方法包括:
接收RX位流,所述RX位流包括由所述CAN收发器从自所述CAN总线接收的信令生成的用于所述CAN控制器的位流;
接收TX位流,所述TX位流包括由所述CAN控制器生成的用于由所述CAN收发器接收以在所述CAN总线上传输信令的位流;
由CAN协议解码器基于所述TX位流接收用于对其中的CAN帧进行解码以监测所述CAN控制器的位流;
由电路基于所述RX位流和所述TX位流检测在CAN帧之间发生的空闲状态;
基于检测到所述空闲状态,修改由所述CAN协议解码器接收的所述位流,使得所述位流基于检测到所述RX位流中的帧起始位而包括帧起始位。
根据本公开的第三方面,提供一种计算机程序或计算机程序产品,其包括计算机程序代码,所述计算机程序代码被配置成使处理器和存储器执行根据第二方面所述的方法。
虽然本公开容许各种修改和替代形式,其细节已经借助于例子在附图中示出且将详细地描述。然而,应理解,也可能存在除所描述的特定实施例以外的其它实施例。也涵盖落入所附权利要求书的精神和范围内的所有修改、等效物和替代实施例。
以上论述并不意在呈现在当前或将来权利要求集的范围内的每一示例实施例或每一实施方案。附图和具体实施方式还举例说明了各种示例实施例。结合附图考虑以下具体实施方式可以更全面地理解各种示例实施例。
附图说明
现将仅借助于例子参考附图描述一个或多个实施例,附图中:
图1示出连接到公共CAN总线的多个CAN节点的示例实施例;
图2示出包括与CAN收发器耦合的CAN控制器的示例CAN节点,CAN收发器提供与CAN总线的耦合;
图3示出包括布置有CAN收发器和CAN控制器的设备的示例实施例;
图4示出示例CAN帧;
图5以多个逻辑元件的形式示出图3的设备的示例实施例;
图6示出示例方法;以及
图7示出计算机可读介质。
具体实施方式
示例图1示出CAN总线系统100,其中多个节点或电子控制单元(ECU)101-104连接到包括第一CANH导线和第二CANL的相同CAN总线导线105。节点101-104可包括实施经典CAN的节点、实施CAN FD协议的CAN FD节点或实施新CAN XL协议的CAN XL节点。
示例图2更详细地示出节点101-104中的一个。节点主要包括CAN控制器200,例如微控制器,所述CAN控制器200例如通过使用嵌入式CAN、CAN FD或CAN XL协议控制器201来实施CAN、CAN FD或CAN XL协议。控制器200,并且更具体地协议控制器201,通过CAN收发器202连接到CAN总线105。CAN控制器200通过称为传输数据(TXD)线203和接收数据(RXD)线204的两个接口连接而连接到CAN收发器202。因此,CAN控制器200可具有与CAN收发器202的传输输入端耦合的传输输出端。同样,CAN收发器202可具有与CAN控制器200的接收输入端耦合的接收输出端。CAN收发器202用于将包括TXD 203上的数字位流或“TX位流”的传输数据转换为总线导线105上的模拟信令。收发器202还可以用于将来自总线105的模拟信令转换为包括数字输出信号或RX位流的接收数据以提供到RXD连接204。通常,CAN收发器包括到网络的接口装置并且CAN控制器包括控制器,所述控制器被配置成经由所述接口装置向网络传输数据和从网络接收数据。
CAN总线105的本质是可以通过显性位在物理介质上覆写隐性位。这是允许非破坏性仲裁的预期行为,并且能够保证多个节点访问同一总线105的有效机制。另外,CAN总线105上的信号始终是所有节点101-104同时发送的信号加上线束吸收的能量或总线105中各点反射的能量可能产生的任何失真的结果。
例如出于安全和保密原因,可能有利的是观测或监测CAN节点。在一些例子中可能出现的问题是,放置在传输节点101-104附近且仅对CAN总线105上的信令进行解码的观测器无法明确地确定传输节点对总线105上的信令的作用。如果观测器的任务是监测所述传输节点的行为,这会使观测变得困难。
例如,如果发送节点希望发送具有扩展标识符的经典CAN帧,但由于总线105上的失真,观测器会将均为隐性发送的IDE或FDF位采样为显性的,因此它将决定使用错误的帧格式。因此,观测器可能会在不久后错误地得出结论,即发送器违反了CAN规范。一种解决方案是让观测器访问传输节点的输出位流(TXD)203。
图3示出本公开的示例设备300。图3还示出CAN控制器200(包括图3中未示出的协议控制器201)和图2的CAN收发器202。设备300被配置成监测提供用于CAN控制器200与CAN收发器202之间的传输的一个或多个信号。第一连接301将设备300耦合到CAN控制器200与CAN收发器202之间的TXD线203。因此,设备300可以接收TX位流。第二连接302将设备300耦合到CAN收发器202与CAN控制器200之间的RXD线204。因此,设备300可以接收RX位流。
设备300可被配置成至少监测TX位流以确定CAN控制器200的状态。因此,设备300包括被配置成对来自TX位流的CAN帧进行解码的CAN协议解码器303。应了解,对CAN帧进行解码的过程旨在包括识别TX位流中CAN帧的出现,并确定CAN帧内的一个或多个字段的值。利用此信息,设备300可被配置成确定从CAN控制器200提供的CAN帧是否符合一个或多个规则,例如CAN协议规则。
在图3中,所示设备300与CAN控制器200分开并且与CAN收发器202分开。然而,在其它例子中,设备300可以是CAN收发器202的一部分,或者是CAN控制器200与CAN收发器202连接的接口的一部分,由此能够访问TXD线203和RXD线204。在图3中,沿着线203和204部分地显示接收RX位流和TX位流的连接。然而,连接301可以在CAN控制器200的传输输出端或CAN收发器202的传输输入端处进行。同样地,连接302可以在CAN收发器202的接收输出端或CAN控制器200的接收输入端处进行。然而,通常,连接301和302可以在CAN控制器200或CAN收发器202的外部或在CAN控制器200或CAN收发器202的内部进行。因此,在一个或多个一般例子中,设备300因此被配置成接收指示TX位流的信令,以使其能够了解CAN控制器正在传输的内容。另外,在一个或多个例子中,设备300因此被配置成接收指示RX位流的信令,以使其能够了解CAN控制器正从总线105接收的内容。
图4示出典型CAN帧400。所述帧包括帧起始字段401,所述帧起始字段401指定CAN帧400的起始。仲裁字段402在帧起始字段401之后,在所述仲裁字段402中确定哪个节点101-104赢得了对总线105的访问。在仲裁字段402之后,所述帧包括可用于用信号表示将遵循的CAN协议类型的包括IDE、FDF和res的控制位字段403。数据字段404在控制位字段403之后,所述数据字段404包含帧的数据内容。CRC字段405在数据字段404之后,所述CRC字段405包含错误检测和/或错误校正信息。随后是确认字段406。提供包括帧结束位的帧间间隔407以提供不同帧之间的可识别分隔。在此帧间间隔407中,总线(以及因此节点)可被视为空闲。接着,后续帧可以帧起始字段开始,所述帧起始字段编号为411以与后续帧400的对应帧起始字段401区分开。
可根据ISO11898-1操作的CAN协议解码器303在基于TX位流对CAN帧进行解码时可能存在问题。例如,当CAN控制器200确定已输掉仲裁时,可中止TX位流中的CAN帧,或者如果远程节点提前开始发送帧,而本地节点(设备300耦合到所述本地节点)有待处理的传输,可省略帧起始位401、411,或者当CAN控制器200在想要开始传输其自身的帧起始位的时刻在下降沿上同步时,帧起始位是不完整的。并且,需要以适当的方式处理在帧的成功接收结束时给出的ACK位406。此外,还存在CAN控制器200在接收或其自身的传输期间需要发送激活错误消息的情况。因此,监测TX位流对于CAN协议解码器303来说可能并不简单,因为CAN控制器200可工作正常,但会对总线105上的实际情况作出反应,这会使CAN协议解码器303难以在其它位之中识别帧起始位401、411。例如,如果CAN协议解码器无法确定帧起始位,则很难识别帧中的其它位并且可能影响同步。
图3实施例的设备300包括电路304,所述电路304被配置成基于RX位流和/或TX位流检测在CAN帧之间发生的空闲状态。可以通过检测帧间间隔407中的一系列连续位来识别空闲状态。应了解,帧间间隔407的存在指示下一个帧起始位411将出现在总线上和/或TX位流中。在一个或多个例子中,电路304可被配置成基于检测到TX位流和RX位流两者中或仅RX位流中的六个或更多连续隐性位而确定空闲状态的发生。基于TX位流和RX位流确定空闲状态的发生可能是有利的,因为如果CAN控制器未赢得仲裁,则TX位流中可能存在连续隐性位,但这些隐性位可能并不指示帧间间隔407。
一个或多个例子的设备300被配置成确保由CAN协议解码器303接收的位流包括帧起始位401、411,即使在一些情况下TX位流可能不包括或仅部分包括帧起始位401、411。因此,电路304可被配置成基于检测到空闲状态而工作或准备好工作,接着,电路304可被配置成基于检测到RX位流中的帧起始位而修改由CAN协议解码器303接收的位流,使得所述位流包括帧起始位401、411。因此,电路403可以使用从总线105接收帧起始位401、411的时间,且如在RX位流中看到的那样,提供对由CAN协议解码器303接收的位流的所述修改,使得帧起始位看起来(从CAN协议解码器303的角度来看)在适当的时间存在于TX位流中。此功能可始终提供,但至少在连接301上接收的TX位流中不存在帧起始位的时候提供。因此,在一些例子中,电路304可以基于TX位流中不存在帧起始位而选择性地修改由CAN协议解码器303接收的位流,或者可替换的是,电路304可被配置成响应于每一个空闲状态而工作,以确保帧起始位401、411存在,无论是在TX位流中还是生成所述帧起始位。
因此,如上文所提及,CAN协议解码器303被配置成基于TX位流而接收位流,并且在一些例子中,所述位流可以是TX位流。然而,电路304可被配置成在某些时间修改TX位流,或在某些时间向CAN协议解码器303提供替代位流,以确保CAN协议解码器303接收到包括帧起始位401、411的位流且因此能够更可靠地对CAN帧进行解码。因此,电路304在修改由CAN协议解码器接收到的位流时的动作可以包括修改TX位流(例如通过位生成器)以包括帧起始位,或在适当时间将对CAN协议解码器303的输入从TX位流临时更改为包括帧起始位401、411的不同位流。
在当前的例子中以及在一个或多个其它例子中,电路304被配置成基于检测到空闲状态,从向CAN协议解码器303提供用于解码的TX位流切换到向CAN协议解码器303提供用于解码的基于RX位流和TX位流的组合的位流。因此,RX位流和TX位流的组合将包括帧起始位,无论所述帧起始位是来自TX位流还是RX位流。
一旦CAN协议解码器303接收到的位流被修改为包括帧起始位401、411,电路就可以停止修改位流,并且CAN协议解码器303可以返回到接收未修改的TX位流。因此,电路304可被配置成检测RX位流和TX位流的所述组合中的显性位,即逻辑0。显性位是在帧间间隔407的隐性位(即,逻辑1位)之后出现的帧起始位401、411。当电路304检测到帧起始位时,所述电路304可被配置成切换回到向CAN协议解码器303提供用于解码的例如呈未经修改的形式的TX位流。
设备300的用途可以是为CAN节点101-104提供安全或保密功能。因此,设备300可被配置成对TX位流中的CAN帧400进行解码,使得它可以评估由CAN控制器200传输的CAN帧的形式,例如就各个字段的位内容而言。因此,设备300可被配置成检测CAN控制器200是按照CAN协议正常工作,还是异常工作,这可表明CAN控制器200发生故障或已被恶意破坏。
因此,设备300可以包括被配置成从CAN协议解码器303接收解码CAN帧的符合性模块305。符合性模块305可被配置成确定由CAN协议解码器303解码的CAN帧是否符合基于CAN协议的规则集,并且如果CAN帧不符合,则生成错误信号。因此,规则集可以包括ISO标准11898-1中定义的CAN协议规范的一个或多个帧格式规则。在一个或多个其它例子中,规则集可包括关于数据字段404中的数据内容的应用程序特定规则。然而,一般来说,应了解,规则集可以定义对于CAN帧400的任何部分的任何数量的要求,包括其位内容和/或其中位的定时。
符合性模块305可被配置成针对规则集单独地检查来自CAN协议解码器303的CAN帧。在其它例子中,符合性检查可包括基于CAN总线105上的一个或多个信号比较由CAN控制器200生成的CAN帧的内容和/或定时。因此,在一个或多个例子中,所述CAN协议解码器303可称为第一CAN协议解码器303,用于对至少部分地在所述TX位流中接收到的CAN帧进行解码(例如,所述第一CAN协议解码器303对RX位流和TX位流的组合进行解码),并且其中设备300包括第二CAN协议解码器306,所述第二CAN协议解码器306被配置成对至少部分地在所述RX位流中从连接302接收到的CAN帧进行解码(例如,所述第二CAN协议解码器306可以对RX位流和TX位流的不同组合进行解码)。在这个例子中,符合性模块305可被配置成将来自第一CAN协议解码器303的解码CAN帧与来自第二CAN协议解码器306的解码CAN帧和/或从CAN总线105接收到的活动进行比较。基于所述比较,符合性模块305可被配置成基于预定规则集确定所述CAN控制器200的符合性状态,并且如果CAN控制器不符合,则生成错误信号。错误信号可以提示设备或不同实体采取另外的动作。
在任一情况下,错误信号的生成都被配置成使节点101-104生成错误帧(或将指示错误的其它信令)、关停,或通知监督节点或暂时阻止CAN控制器200传输或任何其它适当的动作。
在一个或多个例子中,符合性模块305可被配置成通过读取RTR、IDE、BRS、FDF和res位位置(以及对于CAN XL帧,XLF位位置)中的一个或多个位来获取有关CAN控制器200传输的预期帧格式的信息。接着,符合性模块305可以确定帧格式是否符合预期的帧格式。
在一个或多个例子中,符合性模块305可被配置成通过将第一CAN协议解码器303和第二CAN协议解码器306解码的ID位进行比较来获取有关是赢得仲裁还是输掉仲裁亦或仲裁未决的信息。接着,符合性模块305可确定CAN控制器200是否仅在其成功访问总线105时才传输。
在一个或多个例子中,在RX位流与TX位流之间存在差异的情况下,符合性模块305可被配置成将从第一CAN协议解码器303和第二CAN协议解码器306接收到的解码CAN帧进行比较,直到仅与这两个解码器当前已采样且在字段结束前的位位置。例如,如果符合性模块305确定从IDE和/或FDF位位置读取的帧格式信息的差异,则可生成错误信号而不读取帧或字段的其余部分。
在一个或多个例子中,符合性模块可被配置成通过检查CAN协议解码器303何时和/或是否从一个状态前进到下一个状态来确定TX位流中的传输是否符合ISO11898-1。
在一个或多个例子中,符合性模块305可被配置成通过基于第二CAN协议解码器306的状态推进,检查CAN协议解码器303何时和/或是否从一个状态前进到下一个状态来确定TX位流中的传输是否符合ISO11898-1。
在当前的例子中以及在一个或多个例子中,设备300被配置成减少CAN协议解码器303对未接收到帧起始位的TX位流进行解码。然而,在其它例子中,设备可被配置成减少CAN协议解码器303对未接收到帧中其它位(例如,ACK位406)的TX位流进行解码。
在此例子中,电路306被配置成基于RX位流和TX位流检测CRC定界符位;以及基于检测到CRC定界符位,修改由CAN协议解码器接收的位流,使得所述位流包括ACK确认位。设备可监测RX位流,以确定何时应存在ACK确认位。因此,修改由CAN协议解码器303接收的位流可以基于检测到RX位流中的ACK确认位,并且至少在TX位流中不存在ACK确认位时执行。
在当前的例子中以及在一个或多个例子中,设备300被配置成减少CAN协议解码器303对基于未接收到帧起始位的TX位流的位流进行解码。然而,在其它例子中,设备可被配置成减少CAN协议解码器303对未接收到帧中其它位或同步位/事件的TX位流进行解码。这种未接收到所述位/事件的情况可能由因CAN总线上的失真导致的故障或由其它节点加入仲裁过程而引起。这种“减少”可能不会在整个帧中都有效,而是仅在帧的某些部分有效;例如仅在仲裁字段有效。
因此,基于确定TX位流中不存在的一个或多个位或同步事件并且其中所述一个或多个位存在于RX位流中,电路可被配置成修改要由CAN协议解码器303接收的位流,使得所述位流包括被确定为不存在的那些一个或多个位/事件。CAN协议解码器303使用同步位/事件与来自CAN总线的信令进行时间同步。
包括第一CAN协议解码器303、第二CAN协议解码器306、符合性模块305和电路304中的一个或多个的设备300可以体现为处理器、微控制器、FPGA或PLC的功能。然而,图5示出电路304的实施例的一个例子,所述电路可以由多个逻辑电路或可编程逻辑控制器提供。
在这个例子中,电路304包括被配置成接收“允许SOF重新创建”信号502的逻辑NOT501。允许SOF重新创建信号包括向电路304指示所述电路应对CAN协议解码器303接收到的位流进行修改或促进修改以创建帧起始位的信号。逻辑NOT 501简单地在其输入处反转逻辑信号。
在这个例子中,当允许SOF重新创建信号为逻辑高电平或“一”时,电路提供位流的修改。此时,逻辑NOT 501输出逻辑低电平。当允许SOF重新创建信号为逻辑低电平或“零”时,电路304不提供位流的修改。此时,逻辑NOT 501输出逻辑高电平。应了解,NOT门501不是必需的,因为下文描述的电路的其余部分同样可被配置成在逻辑低电平上提供修改,而不是在逻辑高电平上提供修改。通常,本领域的技术人员可以通过多种不同的方式来实施本文描述的TX位流的修改。
然而,电路304可另外包括逻辑OR 503,所述逻辑OR 503被配置成在第一输入接收RX位流并且在第二输入提供(反相的)允许SOF重新创建信号。
在这个例子中,基于所述检测到空闲状态,将允许SOF重新创建信号配置成逻辑高电平。因此,检测到由帧间间隔407引起的空闲状态能使设备300将允许SOF重新创建信号设置为逻辑高电平,在此实施例中,逻辑NOT 501将其转换为逻辑低电平。因此,电路304准备好对由CAN协议解码器303接收到的位流进行修改。
电路304另外包括被配置成在第一输入接收TX位流并且在第二输入接收逻辑OR503的输出的逻辑AND 504。CAN协议解码器303接收的位流包括所述逻辑AND 504的输出。
因此,如果允许SOF重新创建为逻辑零,则逻辑OR 503的第二输入处的输入为逻辑一。逻辑OR 503的第一输入处的输入是RX位流,所述RX位流通常包括基于总线105的条件的在逻辑零与逻辑一之间的改变。如果逻辑OR 503的任一输入是逻辑一,则逻辑OR 503在其输出处提供逻辑一。因此,当允许SOF重新创建为逻辑零(对于逻辑OR,为反相)时,逻辑OR503的输出是恒定逻辑一。在逻辑AND 504中,恒定逻辑一在第二输入处接收,并且TX位流在第一输入处接收。只有当两个输入都是逻辑一时逻辑AND 504才提供逻辑一,否则提供逻辑零。因此,在第二输入处使用恒定逻辑一时,逻辑AND的输出是TX位流。因此,将TX位流提供给CAN协议解码器303。
如果允许SOF重新创建为逻辑一,则逻辑OR 503的第二输入处的输入为逻辑零。逻辑OR 503的第一输入处的输入是RX位流,所述RX位流通常包括基于总线105的条件的在逻辑零与逻辑一之间的改变。如果逻辑OR 503的任一输入是逻辑一,则逻辑OR 503在其输出处提供逻辑一。因此,当允许SOF重新创建为逻辑一(对于逻辑OR,为反相)时,逻辑OR 503的输出是RX位流。在逻辑AND 504中,RX位流在第二输入处接收,并且TX位流在第一输入处接收。只有当两个输入都是逻辑一时逻辑AND 504才提供逻辑一,否则提供逻辑零。因此,在空闲状态或帧间间隔407包括逻辑一(如CAN标准中所定义)并且帧起始位包括逻辑零(如CAN标准中所定义)的情况下,只要TX位流或RX位流中的一个包括逻辑零帧起始位,逻辑AND的输出就为逻辑零,并且CAN协议解码器303接收帧起始位,而无论所述帧起始位是来自TX位流还是来自RX位流。设备304被配置成响应于CAN协议解码器303检测到帧起始逻辑零位401、411而将允许SOF重新创建信号从逻辑一更改为逻辑零。因此,对于CAN帧的其余部分,CAN协议解码器303接收TX位流,因为允许SOF重新创建是逻辑零。
图6示出用于减少TX位流丢失帧起始位的示例方法,包括:
接收601RX位流,所述RX位流包括由所述CAN收发器从自所述CAN总线接收的信令生成的用于所述CAN控制器的位流;
接收602TX位流,所述TX位流包括由所述CAN控制器生成的用于由所述CAN收发器接收以在所述CAN总线上传输信令的位流;
由CAN协议解码器基于所述TX位流接收603用于对其中的CAN帧进行解码以监测所述CAN控制器的位流;
由电路基于所述RX位流和所述TX位流检测604在CAN帧之间发生的空闲状态;以及
基于检测到所述空闲状态,修改605由所述CAN协议解码器接收的所述位流,使得所述位流基于至少在当所述TX位流中不存在帧起始位时在所述RX位流中检测到所述帧起始位而包括帧起始位。
图7示出一种非暂时性计算机可读介质,所述非暂时性计算机可读介质包括计算机程序代码,所述计算机程序代码被配置成使处理器和存储器执行图6的方法。
除非明确陈述特定顺序,否则可以任何顺序执行以上图式中的指令和/或流程图步骤。另外,可以并行提供两个或更多个流程图步骤。而且,本领域的技术人员将认识到,虽然已论述了一个示例指令集/方法,但是在本说明书中的材料可以多种方式组合从而还产生其它例子,并且应在此详细描述提供的上下文内来进行理解。
在一些示例实施例中,上文描述的指令集/方法步骤实施为体现为可执行指令集的功能和软件指令,所述可执行指令集在计算机或以所述可执行指令编程并控制的机器上实现。此类指令经过加载以在处理器(例如,一个或多个CPU)上执行。术语处理器包括微处理器、微控制器、处理器模块或子系统(包括一个或多个微处理器或微控制器),或其它控制或计算装置。处理器可指代单个组件或多个组件。
在其它例子中,本文中示出的指令集/方法以及与其相关联的数据和指令存储于相应存储装置中,所述存储装置被实施为一个或多个非暂时性机器或计算机可读或计算机可用存储介质。这类计算机可读或计算机可用存储介质被视为物品(或制品)的部分。物品或制品可以指任何所制造出的单个组件或多个组件。如本文所定义的非暂时性机器或计算机可用介质不包括信号,但此类介质可能够接收并处理来自信号和/或其它暂时性介质的信息。
本说明书中论述的材料的示例实施例可整体或部分地经由网络、计算机或基于数据的装置和/或服务加以实施。这些可包括云、因特网、内联网、移动装置、台式电脑、处理器、查找表、微控制器、消费者设备、基础架构,或其它使能装置和服务。如本文和权利要求书中可使用,提供以下非排他性定义。
在一个例子中,本文论述的一个或多个指令或步骤是自动化的。术语自动化或自动地(和其类似变型)意指使用计算机和/或机械/电气装置而不需要人类干预、观测、努力和/或决策来控制设备、系统和/或过程的操作。
应了解,据称将耦合的任何组件可直接地或间接地耦合或连接。在间接耦合的状况下,可在称为耦合的两个组件之间安置另外的组件。
在本说明书中,已经按选定的细节集合来呈现示例实施例。然而,本领域的普通技术人员将理解,可以实践包括这些细节的不同选定集合的许多其它示例实施例。希望所附权利要求书涵盖所有可能的示例实施例。
Claims (10)
1.一种用于控制器局域网CAN节点的设备,所述节点包括CAN控制器和被配置成耦合到CAN总线的CAN收发器,所述设备包括CAN协议解码器和电路,其特征在于,所述设备被配置成:
接收RX位流,所述RX位流包括由所述CAN收发器从自所述CAN总线接收的信令生成的用于所述CAN控制器的位流;
接收TX位流,所述TX位流包括由所述CAN控制器生成的用于由所述CAN收发器接收以在所述CAN总线上传输信令的位流;
其中所述CAN协议解码器被配置成基于所述TX位流接收用于对其中的CAN帧进行解码以监测所述CAN控制器的位流;并且其中所述电路被配置成:
基于所述RX位流和所述TX位流中的至少一个检测在CAN帧之间发生的空闲状态;
基于检测到所述空闲状态,修改由所述CAN协议解码器接收的所述位流,使得所述位流基于检测到所述RX位流中的帧起始位而另外包括帧起始位。
2.根据权利要求1所述的设备,其特征在于,所述电路被配置成基于检测到所述空闲状态,从向所述CAN协议解码器提供用于解码的所述TX位流切换到向所述CAN协议解码器提供用于解码的所述RX位流和所述TX位流的组合。
3.根据权利要求1所述的设备,其特征在于,所述电路被配置成基于检测到所述空闲状态,从向所述CAN协议解码器提供用于解码的所述TX位流切换到向所述CAN协议解码器提供所述RX位流而不是所述TX位流。
4.根据权利要求1或权利要求2所述的设备,其特征在于,所述电路被配置成基于检测到所述RX位流和所述TX位流的所述组合中的显性位,切换到向所述CAN协议解码器提供用于解码的所述TX位流。
5.根据在前的任一项权利要求所述的设备,其特征在于,所述电路被配置成基于检测到所述TX位流和所述RX位流两者中的六个或更多连续隐性位而确定所述空闲状态的发生。
6.根据在前的任一项权利要求所述的设备,其特征在于,所述设备包括被配置成从所述CAN协议解码器接收解码CAN帧的符合性模块,所述符合性模块被配置成确定至少从所述TX位流导出的所述解码CAN帧是否符合基于所述CAN协议的规则集,并且如果所述CAN帧不符合,则生成错误信号。
7.根据权利要求1至5中任一项权利要求所述的设备,其特征在于,所述CAN协议解码器包括用于对至少部分地在所述TX位流中接收到的CAN帧进行解码的第一CAN协议解码器,并且其中所述设备包括被配置成对至少部分地在所述RX位流中接收到的CAN帧进行解码的第二CAN协议解码器,或所述CAN协议解码器用于至少部分地对所述TX位流和RX位流的组合进行解码,其中所述设备包括符合性模块,所述符合性模块被配置成将来自所述第一CAN协议解码器的解码CAN帧的至少部分与来自所述第二CAN协议解码器的解码CAN帧的至少部分进行比较,并且基于预定规则集和所述比较来确定所述CAN控制器的符合性状态,如果所述CAN控制器不符合,则生成错误信号。
8.根据在前的任一项权利要求所述的设备,其特征在于,所述电路被配置成:
基于所述RX位流和所述TX位流检测CRC定界符位;
基于检测到所述CRC定界符位,修改由所述CAN协议解码器接收到的所述位流,使得所述位流基于至少在当所述TX位流中不存在ACK确认位时在所述RX位流中检测到所述ACK确认位而包括ACK确认位。
9.一种用于控制器局域网CAN节点的方法,所述节点包括CAN控制器和被配置成耦合到CAN总线的CAN收发器,其特征在于,所述方法包括:
接收RX位流,所述RX位流包括由所述CAN收发器从自所述CAN总线接收的信令生成的用于所述CAN控制器的位流;
接收TX位流,所述TX位流包括由所述CAN控制器生成的用于由所述CAN收发器接收以在所述CAN总线上传输信令的位流;
由CAN协议解码器基于所述TX位流接收用于对其中的CAN帧进行解码以监测所述CAN控制器的位流;
由电路基于所述RX位流和所述TX位流检测在CAN帧之间发生的空闲状态;
基于检测到所述空闲状态,修改由所述CAN协议解码器接收的所述位流,使得所述位流基于检测到所述RX位流中的帧起始位而包括帧起始位。
10.一种计算机程序或计算机程序产品,其特征在于,包括计算机程序代码,所述计算机程序代码被配置成使处理器和存储器执行根据权利要求9所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21215665.7 | 2021-12-17 | ||
EP21215665.7A EP4199435A1 (en) | 2021-12-17 | 2021-12-17 | Apparatus for a controller area network |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116266803A true CN116266803A (zh) | 2023-06-20 |
Family
ID=78957336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211487487.1A Pending CN116266803A (zh) | 2021-12-17 | 2022-11-21 | 用于控制器局域网的设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230198800A1 (zh) |
EP (1) | EP4199435A1 (zh) |
CN (1) | CN116266803A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117650866A (zh) * | 2023-11-23 | 2024-03-05 | 广州致远仪器有限公司 | 一种can帧解码方法、装置、设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9973348B2 (en) * | 2013-07-24 | 2018-05-15 | Nxp Usa, Inc. | Transceiver circuit and method for controller area networks |
DE102018219292A1 (de) * | 2018-11-12 | 2020-05-14 | Robert Bosch Gmbh | Fehlerrahmenabschirmeinheit für eine Teilnehmerstation eines seriellen Bussystems und Verfahren zur Kommunikation in einem seriellen Bussystem |
EP3809638B1 (en) * | 2019-10-17 | 2023-05-17 | Volvo Car Corporation | Detecting manipulation of data on a can bus |
-
2021
- 2021-12-17 EP EP21215665.7A patent/EP4199435A1/en active Pending
-
2022
- 2022-11-21 CN CN202211487487.1A patent/CN116266803A/zh active Pending
- 2022-12-05 US US18/061,858 patent/US20230198800A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4199435A1 (en) | 2023-06-21 |
US20230198800A1 (en) | 2023-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3206361B1 (en) | Controller area network (can) message filtering | |
US10868817B2 (en) | Systems and methods for neutralizing masquerading attacks in vehicle control systems | |
CN111614506B (zh) | 用于监视控制器局域网节点的方法和设备 | |
CN112347021B (zh) | 用于串行通信装置的安全模块 | |
US8306004B2 (en) | Communication network system having high-ranking network and low-ranking networks, interchange terminal connecting high-ranking network and low-ranking network, microcomputer controlling connection between transmission line of low-ranking network and transmission line of high-ranking network, and communication transmitter-receiver connected with transmission line of low-ranking network and transmission line of high-ranking network | |
US10462161B2 (en) | Vehicle network operating protocol and method | |
EP3772841B1 (en) | A security module for a can node | |
US11016925B2 (en) | Protocol-tolerant communications in controller area networks | |
US20190020717A1 (en) | Vehicle network implementing xcp protocol policy and method | |
CN111614531B (zh) | 用于监视lin节点的方法、介质、监视设备 | |
CN112347022A (zh) | 用于can节点的安全模块 | |
CN116266803A (zh) | 用于控制器局域网的设备 | |
EP2940935A1 (en) | Controller area network (CAN) device and method for controlling CAN traffic | |
CN112583786A (zh) | 用于警报的方法、发送器设备和接收器设备 | |
Cena et al. | Improving compatibility between CAN FD and legacy CAN devices | |
US20230198807A1 (en) | Apparatus for a controller area network | |
EP4270882A1 (en) | Detecting an error in a can system | |
CN116266804A (zh) | 用于控制器局域网的设备 | |
US20230291605A1 (en) | Apparatus | |
WO2023037711A1 (ja) | 車載中継装置、車載中継方法および車載中継プログラム | |
CN115150220A (zh) | 控制器局域网装置 | |
CN116471139A (zh) | 控制器局域网模块和用于所述模块的方法 | |
KR20230028948A (ko) | 통신 네트워크, 이에 연결된 노드를 식별하는 방법 및 장치 | |
JP2011229079A (ja) | 電子制御ユニット | |
Piromalis et al. | An assessment analysis of network protocols used in automotive industry |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |