1.1.1 MAC
1.1.2 PHY
1.2 车载Switch
1. 相关概念
车载以太网主要由
MAC
(介质访问控制)、
PHY
(物理接口收发器)组成,固定为全双工通信方式。车载以太网主要工作在OSI的最后两层:
物理层
和
数据链路层
。
物理层
定义了数据传送和接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。物理层的芯片称之为
PHY
。
数据链路层
则提供寻址机构、数据帧的构建、数据差错检查、传送控制,向网络层提供标准的数据接口等功能。数据链路层的芯片称之为
MAC控制器
。
MAC和PHY,一个是数据链路层,一个是物理层;两者通过MII传送数据。因此,
Ethernet的接口实质是MAC通过MII总线控制PHY的过程
。
MAC(Media Access Control)即媒体访问控制子层协议,该部分有两个概念:MAC可以是一个硬件控制器,也可以指MAC通信即协议。其主要位于OSI中数据链路层的下半部分,主要负责控制与连接物理层的物理介质,它一端通过总线连接MCU/MPU,另一端通过MII连接到PHY。
在发送数据时,MAC可以事先判断是否可以发送数据。如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式通过MII接口发送到物理层;在接收数据时,MAC首先判断输入的信息是否发生传输错误,如果没有错误,则去掉控制信息发送至LLC(逻辑链路控制)层。
MII(Media Independent Interface)即媒体独立接口,MII接口是MAC与PHY连接的标准接口。
MII包括一个数据接口,以及一个MAC和PHY之间的管理接口:
数据接口包括分别用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和控制信号。
管理接口是个双信号接口,通过管理接口,MAC就能监视和控制PHY。其管理是使用SMI(Serial Management Interface)总线通过读写PHY的寄存器来完成的。一个是时钟信号(MDC),另一个是数据信号(MDIO)。
MDC由MAC提供,MDIO是一根双向的数据线,用于传送MAC层的控制信息和物理层的状态信息。
车载以太网通信的两个设备必须具有唯一标识的MAC地址。MAC地址长度为6字节。
广播MAC地址:FF - FF - FF - FF - FF - FF
车载以太网的物理层功能全部实现再一个名为PHY的模块上,它将以太网控制器和物理介质连接到一起。
在发送数据的情况下,PHY接收MAC发送过来的数据(对于PHY来说,没有帧的概念,都是数据而已),将并行数据转换为串行流数据,再按照物理层的编码规则将数据进行编码,然后再转换为模拟信号将数据发送出去,接收数据的流程则相反。
此外,PHY还实现CSMA/CD的部分功能,可以检测到网络上是否有数据在传送,如果有数据在传送中就等待,一旦检测到网络空闲,再等待一个随机时间后将数据发送出去。如果两个PHY碰巧同时发送数据,那样必将造成冲突,这时候冲突检测机制可以检测到冲突,然后等待一个随机时间重新发送数据。
车载以太网的通讯是依托于点对点的架构思想上,要完成多个节点之间的数据传递以及共享关系,这项功能就需要交换机来实现,交换机会通过传输介质进去其端口的每一个帧都进行转发操作,交换机的基本作用是通过MAC寻址协议来转发帧的,转发的帧信息也是如下的三种转发操作:泛洪(Flooding)、转发(Forwarding)、丢弃(Discarding)。
交换机把从某一端口进来的帧通过所有其他端口转发出去(除了这个帧进来的端口以外的其他所有端口)。泛洪操作是一个点到多点的转发行为。
交换机把从某一端口进来的帧通过另一端口转发出去(除了这个帧进来的端口以外的其他端口)。是一种点到点的转发行为。
交换机把从某一端口进来的帧直接丢弃。丢弃操作实际上是不进行转发的。
由于二层交换技术是在OSI七层网络模型中的第二层,即数据链路层进行操作的,因此交换机对数据报文的转发是建立在MAC地址上的,对于IP网络协议来说,它是透明的,即交换机在转发数据报文时,无须知道信源机和信宿机的IP地址,只需知道其物理地址(MAC地址)即可。交换机在工作过程当中会不断检测报文的源和目的MAC地址来建立MAC地址表,这个表说明了某个MAC地址是在哪个端口上被发现的。这样当交换机收到一个报文时,它便会看一下该数据报文的目的MAC地址,核对一下自己的MAC地址表以确认应该从哪个端口把数据报文发出去;但若交换机收到的报文的目的MAC地址不能在地址表中找到时,交换机会把IP报文广播出去,这正是二层交换机的弱点所在。
二层交换机的报文转发涉及到两个关键的线程:学习线程和报文转发线程。
1. 交换机接收网段上的所有数据帧,利用接收数据帧的源MAC地址建立MAC地址表。
2. 端口移动机制:交换机如果发现一个报文的入端口和报文中源MAC地址的所在端口不同,就产生端口移动,将MAC地址学习到新的端口。
3. 地址老化机制:如果交换机在很长一段时间内没有收到主机发出的报文,则该主机对应的MAC地址就会被删除,等下次报文来的时候重新学习。
1. 交换机在MAC地址表中查找数据帧的目的MAC地址,如果找到就将该数据发送到相应的端口,如果找不到就向所有的端口发送(广播)。
2. 如果交换机收到的报文中源MAC与目的MAC地址相同,则丢弃该报文。
3. 交换机向入端口以外的所有其它端口发送广播报文。
以太网交换机对接收到的数据帧根据MAC地址进行二层转发,将网段上的冲突域限制到了端口级,但却无法限制广播域的大小,在网络节点数量很多的情况下,广播泛滥的现象仍然严重。
为了解决局域网中存在的广播泛滥和安全性问题,引出了VLAN概念。
VLAN技术允许网络管理者将一个物理的LAN逻辑地划分成不同地广播域(VLAN),每一个VLAN都包含一组有相同需求地控制器,与物理上形成的LAN有相同的属性,但由于其是逻辑上实现而不是物理结构上的划分,所以同一个VLAN内的各个ECU无须被放置在同一个物理空间里,即这些ECU不一定属于同一个物理LAN网段。
一个VLAN内部的广播和单播流量都不会转发到其它VLAN中,有助于控制流量、减少设备投资、简化网络管理、提高网络的安全性。引入VLAN后,对二层交换机的报文转发线程产生如下影响:
1. 交换机在MAC地址表中查找数据帧中的目的MAC地址,如果找到(同时还要确保报文的入VLAN和出VLAN是一致的),就将该数据帧发送到相应的端口,如果找不到,就向(VLAN内)的所有端口发送。
2. 如果交换机收到的报文中源MAC与目的MAC地址相同,则丢弃该报文。
3. 交换机向(VLAN)入端口以外的所有其它端口发送广播报文。
2. 问题调试记
录
选用的MCU为RH850/U2A16,车载Switch为Realtek RTL9071CL,现在要验证Switch的报文转发功能是否正常,即MCU经由Switch中转将报文发送至PC侧,
连接示意图如下所示:
RH850/U2A16存在两个以太网控制器,其中ENTB0支持RMII接口,通信速率100Mbps,如下所示:
Switch的Port3配置为RMII,而Port2配置为100Base-T1。
1000Base-T1 MediaConverter的作用是将车载以太网通信协议与传统以太网通信协议进行转换,从而使得Switch可以连接至PC侧。
如果想使MCU侧通过RMII接口连接至Switch处,需要对MCAL进行相应配置:
在生成的配置代码中,可以确认接口使用的是RMII: