汽车故障诊断UDS网络层原理讲解

发布时间:2024-03-12  

一、UDS概述

汽车故障诊断 UDS(Unified Diagnostic Service)是利用ECU监测控制系统各组成部分的工作情况,发现故障后自动启动故障记录和处理逻辑。汽车故障诊断模块不仅能够存储记忆汽车故障,还能够实时提供汽车各种运行参数。外部诊断设备通过一定的诊断通信规则与ECU建立诊断通信,并读取这些故障和参数,同时解析出来供外部测试人员分析。其主要遵循:ISO-15765、ISO-14229诊断协议。经常应用在整车的各种整车上的电控单元(ECU)上面。


二、UDS基本原理

1、UDS协议栈

UDS协议栈主要分为网络层和应用层两大部分

b1b96660-ba64-11ee-8b88-92fbcf53809c.jpg

网络层:是为了解决ISO 11898 协议中的经典can数据链路层与UDS 应用层 ISO 14229 协议中定义的应用层,彼此的数据长度不一样问题。经典can数据链路层最大支持8字节,但 ISO 14229 不仅仅支持can总线设计的,其最大容量是达到4095字节。如UDS应用需要发送20字节数据信息,而can不能一帧报文处理完,需要3帧才能发送完毕。那么如何将多字节数据通过can进行有效,有序的传输呢?ISO 15765-2 由此而生。网络层分为单帧和多帧,单帧(SF)就是一帧can报文8字节内就可以把uds数据处理完毕。多帧就是一帧can报文8字节内处理不完,需分为首帧(FF),流控帧(FC),连续帧(CF)来处理。网络层还有时间参数,如N_Ar、N_As、N_Br、N_Bs、N_Cr、N_Cs。后续网络层会详细讲解。 应用层:应用层协议通常作为确认消息的传输,意味着从客户端发送的每一个请求都将有由服务器端产生的与之相对的响应。  

2、功能寻址与物理寻址

由客户端诊断设备(诊断仪Tester),发出诊断请求,服务端server响应客户端请求。客户端可以使用功能寻址(一条报文对应本网络中所有Server(ECU),一般为报文ID为7DF),也就是说本网络中所有ECU都要对这条指令做出响应,即一对多模式。 客户端也可以使用物理寻址(是一种点对点的寻址模式,一条报文对应于单独一个Server(ECU))单独跟网络中某个ECU服务端进行通讯,即一对一模式。 功能寻址和物理寻址是每一个具备UDS诊断功能的ECU,所具有的两个CAN_ID,整车上规定每个ECU功能寻址的CAN_ID相同,一般设置为0x7DF。整车上也规定每个ECU的物理寻址CAN_ID 都是唯一的。

三、网络层概要

网络层功能

应用层诊断服务can数据帧的转发;

多帧数据传输,进行数据的打包、解包,协调上下层工作;

b1ca54e8-ba64-11ee-8b88-92fbcf53809c.jpg

单帧报文传输

b1db7f8e-ba64-11ee-8b88-92fbcf53809c.jpg

多帧报文传输

b1eccb9a-ba64-11ee-8b88-92fbcf53809c.jpg

四、网络层协议

协议数据单元(N_PDU)

N_PDU一般包含3个领域,N_PDU:{ N_AI, N_PCI, N_Data }如图所示

b2077c24-ba64-11ee-8b88-92fbcf53809c.jpg

协议控制信息(N_PCI)结构

b2223a96-ba64-11ee-8b88-92fbcf53809c.jpg

网络层对于N_PDU分为单帧、第一帧(首帧)、连续帧、流控帧这四种类型,每种类型是通过协议控制信息(N_PCI)进行区分的,每一个N_PDU都只有一个N_PCI。通常对于CAN诊断来说,就可以通过识别每条CAN帧数据域的首个字节来确定它属于四种类型中的哪类。下面对这四种类型进行说明。  

单帧(SF)

单帧顾名思义就是一帧can报文就可以处理完uds服务。can报文首字节为N_PCI字节,控制信息如下图所示:

b23397b4-ba64-11ee-8b88-92fbcf53809c.jpg

从上图可知,can报文首字节高4bit为0表示首帧,首字节低4bit表示单帧数据长度,即N_Data的有效字节数。通过trace我们可以看到N_Data有效字节数为3,有效字节数不足8字节,可填充任意数,这里填充00。因此如图所示的trace,在接收方接收到该can报文后,解析can报文首字节03便可知该报文为单帧且只有3个有效字节数,后续全为补充的无效字节数。

