AUTOSAR CAN收发流程

目录

概述

一、框图

二、发送流程

三、接收流程

总结


概述

随着汽车智能化、网联化的快速发展,CAN总线作为汽车内部通信的核心技术,扮演着举足轻重的角色。AUTOSAR(AUTomotive Open System ARchitecture)作为汽车软件架构的开放标准,为汽车软件的模块化、标准化和可重用性提供了强有力的支持。在AUTOSAR框架下,CAN通信的收发流程不仅关系到数据的准确传输,更关乎整个汽车系统的稳定性和安全性。

本文主要介绍CAN自下而上以及以上而下在AUTOSAR架构下的通信流程。


一、框图

二、发送流程

1.应用层SWC通过调用Rte_write接口,将数据传到Rte层。

2.Rte层调用COM层的Com_SendSignal()将数据传至COM层。

3.COM层将Rte层发过来的数据存入缓存,等待发送。

4.BSW将会周期性的调度Com_MainFunctionTx(),并通过PduR_ComTransmit()将数据传递给PDR模块。

5.PDUR模块通过CanIf_Transmit()将数据传递给CAN IF模块。

6.CAN IF在通过调用Can_Write()将数据写入寄存器。

7.CAN Driver将对硬件进行访问,并将数据转换为适合CAN控制器处理的格式及打包CAN帧,包括标识符,数据和检验码等传递给CAN控制器。

8.CAN控制器根据接收帧中的信息控制CAN总线的物理层接口(及CAN收发器)来发送数据。

9.CAN收发器会解码并转换CAN控制器传递过来的数据为适合物理层传输的电平信号。

三、接收流程

1.CAN收发器接收来自总线的物理信号,它会将其解码并转换为数字信号。

2.CAN控制器处理CAN收发器接收转换后的数字信号以供CAN Driver访问。

3.BSW周期性调度Com_MainFunctionRX()函数,在函数中检查是否有新接收的数据CAN控制器,并访问控制器的相关寄存器,读取寄存器中接收到的数据。

4.数据接收完成后通知CANIF层并调用CANIf_RxIndication()函数,将数据传递到CAN IF模块。

5.CAN IF模块调用PDUR中的PduR_RxIndication函数,将数据传递到PDUR模块。

6.PduR模块通过调用COM模块中的Com_RxIndication()通知函数,将数据传递到COM模块,COM会将接收到的数据存入缓存。

7.Rte模块通过Com_ReceiverSignal()读取COM中的缓存数据

8.应用层通过Rte的Rte_Read()函数读取数据。


总结

在Autosar架构中,应用层到硬件CAN数据的传递过程是一个精心设计和协同工作的结果。它确保了数据在复杂的汽车系统中能够准确、高效地传输,满足了汽车通信的实时性和可靠性要求。

通过以上内容的学习,希望对初学者有所帮助,不足之处,还请多多指点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值