这篇文章是对于我这个初学者的笔记,大家有什么简介可以纠正一下。在AUTOSAR框架中,我们的车载系统不在过分依赖于硬件,而是分层了,白话文就是换了配件也能跑代码 执行功能。而不是对不同硬件去写不同硬件代码
AUTOSAR组成部件-----Appl

我们可以看到Appl构成以一个一个的SWC,也就是我们在单片机所用到的.c文件
SWC在数据传输会用到接口,AUTOSAR接口,也就是Ports。还有连接器Connector
所以 Appl 重要的有一下三点
1.AUTOSAR接口(Ports) 和 连接器(connector)
2.SWC文件
3.runnable(可执行实体),也就是函数 swc也是由runnable构成的
SWC的类型
1.原子级SWC,也就是一个.c文件,它就像一个微观中的原子,不可再分。Runnable也就是其中的电子,质子,中子
2.集合型SWC:也就是多个.c文件构成的,好比一个原子,内部有许多原子组成
SWC的通信
在Appl层中,SWC的通信主要通过非Appl层进行通信的 也就是非应用层总线进行交互
在片内(in the same ecu),是通过RTE(Runningtime envirement,实时运行环境)
在片外(not the same ecu),一般通过CAN bus,CAN总线进行通信
PORT接口(interface)类型:
R-P接口:Request-Port 需求接口:顾名思义 我需要别人给我数据的接口
P-P接口:Provide-Port 提供接口:我需要提供给别人数据的接口
PR-P接口:Provide Request Port 既需要又提供接口
或者可以分为
S/R接口 和 C/S接口
S/R PORT: Send/Receiver port 发送接收接口 用来传输数据
C/S PORT:Client/Server port 客户/服务接口 用来执行操作
我一开始 不理解什么是客户接口和服务接口(C/S)
我给大家解释一下:比如在汽车显示屏幕上 我需要获取车子的情况,我需要点击程序。此时就发送了一个Client请求,比如我要读车速, 在AUTOSAR中就会实现类似于函数
RTE_CALL_GetSpeed();这个请求 S就是执行这个服务的接口。类似于标志位 触发 响应的过程
而S/R接口就更好理解了,它相当于SWC 定时或者周期 读取发送数据信号,发送在RTE层中
另一方SWC周期或者定时读取信号
RUNNABLE(可运行实体)
我自己类比AUTOSAR工程写了一个Runnable方便大家理解
100ms 触发一次 由os调度 task
Fun(std_returntype)Rte_sent_speed(void)
{
std_returntype speed = rte_read_speed();
return speed;
}
这是一个读取车速的Runnable,100ms触发一次,这个同样也是一个标准的读取R-P接口数据
Runnable是需要OS系统task作为载体去运行的。task类似于定时器里的标志位,触发标志,RTE检测读取 然后执行Runnable。
参考文献AUTOSAR中文手册
4万+

被折叠的 条评论
为什么被折叠?



