S32K3XX系列芯片的以太网技术

本文详细介绍了车载嵌入式芯片应用中S32K3xx系列芯片的以太网驱动技术,涉及以太网底层链路结构,包括PHY、MAC、MII接口、MDI,以及数据帧结构、VLAN、MDI接口和驱动初始化步骤。
摘要由CSDN通过智能技术生成

摘要:本文简要介绍S32K3xx系列芯片的以太网驱动技术

关键词:车载嵌入式芯片应用 

一、以太网简介:

文章仅介绍和总结以太网底层链路,即物理层(PHY)和数据链路层(MAC)。

1、从硬件的角度来分析,以太网的电路接口一般由MCU、MAC(Media Access Control)控制器和物理层接口(physical Layer PHY)组成,如下图所示:

对于上述三部分,并不一定都是独立的芯片,主要有以下几种情况:

CPU内部集成了MAC和PHY,难度较高

CPU内部集成MAC,PHY采用独立芯片(主流方案)

CPU不集成MAC和PHY,MAC和PHY采用独立芯片或者集成芯片(高端采用)

当我们的PHY芯片发送数据,接受到MAC层发送过来的数字信号,然后转换成模拟信号,通过MDI接口传输出去。

2、MAC控制器

MAC(Media Access Control),即媒体访问控制子层协议,该部分有两个概念:MAC可以是一个硬件控制器以及MAC通讯协议。该协议位于OSI七层协议中数据链路层的下半部分,主要是负责控制与连接物理层的物理介质。

3 MII接口

MII(Media Independent Interface)即媒体独立接口,MII接口是MAC与PHY连接的标准接口。它是IEEE-802.3定义的以太网行业标准。

MII接口主要包括以下三个部分:

从MAC层到PHY层的发送数据接口

从PHY层到MAC层的接收数据接口

从MAC层和PHY层之间寄存器控制和信息获取的MDIO接口

下面是MII的MAC层定义接口:

MII 数据接口总共需要 16 个信号,包括 TX_ER,TXD[3:0],TX_EN,TX_CLK,COL,RXD[3:0],RX_ER,RX_CLK,CRS,RX_DV 等。MII的时钟为25MHz,传输速率为10/100Mbps。

4 MDC/MDIO接口

MDC/MDIO是MAC内核访问PHY寄存器接口,它由两根线组成,双工,MDC为时钟,MDIO为双向数据通信,原理上跟I2C总线很类似,也可以通过总线访问多个不同的PHY。

MDC/MDIO基本特性:

两线制:MDC(时钟线)和MDIO(数据线)。

时钟频率:可配置

通信方式:总线制,可同时接入的PHY数量为32个

5 PHY模块

发送数据:对于PHY来说,并没有帧的概念,对它来说,不管是地址、数据还是CRC,都会将并行数据转换为串行数据流,在按照物理层的编码规则把数据编码,最终转换成模拟信号发送出去

接收数据:从外部接收数据时,模拟信号先转成数字信号,再经过解码得到数据, 经过MII送到MAC。

6 MDI

MDI(Media Dependent Interface,介质相关/有关接口)也称为上行链路端口,一般用于PC上的NIC(网络接口卡)或集成NIC端口的以太网端口连接。当NIC的传输信号要传输到集线器或网络交换机的接收信号上时,需通过一根直通电缆连接MDIX端口。

MDIX(Medium Dependent Interface Crossover)是计算机、路由器、集线器或网络交换机上常见的8P8C端口。由于MDIX是MDI端口的交叉版本,因此MDI设备上的引脚1和2(传输)通过直通电缆连接到MDIX设备上的引脚1和2(接收)。类似地,MDI设备上的引脚3和6(接收)转到MDIX设备上的引脚3和6(发送)。在这种情况下,MDIX端口无需交叉双绞线布线。

二、以太网帧结构:

1、标准定义的数据帧格式

当今最常用的以太网协议标准是 ETHERNET II 标准。 ETHERNET II 标准定义的数据帧格式如下图:

2、VLAN数据帧格式

VLAN 技术通过给数据帧插入 VLAN 标签(又叫 VLAN TAG)的方式,让交换机能够分辨出各个数据帧所属的 VLAN 。VLAN 标签是用来区分数据帧所属 VLAN 的,是 4 个字节长度的字段,插入到以太网帧头部上。 VLAN 标签会插入到源 MAC 地址后面, IEEE 802.1Q 标准有这个格式定义和字段构成说明。

3、音视频数据封装

AVB协议族中的音视频传输协议AVTP是链路层的传输协议,并且是基于VLAN的,在以太网帧中的位置如下所示:

三、以太网驱动初始化步骤:

1、GPIO初始化,引脚复用

2、时钟初始化

3、DMA初始化

MAC层的数据传输模式如下图所示:

4、MTL初始化

5、设置MAC地址

MAC地址0

MAC地址1

MAC接口只有一个,但地址有两个,用于接收路由,发送时不会进行MAC地址匹配,直接发出,接收时进行MAC地址匹配,如果不匹配,则丢弃。

6、MAC初始化

7、PHY模块配置

8、时间戳配置

四、以太网数据收发解析:

MTL提供FIFO内存接口,对系统内存和MAC之间的报文进行缓冲和调节,并实现系统时钟域和MAC时钟域之间的数据传输。MTL层有两条数据路径:发送路径和接收路径。

发送过程如下:

1内部DMA:

将以太网数据包从系统内存中读取到相应的队列,DMA根据链表首地址获取内存数据,并将数据传入发送队列;

2当队列达到阈值(阈值模式)或完整的数据包在队列中(存储-转发模式)时,以太网数据包弹出并被传输到MAC。

3 MAC传输:

(1)当MTL推入带有SOP信号的数据时,传输启动。

(2)检测到SOP信号后,MAC接收数据并开始向RMII或MII传输。

(3)EOP信号传输给MAC后,完成正常报文传输,并将传输状态发送给MTL

(4)如果MTL在传输过程中不能连续提供数据,MAC会发出下溢状态。在接收到下一个SOP之前,MAC接受并丢弃所有进一步的数据。

(5) 在从MTL正常传输数据包的过程中,如果MAC收到了一个SOP,而没有得到前一个数据包的EOP,它将忽略该SOP,并将新数据包视为前一个数据包的延续。

接收过程如下:

1. 当MAC收到报文时,识别接收数据的可用性。

2. MAC识别SOP和EOP分隔符。

3.MTL接受数据并将其推入相应的接收队列。

4. 当MAC将EOP传输到MTL接收模块时,MAC还驱动MTL推入的状态字

对应的接收队列。

5. 当数据达到阈值时,MTL将数据从队列中取出,并通过DMA传输至内存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值