以太网的概念DoIP,SOME/IP,13400,1000Base-T/Tx,PHY,MII,AVB、gPTP

(一)车载以太网OSI层级划分。

如下图,即为基于车载以太网的车载网络所使用的各种通信协议。

远程诊断DoIP(笔记二)概念-编程知识网

(二)DoIP是什么?

DoIP:Diagnostic over Internet Protocol,字面含义:基于IP协议的诊断。与之画风非常相似的就是DoCAN:Diagnostic over Controller Area Network,基于CAN协议的诊断

DoIP技术,在UDS诊断服务基础上,通过TCP/IP及以太网来进行远程车辆诊断。协议定义在ISO 13400,文档中详细描述了外部测试及刷新设备如何与整车内部ECU通过以太网及TCP/IP协议进行通讯。

文档共5份:

  • — Part 1: General information and use case definition

  • — Part 2: Transport protocol and network layer services

  • — Part 3: Wired vehicle interface based on IEEE 802.3

  • — Part 4: Ethernet Diagnostic Connector

  • — Part 5: Conformance test specification

远程诊断DoIP(笔记二)概念-编程知识网

远程诊断DoIP(笔记二)概念-编程知识网

远程诊断DoIP(笔记二)概念-编程知识网

可以看到,ISO13400涉及到的主要分布在传输层、网络层、数据链路层、物理层四层中。

ISO13400-1处于应用层(层7)之上,是对一些通用信息、应用场景的描述。

应用层基于ISO14229-1和ISO14229-5,前者是UDS的完整定义,后者是UDS通过网络协议IP传输的实现。

会话层(层5),ISO14229-2对于所有的诊断通信都是一样的,目的是为上层提供统一的接口,使上层应用不需要随着底层通信技术的变化而改变。

传输层和网络层(层4和层3)由ISO13400-2定义,ISO13400-2中规定了DoIP通信在传输层中使用TCP和UDP协议,在网络层中使用IPv4或IPv6。此标准中还定义了专属于DoIP通信的信息内容,这些信息和上层的诊断命令共同构成了传给TCP或UDP协议的SDU。

ISO13400-2定义了DoIP诊断通信对Ethernet数据链路层(层2)和物理层(层1)的要求,比如,规定DoIP通信在这两层上支持100BASE-T1(100 Mbit/s Ethernet) 和10BASE-T (10 Mbit/s Ethernet) 两种方案。

 

(三)SOME/IP是什么?

SOME/IP缩写的全称扩展:Scalable service-Oriented MiddlewarE over IP。字面理解:基于IP协议的面向服务的可扩展的中间层。它的核心词是中间层,主要用于控制报文通信。

SOME/IP数据在以太网报文结构中的位置。

远程诊断DoIP(笔记二)概念-编程知识网

由此可见,SOME/IP其实是构架在传输层之上的应用层通信协议,它的内容虽然很多很杂,但本质上也就是定义了SOME/IP 包头和数据的内容而已。

具体来说,SOME/IP位于OSI 7层模型的会话层。

远程诊断DoIP(笔记二)概念-编程知识网

下面是SOME/IP的重点内容总结:

服务是SOME/IP的最核心概念。在车载网络中,某个ECU有时会需要调用实现在其他ECU上的个服务,这个时候它俩就分别扮演了client和server的角色,而SOME/IP就是实现这种远程服务调用的接口。对于同一个服务,只能存在一个Server,但可以同时存在多个Client调用服务。

与CAN相比,面向服务的通讯方式能够大大降低总线的负载率。这是由于:在以CAN总线为主的车载网络中,通信过程是面向信号的(除了诊断通信之外),这是一种根据发送者需求实现的通信过程,当发送者发现信号的值变化了,或者发送周期到了,就会发送信息,而不考虑接收者是否有需求。而SOME/IP则不同,它是在接收方有需求的时候才发送,这种方法的优点在于总线上不会出现过多不必要的数据,从而降低负载。

远程诊断DoIP(笔记二)概念-编程知识网

上面是SOME/IP的传输数据帧,Payload是原始数据(SOME/IP的data),此外的其他结构都属于SOME/IP的header

Message Type(报文类型):

远程诊断DoIP(笔记二)概念-编程知识网

(1)REQUEST,REQUEST_NO_RETURN,RESPONSE属于同一类远程过程调用方法,当client有需求的时候,发送一个request消息,server根据这个消息类型(REQUEST或REQUEST_NO_RETURN)来决定是否发送response消息。过程如下图所示。

