|
汽车零部件采购、销售通信录 填写你的培训需求,我们帮你找 招募汽车专业培训老师
Autosar的以太网协议栈由以下部分组成:Ethernet Driver、EthTrcv、Ethernet Interface、TCP/IP Stack、Sd、SocketAdaptor、EthTsyn、StbM和EthSM、DoIP等组成,如下图所示。
Ethernet Driver作为以太网的驱动层,主要负责配置MCU的MAC寄存器,如与外部PHY的连接方式(MII/RGMII等)、使用的IO、通讯速率等,并向上层提供收发数据的接口。和CAN不同的是,由于以太网的发送和接收的CPU和DMA是通过描述符列表实现的<<以太网通信之数据传输过程>>,因此在发送时需要判断是否有可用的发送描述符(即Eth_ProvideTxBuffer函数)和CanTrcv类似,以太网发送一般需要EthTrcv。EthTrcv主要配置PHY的一些属性,如速率、工作模式(全双工/半双工)等。Ethernet Interface主要负责向上层提供一个与硬件无关的接口。这个接口适配于所有以太网控制器和收发器,因此上层如TCP/IP、EthSM、CDD和V2x 等模块可以用标准接口来操作以太网。TCP/IP由ARP、IPv4、IPv6、ICMPv4、ICMPv6、NDP、UDP、TCP、DHCPv6和DHCPv4组成。IP(网络协议层)主要负责将数据分发到不同的目的地址,它隐藏了网络接口层的物理信息。ARP(地址解析协议,处于IPv4协议中)的主要功能是根据IP地址获取物理地址(如MAC地址)。每一台主机都设有一个ARP高速缓存(ARP Cache),里面存放了本局域网上各种主机和路由器的IP地址到硬件地址的映射表,这个映射表会动态更新,使得设备能够快速查找和通信。但是为了防止ARP攻击,通过手动配置或绑定操作的静态ARP表也随之诞生。通过手动配置或绑定操作,可以在ARP表中设置静态的IP地址到MAC地址的映射,这样可以防止ARP攻击,因为攻击者无法通过ARP请求修改正确的映射关系,可以在ARP表中设置静态的IP地址到MAC地址的映射。静态ARP表不会老化,也不会被动态表覆盖。ICMP(以太网控制报文协议)主要负责传递控制消息、报告错误、链路追踪和检错等。DHCP(动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要给内部网络或网络服务供应商自动分配IP地址。NDP(NeighborDiscovery Protocol,邻居发现协议)是IPv6的一个关键协议,它定义了使用ICMPv6报文实现地址解析、跟踪邻居状态、重复地址检测、路由器发现以及重定向等功能。IPv6中没有了ARP协议,使用了NDP协议中的NS(NeighborSolicitation,对应ARP请求报文)和NA(Neighbor Adivertisment,对应ARP应答报文)完成了ARP协议的功能.NS和NA是依托于ICMPv6报文完成的。UDP和TCP都是传输层协议,已在<<以太网通信之TCP和UDP>>一文中描述。SD 是 ServiceDiscovery,也就是服务发现的意思,主要用于SOME/IP中。SD 在Autosar 中的模块主要功能:探测服务和向外提供服务。它位于 Autosar 中的 BswM 和 Socket Adaptor 之间。SoAd主要的作用是为使用PDU的Autosar的通信模块(如PDUR)和TCP/IP提供一个接口。它为Pdu ID和socket连接做一个映射。EthTsyn和StbM主要作以太网的时间同步(PTP/GPTP,后面会详细讲解)使用。
EthSM与CanSM类似,负责以太网模块和以太网PHY的状态管理。
DoIP全称是DiagnosticOver IP,顾名思义就是基于IP的诊断。 |
|