摘自VECTOR官网E-Learning的资料
14. 位填充
同步
数据传输正确的基本前提是网络中通信节点之间同步。起始位(帧起始 - SOF)的隐性至显性的跳变沿用于同步CAN报文。之后,重同步(resynchronization)机制用于保持同步,直到报文传输结束为止。
重同步
重同步机制基于对隐性至显性跳变沿的评估。位填充机制保证了传输过程中有足够的跳变沿。ISO 11898-1规定,发送方在传输连续5个相同位后必须传输一个相反的位;即使连续5个相同位后本就是一个相反位,也需要添加填充位。
位填充区
由于位填充从以SOF的传输为开始,以CRC序列的最后一位的传输为结束,因此在传输包含8个数据字节的标准格式的数据帧时,在极限情况下,应有24个填充位。所以,理论上标准格式数据帧最多包含132位。
15. 总线访问原则
所有节点均可访问总线
ISO 11898-1定义了多主架构,以确保高可用性和事件驱动的数据传输。CAN网络中的每个节点都有权访问CAN总线,无需请求许可,也无需事先与其他CAN节点进行协调。虽然基于事件驱动的总线访问对事件的响应非常快,但也存在风险,即多个CAN节点可能同时访问CAN总线,从而导致CAN总线上出现数据重叠。
冲突避免
为保持通信系统的实时能力,ISO 11898-1规定了用于确保无损数据传输的总线访问, CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance,载波监听多路访问/冲突避免)方法。CSMA/CA方法确保希望发送报文的CAN节点在CAN总线可用时才对其进行访问。
逐位总线仲裁
如果多个节点同时访问总线,基于逐位总线仲裁的CSMA/CA方法可确保发送最高优先级CAN报文的节点获得总线访问权。原则上,CAN报文的优先级越高,在CAN总线上的传输次序越靠前。如果系统设计不佳,可能导致低优先级的CAN报文永远无法发出。
16. 逐位总线仲裁
CSMA/CA
ISO 11898-1定义的总线访问方法的关键是逐位总线仲裁。即使多个节点同时访问总线,也可以防止发生冲突。逐位总线仲裁的原理相对简单。
唯一的总线电平
在网络范围内实现同步后,所有希望发送报文的CAN节点会将其CAN报文的ID从最高有效位到最低有效位逐位发送到CAN总线。在此过程中,CAN网络所基于的线与逻辑可确保在总线上产生清晰明确的总线电平。
仲裁逻辑
仲裁逻辑决定CAN节点是否可以继续发送,或者停止发送。“ Bus Access Logic”图有助于加深了解逐位总线仲裁的机制。
每次一个发送方
仲裁阶段结束时,ID最小的CAN报文的发送节点获得总线访问权。试图发送较低优先级报文的CAN节点切换为接收状态,等待CAN总线再次可用时对其进行访问,以再次尝试发送。“ Bus Access Procedure”图说明了CAN节点在总线访问期间的所有操作。
知识强化
“逐位总线仲裁”模拟可以帮助您加深对CAN网络中的总线访问的理解。该模拟基于三个希望进行发送的节点所构成的CAN网络。您可以自行设置这三个CAN节点发送的报文ID。如下是几种情况示例:
20. 优先次序
优先级与标识符
CAN报文的优先级对于获得CAN网络的总线访问权具有决定性作用。优先级通过标识符进行编码,标识符从最高有效位到最低有效位逐位传输。
标识符值越小=优先级越高
线与总线逻辑和仲裁逻辑可确保CAN报文的优先级随着标识符值的减小而增加:标识符值越小,CAN报文的优先级越高。“Prioritization”图说明了这种关系。
总线负载率和实时行为
如果总线负载率不太高,这种非破坏性仲裁和优先级控制的随机访问机制将提供公平且非常快速的总线访问。
但必须考虑到总线负载率增加会导致优先级较低的CAN报文的延迟时间变长。这可能会损害CAN通信系统的实时能力。因此,设计系统时应根据CAN报文所传输信号的紧急程度来确定其优先级。
典型CAN通信
“ Typical CAN Communication”图可以帮助您理解CAN网络中的通信流程,包括通信矩阵中列出的通信关系以及各时间点发生的事件。