CAN总线在数据链路层中的应用是其通信协议中的关键部分、它负责在物理层之上实现数据的可靠传输。致远第二代CAN总线分析仪ZPS-CANFD,除了可以完成CAN、CANFD总线物理层的一致性测试,同时也可以完成对CAN总线数据链路层工作过程的观察。
什么是数据链路层
在CAN总线应用中,物理层一致性测试成为各CAN总线厂家必测的校验任务,以此来保证总线或节点产品有健康的信号质量。CAN总线的应用领域逐渐扩大,共模干扰、电磁干扰、信号衰减等影响总线通讯的因素也逐渐增强,数据传输过程中常常出现错误,而物理层只负责透明的传输结构的原始比特流,不能进行任何错误控制。因此,当需要在一条线路上传送数据时,除了必须有一条物理线路(链路)外,还必须有一些必要的规程来控制这些数据的传输。把实现这些规程的硬件和软件加到链路上,就构成了数据链路层(Data Link Layer)。
数据链路层主要由两个部分组成, MAC子层(媒体访问控制子层)、LLC子层(逻辑链路控制子层)。如图1所示为目前国际标准“ISO 11898-1:2015(E)”中 数据链路层CAN的分层架构图。

图1 CAN的分层架构图
MAC子层
MAC子层是CAN协议的关键组成部分,主要负责将物理层接收到的信号组织成具有实际意义的信息,并管理错误控制等传输流程,MAC子层主要功能有以下几点:消息的帧化处理:将待传输的数据封装成符合CAN协议的帧格式;仲裁:通过非破坏性仲裁机制解决多个节点同时发送数据时的冲突;应答:接收节点通过应答机制确认数据的正确接收;错误的检测和报告:检测通信过程中的错误,并通过错误帧向其他节点报告。在ZPS-CANFD中,我们可以通过报文解码界面,清晰地看到帧格式,如仲裁场、应答场信息。除此之外,我们也可以在Decode界面中看到填充位(即白色填充位置),如图2所示:

图2 报文解码
也可以通过报文接收窗口,观察错误帧类型,如图3所示:

图3 帧错误类型标记LLC子层LLC子层虽然在CAN协议标准中没有明确划分,但我们通常可以将帧过滤、报文重发等逻辑控制功能归为LLC子层的范围:报文过滤:通过过滤器只保留想看的报文;报文重发:在检测到通信错误或未收到应答时,自动重发报文。ZPS-CANFD中,拥有报文过滤的功能和出现错误帧时报文重发的机制,我们可以通过报文接收界面观察只想看的报文以及观察报文重发的过程以及重发报文的信息,如图4所示为某报文文件过滤后的错误帧报文。

图4 错误帧
除此之外,ZPS还可以通过ID、DLC长度、帧类型、时间等等参数进行过滤,如图5所示为自定义过滤编辑器。

图5 过滤编辑器在报文
接收界面可以看到报文重发的过程,在总线负载率界面我们可以观察到Busoff恢复过程,Busoff恢复是指当CAN节点发送错误计数器超过255次时,节点会进入Busoff状态,为了避免某个设备因自身原因导致无法正确发送报文而不断破坏总线的数据帧,CAN总线网络具有严格的错误诊断功能。在ZPS中,可以卡光标来测量帧间隔从而知道Busoff恢复时间,如图6所示:

图6 Busoff恢复观察总结CAN总线协议的数据链路层是实现CAN通信的关键部分,它负责在物理层之上实现数据的可靠传输,通过帧同步、差错控制、流量控制和访问控制等功能,CAN协议确保多个节点之间的高效、可靠通信。我们的ZPS-CANFD正好可以做到这几点,协助我们观察错误机制处理的过程,这些功能和机制共同构成了CAN总线协议强大的通信功能,使其在众多领域得到广泛应用。
-
CAN
+关注
关注
57文章
2923浏览量
468525 -
数据链路层
+关注
关注
0文章
61浏览量
12210
发布评论请先 登录
数据链路层的作用
什么是OSI模型数据链路层
数据链路层到底是什么_数据链路层工作原理是怎样的

数据链路层常用成纸法有哪些_数据链路层的作用

数据链路层和传输层的区别是什么

评论