AUTOSAR架构的CAN通讯学习(一)——整体概述

本文是针对链接中文章的学习笔记https://mp.weixin.qq.com/s?__biz=MzUyODA2MjkyNA==&mid=2247490026&idx=1&sn=71943d725ceab7076112427e9fe7f59f&chksm=fa775949cd00d05f9bd53cbea662d5bc35cee25826c327011b903802cf5d34004cb9cd7cbeb2&scene=178&cur_album_id=1584282669947912193#rd

一、autosar架构概述

tresos主要关注底软(BSW)的开发,BSW划分为:服务层,ECU抽象层,微控制器抽象层和复杂驱动。如图1,BSW层介于RTE和Microcontroller之间。
图1图1

每层按功能组继续划分,如图2所示。CAN通讯属于通讯功能,属于图2中黑框所涵盖的范围。
图2图2

黑框内表示通讯功能,对该功能再按模块细分,如下图3所示。其中CAN通讯的核心模块有4个(红圈标示):COM模块,PDU Router模块, CAN Interface模块和CAN Driver模块。
在这里插入图片描述图3

二、CAN接收

CAN接收功能需要使用通知(Indication)服务,基于autosar架构的实现过程如下:
在这里插入图片描述图4 CAN接收

其中值得注意2点:
1、当配置为轮询方式时,BSW调度器周期性调用CAN Driver模块的Can_MainFunction_Read函数;
2、数据到达COM后,Com模块将会把数据存入其缓存,供应用层软件读取使用。

三、CAN发送

CAN发送功能需使用请求(Request)服务和确认(Comfirmation)服务,AUTOSAR架构的CAN发送功能如下图5、6所示。
在这里插入图片描述
图5 CAN发送

图5中值得注意的是: 当配置为轮询方式时,BSW调度器周期性调用Com模块的Com_MainFunction_Tx函数,Com模块将从其缓存器中读取需发送的数据;

在这里插入图片描述图6 CAN发送后的确认流程

图6中值得注意的是:当配置为轮询方式时,BSW调度器周期性调用CAN Driver模块的Can_MainFunction_Write函数。

【注】:
请求(request),即服务用户向服务提供者发起请求服务;
通知(indication),即服务提供者向服务用户通知一个对其重要的服务提供者内部事件;
确认(confirm),即服务提供者向服务用户传达先前请求服务的结果,是成功还是失败,是完成还是未完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值