实验一 CAN总线通讯协议实验

Richer Chen
2023-05-28 / 0 评论 / 66 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年05月28日,已超过488天没有更新,若内容或图片失效,请留言反馈。
本文共 736 个字数,平均阅读时长 ≈ 2分钟

实验目的

​ 1、了解CAN总线信号矩阵的概念,学会使用CANdb Editor编辑器软件。

​ 2、了解汽车故障诊断协议UDS的协议结构,掌握UDS协议的基本使用方法。

实验性质

验证性实验。

实验要求

​ 1、CANdb Editor软件

​ 2、统一诊断服务协议UDS

实验内容

​ 1、学习CANdb Editor软件的使用方法,创建、编辑CAN数据库文件。

​ 2、了解UDS协议结构和通讯流程,进行简单的汽车故障诊断操作。

实验步骤

CAN信号矩阵与CANdb Editor的使用

​CAN总线实际应用中经常使用通信信号矩阵(Excel表格形式)来描述车辆网络中节点、消息与信号,可以直观地查看CAN网络数据通讯情况,各节点ECU必须遵循该通讯矩阵才能完成信息的交互和共享。

li7gtnrz.png
(1). CAN网络的基本概念:

  • 节点: 一个汽车控制器作为一个网络节点
  • 消息: 一个控制器会发出多种不同ID的报文,每个帧报文称为消息
  • 信号: 一帧报文长度1-8 byte,大多为8byte,即64bit,规定不同bit位代表不同信号,那么一帧报文可包含多个信号

(2). 通信矩阵基本内容包括
信号名称 信号长度 精度/偏移量 物理值范围 起始字节 起始位 信号类型
(3). 报文基本信息由: 报文名称 、 ID 、 报文类型 、 报文周期 、 长度 组成。
(4). DBC(Database Can)是vector公司制定的用于描述CAN网络中节点间数据通讯的一种文件,即根据CAN通讯协议制作的一份用于解析CAN报文数据的文件。DBC文件描述的信息包含:

  1. 版本与新符号
  2. 波特率定义
  3. 网络节点的定义
  4. 报文帧的定义
  5. 信号的定义
  6. 注解部分
  7. 特征部分
  8. 数值表部分。

报文信息、信号信息、路由信息

(5). 每个信号去填充64位bit时,两种填充方式:

  1. Intel格式(低字节在前):以起始位为原点,自下而上填充
  2. Motorola格式(高字节在前):以起始位为原点,自上而下填充

指出下图分别属于何种填充方式:

li7hg5h5.png图2 Intel 格式li7hgh92.png图3 Motorola 格式


​(6). 从你所制作DBC文件中选取一个消息(报文)并截取其信号布局图(layout)放在下面空白处。
li7hh3rv.png图5 DBC报文: 0x0 (填写ID)

UDS协议及其使用

UDS(Unified Diagnostic Services)协议即统一诊断服务,是ISO-14229定义的基于OSI模型中应用层的协议,是诊断服务的规范化标准,属于应用层协议,可在不同的汽车总线(如CAN, LIN, FlexRay, Ethernet和K-line等)上实现。
UDS诊断通信的过程:(在表格空白处书写)
0x0
li7hi43z.png

Diagnostic request的格式可以分为两类:一类是拥有sub-function,另一类是没有sub-function,如图所示:(在表格空白处绘制)

li7hiox9.pngli7hizg7.png
带sub-function的请求报文不带sub-function的请求报文

两种诊断请求报文格式

参照UDS协议,完成TesterPresent请求、应答报文:

TesterPresent请求: req:10 01

TesterPresent应答: rep:50 01

TesterPresent请求: req:22 F020

TesterPresent应答: rep:62 F0 20 00 11 22 33 44 55 66

原文链接:https://blog.csdn.net/m0_59054762/article/details/129723969

2

打赏

海报

正在生成.....

评论 (0)

语录
取消