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。

相关推荐

  1. 设计模式设计原则

    2024-03-26 10:46:01       13 阅读
  2. 设计模式?!

    2024-03-26 10:46:01       39 阅读
  3. 振荡器设计

    2024-03-26 10:46:01       31 阅读
  4. 设计模式

    2024-03-26 10:46:01       19 阅读
  5. 【软件设计

    2024-03-26 10:46:01       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-26 10:46:01       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-26 10:46:01       20 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-26 10:46:01       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-26 10:46:01       20 阅读

热门阅读

  1. HCSC单片机使用小结

    2024-03-26 10:46:01       18 阅读
  2. 笔记:Linux下的snmp配置

    2024-03-26 10:46:01       18 阅读
  3. OJ : 1091 : 童年生活二三事(多实例测试)

    2024-03-26 10:46:01       21 阅读
  4. 如何查看ubuntu服务器上防火墙信息

    2024-03-26 10:46:01       17 阅读
  5. web3 token 如何理解

    2024-03-26 10:46:01       15 阅读
  6. Web3创作整理 - 2024-02-23 ~ 2024-03-25

    2024-03-26 10:46:01       20 阅读
  7. 微服务常用技术栈

    2024-03-26 10:46:01       17 阅读
  8. python中良好的编码规范

    2024-03-26 10:46:01       17 阅读
  9. 前端几种下载文件的方式(url方式和文件流方式)

    2024-03-26 10:46:01       21 阅读
  10. 滴滴车型不符解决办法怎么办理

    2024-03-26 10:46:01       27 阅读
  11. C++ union用法

    2024-03-26 10:46:01       19 阅读