N_SA,N_TA分别表示源地址和目的地址,其实就是表示报文传输的来源以及去向。而在实际整车CAN网络中,每个ECU都会被分配三个或四个CAN ID作为诊断的发送ID和接收ID。不难看出,N_SA表示ECU发送报文的地址信息,会携带ECU静态定义并明确标识此ECU的ID,即对应ECU发送ID,N_TA表示ECU接收报文的地址信息,会携带来自网络并标识Tester的ID,即对应ECU接收ID。
举个ECU例子,某ECU的发送ID为0x788,接收ID为0x780和0x7DF(为什么两个?后面解释),当某诊断仪或Tester发送诊断报文后,此ECU接收并响应发送报文回去,这种情况下,CAN ID为0x780的报文从诊断仪或Tester发出,ECU接收处理后会以0x788为CAN ID发送响应出去。这里N_SA相当于关联上了0x788,表示来源于此ECU,N_TA关联于0x780,表示诊断仪或Tester的目的地址为此ECU。
而0x7DF是神马东西呢?这个就是关联于N_TAtype,表示物理寻址和功能寻址。简单来说,前者表示通信方式是一对一,后者表示一对多。这个0x7DF就是来源于功能寻址的ID,也就是说不止此ECU会接收处理此报文,其他ECU也会。
---------------
15765-2有五种地址类型,标准地址,标准混合地址,扩展地址,29位混合地址,11位混合地址。其中 标准地址 、扩展地址、11位混合地址 ,这些ID是特定的,是车厂给我们定好的。比如,我是车厂的整车控制器供应商,车厂会告诉我以下信息:
1.整车控制的CAN ID是1,是物理地址
2.收发的时候使用的是标准数据帧
3.这个ID=1是属于标准地址(标准地址,标准混合地址,扩展地址,29位混合地址,11位混合地址 这五种里面的一种)。请注意标准地址和CAN 的标准帧不是一个概念哦!
4.多包传输的时候(ISO15765-2是实现多包传输的),和ID是9的一个节点进行通讯,ID=9就是Tester
5.和ID=9的节点支持多包通讯。
6.ID=0xDF,是功能地址,不支持多包。
7.收到ID=0xDF后,你要响应。
以上是UDS for 标准地址,这也是大家通用的东西。ID是我瞎写的
当然以上也符合扩展地址、11位的混合地址(混合地址的话,规则制定者还必须告诉你AE信息)。
我在写一下 基于15765-2的 标准混合地址、扩展地址、29位的混合地址的东西,和上面差不多。只不过这三个地址,CAN ID是可以拆分的。
1.使用标准混合地址通讯。
2.收发的时候使用的是通过扩展数据帧
2.整车控制器的地址是0x4,
4.当接受到地址是0x5的信息的时候,要回复哦~!
5.优先级P=6
看到没 ,信息就这么少,为什么呢,我来通过15765-2解释一下。
根据第1条得知使用标准混合地址通讯,查阅15765-2得知 物理通讯是PF=218(十六进制是0xDA),功能通讯PF=219(十六进制是0xDB),所以我们可以得知当我们接受到0x18DA0405的帧,就是给我们整车控制器发的。,并且是物理通讯,支持多包。 当我们接受到0x18DB0405的时候,是功能通讯,是不支持多包的。是一对多。 这里有人问了,一对多,为什么Ta却是04?其实这里的确不应该是04.因为一对多,Tester用来“广播”的,因为这个地址信息是符合J1939的。其实这里的Ta应该是0xFF才对,所以应该是0x18DBFF05 这样才是广播。
把PF=205 206 (混合地址)换上去,再加上AE信息,通用。
关于标准地址说法肯定对的,关于标准混合地址、29位混合地址的说法是通过阅读文档,按照对文档的理解所写的。有可能不对。
以上是对15765-2的所有理解。