分享

基于AUTOSAR的车载以太网通信流程简介

 Kuai2012 2022-04-26

随着车载以太网的逐渐引入,车载以太网在ECU上的使用逐渐的增多,下面来看看基于AUTOSAR架构的以太网的通信流程,整体的上下层关系如图1所示。

图1 以太网通信的模块层次接口

发送流程
应用层通过RTE调用LdCom_Transmit(),根据提供的PDU Id将传输请求和PduInfoPtr输入值PduR模块,其中PduInfoPtr包含发送数据的长度以及指向发送数据的指针信息。
PduR模块中,PduR_LdComTransmit()接口调用PduR_GetTransmitFctPtr()接口来查询数据传输的路径,可以是CAN也可以是以太网。
SOAD模块提供基于PDU的通信和基于TCP/IP的套接字通信,通过TcpIp_GetSocketForUser()接口指定Socket协议和Internet协议版本(IPV4/IPV6)。
TCP/IP模块向上层提供UDP和TCP的套接字。
数据传出至EthIf接口层,通过调用EthIf_Transmit()接口将copy至buffer,若copy成功,则调用底层Eth_Transmit()接口进行发送,发送成功后,通过主函数调用Eth_TxConfirmation()接口向上层进行发送确认,如图2所示。

图2 Eth_TxConfirmation
接收流程
当总线有数据时,接收模式配置为中断模式时,会触发中断函数进行数据接收;配置为轮询的方式时,则在Eth_MainFunction()来处理,如图3所示,两者均通过调用Eth_Receive()接口函数将数据输入接收Buffer中,接收成功后,则调用EthIf_RxIndication()接口通知上层数据成功接收。

图3 中断和轮询接收
TCP/IP模块通过调用TcpIp_RxIndication()接口处理EthIf层的接收通知,然后通过Callback函数TcpIp_RxIndicationFunctions()接口通知SODA模块。
SOAD 模块调用 API SoAd_RxIndication接口收到 TCP/IP 模块返回的接收指示,调用PduR_SoAdIfRxIndication() 接口通 知 PduR 模 块; 在PduR 模块中可将数据传输至COM 模块或 LDCOM 模块; 最后应用层通过 RTE 读取接收数据(COM或LDCOM)。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多