CP AUTOSAR APP 简介

汽车电子与软件 2021-11-17 21:28

前言

在整个CP AUTOSAR架构开发的软件产品中主要分为APP、RTE、BSW三个架构层次,本文主要对CP AUTOSAR 中APP的设计开发做详细的介绍。


概述


在CP AUTOSAR 中APP位于CP AUTOSAR架构的最上层,如下所示:


APP在CP AUTOSAR 架构中不依赖于任何的硬件电路,主要是根据业务需要进行开发逻辑应用,这些应用一般都是一些逻辑的算法,比如VCU的正常控制策略、BMS的SOC估计、MCU的电机控制等都是在APP实现的逻辑,从而实现适配不同的车型(Vehicle)、适配不同的供应商(ECU)、适配不同的硬件(MCU)的应用开发。

CP AUTOSAR 中APP的开发一般包含两大部分,首先是基于设计工具(AUBASS的AUBIST Configurator、维克多的Developer等)开发APP中相关的SWC组件,在SWC定义相关的Internal Behavior以及跟其他SWC以及BSW交互的接口。

最后基于在开发工具中设计的SWC的ARXML文件导入到Simulink中进行模型搭建或者在开发工具中生成该SWC的模板代码进行Coding。

对于一个SWC的开发主要分为下面三部分的内容SW-Component Type Description、SW-Component Internal Behavior Description以及SW-Component Implementation Description。如下图所示:


SW-Component Type Description属于最顶层的SWC的描述,描述内部最小的SWC所使用的接口、数据等,描述SWC间的交互和通信关系,定义SWC的分层结构。

SW-Component Internal Behavior Description主要定义RTE层面的使用对象,定义RTE的调度实体,定义相关的触发事件,定义Timing相关的交互参数。

SW-Component Implementation Description最下层的SWC的描述,根据定义的行为产生相关的代码,根据SW-Component定义的交互接口产生相关的接口函数和数据定义,产生RTE交互的接口API以及资源使用。

APP 中 SWC 元素介绍


CP AUTOSAR 中对于APP中SWC的开发定义了许多元素,对于SWC的开发者而言主要是在开发APP过程中定义这些元素就可以。

常见的APP开发中我们需要关注的元素包括:Software Component、Composition、Port Interface、Runnable、Data Element、Data Type、Connector、Compu Methods、Type Mapping Set、Data Mapping、E2E Protection等,下面就分别对上面的元素做主要介绍:

Software Component

Software Component也就是我们常说的SWC,在CP AUTOSAR开发中,一个SWC就是一个软件组件,定义了不同类型的软件单元的行为和交互接口,一般一个SWC用一个xml文件描述,在代码生成中一般生成一个C文件,包含了函数、接口、变量的相关定义。

在AutoSAR中SWC一般包括:Application、Sensor Actuator、I/O Hardware Abstraction、Complex Driver、Non-Volatile Component、Service components类型的SWC设计。

 
其中Application、Sensor Actuator这两个SWC组件一般是APP层开发应用逻辑的主要组件负责传感器输入、逻辑算法以及控制执行器的输出;I/O Hardware Abstraction 主要是对BSW层I/O Hardware Abstraction进行设计和开发,实现MCAL IO Driver的抽象,达到APP的IO使用与MCAL(芯片)的隔离;

Complex Driver是CP AUTOSAR中复杂驱动模块开发的SWC,在CP AUTOSAR架构设计开发中位于BSW层,用于没有标准化的外围硬件IC芯片的开发;Non-Volatile Component主要实现BSW层NvM与APP之间的交互,定义Nv Data存储方式、Nv Block的映射和配置;Service components用于服务模块的开发,主要满足对一些功能的服务调用。

Composition

Composition一般是多个SWC的集合,在CP AUTOSAR开发配置过程中可以一个包含多个SWC的Feature称作是一个Composition,也可以把整个ECU中所有的SWC放到一个Composition中。设计好的SWC一旦放入到了对应的Composition中也就是具备了应用和实现的属性,可以用作生成C文件以及和各个SWC之间以及系统信号或者BSW模块进行交互。

Port Interface