远程诊断DoIP(笔记二)概念-编程知识网

(2)NOTIFICATION属于事件通知类的服务,首先由client向server订阅服务内容,然后server向client自动发布服务内容。

NOTIFICATION又分为Event和Field 两类,这两类通知都需要首先使用SOME/IP-SD(Service Discovery)来进行服务订阅,然后才能发布通知。区别在于,Event是某一时刻的快照,只是事件通知,而Field除了事件通知之外,还具有Getter和Setter的功能,即对信息进行读写的操作。

远程诊断DoIP(笔记二)概念-编程知识网

 

关于SOME/IP的数据结构和通信模式

https://blog.csdn.net/AgingMoon/article/details/104166715?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase

文章结构:

1. 总体说明

2. 服务说明

2.1 Method

2.2 Event

2.3 Field

3. 解析SOME/IP格式

3.1 Message Type说明

3.2 Payload说明

4. SOME/IP 服务发现SD

4.1 主要功能

4.2 SD报文解析

4.2.1 Entry

4.2.2 Options

4.3 SD状态机 

5. SOME/IP序列化 

5.1 概念

5.2 说明

5.3 举例

(四)车载以太网物理层及链路层:

PHY/MAC控制器/MII/100BASE-T1/1000BASE-T1等概念都发生在以太网的最下两层:物理层和数据链路层。

物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。物理层的芯片称之为PHY;

数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。数据链路层的芯片称之为MAC控制器;

