计算机系统应用教程网站

网站首页 > 技术文章 正文

车载以太网诊断

btikc 2024-12-14 10:07:21 技术文章 18 ℃ 0 评论

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)实现全双工通信

  1. PHY的发送和接收是互通的
  2. 发送时加上自己的PAM3电压到双绞线
  3. 接收时从双绞线上的电压减去自己的PAM3电压,因此链路上的信号为master与slave的叠加,在示波器上隔离信号,进行协议解码是不可能的


编码结论

  1. 单对非屏蔽双绞线实现数据传输速率为100Mb/s的全双工通信
  2. 总线频率 66.67MHz (± 0.01%)较低的带宽可改善回波损耗,满足电磁辐射标准要求
  3. 总线电平包括 -1、0、+1
  4. 主从模式采用强制分配的方式 Master Slave 晶振时钟---CAN时钟周期(Tq)---位时间
  5. 终端电阻90-110欧姆,典型值100欧姆




Layer 2 数据链路层



(MAC层较其他层增加了FCS校验)



  • MAC层的作用


数据帧的封装与卸装;帧的寻址与识别;帧的接收与发送;链路的管理;帧的差错控制;透明传输;数据封装;路由寻址;数据交付,端到端服务;数据解析。




  • VLAN技术的优势


当广播数据充斥网络无法处理,并占用大量网络带宽,导致正常业务不能运行,甚至彻底瘫痪,这就发生了“广播风暴”。通过限制广播域范围的方式可以解决这一问题。局域网技术可以有效分离通信量,让带宽得到更好的利用,增强安全性。



  1. 限制广播域
  2. 广播域被限制在一个VLAN内,节省了带宽,提高了网络处理能力。
  3. 增强局域网的安全性
  4. VLAN间相互隔离,不同VLAN的用户无法直接通信。
  5. 提高了网络的健壮性
  6. 不同VLAN间的网络故障不会相互影响。
  7. 灵活构建虚拟工作组
  8. 用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,防止占用资源。



Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表