分享

Autosar应用接口设计指南

 ZHAOHUI 2024-11-27 发布于上海
这是一篇研读Autosar的SWC设计规范文件《AUTOSAR_CP_EXP_AIUserGuide》的梳理,内容较为抽象,通过它来学习一些软件架构的设计思想。        
1.应用接口表AI Tables介绍
它是一个Excel表,基于Autosar元模型的设计,管理我们在元模型中定义的所有数据接口,并且可以利用VB脚本(或python)来验证我们的数据,并且生成arxml文件,该arxml文件包含了Excel表中定义的全部应用接口数据的详细结构化信息。
          
包含了车身域、动力域、底盘域、座舱域、网联信息、安全等多方面的内容,包括组件、端口、端口接口及其变量数据原型、量数据原型的数据类型、单位、组件类型的实例、关键词,用多个sheet来维护。
          
2.Autosar元模型
一种用于描述汽车电子系统软件架构的抽象模型,为汽车电子软件开发提供了标准化的、统一的语义和语法的规则体系,是汽车电子ECU软件开发的 “设计图”,定义了软件组件、接口、数据类型等各个要素之间的关系,在开发一个新的ECU软件时,首先依据 AUTOSAR 元模型来规划软件的基本架构,包括确定有哪些软件组件、它们之间如何通信等。
          
包括了如下几个部分:
2.1.软件组件(Software Component,SC)元模型:
可进行功能逻辑开发的单元,包含了代码和数据,描述了组件的接口,接口规定了软件组件之间的通信方式,比如在发动机控制软件中,负责燃油喷射控制的SWC会通过输出接口向外发送燃油喷射量等信息,同时通过输入接口获取发动机转速等信息。
          
2.2.通信元模型:
描述不同SWC之间的通信方式,无论这些SWC是否在同一个ECU内,包括信号、消息等概念,信号是最基本的通信单元,多个信号可以组成消息,比如车速信号从轮速传感器SWC发送到仪表盘显示SWC,这个过程的通信机制由通信元模型来定义。    
          
2.3.ECU 资源元模型:
定义了ECU的硬件资源相关内容,如处理器、内存、通信总线等资源的抽象表示。
          
下图就是一个Matlab的Autosar元模型实例,包含传感器、控制器、执行器的SWC,以及这些SWC间的端口和通信,好包括NVM等ECU资源。
          
图片
Matlab的Autosar元模型实例          
2.4 模型元素分类
标准类:可直接在项目中使用,无需任何修改,包括物理维度、单位、生命周期信息;
蓝图类:是模型元素的基类,其他模型元素可以通过复制它来派生,包括应用数据类型、计算方法、数据约束、关键词集、端口接口、端口原型、集合;
示例类:不应被标准化,但对理解有帮助的元素被创建为示例类,包括软件组件类型、应用数据类型、蓝图映射集、派生自蓝图的计算方法、数据约束、端口接口。
          
3.从元模型到AI Tables
在Excel表格中,维护元模型中定义的定义所有模型元素
          
图片
多重实例化:设计中一次指定一个结构并在多个地方使用它的能力,最好的类比就是面向对象编程,在元模型中,SwComponentType 可实例化出多个 SwComponentPrototypes,它们将具有与 SwComponentType 相同的属性。    
图片
实例化sheet          
          
端口原型:是不同软件组件之间的通信连接点,明确定义了通信需求,端口原型要么是需求类型,要么是提供类型,需求端口(RPortPrototype)需要某些服务或数据,提供端口( PPortPrototype)提供服务或数据。
          
端口原型蓝图:端口原型蓝图是创建端口原型的模板。
          
蓝图映射:从蓝图创建实例的过程就是蓝图映射。
          
 端口接口:定义了在两个端口原型之间传输的信息类型。
          
发送 - 接收通信接口:定义异步通信模式,其中发送者提供数据,一个或多个接收者接受这些数据。
图片
发送接收接口          
          