一个Component有明确定义的Port,通过这些Port, Component可以与其他Component交互。一个Port总是只属于一个Component并且表示Component和Component之间的交互。

为了表示Port传递的Services(CS Port) or Data(SR Port)的provided或者是required方式,引入了Interface的概念,Port的类型由Interface定义。

通常而言Interface只是定义了一些操作和数据元素或者一些Operation服务,一旦Interface具备了Provided或者Received在SWC中便是RPort或者PPort。

Port与Interface的关系如下,从左到右依次是Sender Port(发送数据,代码中一般以Rte_Write_XXX存在)、Receive Port(读取获得数据,代码中一般以Rte_Read_XXX存在)、Server Port(提供服务函数代码中一般以函数形式存在)、Client Port(调用服务函数, 代码中一般以Rte_Call_XXX存在)。


Runnable

一个函数的实体,简称Runnable,是一个承载你代码的C函数。Runnble在SWC设计中一般包括Init Runnable、Cyclic Runnable、Trigger Runnable。

对应的每个Runnable都有对应的触发源,Init Runnable一般在系统运行中初始化一次,可以作为Init的事件放在初始化的Task中执行,Cyclic Runnable一般采用周期的Alarm或者schedule Table实现,Trigger Runnable一般采用一个事件或者接口调用实现。

Data Element

数据元素决定了可以通过端口的数据类型以及数据。数据元素一般自己定义,数据类型最终会映射Interface上用于相互SWC之间的数据通信。

Data Type

主要定义传达数据元素的类型,主要包括Base Type(常见的数据类型,Uint/int/float等)、Implementation Data Type(IDT,主要是对基本类型的特殊定义,类似于Type define的功能)、Application Data Type(ADT,用于实际的物理类型,具备了真实的物理数据涵义)

Connector

为了定义软件组件相互通信,它们的端口必须通过所谓的Connectors连接。Connector实现软件组件之间的发送方/接收方和客户端/服务器通信。Connectors只能在两个Port之间绘制,如果它们的Port接口兼容,下图展示了Connector的实际


CompuMethods

定义数据元素内部数据的转换关系,通常一些,通过CM,可以实现数据元素的转换,例如简单的线性运算y=ax+b,就是在CM中配置a(factor)和b(offset)实现的。同时对于一些枚举元素的定义也可以在CM中设置

TypeMapping Set

建立数据类型的Mapping关系,通常在使用ADT和IDT中,两者之间的映射关系就是在Type Mapping Set中实现的。

DataMapping

在SWC中将CAN、LIN、ETH等Com层的信号与对应的SWC的PortInterface中的数据元素建立关联,实现对系统信号的读写操作。

E2EProtection

对SWC的Port之间的交互增加E2E的配置,实现数据的E2E保护。

SWC 与其它模块的交互


设计完成SWC以及SWC中的各个元素之后,需要定义SWC的交互,在SWC层面进行的交互主要包含了两类,一类是函数调用(Init Runnable、Cyclic Runnable、Trigger Runnable),另一类就是接口或者通信数据的交互。

函数的调用一般基于Alarm或者Schedule Table进行,无论是Alarm还是Schedule Table我们只要把需要的Runnable放到Alarm激活或者Schedule Table激活的Task就可以。

下图展示了Alarm激活的例子,对应的Cyclic Runnable(分别为10ms和50ms的情况)在配置中会根据调用的周期生成相关的Alarm,最终OS使用的硬件计数器的时间达到Alarm匹配的数值的时候激活10ms或者50ms Runnable对应的Task(对应的10ms或者50ms的Runnable已经在RTE中映射到了对应的Task),从而实现Runnable的周期调用。


SWC除了函数的调用剩下的就是接口的交互,在SWC中数据接口的交互主要包含了三类SWC与外部ECU的SWC交互、同一个ECU内部SWC与SWC的交互、同一个ECUSWC与BSW的交互。

SWC与外部ECU的SWC的交互一般通过系统信号实现(CAN、LIN、ETH等),交互中一般需要通过两个ECU的Communication协议栈,如下图所示:


