车载以太网基础篇之Eth Driver

这篇具有很好参考价值的文章主要介绍了车载以太网基础篇之Eth Driver。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

车载以太网基础篇之Ethernet Driver

前言

首先,请问大家几个小小问题,你清楚:

  • 你知道Eth Driver模块的主要作用是什么吗?
  • EthDriver与以太网控制器,以太网收发器,都有哪些关系呢?
  • Eth Driver的常见函数接口有哪些呢?
  • Eth Driver一般存在区别其他驱动特有的特性呢?

今天,我们就来一起探索并回答这些问题。为了便于大家理解,以下是本文的主题大纲:

车载以太网基础篇之Eth Driver


正文

正如前文《车载以太网基础篇之EthIf》所述,Eth Driver将作为配置以太网的底层驱动,不仅能够被EthIf来进行调用,同时能够满足Eth收发器驱动的调用需求,因为有必要深入了解下车载以太网驱动(Eth Driver)在整个AUTOSAR层级中所扮演的重要作用。

如下图1所示,Ethernet If模块不仅会直接控制Ethernet Driver,如果存在Ethernet Switch驱动或者Ethernet Transiver驱动时,那么就会间接控制Ethernet Driver模块,总而言之,以太网驱动不仅能够完成以太网数据的正常收发,同时也能够实现针对以太网网关或者以太网收发器的直接配置。

车载以太网基础篇之Eth Driver

图1 Ethernet Driver与其他以太网驱动关系
AUTOSAR层次关系

按照AUTOSAR标准文档规范,有关Eth Driver模块在整个AUTOSAR软件架构的具体位置描述如下图2所示:
车载以太网基础篇之Eth Driver

图2 Eth Driver与以太网协议栈关系

如上图所示,可以得出如下几个基本结论:

  • 一个以太网协议栈中可以存在多家供应商的以太网控制器,同时针对每家供应商的控制器进行单独控制,互不影响;
  • 同一供应商的以太网控制器可以存在多个,但使用的以太网控制器驱动可以仅使用同一套;
  • 上述三家不同供应商的以太网驱动作为标准AUTOSAR MCAL的一部分,能够完全实现与底层硬件的解耦;
模块主体功能

Eth Driver作为车载以太网协议栈最为重要的底层构件,小T将带领大家从以下几个层面初步了解认识以太网驱动:

  • 以太网各个不同驱动内部的索引关系如何设定?
  • 以太网驱动如何进行数据发送;
  • 以太网驱动如何进行数据接收;
  • 以太网驱动特性如QoS,硬件时间戳,Offloading都具备什么功能?
  • 在以太网驱动常见的通信协议如MDIO,DMA如何在驱动中发挥作用?

驱动索引规则

如下图3所示,每个以太网驱动彼此都是独立的,同时其索引编号是从0开始,但是每个驱动内部的bufidx均可以从0开始,彼此之间互不干扰。
车载以太网基础篇之Eth Driver

图3 Eth Driver索引关系

数据发送过程

上层应用如果需要通过Eth Driver将数据发送出去,那么就需要通过EthIf模块间接调用Eth Driver的发送函数Eth_Transmit来完成数据的发送。

其中EthIf模块的数据发送功能分为两者模式,一种是Polling模式,另外一种就是Interrupt模式,一般而言都优先采用中断模式来满足系统实时性要求。

如下图4为Polling模式,在Polling模式中可以看到在EthIf_MainfunctionTx函数中会去轮询是否发送成功的标志,这个也是Polling模式的典型特征。

Polling模式
车载以太网基础篇之Eth Driver

图4 数据发送Polling模式

Interrupt模式

如下图5所示为以太网数据发送的中断模式,中断模式相比Polling模式可以看出并没有使用到EthIf_MainfunctionTx函数,而是使用Eth模块的中断函数来确认发送是否成功。

车载以太网基础篇之Eth Driver

图5 数据发送中断模式

数据接收功能

同理相比数据发送功能,EthIf模块的数据接收功能也可以分为Polling模式与中断模式两种,如下图9所示为EthIf模块的数据接收Polling模式。

