C++技能系列
Linux通信架构系列
C++高性能优化编程系列
深入理解软件架构设计系列
高级C++并发线程编程
设计模式系列
期待你的关注哦!!!
现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。
Now everything is for the future of dream weaving wings, let the dream fly in reality.
无论研发还是售前、售后都是需要诊断的,比如ECU的升级和刷写、4S店的升级刷新、OTA升级等。
(1)识别、检查、确认车辆状态
(2)提供车辆维护、维修、更新数据
(1)本地诊断(比如4S店人员用OBD读取ECU信息,升级刷写)
(2)远程诊断(比如通过云端远程诊断)
(3)仪表显示(比如车辆仪表盘指示灯的显示胎压不足)
时间 | 协议 | 描述 |
---|---|---|
1996 | ISO9141-2 | CARB Requirements for Interchange of Infomation |
1999 | ISO14230 | Keyword Protocol 2000 |
1999 | ISO/DIS15765 | Diagnostics on CAN - base on KWP2000 |
2001 | ISO15031 | Communication for emissions-related diagnostics |
2001 | ISO15765 | Diagnostics on CAN - base on UDS |
2006 | ISO14229 | Unified Diagnostics Services (UDS) |
2013 | ISO14229 | Unified Diagnostics Services (UDS) |
UDS(Unified Diagnostic Services,统一的诊断服务)诊断协议是在汽车电子ECU环境下的一种诊断通讯协议。简单来说,可以理解为UDS诊断协议就是ISO 14229协议,在ISO 14229协议中定义了UDS服务用法、服务格式等信息。UDS诊断最主要目的是为了能够快速准确判断车辆或者某个控制器的故障以及故障原因,从而为维修提供可靠的依据。
UDS-ISO:14229标准
ISO14229 | Unified Diagnostics Services (UDS) |
---|---|
ISO14229_1 | Specification and requirements - 定义了诊断服务,只有应用层,不涉及网络及实现。 |
ISO14229_2 | Session layer services |
ISO14229_3 | Unified Diagnostics Services on Can implementation(UDSSonCAN)- 定义了UDS在CAN总线上的实现 |
ISO14229_4 | Unified Diagnostics Services on FlexRay implementation(UDSSonFR) |
ISO14229_5 | Unified Diagnostics Services on IP implementation(UDSonIP) |
ISO14229_6 | UDS on K-Line implementation(UDSonk-Line) |
ISO14229_7 | UDS on Local interconnect network(UDSonk-LIN) |
诊断协议是用于汽车行业诊断通信的需求规范,由ISO-14229系列标准定义。应用于OSI七层模型的应用层(第7层),它只规定了与诊断相关的服务需求,并未涉及通信机制,所以,它可以在不同的汽车总线(例如CAN,LIN,FleXRAY,Ethernet和K-line)上实现。
在使用ISO-14229时,下面的通信机制可以改变,比如基于CAN,基于LAN,基于FlexRay等。诊断通信过程其实很简单,诊断仪发送诊断请求(request),ECU给出诊断响应(response),而UDS就是为不同诊断功能request和response定义统一的内容和格式。
服务 Service
UDS诊断包括6大类,26种服务,每种服务都有自己独立的ID,即SID(Service Identifier)
会话Session
可以理解为某种诊断模式或权限,即在不同的模式下,对不同的诊断服务的使用做了限制。
功能码 | 说明 |
---|---|
1 | Defaut Session |
2 | Pograming |
3 | Extended |
其实诊断通信的机制很简单,事件驱动型,一问一答。
类比client-server通信方式,诊断仪即客户端,发送request,服务器即ECU,收到request之后进行处理,然后向诊断仪回复response。
需要确认的服务
不需要确认的服务
但是,诊断协议有自己的特色,它规定了request和response的格式,在收到request的时候要做格式检查。同时由于寻址方式的不同,有无sub-function的支持等,也会影响request和response的处理方式和结果。
DoIP:Diagnositc communication over Internet Protocol
(1)本地一对一
(2)本地多对多
(3)远程一对多
(4)远程混合式
标准:
ISO:13400_1:定义基本信息和用例
ISO:13400_2:网络层协议、传输层服务
ISO:13400_3:基于802.3,定义线序和接口
ISO:13400_4:定义诊断连接器
ISO:13400_5:一致性测试
DoIP报文由DoIP报头和Payload(有效载荷)组成,具体如下图所示。
DoIP通信的4个阶段
(1)物理连接:Tester使用有线或无线的方式与车辆建立连接
物理连接线图:
(2)IP地址分配:静态或动态的分配IP地址,使Tester和车辆可以进行网络通信
(3)车辆发现:Tester识别并确认被诊断车辆
DoIP网关通信流程