同一个ECU之间的数据交互一般采用的是CS或者SR接口进行,一般来说采用CS接口使用的是函数传参的形式,而采用SR接口一般采用的是操作RTE中的全局变量实现的,如下所示,左侧为CS接口,右侧为SR接口


同一个ECU中SWC与BSW的交互通常需要CS实现数据和服务的调用,如下所示,这一类的交互需要我们根据需要自己在配置工具内部做SWC和BSW接口的Mapping实现。



SWC 开发过程


下面以Vector的工具开发链简单介绍下APP的开发流程

1、在Davinci Configurator建立Project,定义Project的基本属性,包括代码生成的路径,引用的配置SIP等,这部分内容会在购买配置包的时候供应商都会给你,按照参考手册建立即可。

2、一般情况下,APP层的配置在BSW层能够完成一定的基本功能才开始,假设BSW层的基本功能已经满足,其中内部已经建立好了OS和RTE以及MCAL等一些基础的模块。

这时候根据需要选择建立自己的APP类型,首先建立一个该ECU的Composition,其中Composition Type可以包含多个SWC,选择一个特定类型的SWC(Application Type、IOHardwareAbstraction Type、Cpomplex Driver Type等)具体的根据自己需求选择。

3、定义好特定的SWC后,定义SWC的函数,多数情况下一个SWC有三种类型的函数,初始化函数(Init Runnable)、周期函数(Cyclic Runnable)以及和CS相关的Invoke函数。一般每一个SWC有一个初始化函数一个周期函数。

4、定义数据类型,根据具体的需求定义所使用的数据类型,可以使用基本的类型也可以定义具体的使用的类型(类似于Type define功能),同时定义具体的结构体、数组、枚举等类型,对于类型的定义规则每个开发公司不一样,按照公司或者相关标准文件即可,定义数据类型的最大值,最小值、比例系数和偏移量等。

5、定义数据元素,数据变量,并将具体的类型与数据元素关联,如果类型中使用了转换,需要对特定的数据类型添加CM。

6、定义Port Interface,如果是SR Port选择数据元素,CS Port定义相关的操作函数和数据元素。并明确Port在SWC的方向。SR Port要规定它的操作函数。定义Port Access属性,主要是将特定的接口映射到实现的Runnable中,只有添加了该映射,才会生成对应的接口函数名供SWC内映射的函数使用,定义S是否使能Update属性,需不需要E2E保护,对于E2E的Port要选择E2E实现的Library。

CS Port要与对应的函数建立调用关系。如果是CAN Signal相关的Port建立与Signal的Mapping。如果是底层CS相关的Port 在配置软件中建立Mapping。其他Port直接在SWC之间建立连接。

7、选择连接的Port在不同SWC之间有一致的初始值,并校验APP中SWC配置是否有错误,并进行修改。

8、在RTE中将SWC的Runnable Mapping到具体的Task中。

9、生成SWC模块、Rte模块、OS模块的代码。

10、进行代码实现、编译、调试。

本期分享就到这里,欢迎大家一起交流学习,如果有不合理的地方也请大家指正,愿和大家一起学习进步,一步步做好汽车电子软件开发。


“ 转发 ”  “ 在看 ” 支持一下吧 END


