Autosar Application设计

设计需求

用个实例来讲解会比较好理解,我们要设计这个车灯控制部件,需求是这样的,靠两个门和一个开关控制最后的灯,左门右门当中只要有一个门打开,Door Contact就会把信号传给Dimmer,同时根据开关的状态控制灯光的开关和亮度。关上所有的门,灯就会灭。

需求分析

下图每一个灰色的框就是一个SWC(software components),不可再分的。

Port是SWC之间的交互端口,Port之间的链接叫Connect,Port也能提供或者获取到BSW里面的模块。

每个SWC实际上是通过Virtual Function Bus进行连接和交互的,是所有Connect的集合。

进一步看具体分布到不同的ECU当中,这里分了两个ECU。一个是Roof ECU,一个是Front ECU。RTE是Virtual Function Bus的一个典型代表。

左右门开关的信号通过IO传输到左门和右门两个SWC,然后通过RTE传递给Door Contact,在通过Bus传递给Dimmer。同时开关信号通过本地IO传输给开关模块,再通过RTE传递给Dimmer,两边的信号集中到Dimmer后通过RTE去控制灯光模块,灯光模块的信号再通过Bus传输出去。

设计概念

处于框架位置

 Application在整个Autosar架构的最上层,也就是Application Layer下面是RTE。

原子级SWC

是不可再分的

应用型:有算法功能(Dimmer、Door Contact)

传感器/执行机构:纯输入输入数据(Switch、Light、Left Door、Right Door)

组合级SWC

实际上是原子级SWC的功能组合,不会生成代码,会生成代码的还是原子级SWC。

端口

Sender和Receiver:传输数据元素,相当于数据处理。

Client和Server:根据参数进行操作,相当于函数调用。

还有种特别的端口:

Sender/Receiver双向端口:既可以发也可以收。

Sender和Receiver在我们实例当中是这么用的,Dimmer将使用数据Light_Dimm通过Sender端口发出到RTE,Light使用Receiver端口从RTE获取到数据Light_Dimm。Dimmer获取的DoorOpen还可以mapping到总线上的DoorLeft_Open信号。还可以支持多种数据类型,整形、浮点型、数组、结构体等。譬如它生成给到Dimmer获取的接口函数就是Rte_Read_Door_DoorOpen(),格式为Rte_方向(write或者read)_端口名(提供SWC)_数据/信号名。可以一对一、一对多、多对一。

Client和Server

可以一对一、多对一。可以同步和异步处理。同步就是Server在处理的时候Client一直等着,等到Server提供到为止。异步就是Client自己做自己的事情,等到Server处理完了能提供的时候就获取。

Runnable

可执行实体,描述内部行为,里面是真有点事情干才行,相当于C函数。

由RTE来触发,一收到数据就调用。

整体框图

每个深色灰框是组合级SWC,浅色灰框是原子级SWC。

SA_Left每隔20ms调度一次,mapping到Task A,对应有个OS application。

SA_Contact是RTE触发的,mapping到另一个Task A。

Dimmer里面有两个Runnable,AP_Init是Init模式触发的,AP_Dim则是RTE触发的。

端口之间需要定义数据元素data element也就是DoorOpen。

  • 47
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不吃鱼的羊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值