如下图6所示,如果EthIf模块数据接收采用Polling模式,那么就需要使用到EthIf_MainfunctionRx函数,在该函数中去调用EthIf_RxIndication来告知上层数据已成功被接收,使用该模式会大大降低数据接收效率,一般接收优先采用中断模式

Polling模式

车载以太网基础篇之Eth Driver

图6 数据接收Polling模式

Interrupt模式

如下图7所示为EthIf模块的数据接收中断功能,在该模式中可以看到通过Eth模块通过中断函数来进而告知上层数据已被接收。

车载以太网基础篇之Eth Driver

图7 数据接收中断模式

驱动特性简介

以太网驱动相比其他驱动而言,存在很多诸多独有的特性,小T将会带领大家来了解这些特性,争取对这些特性有个基本的认识,以便我们对以太网驱动有个较为全面的了解,应用它时也会更加得心应手。

以下列举了以太网驱动(网卡)常见的三种特性: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校验不通过,那么就会丢弃该接收到的帧。

硬件TimeStamp特性

如之前文章《cantsyncc》与《StbM》所述,大家相比CAN时间同步有了一个基本的认识与了解,与CAN时间同步对比,以太网时间同步协议采用的IEEE1588或者IEEE802.1AS的PTP(Precise Time Protocal)协议,该协议需要确认使用的网卡(MAC)是否本身支持。

该协议使用到通过底层硬件MAC来打上对应的以太网报文收发的时间戳,能够最大限度的降低软件时间戳所带来的不确定性,将时间同步精度能够做到微秒甚至是纳微秒级别。

AUTOSAR规范中定义的EthTsync模块使用的是双步端延时PTP时间同步协议,如下为基于该协议的Time Master与Time Slave两者之间的交互关系,后期也会针对EthTsync模块进行单一讲解,敬请关注。

车载以太网基础篇之Eth Driver

图8 双步以太网端延时机制PTP时间同步协议

如上图8所示,如果是基于单步模式下的以太网端延时机制的PTP时间同步,那么虚线标注的部分则不会有,如果是基于双步模式下的以太网端延时机制的PTP时间同步,那么虚线标注的部分必须要有。

值得注意的是在IEEE802.1AS存在一个GrandMaster概念,需要通过BMCA(Best Master Clock Algorithm)来实现,不过由于汽车内部属于静态网络,因此只会存在唯一的GrandMaster,无需使用到BMCA动态分配确认算法。

以太网硬件实现PTP协议有如下两种方式:

  • 以太网MAC控制器支持PTP协议,常见双步模式;
  • 有些TI的PHY层也可以支持PTP,不过一般是单步模式,如果使用AUTOSAR标准的EthTsync模块,要提前确认是否支持双步模式;

QoS特性

Qos是IEEE 802.1P协议,该协议运行在以太网第二层,用来保证在以太网数据转发拥堵时通过优先级方式来保证重要的数据包能够及时发送出去。

普通的以太网二层报文是不包含优先级字段的,IEEE802.1P是IEEE802.1Q(VLAN标签技术)标准的扩充技术,彼此之间协同工作,802.1Q虽然定义了标签字段,但是并没有定义与使用优先级,而使用802.1P协议补充之后便可以正常使用优先级,正如IEEE 802.1P与IEEE802.1Q两者协同定义的标签字段如下图9所示:

车载以太网基础篇之Eth Driver

图9 IEEE802.1Q标签头信息

以太网帧通过QoS特性来通过802.1Q标签中的802.1P用户优先级(COS)来进行标记,其优先级具备8级,从优先级0至优先级7,如下图10所示:

车载以太网基础篇之Eth Driver

图10 COS优先级说明

通讯协议介绍

在使用车载以太网驱动的过程中,我们经常性会碰到如下三种常见的通讯协议,这三种通讯协议对于车载以太网正常工作,非常重要:

  • MII接口通讯协议,用于以太网MAC层与物理层收发器PHY之间的数据传输协议;
  • MDIO通讯协议,用于以太网MAC层控制PHY的状态设置与获取协议;
  • DMA通讯协议,用于以太网MAC层与CPU之间的数据搬运通讯协议,提高数据搬运效率,降低CPU负载;

MII接口通讯协议基础介绍

