以太网AVB (ETNB)
介绍RH850/U2A-EVA的属性,如编号 单元、寄存器的基址。描述了函数和寄存器
ETNB的成员。
两个单元;Units
▪ Fast Ethernet ETNB0
▪ Gigabit Ethernet ETNB1
单元通道特点
For ETNB0 (Fast Ethernet)
▪ Communication interface
▪ MII
▪ RMII
▪ Transfer speed
▪ 100 Mbps
▪ 10 Mbps
For ETNB1 (Gigabit Ethernet)
▪ Communication interface
▪ MII*Note
▪ SGMII
▪ Transfer speed
▪ 1000Mbps
▪ 100 Mbps
▪ 10 Mb
注意点注:RH850/U2A16(373引脚),RH850/U2A16(292针),RH850/U2A8(373针)和
RH850/U2A8(292引脚)不支持MII。
MII和RMII区别
MII即“媒体独立接口”,也叫“独立于介质的接口”。它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口,以及一个MAC和PHY之间的管理接口。RMII全称为“简化的媒体独立接口”,是IEEE-802.3u标准中除MII接口之外的另一种实现。
独立于介质的接口(MII)
独立于介质的接口(MII)用于MAC与外接的PHY互联,支持10Mbit/s和100Mbit/s数据传输模式。MII的信号线如下图所示:
MII_TX_CLK:发送数据使用的时钟信号,对于10M位/s的数据传输,此时钟为2.5MHz,对于100M位/s的数据传输,此时钟为25MHz。
MII_RX_CLK:接收数据使用的时钟信号,对于10M位/s的数据传输,此时钟为2.5MHz,对于100M位/s的数据传输,此时钟为25MHz。
MII_TX_EN:传输使能信号,此信号必需与数据前导符的起始位同步出现,并在传输完毕前一直保持。
MII_TXD[3:0]:发送数据线,每次传输4位数据,数据在MII_TX_EN信号有效时有效。MII_TXD[0]是数据的最低位,MII_TXD[3]是最高位。当MII_TX_EN信号无效时,PHY忽略传输的数据。
MII_CRS:载波侦听信号,仅工作在半双工模式下,由PHY控制,当发送或接收的介质非空闲时,使能此信号。 PHY必需保证MII_CRS信号在发生冲突的整个时间段内都保持有效,不需要此信号与发送/接收的时钟同步。
MII_COL:冲突检测信号,仅工作在半双工模式下,由PHY控制,当检测到介质发生冲突时,使能此信号,并且在整个冲突的持续时间内,保持此信号有效。此信号不需要和发送/接收的时钟同步。
MII_RXD[3:0]:接收数据线,每次接收4位数据,数据在MII_RX_DV信号有效时有效。MII_RXD[0]是数据的最低位,MII_RXD[3]是最高位。当MII_RX_EN无效,而MII_RX_ER有效时,MII_RXD[3:0]数据值代表特定的信息。
MII_RX_DV:接收数据使能信号,由PHY控制,当PHY准备好数据供MAC接收时,使能该信号。此信号必需和帧数据的首位同步出现,并保持有效直到数据传输完成。在传送最后4位数据后的第一个时钟之前,此信号必需变为无效状态。为了正确的接收一个帧,有效电平不能滞后于数据线上的SFD位出现。
MII_RX_ER:接收出错信号,保持一个或多个时钟周期(MII_RX_CLK)的有效状态,表明MAC在接收过程中检测到错误。具体错误原因需配合MII_RX_DV的状态及MII_RXD[3:0]的数据值。
精简的独立于介质的接口(RMII)
精简的独立于介质接口(RMII)规范减少了以太网通信所需要的引脚数。根据IEEE802.3标准,MII接口需要16个数据和控制信号引脚,而RMII标准则将引脚数减少到了7个。RMII具有以下特性:
时钟信号需要提高到50MHz。
MAC和外部的以太网PHY需要使用同样的时钟源
使用2位宽度的数据收发
RMII的信号线如下图所示:
MII/RMII位传输顺序
MII上的发送/接收的4位数据,在RMII上以2个2位数据的形式发送/接收。方式为:先发送/接收低2位,再发送/接收高2位。
时钟源
瑞萨时钟源配置
时钟clk_axi和clk_chi的最小频率为:
当E-MAC工作在1000mbps模式时,为62.5 MHz (ETNBnGECMR)。速度= 1)
当E-MAC工作在100mbps模式(ETNBnGECMR)时,12.5 MHz。速度= 0)
复位源设置
复位时按模块复位。
需要等待模块复位断言,直到关闭SGMII服务器的电源。
可以通过ETNB1SGSDS检查电源状态。
Ethernet
Ethernet同CAN、 LIN总线一样,发送数据时,需要将数字信号转换成模拟信号(差分电压);接收数据时,需要将模拟信号转换成数字信号。
在数/模转换的过程中, Transceiver是必不可少的物理器件。对于其他总线(e.g.: CAN、 LIN、 Flex ray),我们习惯简称Transceiver为Trcv。
对于Ethernet,对应Transceiver芯片为PHY芯片(Physical Layer,物理接口层)。
PHY的主要作用是进行数/模转换, MAC(Media Access Control)将数字信号发送给PHY,接收PHY转换好的数据信号。
以太网的物理连接采用非屏蔽双绞线电缆(UTP: Unshielded Twisted Pair),用于传输模拟信号,即:对称差分电压。
发送端,数字信号转换成模拟信号,需要编码(Encoding);接收端,将模拟信号转换成数字信号,需要解码(Decoding)。
接口介绍
MII(Media Independent interface) 即介质无关接口,它是IEEE-802.3定义的行业标准,是MAC与PHY之间的接口。 MII数据接口包含16个信号和2个管理接口信号。MII接口属于公共时钟传输模型,时钟频率25M(100M以太网)或2.5M(10M以太网)。两个时钟都是由Phy发送给MAC的。
信号名称 | 描述 | 方向 |
TX CLK | 发送时钟 | PHY -MAC |
TX ER | 发送数据错误 | MAC-PHY |
TX EN | 发送使能 | MAC-PHY |
TXD0 | 发送数据位0(最先传输) | MAC-PHY |
TXD1 | 发送数据位1 | MAC-PHY |
TXD2 | 发送数据位2 | MAC-PHY |
TXD3 | 发送数据位3 | MAC-PHY |
RX CLK | 接收时钟 | PHY -MAC |
RX_DV | 接收数据有效 | PHY -MAC |
RX ER | 接收数据错误 | PHY -MAC |
RXD0 | 接收数据位0(最先传输) | PHY -MAC |
RXD1 | 接收数据位1 | PHY -MAC |
RXD2 | 接收数据位2 | PHY -MAC |
RXD3 | 接收数据位3 | PHY -MAC |
CRS | 载波监测 | PHY -MAC |
COL | 冲突碰撞监测 | PHY -MAC |
MDIO | 管理数据 | 双向 |
MDC | 管理数据时钟 | MAC-PHY |
RMII(Reduced Media Independant Interface),精简MII接口,节省了一半的数据线。 RMII收发使
用2位数据进行传输,收发时钟均采用50MHz时钟源。*RMII接口信号和MII接口不一样,注意Port口选择和配置(例如ETNB0CRS_DV )其中CRS_DV是MII中RX_DV和CRS两个信号的合并,当物理层接收到载波信号后CRS_DV变得有效将数据发送给RXD。当载波信号消失后, CRS_DV会变为无效。
信号名称 | 描述 | 方向 |
REF CLK | 参考时钟 | MAC-PHY或 由外部时钟源提供 |
TX EN | 发送数据使能 | MAC - PHY |
TXD0 | 发送数据位0 (最先传输) | MAC - PHY |
TXD1 | 发送数据位1 | MAC - PHY |
RX ER | 接收错误 | PHY - MAC |
RXDO | 接收数据位0 (最先传输) | PHY - MAC |
RXDO | 接收数据位1 | PHY- MAC |
CRS DV | 载波和接收数据有效 | PHY - MAC |
MDIO | 管理数据 | 双向 |
MDC | 管理数据时钟 | MAC - PHY |
SGMII接口
源同步接口,时钟随着源数据一起送往接收端。因为,数据已经经过8B/10B编码,所以,接收端可以选择不用源时钟进行采样,而使用从数据流中恢复出来的时钟(CDR)作为接收端采样时钟。
接口表
MDIO
MDIO是Management Data Input/Output的缩写。 MDIO接口包含在IEEE802.3协议中,是专用于MAC与PHY管理的串行总线接口。主要用于配置PHY芯片状态、读取寄存器、读取PHY地址、获取LINK状态等操作。与网口MII、 RMII(TX_CLK、 RX_CLK)等数据通讯无关。 MDIO接口最多可以挂载32个PHY设备。MDIO接口是实时、半双工、串行的数据接口。 MDIO接口由MDIO(Management Data Input/Output) 线和MDC(Management Data Clock) 线组成。
1、 MDC信号特点单向传输:由MAC芯片驱动给PHY芯片,在MDC上升沿时对MDIO进行数据采样信号要求: MDC可以是非周期性信号。协议对MDC的高低电平的最大宽度并没有限制,仅限制了MDC的最小高低电平宽度不能小于160ns,最小周期不能小于400ns。这意味着MDC最高频率不能超过2.5MHz(协议要求)
2、 MDIO信号特点双向传输: MDIO为双向信号, MAC和PHY均可以接管。用来在MAC和PHY芯片之间的传递控制和状态信息。写寄存器是MAC驱动,读寄存器时PHY驱动。数据传输:先传高位(MSB),后传低位(LSB)。输出采用三态电路设计: MDIO需要接1.5K~10K的上拉电阻。 MAC芯片内部下拉MDIO:通过MDIO线上是否有上拉电阻,来检测MDIO接口是否连接到PHY芯片上。
帧格式
根据IEEE802.3协议中将MDIO协议分为两种帧格式,分别为Clause 22与Clause 45,其中Clause 22主要用于千兆以下的以太网PHY,而Clause 45则用于千兆以上的以太网PHY。
MCAL的配置
以太网AVB由以下功能单元组成:
DMA传输控制器(AVB-DMAC):处理数据存储区域之间的DMA传输用于在URAM中接收和传输,以及接收和传输FIFO缓冲区
MAC控制器(E-MAC):处理接收和传输FIFO缓冲区之间的传输以及MII/RMII/SGMII使用它的直接内存访问(DMA)功能,AVB-DMAC处理帧数据的DMA传输在目的地之间存储以太网帧数据,以便在URAM中传输和接收以及用于接收和传输的FIFO缓冲器。数据不能直接从FIFO缓冲区。
为了处理DMA传输,AVB-DMAC需要包含存储地址的信息传输数据和接收数据。这些信息被称为描述符。AVB-DMAC从待传输数据的存储区域读取待传输数据并进行写入根据描述符中描述的信息将接收到的数据传输到存储区域。描述符放在URAM中。在描述符列表中安排多个描述符允许
连续接收或传输多个以太网帧。
E-MAC支持MII/RMII/SGMII,为外部提供接口格式PHY-LSI相连。E-MAC从写入到传输的数据构建以太网帧FIFO并将这些帧传输到MII/RMII/SGMII。它还执行以太网的CRC检查接收来自MII/RMII/SGMII的帧,并将帧写入接收FIFO。
单元选择
单元选择和MAC类型选择
配置框架
MAC地址的配置
指定控制器唯一的48位物理地址(MAC地址),以网络字节顺序表示。
正则表达式:[0-9a-fA-F] {2} [:] [0-9a-fA-F] {2}) {5}
达芬奇中的Ctrl Phy address 就是填写该地址,地址号可以参考手册。
EthRxQueueConfig ----配置
该模块可以通过EthRxQueueConfig容器配置18个接收队列。
'EthRxQueueBufs'(范围:1到63)。
•EthRxQueueIdx参数指定接收队列号到使用。与数字相关的特性如下。
0:尽最大努力。
1:精确时间协议的网络控制。
2-17:过滤特定AVTP帧的流。
传输数列的范围
该模块可以通过EthTxQueueConfig容器配置4个传输队列
我们可以使用参数“EthTxQueueBufs”配置每个传输队列的深度(范围:1到512)
EthTxQueueIdx参数指定要使用的传输队列号。以下相关的特性
数据如下。
0:尽最大努力。
1:精确时间协议的网络控制。
2: B类CBS算法通过以太网AVB。
3:通过以太网AVB实现CBS算法的A类。
如果未启用EthQosSupport参数,则所有传输队列都选择Best Effort
gptp的数据
高阶32位表示秒。对于接下来的32位,计数1对应于通过1ns。低阶的20位是一个分数值(小于1ns)。软件只能读取高阶的32位表示秒,后面的32位表示纳秒。的表示小于1ns的低阶20位是不可读的。它们仅在AVBDMAC内使用,以保持时间测量的准确性。
可以通过在gPTP配置控件中设置定时器控制请求位来复位定时器寄存器。这些位在正常复位完成后被设置为00B定时器的。定时器启动后,gPTP定时器增量寄存器(ETNBnGTI.TIV)中的值被添加到gPTP定时器每个时钟周期的值。在gPTP定时器增量寄存器(ETNBnGTI.TIV)中设置值后,设置定时器增量gPTP配置控制寄存器(ETNBnGCCR.LTI)中的值设置请求位。如果这一点是如果不设置为1,则写入的新值将不会反映在寄存器中。后,该位返回0完成设置。
gPTP定时器的偏移量也是可用的。如果需要,则在gPTP定时器偏移中设置该值注册(ETNBnGTOi.TOV)。在此寄存器中设置一个值后,设置计时器偏移值设置
gPTP配置控制寄存器(ETNBnGCCR.LTO)中的请求位。如果该位不设为1,写入的新值不会反映在寄存器中。设置完成后,该位返回0完成。当添加偏移量时,注意不要超过80位。
gPTP定时器的值可以从gPTP定时器捕获寄存器(ETNBnGCTi.CTV)中读取。集定时器捕获源选择位在gPTP配置控制寄存器选择捕获的定时器值作为gPTP定时器的值,即gPTP定时器的修正值
(值加上偏移量),或AVTP表示时间。设置定时器控制请求位gPTP配置控制寄存器发起捕获。一次
正常的定时器捕获完成后,定时器的值控制请求位在gPTP中配置控制寄存器
gPTP的定时器是自由运行的定时器,但可以与Grandmaster同步时钟。
EthCtrlCondig下的
Be Time Stamp Store 配置上
更改gpto定时器计数器更新周期。
由于主设备和从设备使用的gptp定时器在物理上不同,因此不可避免地会出现偏差。
目的是纠正这种偏差间隙,使其不会变大。
模式mode
以太网驱动程序支持Bypass模式(手动模式)和不Bypass模式(正常模式)。
当使用非旁路模式时,链路伙伴会将操作模式通告给SGMII + E-MAC PHY通过SGMII自动协商。通过使用此功能E-MAC可以保持PHY的速度设置最新。SGMII自动协商
要使PHY for Not bypass模式正常工作,需要配置该特性。
用户可以使用旁路模式手动设置操作模式。此模式可以是启用EthBypassMode参数。在本例中,指定的操作模式将直接发布到PHY,而无需等待SGMII自动协商。
有关PHY寄存器的详细设置,请参考芯片制造商的数据表。
以太网网卡配置
以太网驱动(网卡)常见的三种特性: Offloading 特性,硬件TimeStamp特性, QoS特性。
Offloading特性
“Offload"顾名思义表示卸载的意思,那么给谁卸载以及卸载什么呢?其实该特性存在的
目的就是为了给CPU卸载,卸载的方式如将CRC计算交给硬件来做,或者分包组包的动作
也放在硬件中来处理,从而减小这部分在以太网协议栈中的占用时间,降低软件运行延迟
造成的性能不足以及CPU loading过高等问题。
在AUTOSAR规范中针对以太网驱动(Eth Driver)发送或者接收报文的CRC进行了
Offloading的特别说明如下:
•对于IPV4帧,如果EthCtrlEnableOffloadChecksumIPv4设置成TRUE, 那么就可以Offloading CRC;
•对于ICMP帧,如果 EthCtrlEnableOffloadChecksumICMP设置成TRUE, 那么就可以Offloading CRC
对于TCP帧,如果 EthCtrlEnableOffloadChecksumTCP 设置成TRUE, 那么就可以Offloading CRC
对于UDP帧,如果 EthCtrlEnableOffloadChecksumUDP设置成TRUE, 那么就可以Offloading CRC
值得注意的是这些CRC计算都仅会在硬件中完成,对于接收方而言, CRC校验检测会通过
硬件来完成,如果CRC校验不通过,那么就会丢弃该接收到的帧。
详情这里根据芯片手册配置