汽车电子与软件 主要介绍汽车电子软件设计相关内容,每天分享一篇技术文章!
评论 (0)
  •   基于图像识别技术的数据库检索系统平台解析   北京华盛恒辉基于图像识别技术的数据库检索系统平台融合计算机视觉与数据库管理技术,实现智能化图像检索。以下从架构、功能、技术、应用及发展方向展开解析。   应用案例   目前,已有多个基于图像识别技术的数据库检索系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润基于图像识别技术的数据库检索系统。这些成功案例为基于图像识别技术的数据库检索系统的推广和应用提供了有力支持。   一、系统架构设计   数据采集层:收集各类图像数据,
    华盛恒辉l58ll334744 2025-04-26 16:02 172浏览
  • 一、智能家居的痛点与创新机遇随着城市化进程加速,现代家庭正面临两大核心挑战:情感陪伴缺失:超60%的双职工家庭存在“亲子陪伴真空期”,儿童独自居家场景增加;操作复杂度攀升:智能设备功能迭代导致用户学习成本陡增,超40%用户因操作困难放弃高阶功能。而WTR096-16S录音语音芯片方案,通过“语音交互+智能录音”双核驱动,不仅解决设备易用性问题,更构建起家庭成员间的全天候情感纽带。二、WTR096-16S方案的核心技术突破1. 高保真语音交互系统动态情绪语音库:支持8种语气模板(温柔提醒/紧急告警
    广州唯创电子 2025-04-28 09:24 108浏览
  • 探针台作为半导体制造与测试的核心设备,通过精密定位与多环境适配能力,支撑芯片研发、生产及验证全流程。以下是其关键应用领域与技术特性:一、核心功能支撑1.‌电性能测试与分析‌l 在晶圆切割前,探针台直接接触芯片电极,测量阈值电压、漏电流、跨导等200余项参数,用于评估良品率及优化工艺设计。l 支持单晶体管I-V曲线测量,定位栅极氧化层厚度偏差(精度达0.2nm),为器件性能分析提供数据基础。2.‌纳米级定位与测量‌l 定位精度达±0.1μm,满足5nm及以下制程芯片的
    锦正茂科技 2025-04-27 13:09 144浏览
  •   无人机部件仿真与模型验证平台系统解析   北京华盛恒辉无人机部件仿真与模型验证平台系统是无人机研发的核心工具,通过多元功能、创新架构和广泛应用,推动无人机技术发展。以下从核心功能、技术架构、应用场景、优势及发展趋势展开解析。   应用案例   目前,已有多个无人机部件仿真与模型验证平台在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润无人机部件仿真与模型验证平台。这些成功案例为无人机部件仿真与模型验证平台的推广和应用提供了有力支持。   一、核心功能   三维建模与可视化
    华盛恒辉l58ll334744 2025-04-26 16:39 242浏览
  • 速卖通,作为阿里巴巴集团旗下的跨境电商平台,于2010年横空出世,彼时正值全球电商市场蓬勃发展,互联网的普及让跨境购物的需求日益增长,速卖通顺势而为,迅速吸引了全球目光。它以“让天下没有难做的生意”为使命,致力于打破国界限制,搭建起中国商家与全球消费者之间的桥梁。在其发展的黄金时期,速卖通取得的成绩令人瞩目。在欧洲市场,速卖通一度成为第一大电商平台。根据第三方机构《欧洲跨境商务》的评选,速卖通凭借出色的服务和消费者口碑,在“欧洲十大跨境电商平台”中脱颖而出,力压来自美国的亚马逊和eBay等电商巨
    用户1742991715177 2025-04-26 20:23 162浏览
  • 在给别人审查PCB的时候,有时产生这样的感觉:说是一回事,但自己做又是另一回事了。也就是有时候对别人的标准就非常严格,而对自己就相对放宽些。不知道你是否会有这样的感觉呢?对于给别人审查PCB而言,这就是找茬,无论具细,都会一 一列出。这是工作应有的态度,也是对板子的负责,这不是故意为难别人。当然,可能也有点“饱汉不知饿汉饥”的意味。如果遇到执行力强的人,那这些审查意见,只会对最终的板子有好处,增强稳定性。如果遇到的是执行力差的人,但多少也会改变点,这也并不会造成坏的结果。那么对自己而言,当自己亲
    wuliangu 2025-04-26 15:26 223浏览
  • 探针台作为高精度测试设备,在光电行业的关键器件研发、性能测试及量产质量控制中发挥核心作用,主要涵盖以下应用场景与技术特性:一、光电元件性能测试1.‌光电器件基础参数测量‌l 用于LED、光电探测器、激光器等元件的电流-电压(I-V)特性、光功率、响应速度等参数测试,支撑光通信、显示技术的器件选型与性能优化。l 支持高频信号测试(如40GHz以上射频参数),满足高速光调制器、光子集成电路(PIC)的带宽与信号完整性验证需求。2.‌光响应特性分析‌l 通过电光转换效率测
    锦正茂科技 2025-04-27 13:19 115浏览
  • 晶振在使用过程中可能会受到污染,导致性能下降。可是污染物是怎么进入晶振内部的?如何检测晶振内部污染物?我可不可以使用超声波清洗?今天KOAN凯擎小妹将逐一解答。1. 污染物来源a. 制造过程:生产环境不洁净或封装密封不严,可能导致灰尘和杂质进入晶振。b. 使用环境:高湿度、温度变化、化学物质和机械应力可能导致污染物渗入。c. 储存不当:不良的储存环境和不合适的包装材料可能引发化学物质迁移。建议储存湿度维持相对湿度在30%至75%的范围内,有助于避免湿度对晶振的不利影响。避免雨淋或阳光直射。d.
    koan-xtal 2025-04-28 06:11 89浏览
  •   北京华盛恒辉电磁环境适应性测试系统是针对复杂电磁环境进行仿真、测试与评估的关键设备,以下从系统功能、技术架构、应用场景、核心优势、发展趋势五个维度展开全面解析:   应用案例   目前,已有多个电磁环境适应性测试系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润电磁环境适应性测试系统。这些成功案例为电磁环境适应性测试系统的推广和应用提供了有力支持。   一、系统功能   复杂电磁环境构建   全生命周期测试能力   实时监测与反馈   二、技术架构   模块化设
    华盛恒辉l58ll334744 2025-04-26 17:21 195浏览
  •     今天,纯电动汽车大跃进牵引着对汽车电气低压的需求,新需求是48V。车要更轻,料要堆满。车身电子系统(电子座舱)从分布改成集中(域控),电气上就是要把“比12V系统更多的能量,送到比12V系统数量更少的ECU去”,所以,电源必须提高电压,缩小线径。另一方面,用比传统12V,24V更高的电压,有利于让电感类元件(螺线管,电机)用更细的铜线,缩小体积去替代传统机械,扩大整车电气化的边界。在电缆、认证行业60V标准之下,48V是一个合理的电压。有关汽车电气低压,另见协议标准第
    电子知识打边炉 2025-04-27 16:24 165浏览
  •  集成电路封装测试是确保芯片性能与可靠性的核心环节,主要包括‌晶圆级测试(CP测试)‌和‌封装后测试(FT测试)‌两大阶段,流程如下:一、晶圆级测试(CP测试)1.‌测试目的‌:在晶圆切割前筛选出功能缺陷或性能不达标的晶粒(Die),避免后续封装环节的资源浪费,显著降低制造成本。2.‌核心设备与操作‌l ‌探针台(Prober)‌:通过高精度移动平台将探针与晶粒的Pad jing准接触,实现电气连接。l ‌ATE测试机‌:提供测试电源、信号输入及功能向量,接收晶粒反
    锦正茂科技 2025-04-27 13:37 168浏览
  • 在电子电路设计和调试中,晶振为电路提供稳定的时钟信号。我们可能会遇到晶振有电压,但不起振,从而导致整个电路无法正常工作的情况。今天凯擎小妹聊一下可能的原因和解决方案。1. 误区解析在硬件调试中,许多工程师在测量晶振时发现两端都有电压,例如1.6V,但没有明显的压差,第一反应可能是怀疑短路。晶振电路本质上是一个交流振荡电路。当晶振未起振时,两端会静止在一个中间电位,通常接近电源电压的一半。万用表测得的是稳定的直流电压,因此没有压差。这种情况一般是:晶振没起振,并不是短路。2. 如何判断真
    koan-xtal 2025-04-28 05:09 109浏览
  • 2025年全球人形机器人产业迎来爆发式增长,政策与资本双重推力下,谷歌旗下波士顿动力、比亚迪等跨国企业与本土龙头争相入局,产业基金与风险投资持续加码。仅2025年上半年,中国机器人领域就完成42笔战略融资,累计金额突破45亿元,沪深两市机器人指数年内涨幅达68%,印证了资本市场对智能终端革命的强烈预期。值得关注的是,国家发展改革委联合工信部发布《人形机器人创新发展行动计划》,明确将仿生感知系统、AI决策中枢等十大核心技术纳入"十四五"国家重大专项,并设立500亿元产业引导基金。技术突破方面,本土
    电子资讯报 2025-04-27 17:08 220浏览
我要评论
0
3
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