在物理线路上由于噪声干扰、信号衰减等原因,在数据传输过程中可能会出现差错,而物理层只负责透明的传输结构的原始比特流,不会进行任何差错的控制。
所以,当需要在线路上传送数据时,除了必须有物理线路之外,还必须有必要的规程来控制这些数据传输。将实现这些规程的硬件和软件加到链路上,就构成了CAN总线的数据链路层。
数据链路层重点关注内容——第一部分:通信机制
1.事件触发广播式通信方式
CAN总线采用广播的形式发送报文,所有连接在总线上的节点都可以收到其他节点发过来的信息。它是一个事件触发型的总线类型,一旦有事件发生,对应的节点就会把相应的报文发送到总线上去,连接在总线上的其他的节点都可以读到这帧报文,但这帧报文的数据并不是对所有的节点都有用。
如何判断某个节点需要这帧报文?
这需要对CAN报文最前端的ID部分进行过滤,如果某个节点需要这帧报文的内容,报文就会通过过滤器进入到主机中进行数据的处理,不需要这帧报文的节点就会将它过滤掉。
图1