MII接口时IEEE802.3定义的以太网行业标准,该标准就是为了解决,以太网MAC层与PHY之间的兼容性,保证即使更换了不同类型的MAC,PHY始终能够正常工作。

MII接口随着技术的发展与进步,目前已经衍生出了多种增强型MII接口,常用的就有MII,RMII,SMII,SSMII,SSSMII,GMII,RGMII,SGMII ,其中对于车载以太网最为常用的还是RGMII接口

具体的通讯协议介绍不在本文中进行展开,该接口的选择只要软件上MCAL配置使用对应的MII接口类型,其余都是硬件行为,硬件上保证接口正常连接即可,如下图11所示,介绍了MII接口在以太网硬件连接上的所处关系:

车载以太网基础篇之Eth Driver

图11 以太网MAC与PHY之间的MII物理连接示意图

MDIO协议基础介绍

首先,MDIO是Management Data Input/Output的缩写,且该接口协议在IEEE802.3中也有所体现,是一种专门用于管理MAC与PHY之间的串口数据接口,基本功能如下:

  • 读取PHY相关寄存器的值;
  • 获取PHY的Link及其他工作状态等;
  • 设置对应PHY的工作模式等;

除此之外,MDIO协议接口是一种实时,半双工,串行的数据接口,由两个线组成,一个叫做MDIO线,另外一根则是MDC线。

MDIO线负责数据的传输,MAC与PHY之间可以双向传输,写寄存器时由MAC驱动,读寄存器由PHY驱动,先传高位(MSB),再传低位(LSB),且该Pin脚需要上拉1.5kΩ-10kΩ范围内的电阻

MDC线负责传递时钟同步信号,只能单向通过MAC驱动,且只能在MDC上升沿对MDIO线上的数据进行采样,该MDC允许最大的时间频率一般都通过PHY决定

一个MDIO接口可支持32个PHY地址,该接口有32个寄存器地址,其中前16个寄存器已经在标准中定义,其余16个则有各个器件厂商自行定义。

根据IEEE802.3协议中将MDIO协议分为两种帧格式,分别为Clause 22与Clause 45,其中Clause 22主要用于千兆以下的以太网PHY,而Clause 45则用于千兆以上的以太网PHY。

接下来就针对Clause 22与Clause 45两者协议的基本使用与区别做个简要说明:

Clause 22读数据帧格式如下:
车载以太网基础篇之Eth Driver

图12 Clause 22 读数据帧格式

Clause 22写数据帧格式如下:

车载以太网基础篇之Eth Driver

图13 Clause 22 写数据帧格式

Clause 45 地址帧格式如下:

车载以太网基础篇之Eth Driver

图14 Clause 45 地址帧格式

Clause 45 读数据帧格式如下:

车载以太网基础篇之Eth Driver

图15 Clause 45 读数据帧格式

Clause 45 写数据帧格式如下:

车载以太网基础篇之Eth Driver

图16 Clause 45 写数据帧格式

如下图17,小T根据上述Clause 22与Clause 45的帧格式定义,列举了两者之间的帧格式的定义说明以及区别联系,这样便于大家对两者格式的使用有个基本认识。

车载以太网基础篇之Eth Driver

图17 Clause 22与Clause 45帧格式区别与联系

DMA协议基础介绍

DMA协议对于使用过它的朋友而言,特别是做底层驱动开发的朋友应该不会陌生,DMA就是为了在不需要CPU干预的前提下来实现外设与内存之间的搬运或者内存与内存之间的搬运,那么以太网DMA也是如此,就是为了实现以太网外设与内存之间的数据交换。

本文不会对DMA协议本身做过多的解释说明,旨在说明DMA在以太网数据收发过程中如何起作用,通过如下的两张图来了解认识DMA在以太网数据收发过程中的用途。

以太网DMA发送

如下图18所示,Tx ringbuffer作为DMA描述符,DMA在以太网发送过程中的作用表现:

车载以太网基础篇之Eth Driver

图18 以太网DMA发送过程

以太网DMA接收

如下图19所示,Tx Ringbuffer作为DMA描述符,DMA在以太网接收过程中的作用表现:

车载以太网基础篇之Eth Driver

图18 以太网DMA接收过程
常用函数总结