车载以太网固定为全双工通信方式(名词解释:全双工就是双方同时可以互发消息,比如打电话可以双方同时讲话;半双工是对讲机,可以双向,但不能同时说话。所以远程开会最好还是使用对讲机,以免出现“同时有话说-又同时等对方说-对方都不说又同时有话说”的尴尬场景。说到这里又需要提到一个概念:CSMA/CD,载波侦听多路访问/冲突检测协议,它是以太网的MAC数据传输协议,但全双工关闭端口上的冲突检测功能CD,这是由于全双工模式下两个节点间的传送和接收链路实际是分开的。通过单对非屏蔽或屏蔽电缆连接,与之对应的100M的MDI接口为100Base-T1,以此满足EMC要求。

CSMA/CD的参考文章:https://www.cnblogs.com/mayuechang/articles/1496695.html

介绍以太网物理层的文章,原文链接:

https://blog.csdn.net/LEON1741/article/details/105914478?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3.nonecase

1、MAC介绍

MAC(Media Access Control)即媒体访问控制子层协议,该部分有两个概念:MAC可以是一个硬件控制器,也可以指MAC通信及协议。它位于OSI七层模型中数据链路层的下半部分,主要负责控制与连接物理层的物理介质,它一端通过总线连接MCU/MPU,另一端通过MII连接到PHY

发送数据时,MAC协议会判断当前是否适合发送数据,若能,它会在将要发送的数据上附加一些控制信息,最终使数据以规定的格式到达物理层;在接收数据时,它会判断数据是否有错误,如果没有错误的话,它会去掉附加的控制信息发送至LCC(逻辑链路控制)子层。所以说,以太网数据链路层其实包含MAC(介质访问控制)子层和LLC(逻辑链路控制)子层这两层。

远程诊断DoIP(笔记二)概念-编程知识网

2、PHY介绍

PHY(Physical Layer,物理层)是IEEE802.3中定义的一个标准模块。STA(station management entity,管理实体,一般为MAC或CPU)通过SMI(Serial Manage Interface)对PHY的行为、状态进行管理和控制,而具体管理和控制动作是通过读写PHY内部的寄存器实现的。

PHY是物理接口收发器,它实现OSI模型的物理层。IEEE-802.3标准定义了以太网PHY包括MII/GMII(介质独立接口)子层、PCS(物理编码子层)、PMA(物理介质附加)子层、PMD(物理介质相关)子层、MDI子层。

PHY在发送数据的时候,收到MAC过来的数据(对PHY来说,没有帧的概念,对它来说都是数据,而不管什么地址、数据还是CRC),然后把并行数据转化为串行流数据,再按照物理层的编码规则把数据编码,再变为模拟信号把数据送出去。收数据时的流程反之。

PHY还有个重要的功能就是实现CSMA/CD的部分功能。

远程诊断DoIP(笔记二)概念-编程知识网

3、MAC与PHY的接口连接

MCU/MPU接到MAC总线、MAC接PHY、PHY接网线(当然也不是直接接上的,还有一个变压装置)。MAC与PHY之间通过两个接口连接,分别为SMI接口和MII接口。MII叫做介质独立接口,以太网MAC通过该接口发出数据帧经过PHY后传输到其他网络节点上,同时其他网络节点的数据先经过PHY后再由MAC接收;SMI叫做是串行管理接口,以太网MAC通过该接口可以访问PHY的寄存器,通过对这些寄存器操作可对PHY进行控制和管理。SMI接口包括MDIO(控制和管理PHY以获取PHY的状态)和MDC(为MDIO提供时钟)。MDC由MAC提供,MDIO是一根双向的数据线。用来传送MAC层的控制信息和物理层的状态信息。MDIO数据与MDC时钟同步,在MDC上升沿有效。

关于车载以太网的物理层https://zhuanlan.zhihu.com/p/35662570

4、100BASE-T1/1000BASE-T1

100BASE-T1:IEEE组织对于传输速率为100Mbps的车载以太网物理层的正式命名。区别于100BASE-TX(标准民用100Mbps以太网).

1000BASE-T1 —— IEEE组织对于传输速率为1000Mbps(或者1Gbps)的车载以太网物理层的正式命名。区别于1000BASE-TX(标准民用1000Mbps以太网)。

对于100Mbps和1000Mbps的单位,进一步说明一下:bps,比特率(bit rate)又称“二进制位速率”,俗称“码率”。比特率指的是每秒传输比特数,又称数据信号速率,单位为比特/秒(bit/s或bps)、千比特/秒(kbit/s或kbps,k=1000)或兆比特/秒(Mbit/s或Mbps,M=1000000)。比特率越高,表示单位时间传送的数据就越多。

1000 bit/s = 1 kbit/s (一千位每秒)

1000 kbit/s = 1 Mbit/s (一兆或一百万位每秒)

1000 Mbit/s = 1 Gbit/s (一吉比特或十亿位每秒)。

(此处K和M分别为1000和1000000,而不是涉及计算机存储器容量时的1024和1048576)

比特率和波特率的差别,用一句话说明:波特率可以被理解为一个设备在一秒钟内发送(或接收)了多少码元的数据,它是对符号传输速率的一种度量,表示单位时间内传输符号的个数(传符号率)。通过不同的调制方法可以在一个符号上负载多个比特信息。

(五)AVB 和gPTP

AVB:以太网音视频桥接技术(Ethernet Audio/VideoBridging,又称“EthernetAVB”,以下简称AVB)是一项新的IEEE802标准,其在传统以太网络的基础上,通过保障带宽(Bandwidth),限制延迟(Latency)和精确时钟同步(Time synchronization),以支持各种基于音频、视频的网络多媒体应用。

IEEE 802.1音视频桥接(Audio Video Bridging, AVB)工作组定义了一种基于一套独立于TCP/IP协议族的通信协议的实现方法。涉及到的协议大体如下:

1、IEEE802.1Qat,流预留协议(Stream Reservation Protocol, SRP),为特定的数据流预留带宽的标准;

2、IEEE802.1Qav,时间敏感流的转发和排队规则(Forwarding and Queuing for Time-Sensitive Streams, FQTSS),流量整形的标准,可保证带宽和QoS的延迟参数。

以及其他的上层通信方案:

3、IEEE1722,音视频桥接传输协议(Audio/Video Bridging Transport Protocol, AVBTP)

4、IEEE 1733,实时传输协议(Real-time Transport Protocol, RTP);

5、IEEE802.1AS, 广义精确时钟协议(Generalized Precision Time Protocol, gPTP),确保收发的终端之间严格时间同步的标准。

gPTP协议位于OSI模型的层2之上,可以依赖于以太网传输

gPTP的用途是将车载网络中各个节点的时钟进行同步,因为各个节点的时钟都是互相独立运行的,而有些应用需要各个节点步调一致地执行。比如播放音频和视频的任务可能在不同的节点上实现,那么这两个设备必须要有相同的时钟基准,否则可能出现画面和声音对不上的情况。时钟同步本质上就是各方对一下表。

其他gPTP报文类型及工作任务详细内容参考https://zhuanlan.zhihu.com/p/101003490