接上一篇《车载以太网(上)》,这篇主要介绍以太帧的结构及传输
一、车载以太网帧结构
以太网帧的格式如下:
以太帧有多种类型,不同类型的帧具有不同的格式和MTU值,但在同种物理媒体上都可同时存在。常见有两种帧格式,第一种是上世纪80年代初提出的DIX v2格式,即Ethernet II帧格式。Ethernet II后来被IEEE802标准接纳,并写进了IEEE802.3x-1997的3.2.6节。
第二种是1983年提出的IEEE802.3格式。
这两种格式的主要区别在于,Ethernet II格式中包含一个Type字段,标识以太帧处理完成之后将被发送到哪个上层协议进行处理。IEEE802.3格式中,同样的位置是长度字段。
不同的Type字段值可以用来区别这两种帧的类型,当Type字段值小于等于1500(或者十六进制的0x05DC)时,帧使用的是IEEE802.3格式。当Type字段值大于等于1536(或者十六进制的0x0600)时,帧使用的是Ethernet II格式。以太网中大多数的数据帧使用的是Ethernet II格式。
以太帧中还包括源和目的MAC地址,分别代表发送者的MAC和接收者的MAC,此外还有帧校验序列字段,用于检验传输过程中帧的完整性。
汽车行业通常使用Ethernet II格式,该格式还可包含VLAN信息作为扩展,因此,又分基本MAC帧(无VLAN)和标记MAC帧(包括VLAN)两种。
MAC addresses: Ethernet II帧通常以接收者目标地址开头。 作用是指定要接收消息的网络节点。 与随后的发送者源地址相反,除单播地址外,还可以使用多播或广播地址。对于以太网帧,只能有一个发送方,但可以有多个接收方。
Ether type: 基本和标记的MAC帧通过类型字段(以太类型)进行区分。 这通常标识有效载荷数据区域中包含的分组,并给出有关较高层中使用的协议(例如,IPv4)的信息。如果以太类型的值为0x8100,则将类型字段向后移四个字节,并在其原始位置插入一个VLAN标签。
VLAN Tag:VLAN标签由协议标识符(TPID)和控制信息(TCI)组成。 TPID包含原始类型字段的值,而TCI由优先级(PCP),符合丢弃要求或规范的形式指示符(DEI或CFI)和标识符(VID)组成。标识符和优先级主要用于汽车行业。标识符区分不同应用区域的相应虚拟网络。优先级允许通过交换机优化运行时间,以便优先转发重要信息。
Payload:在类型字段之后,以太帧包含有效载荷数据区域。 有效负载的最小长度为不带VLAN标记的46字节或带VLAN标记的42字节, 在汽车工业中,它最多可以包含1500个字节。
CRC校验:CRC校验在以太帧的末尾发送。 校验中包含的值是使用标准化算法计算的,该算法在发送方和接收方中以相同的方式实现。该计算是在以太帧的所有字段中进行的,因此可以确保整个消息的完整性。
以太网Packet: 对于以太网II帧的传输,以太网控制器在开头插入前同步码和起始帧定界符(SFD),用于指示传输开始。前同步码,开始帧定界符和以太帧的组合称为以太网数据包。
二、车载以太网帧传输过程
上面我们已经提到,车载以太网是基于TCP/IP的网络模型,因此我们先不考虑应用层数据是根据哪种应用层协议组织的,从应用层来的数据,经过传输层会加上TCP/UDP报头,再到网络层的IP报头,然后到链路层增加MAC地址等信息,最后由PHY转换成线路上的二进制流实现在发送端和接收端的数据传输。
其中上面传输层的TCP协议和网络层的IP协议,楼主在本篇文章中就不过多赘述了,大家感兴趣的请自行查询了解。而应用层协议有不少,例如DoIP、DHCP、SOME/IP等,而最重要的车载以太网应用层协议主要是SOME/IP协议,关于这部分的阐述楼主放到下一篇。
参考文献:
1、Ethernet introduction(BOSCH、Tektronix、Vector、CSDN等资料)
网友评论