为了便于大家更好的使用Eth Driver这个模块,小T整理了关于车载以太网驱动这部分常用的函数接口与功能说明,如下图19所示:

车载以太网基础篇之Eth Driver

图19 以太网驱动常用函数接口

更多精彩内容,敬请关注公号“ADAS与ECU之吾见”!!!文章来源地址https://www.toymoban.com/news/detail-436714.html

到了这里,关于车载以太网基础篇之Eth Driver的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 车载以太网 - 传输层 - TCP/IP

    一、传输层基础介绍 传输层主要包括两种协议 传输层端口号 二、UDP通信  UDP协议介绍 UDP 通信特点: UDP Segment结构 UDP通信过程 三、TCP通信 TCP通信特点: TCP Segment结构 传输层的寻址方式: 端口号         包括传输层的寻址方式,TCP/UDP 传输层协议工作流程,及TCP/UDP Packe

    2024年02月09日
    浏览(67)
  • 车载以太网 - 传输层 - TCP通信过程

    TCP 通信阶段 1、连接建立Connection establishment 2、数据传输 Data transfer 3、连接释放 Connection release TCP通信的三个阶段: TCP连接(三次握手) 1、Client(ECUA) - Server(ECU B)第一次握手 2、Server - Client 第二次握手 3、Client - Server 第三次握手 数据传输 1、Client - ServerTCP 数据请求 2、TC

    2024年02月11日
    浏览(48)
  • 车载以太网 - SomeIP - 协议用例 - RPC

    1、Cleint和Server端应该为一个服务实例的所有的Methodsevents使用一个TCP连接

    2024年02月15日
    浏览(47)
  • 车载以太网之DoIP协议_第二篇

    ISO13400-1:2012中,定义了这样几个DoIP的使用场景 1)FOTA节点首先发送车辆识别请求,待刷写ECU 进行响应; 2)FOTA节点收到车辆识别响应后与待刷写ECU 建立TCP 链接; 3)TCP 链接建立后,FOTA 节点发送通信激活 请求,待刷写ECU 进行通信激活请求响应; 4)FOTA 节点收到通信激活响应

    2024年02月12日
    浏览(57)
  • 车载通信测试以太网DoIP&diva测试

    DoIP测试 电源–样件–VN5620/VN5640–Tester 样件的KL30KL15接电源正极,地线接负极 样件的P极和N极要正确对应VN5640的通道上,具体方法是查看 hardware–network hardware–driver 查看VN5640的通道和 DB9接线口 和样件的PN极匹配情况,并正确的连接上 此处DB9也可能是其他方式,比如采用网

    2024年02月05日
    浏览(61)
  • 【车载以太网测试从入门到精通】——以太网TCP/IP协议自动化测试(含CAPL源码)

    【车载以太网测试从入门到精通】系列文章目录汇总 TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇

    2024年02月05日
    浏览(163)
  • 电子电器架构网络演化 —— 车载以太网TSN

    我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人

    2024年02月01日
    浏览(53)
  • 【车载以太网测试从入门到精通】——传输层测试

    【车载以太网测试从入门到精通】系列文章目录汇总

    2023年04月27日
    浏览(59)
  • 【ETH】以太网----PHY芯片LAN8720A----电路原理图

    LAN8720A 是低功耗的 10/100M 以太网 PHY 层芯片,I/0 引脚电压符合EEE802.3-2005 标准,支持通过 RMI 接口与以太网 MAC 层通信,内置 10-BASE-T/100BASE-TX 全双工传输模块,支持 10Mbps 和 100Mbps。 LAN8720A 可以通过自协商的方式与目的主机最佳的连接方式(速度和双工模式),支持 HPAuto-MDIX 自动

    2024年02月06日
    浏览(90)
  • 【车载以太网测试从入门到精通】——物理层测试

    【车载以太网测试从入门到精通】系列文章目录汇总 车载以太网是一种用以太网连接车内电子单元的新型局域网技术。与普通的以太网使用4对非屏蔽双绞线(UTP)电缆不同,车载以太网在单对非屏蔽双绞线上可实现100Mbit/s甚至1Gbit/s的数据传输速率,同时还应满足汽车行业对

    2023年04月24日
    浏览(101)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包