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之间。
AUTOSAR架构的CAN通讯学习(一)——整体概述_第1张图片图1

每层按功能组继续划分,如图2所示。CAN通讯属于通讯功能,属于图2中黑框所涵盖的范围。
AUTOSAR架构的CAN通讯学习(一)——整体概述_第2张图片图2

黑框内表示通讯功能,对该功能再按模块细分,如下图3所示。其中CAN通讯的核心模块有4个(红圈标示):COM模块,PDU Router模块, CAN Interface模块和CAN Driver模块。
AUTOSAR架构的CAN通讯学习(一)——整体概述_第3张图片图3

二、CAN接收

CAN接收功能需要使用通知(Indication)服务,基于autosar架构的实现过程如下:
AUTOSAR架构的CAN通讯学习(一)——整体概述_第4张图片图4 CAN接收

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

三、CAN发送

CAN发送功能需使用请求(Request)服务和确认(Comfirmation)服务,AUTOSAR架构的CAN发送功能如下图5、6所示。
AUTOSAR架构的CAN通讯学习(一)——整体概述_第5张图片
图5 CAN发送

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

AUTOSAR架构的CAN通讯学习(一)——整体概述_第6张图片图6 CAN发送后的确认流程

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

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

你可能感兴趣的:(autosar学习,学习,汽车)