网站首页 > 技术文章 正文
Diagnostic-诊断
UDS诊断服务
UDS(Unified Diagnostic Services,统一诊断服务)诊断协议是一种汽车通用诊断协议,它可在不同的汽车总线(例如CAN, LIN, Flexray, Internet 和K-line)上实现。UDS协议的定义位于ISO 14229,目前大部分汽车厂商均采用UDS on CAN的诊断协议。
传统的UDS on CAN可被ISO 14229和ISO 15765清晰地定义。DoIP(Diagnostic Over IP)这块儿除了应用层依然被ISO 14229-1规定外,其他向下的传输层都是由ISO 13400来规定的,而且端口号也是13400。
诊断服务是介于诊断设备和ECU之间的一种信息交互方式。通常由诊断设备发出请求,ECU做出回应。UDS规定的标准功能如下:
DoIP
DoIP即为Diagnostic over Internet Protocol,字面含义是基于IP协议的诊断。与之画风非常相似的就是DoCAN:Diagnostic over Controller Area Network,基于CAN协议的诊断。
DoIP技术,在UDS诊断服务基础上,通过TCP/IP及以太网来进行车辆诊断,协议定义在ISO 13400。
Automobile ETH-车载以太网
(车载以太网概述)
Layer 1 物理层
PHY位于第一层, ECU 中的微控制器和通信介质(物理介质、铜线、光纤等)之间,将微控制器发出的并行数据化为串行流数据,再把数据送出去。收数据时的流程反之。
PHY芯片的任务主要是把bit流进行一个频率的转换,只有达到一定的频率才有很好的抗干扰性。大概分为MII;PCS;PMA;PMD;MDI这几个子层。
- MII收发器连接示意
- 汽车PHY编码过程
PMA子层做PAM3转换都是数字信号,还需要MDI物理介质相关介质来把这一层转变为模拟信号。真实的以太网总线上是66.6M赫兹的模拟信号,需要MDI做一个数模转换。
- 以太网通信方式的优势
回音消除(echo cancellation)实现全双工通信
- PHY的发送和接收是互通的
- 发送时加上自己的PAM3电压到双绞线
- 接收时从双绞线上的电压减去自己的PAM3电压,因此链路上的信号为master与slave的叠加,在示波器上隔离信号,进行协议解码是不可能的
编码结论
- 单对非屏蔽双绞线实现数据传输速率为100Mb/s的全双工通信
- 总线频率 66.67MHz (± 0.01%)较低的带宽可改善回波损耗,满足电磁辐射标准要求
- 总线电平包括 -1、0、+1
- 主从模式采用强制分配的方式 Master Slave 晶振时钟---CAN时钟周期(Tq)---位时间
- 终端电阻90-110欧姆,典型值100欧姆
Layer 2 数据链路层
(MAC层较其他层增加了FCS校验)
- MAC层的作用
数据帧的封装与卸装;帧的寻址与识别;帧的接收与发送;链路的管理;帧的差错控制;透明传输;数据封装;路由寻址;数据交付,端到端服务;数据解析。
- VLAN技术的优势
当广播数据充斥网络无法处理,并占用大量网络带宽,导致正常业务不能运行,甚至彻底瘫痪,这就发生了“广播风暴”。通过限制广播域范围的方式可以解决这一问题。局域网技术可以有效分离通信量,让带宽得到更好的利用,增强安全性。
- 限制广播域
- 广播域被限制在一个VLAN内,节省了带宽,提高了网络处理能力。
- 增强局域网的安全性
- VLAN间相互隔离,不同VLAN的用户无法直接通信。
- 提高了网络的健壮性
- 不同VLAN间的网络故障不会相互影响。
- 灵活构建虚拟工作组
- 用VLAN划分工作组,网络构建和维护更方便灵活。
Layer 3 网络层
- 点分十进制
(进制转换流程)
主机之间的通讯必须在同一子网内,否则需通过路由器通信。
IP地址与子网掩码做逻辑与得到网址。
- message的Layout特点
车载以太网帧结构遵循32bit的对齐
Version IPv4 or 6 IHL 表示长度 最大15*4=60字节 Diff 表示优先级 Total指首部与数据之和的长度16bit Iden计数器,用来产生数据包的标识,同包同标识 Flag 表示分片 0 DF MF DF:是否允许分段 MF:是否为最后一片 Frag Off 表示片偏移即某片在原分片中的位置 8字节为单位 TTL表示数据包经过路由器的次数,经过一次就-1 到0则把数据包丢掉 Pro表示此包携带了何种协议的数据ICMP TCP UDP Header首部校验 Option长度可变很少使用 Padd实现32位对齐 但IPv6已舍弃
IP 根据MTU Maximum Transmission Unit 来判断是否数据分片,如果超过1500bytes,需要进行数据的分片。
不同的物理网络MTU值不同。
(ARP应用的场景,广播request,单播response的机制来完成的)
(ARP报文的Layout)
Layer 4 传输层
?端口号
1.区分不同应用之间数据的传输
2.应用程序与IP网络关联标识,长度:16bit
?端口分类
1.知名端口(Well Known Port):0~1023(IANA分配),紧密绑定一些服务
2.注册端口(Registered Ports):1024~49151,松散绑定一些服务
3.动态和/或私有端口(Dynamic and/or Private Ports):49152~65535,客户进程暂时使用
?Socket 套接字
1.传输层连接的端点称为套接字即一个IP与一个端口号的组合
套接字 = IP地址:端口号
2.识别唯一的连接需要五元组
传输协议、本地IP、本地端口、远程IP和远程端口
- UDP
(UDP的message layout)
端口号:区分发送进程和接收进程。
长度:UDP数据报的长度(首部+数据部分)
校验:防止UDP数据报在传输中出错(可选)
如果数据是奇数字节,需要在末尾添加一个字节0
- TCP
Port:源端口和目的端口字段各占2字节。端口是传输层与应用层的服务接口。传输层的复用和分用功能都要通过端口才能实现。
Sequence Number:占4字节。TCP连接中传送的数据流中的每一个字节都编上一个序号。
Acknowledge Number:占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号=seq+1。ACK=1才有效。
Data Offset: 占4bit,指TCP报文段首部有多少个4字节。
URG bit:当 URG=1 时,表明紧急指针字段有效,报文段中有紧急数据。
ACK接收端正确收到数据后返回一个ACK应答,发送端若在规定时间内没收到应答则进入重发状态。
Urgent Pointer:标识一个正偏移量,该量加TCP序列号可以得到紧急数据的起始字节位置。
PSH bit:接收TCP收到PSH置1的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。RST=1时重置连接,如连接到一个不存在的端口或异常终止一个连接。
SYN 置1时表示请求连接,此时不能携带数据但消耗一个序列号,FIN 置1时表示此报文段发送完毕,要求释放连接。
Window Size:占2字节,用来控制对方发送的数据量,单位为字节。TCP连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,通知对方以确定对方的发送窗口的上限。
DoIP-Diagnostic over IP 暨车载以太网诊断
(在CP的软件架构下,跟ETH相关的模块架构图)
(和DO IP交互的模块)
- DoIP节点的分类
?DoIP Entity
DoIP实体是任意一个满足DoIP协议的host,其中包括DoIP节点及DoIP网关。
?DoIP Gateway
DoIP网关是在车辆网络内部,实现与本模块及所连接多个子网内ECU通讯访问的节点。
?DoIP Node
DoIP节点是在车辆网络内部,遵守DoIP协议,但不具备路由DoIP数据到连接子网内功能的节点。
?DoIP Edge Node
DoIP边缘节点是在车辆内部,与诊断口Ethernet activation line直连的节点。
?External Test Equipment
车辆外部设备是指存在车辆网络外部,通过DoIP协议与车辆内部子网DoIP Entity实现通讯建立的设备。
?In-vehicle Test Equipment
车辆内部设备与外部设备拥有同样功能,但不具备Activation硬线,车辆身份请求及DCHP服务(自动为接入网中的DoIP节点分配不同的IP地址)。
(交互的流程)
(车辆发现的流程,包含几个过程,首先完成IP的分配之后DOIP实体首先发出announcement 诊断仪收到后回复identification 来完成这个流程)
(DoIP协议层的layout)
- DoIP-UDP 消息类型
(13400规定的不同的Payload type name对应了不同的请求和响应)
- 示例
GID把DoIP实体编为一个组,方便之后的诊断仪和多个DoIP实体进行交互。由边缘节点完成该流程。
每个DoIP实体都有自己独特的逻辑地址,请求的时候没有payload。
Check power mode,可以查看DoIP实体最大支持多少socket,现在有多少socket在用。
- DoIP协议基于TCP传输时Message的layout格式包含不同请求以及响应的payload type
(路由激活请求以及响应的message格式(layout))
ISO 13400有许多地方规定得并不详尽,很多地方都只是建议或是建议OEM自行讨论。
(DOIP实体的肯定应答和否定应答)
在车辆发现完成之后,DoIP基于TCP传输时的流程图。在诊断交互关闭之后,会释放Socket,防止占用资源。
- 上一篇: UDS诊断时间参数说明
- 下一篇: 基于CAN总线的Bootloader设计与实现
猜你喜欢
- 2024-12-14 鉴源实验室:车载ECU嵌入式设备的诊断测试 - 会话和安全控制
- 2024-12-14 AUTOSAR学习笔记之服务层介绍
- 2024-12-14 大众汽车为所有ID.系列引入OTA无线更新
- 2024-12-14 纯电动汽车整车控制器软件设计
- 2024-12-14 AUTOSAR BSW介绍
- 2024-12-14 AUTOSAR概述
- 2024-12-14 什么是AUTOSAR(一)——AUTOSAR概述
- 2024-12-14 UDS网络层介绍
- 2024-12-14 CAN编程介绍
- 2024-12-14 想要快速进阶车载测试!这些基础问题你一定要知道
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)