解读ISO11898-1数据链路层和物理层信号
扫描二维码
随时随地手机看文章
ISO 11898-1定义了哪些内容,相关项目如何测试?本文将为你一一解读。
1、关于ISO 11898
ISO是世界性的标准化组织,主要任务是制定国际标准,协调世界范围内的标准化工作,与其他国际性组织合作研究有关标准化问题。IS0 11898由以下部分组成:
— ISO11898-1:数据链路层和物理层信号
— ISO11898-2:高速接入单元
— ISO11898-3:低速容错接入单元
— 11898-4:时间触发通讯
— ISO11898-5:低功耗的高速接入单元
— ISO11898-6:选择性唤醒的高速接入单元
最新的ISO 11898-2、ISO 11898-5和ISO 11898-6已经取代ISO 11898-2:2003、ISO 11898-5:2007和ISO 11898-6:2013。
2、ISO11898-1的定位
对比标准的OSI通讯协议模型,ISO 11898-1定义了CAN的数据链路层和部分物理层,如图1。数据链路层和物理层具体可分为逻辑链路控制、媒介访问控制、物理层编码、物理层介质、物理层媒介依赖。
图1 ISO 11898的定位
3、适用范围
ISO11898-1旨在实现CAN模块之间数据链路层上的信息规范。控制器区域的网络是一种串行通信协议,用于道路车辆和其他控制领域,支持分布式实时控制和多路复用。ISO11898-1:2015适用于经典CAN帧与灵活CAN帧(CAN-FD)。经典的CAN帧有效载荷达8个字节,比特率最高允许1 Mbit/s。最新的CAN帧(CAN-FD)帧格式允许比特率高于1 mbit/s,并且有效载荷大于每帧8字节。新帧架构(CAN-FD)兼容经典帧结构。
图2 新旧帧关系
4、基本概念
SO11898-1详细列举出CAN总线涉及到的基本概念。具体细节请读者参考原文,此处不再展开。
图3 基本概念
5、CAN层体结构
ISO 11898-1包含逻辑链接控制子层(LLC)、介质访问控制子层(MAC)、物理编码子层(PCS)。其中LLC包括接受过滤、过载通知以及恢复管理;MAC层包括数据封装与解封、帧编码、介质访问管理、错误检测、序列及反序列;PCS层包括位编码、位解码以及同步。
图4 ISO 11898包含的规范
6、MAC数据的一致性
要传送的消息是由LLC产生的,通过节点的控制器主机接口和数据链路层的子层传输到MAC子层。MAC子层将把整个消息存储在一个临时缓冲区中,该缓冲区在传输开始之前被填充。当传送的信息被传送到MAC的子层时,LLC子层应检查数据错误。如果检测到数据错误,就不会启动传输。如果在检测到数据错误时已经启动,那么节点将被切换到总线监控模式或进入受限的操作模式,接收节点将不会看到一条有效消息。
图5 自动错误过滤
7、错误及恢复
为了避免设备因自身原因影响其他正常节点,11898-1固定每个CAN控制器都有一个发送错误计数器(TEC)和接收错误计数器(REC)。转换流程如图6。
— 主动错误状态:这是设备正常状态,设备正常参加通信,当检测到错误时发送错误标识;
— 被动错误状态:检测出错误后,设备将发送被动错误标识;
— 总线状态关闭:因为自身严重问题使总线自身进入总线关闭状态,该状态下无数据收发。
图6 设备状态转换
8、一致性测试
CAN总线实际应用中总会遇到很多问题,因此对总线的各个方面做一致性测试十分必要。CAN的一致性测试包括物理层一致性测试、数据链路层一致性测试、应用层一致性测试。参考ISO 11898-1,可使用CANScope对CAN总线做数据链路层一致性测试,包括图7内的测试项目。
图7 一致性测试项目
采样点测试:该测试旨在验证CAN 控制器的波特率采样点位置。采用干扰的手段,将采样点位置的逻辑电平破坏,则这个 CAN 报文将出现错误。以此就可以确定干扰的位置为采样点位置。
图8 采样点测试
CAN2.0B 兼容测试: 测试被测设备DUT 是否能兼容CAN2.0B 的扩展帧,不会发出错误帧。根据GMW14242,要求在DUT在接收扩展帧时,不会有错误帧发出。测试平台架构如图9所示。
图9 CAN2.0B兼容性测试
报文标示符测试:测试被测DUT 发出的报文标识符(ID)是否符合预期。根据ISO11898-1,要求在DUT在发送所有应用报文,都具备正确的ID。如图10在数据长度框、帧ID框内进行关键字检索,查找异常帧。
图10 报文标示符测试