第一帧(FF)

发送方发送N_Data数据过长时,则需要拆分成多帧报文,被拆分后的报文需要通过多个N_PDU来发送,而接收方接收到多个N_PDU信息后进行重组。发送方发送多帧时,需要先发送首帧来告知接收方有多少字节数要发送到接收方。首帧控制信息如下图所示

b250839c-ba64-11ee-8b88-92fbcf53809c.jpg

从上图可知,can报文首字节高4bit为1表示首帧。首字节低4bit和byte2组合12bit表示发送方发送的数据长度,即N_Data的有效字节数。通过trace我们可以看到N_Data有效字节数为0x018,即24个有效字节数。因此如图所示的trace,在接收方接收到该can报文后,解析can报文前两个字节0x10 0x18便可知该报文为第一帧且有24个有效字节数,后续全为补充的无效字节数。

流控帧(FC)

UDS多帧通讯时:1、发送方发送首帧FF给接收方。2、接收方接收到首帧,解析首帧。3、接受方根据自身条件判断后(如:接收数据缓存大小,接收数据快慢能力,当前是否可以接收数据等),回复一帧流控帧FC给发送方。4、发送方根据接收到接收方的流控帧FC来决定后续的操作。流控帧FC控制信息如下图所示:

b25b345e-ba64-11ee-8b88-92fbcf53809c.jpg

从上图可知,can报文首字节byte1高4bit为3时表示该帧为流控帧FC。byte1低4bit为流状态FS(0表示继续发送、1表示等待、2表示溢出即第一帧中的FF_DL信息的长度超过接受实体缓冲区的大小),byte2为块大小(允许一次可连续发送连续帧CF的次数),byte3为发送方发送连续帧CF与连续帧CF间的最小间隔时间。

连续帧(CF)

发送方发送首帧FF,然后接收到接收方的流控帧FC后,若条件允许可继续发送信息,则需根据连续帧CF的控制信息格式来发送信息。连续帧CF控制信息如下图所示:

b26f0c36-ba64-11ee-8b88-92fbcf53809c.jpg

从上图可知,can报文首字节byte1高4bit为2时表示该帧为连续帧CF。byte1低4bit 为连续帧的顺序号SN。对于所有的拆分信息,SN开始于0。第一帧应当分配值为0。虽然第一帧 N_PCI没有明确表示出序列号,但是应该将首帧当作0号序列对待,第一个流控帧FC后的连续帧SN设置为1,同一拆分信息上,每一个新增的连续帧顺序号SN增1,连续帧顺序号SN的值不受流控帧的影响,当连续帧顺序号SN值为0x0F时,下一个连续帧中将顺序号SN重置为0。 如图为多帧举例:

b285a3a6-ba64-11ee-8b88-92fbcf53809c.jpg

定时参数

网络层定义了N_Ar、N_As、N_Br、N_Bs、N_Cr、N_Cs六个时间参数

b29c1f64-ba64-11ee-8b88-92fbcf53809c.jpg

 

b2a6264e-ba64-11ee-8b88-92fbcf53809c.jpg

对上述图片进行归纳,可以总结出几种超时: N_As超时:发送方没有及时发送N_PDU。 N_Ar超时:接收方没有及时发送N_PDU。 N_Bs超时:发送方没有接收到流控帧。 N_Cr超时:接收方没有收到连续帧。 N_Br超时:接收方没有发出流控帧。 N_Cs:即STmin,发送两个连续帧需要等待的最短时间,N_Cr最大1000ms。

五、寻址方式

将N_PDU映射到CAN数据帧的不同位置,构成了4种寻址格式:常规寻址(Normal addressing)-11位CANID、常规固定寻址(Normal fixed addressing)-29位CANID、扩展寻址(Extended addressing)-11位CANID、混合寻址(Mixed addressing)-11或29位CANID,以常规寻址(SF单帧)为例:

b2c5576c-ba64-11ee-8b88-92fbcf53809c.jpg

在物理通讯场景下,即一对一的通讯方式:

b3773978-ba64-11ee-8b88-92fbcf53809c.jpg

 

b383a5f0-ba64-11ee-8b88-92fbcf53809c.jpg

在功能通讯场景下,即一对多的通讯方式:

b395e396-ba64-11ee-8b88-92fbcf53809c.jpg

 

b3a85468-ba64-11ee-8b88-92fbcf53809c.jpg


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>