汽车CAN总线测试应用(一):总线解码分析
CAN是Controller Area Network(控制器局域网络)的缩写。在汽车产业,各种电子控制系统之间的通信所用的数据类型及对可靠性的要求不尽相同,若由多条总线来进行通信,线束的数量也将随之增多。为了适应“减少线束”、“通过多个LAN进行大量数据高速通信”的需要,1986年德国电气商博世公司开发出面向汽车的CAN通信协议;并且于1993年经ISO认证成为国际标准,正式发布了CAN总线的标准文件ISO 11898。目前CAN总线已经是国际上应用最广泛的现场总线之一。
· 1983年,BOSCH开始着手开发CAN总线;
· 1993年,ISO发布CAN总线标准(ISO 11898),随后该标准主要有三部分:
· ISO 11898-1:数据链路层协议
ISO 11898-2:高速CAN总线物理层协议
ISO 11898-3:低速CAN总线物理层协议
注:ISO 11898-2和ISO 11898-3物理层协议不属于BOSCH CAN 2.0标准。
2012年,BOSCH发布 CAN FD 1.0 标准(CAN with Flexible Data-Rate),CAN FD定义了在仲裁后使用不同的数据帧结构,从而达到最高12Mbps数据传输速率。CAN FD与CAN 2.0协议兼容,可以与传统的CAN 2.0设备共存于同样的网络。
CAN总线的多主控模式
CAN总线带来的优化
· 线束(电气信号线)的削減——低成本化、设计简单化
· 轻量化——降低油耗
· 差分电压——降低噪声影响(安全性)
· 错误处理的充实——高可靠性
CAN总线的主要应用场景
■ 汽车、卡车、巴士
· 车身控制
· 动力传动系统
· ABS
· 发动机控制
· 汽车测试台架
· 充电桩
■ 飞机、列车、船舶(客船、轮船)
■ 自动化
· 楼宇控制(电梯、自动扶梯)
· FA (机器人、数控设备)
■ 医疗机器、农业机械、施工机械
· MRI
■ 风电、光伏
· 风力发电机控制系统
· 分布式光伏发电设备监控系统
CAN总线协议及解码分析
CAN协议结构
CAN标准分为底层标准(物理层和数据链路层)和上层标准(应用层)两大类。CAN底层标准主要是ISO 11898系列的国际标准,也就是说不同厂商在CAN总线的物理层和数据链路层定义基本相同;而上层标准,不同应用领域或制造商会有不同的做法,所以在这一块没有统一的国际标准。
根据OSI参照机型,定义数据链路层与物理层。
OSI规格化以外,SAE J2284, J2411等规格也有类似分层。
CAN总线的网络
CAN网络的拓扑一般为线型。线束最常用为非屏蔽双绞线(UTP),线上传输为对称的电平信号(差分),连接在CAN总线上的设备叫做节点设备(CAN Node),“帧”分组形式的信号流动,无论哪个节点都可以任意传送,无论哪个节点都可以任意接受。
CAN总线的双绞线传输
一般的串行总线,都有两根信号线(如比较好理解的I2C总线,就有一根SDA、一根SCL)。而CAN总线则不同,虽然也有两根总线(CAN_H和CAN_L),但却是利用CAN_H和CAN_L两根线上的电位差来表示CAN信号:
两根总线的电压差=2V时;逻辑为0,为显性
两根总线的电压差=0V时;逻辑为1,为隐性
以ISO 11898中对高速CAN信号的定义为例:
高速CAN和低速CAN总线在物理层信号电平上定义有所不同,低速CAN,定义CAN_H和CAN_L电压相差5V(CANH=0V,CANL=5V)时为逻辑“1”,相差2.2V(CANH=3.6V,CANL=1.4V)时为逻辑“0”。CAN总线上,逻辑“0”和“1”之间显著的电压差是总线可靠通信的保证,CAN总线的信号电平具有线与特性,即显性电平(0)总是会掩盖隐性电平(1)。如果不同节点同时发送显性和隐性电平,总线上表现出显性电平(0),只有在总线上所有节点发送的都是隐性电平(1)时,总线才表现为隐性。线与特性是CAN总线仲裁的电路基础。
节点设备的构成
· 用CAN_H/CAN_L的差分信号通信。
· 可以连接的节点数最多30个。
· 总线两端必须附加终端电阻
· CAN的通信速度(波特率)以125kbps为界限来区分高速CAN与低速CAN
· 各节点通过CAN控制器、CAN收发器连接到CAN总线。
例如下图:高速CAN时,120Ω終端。
信号帧类型与作用
CAN总线的特点
· 差分信号——出色的抗噪性能
· 多主控——所有节点没有主从之分,总线如果空闲,任意节点都可向总线发送消息。
· 非破坏性位仲裁机制——用信息内的标识符ID决定信息发送优先顺序;这种仲裁机制既不会造成已发送数据的延迟,也不会破坏已经发送的数据。
· 系统的柔软性——CAN总线上的节点没有“地址”的概念,因此在总线上增加节点时,不会对总线上已有节点的软硬件及应用层造成影响。
· 通信速度的设定——可以配合网络的规模,系统的机能进行设定;两条不同通信速度总线上的节点通过网关可实现信息交互。
· 高度的错误处理功能——所有的节点都可以检测出错误;检测出错误的节点会立即通知总线上其它所有的节点;正在发送消息的节点,如果检测到错误,会立即停止当前的发送,并同时不断地重复发送此消息,直到该消息发送成功为止(错误恢复功能)。
· 数据可请求——某个节点Node_A可以通过发送“遥控帧”到总线上的方式,请求某个节点Node_B来发送由该遥控帧所指定的报文。
CAN分析工具
CAN总线解析,需要观测的问题
· 系统噪声是否会影响总线的传送。
· 总线报错时是否是硬件问题造成的。
· 软件编程是否正确。
· 如何同时观测多种串行总线。
用示波器观测物理层信号波形
示波器观测到的“波形”反映CAN总线的电压信号的时间变化。
以DLM3000和DLM5000为例:
隐性电位在DLM3000菜单中设定(选择)
无论哪种设定,逻辑值隐性=1、显性=0。
H: 隐性电位高于显性电位。
L: 隐性电位低于显性电位。
能够胜任CAN总线解析的示波器需要具备的功能:
· 高速采样率能清晰地捕捉和显示串行模拟信号并观测物理特性。
· 长存储记录较长时间的总线控制过程。
· 丰富的触发功能,以及高波形采样率能捕获到错误并对应观测模拟波形查看问题原因。
· 同步显示解码结果与列表结果,方便观测总线数据信息。
· 具有逻辑分析功能,满足多路串行总线同时分析的需要。
横河示波器串行总线分析功能
横河DLM3000、DLM5000系列混合示波器具有强大的串行总线分析功能支持多种主流串行总线:CAN/CAN FD/LIN/FlexRay/UART (RS232)/I2C/SPI/SENT/CXPI,串行总线通信在汽车等各领域得到了广泛应用。从制动系统到车辆导航系统,这些总线无处不在。要确保正常的车辆性能,电子控制单元(ECU)、传感器和执行器之间的通信尤为重要。除了验证协议的数字逻辑之外,开发和验证这些系统还需要对波形质量、噪声以及传感器/执行器信号的同步测量进行模拟物理层验证。带有串行总线解码功能的DLM3000、DLM5000可同时显示总线的解码数据和物理层波形,非常适合用于验证和排除故障。
DLM系列示波器独特的总线分析功能具有突出的优势:
■ 串行总线自动设置
串行总线分析通常需要许多设置,例如比特率、电压阈值、逻辑极性、采样点和触发条件。这些复杂的设置使捕获数据难以进行,并且需要很长的设置过程。YOKOGAWA特有的自动设置功能可自动分析输入信号和复杂参数如比特率和阈值电平,在几秒钟之内选择出最佳设置。此功能不仅可以节省时间,而且在比特率和其他参数未知时也具有强大的调试能力。
■ 硬件加速实时解码分析
硬件解码器,解码速度高于15次/秒、增大记录长度仍能保持较高的解码速度。
■ 解码结果显示与列表显示
将所有帧的分析结果以列表的方式显示出来,解码总线上每一个帧信息,如地址、数据、标识符等,解码结果与列表实时更新列表选定项与解码放大窗口显示对应。
■ 双总线触发
CAN、CAN FD及其他类型总线可以同时触发。
■ 最多可同时快速分析4种速度不同的总线
最多可同时快速分析4个速度不同的总线。各种搜索功能增强了可用性,即使在非常庞大的内存中也可以搜索出特定数据。双缩放功能意味着可以观测不同的总线并执行相互调试。
CH1、CH2 2路CAN线分析结果
CAN总线解析的实测案例
汽车控制系统测试案例
ECU(Electronic Control Unit)电子控制单元,又称“行车电脑”、“车载电脑”等。从用途上讲则是汽车专用微机控制器。它和普通的电脑一样,由微处理器(MCU)、存储器(ROM、RAM)、输入/输出接口(I/O)、模数转换器(A/D)以及整流、驱动等大规模集成电路组成。用一句简单的话来形容“ECU就是汽车的大脑”。为保证车辆运行通畅,在汽车的开发与检测中,一般需要进行以下项目的测试:
• 多路ECU控制信号的时序关系
• 多路转速、喷油脉冲、曲轴转角等传感器信号
• 进行CAN总线的解码分析
-
汽车测试网V课堂
-
微信公众号
-
汽车测试网手机站
最新资讯
-
Plus为自动驾驶卡车功能添加了H.E.L.P.警报
2024-12-23 17:18
-
美国能源部发布最新版氢计划
2024-12-23 17:16
-
系统级封装(SiP)在新能源汽车领域的应用
2024-12-23 08:51
-
车载通信框架 --- 智能汽车车载通信架构浅
2024-12-23 08:40
-
全国首例!武汉车网智联公司完成智能网联测
2024-12-23 08:39