客户端 - 服务器通信接口:客户端发起请求,服务器执行该操作并立即向客户端提供结果(同步操作调用),或者客户端自己检查操作的完成情况(异步操作调用)。    
图片
客户端服务器接收接口          
          
数据类型DataTypes:从应用和实现的角度描述软件组件提供的数据,由抽象元类 AutosarDataType 表示,从它派生了应用数据类型和实现数据类型,应用数据类型进一步派生为应用原始数据类型和应用复合数据类型,还可以组合为应用数组数据类型和应用集合数据类型。
          
物理单位:输入和输出物理值的单位。
图片
物理单位          
          
计算方法:表示物理值之间的数学关系,如F[kmh] = 30[kmh] + 2[kmh] x。
          
关键词和关键词集:在定义组件类型、端口、端口接口或数据元素的短名称时,利用 AUTOSAR 中预定义的关键词及其缩写是一个重要的部分。
          
4.AI Tables设计    
应用接口(AI)表的结构如下,主要包括如下sheet:
图片
          
04_Keywords: 包含关键字及其缩写,“短名称”、“长名称”、“缩写名称” 和 “描述” 列用于定义在 AUTOSAR 中通用的关键字,例如 Accept和关键字缩写 Acpt。
图片
              
05_TopLevel :表示域的最顶级视图,包含域间端口原型和端口接口连接关系。
050xxxxx 工作表:域的展开描述,如0501_body,包含车身域的组合,050101_ExternLight表示车身域内的外灯组件。
图片
          
06_Interfaces_DataElements:发送者 - 接收者接口工作表,每个发送者 - 接收者接口可以在所有 05xx 域 / 组合工作表中多次使用,一个接口也可以用于不同的端口。
图片
          
06_Interface_ClientServer:客户端-服务器接口,每个定义的客户端 - 服务器接口可以在所有 05xx 域 / 组合工作表中多次使用,一个接口也可以用于不同的端口。    
图片
          
07_DataTypes_ContinuousValue:连续值表,定义物理值,被06 sheet引用,包含关于最小位数要求、分辨率、物理下限和上限、偏移值和物理单位的信息,分别在标题为 “最小位数推荐”、“分辨率”、“物理下限”、“物理上限”、“偏移” 和 “单位” 的列中。
图片
          
08_DataTypes_Enumeration :枚举值工作表,定义枚举值,被06 sheet引用。
13_Units:单位定义。
图片    
          
全部完整的表定义例子:
图片
图片    
图片
          
6.生成arxml文件
基于如上设计的excel文件,运用VB生成arxml文件,文件内容及arxml文件内结构,见《AUTOSAR_CP_EXP_AIUserGuide》,包含如下内容:
公共元素:
包结构和类别
引用
实例引用
类型引用
描述
组合类型:
端口
组件原型和
连接器
端口原型蓝图:
端口原型蓝图的蓝图映射
接口:
发送 - 接收接口
客户端 - 服务器接口    
端口接口的蓝图映射
应用数据类型:
带有约束的原始类型
数组类型
记录类型
应用数据类型的蓝图映射
数据约束
计算方法
计算方法的蓝图映射
单位:
物理维度
关键字
数据约束:
数据约束的蓝图映射
图片
          
总结
AI Table 详细描述了如何用表格维护Autosar软件架构元模型定义的模型元素,这些元模型和模型元素信息,将用于指导ECU的应用软件开发,在实际应用时,借鉴其设计思想,根据我们项目的情况,合理运用到我们自己的项目设计中。  

我的开源项目链接,欢迎star:
基于UDS on CAN的Bootloader的刷写上位机
https://github.com/sydyg/UDS-on-Bootloader.git
OSEKNM协议栈:
https://github.com/sydyg/OSEK_NM

我是袁木,汽车研发,熟悉汽车电子产品及架构设计、嵌入式软件开发、汽车HIL和网络测试
我的技能树:C/C++嵌入式、C#上位机、python、Matlab、MCU(RTOS)、MPU(Linux)、CANoe、SOA、Autosar CP & AP、CAN/LIN/ETH总线、智能网联。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多