ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

650_AUTOSAR_EXP_VFB文档阅读7

2021-07-06 10:55:16  阅读:150  来源: 互联网

标签:RTE AUTOSAR 调用 端口 VFB ECU EXP 组件 运行


 

         VFB 是一种系统建模和通信概念,它允许将组件分布在 ECU 网络中。 组件和其他组件之间的交互可能性通过组件的端口及其相关接口来描述,这些接口定义了组件提供或需要的操作、数据元素、模式组或校准参数。 通过相同的通信机制,组件可以与标准化的 AUTOSAR 服务(在每个正确配置的 AUTOSAR ECU 上可用)或 ECU 特定的 IO 功能(在具有适当硬件和正确设备的特定 ECU 上可用)交互连接的。

然而,组件的实现需要访问额外的资源,主要是内存(组件的实现通常需要内存来维持其内部状态)和 CPU 能力(组件的实现包含必须根据特定时序安排执行或响应某些事件)。

由于这些调度问题与组件的通信需求密切相关,因此 RTE 必须同时提供这两个方面。 因此,RTE 必须为组件提供一个完整的环境,包括:组件的实现机制(例如在像“C”这样的编程语言中),可以实现如下功能:

为组件的 PPorts 中的数据元素提供值;

读取 / 使用组件 RPorts 中数据元素的值;

访问组件的校准参数;

为组件的 PPorts 中的操作提供实现;

通过组件的 RPorts 调用其他组件提供的操作等;

通过适当的机制调用组件的实现(例如“C”函数)以支持:

固定时间调度(例如:许多组件需要周期性运行);

与通信机制相关的事件(例如 某些组件可能希望在接收到来自其他组件的数据时得到通知); 这个,在我接触的协议栈中可能还是有一些体现的。

与物理事件相关的事件(即触发事件)。

组件实现可以通过适当的机制访问其他公共资源,例如特定于实例的内存;

由于 AUTOSAR ECU 通常是多线程环境,RTE 还必须提供所有公共同步机制,所有的这些组成:Runable。

         Runable的概念

         原子软件组件的“原子性”是指组件不能分成更小的组件,因此必须映射到单个 ECU 上。

例如,图 3.14 显示了特定 ECU 上映射的应用软件组件“SHCFrontLeft”的逻辑组件视图。 通过其端口,组件表达它需要从其他组件获取哪些信息并提供给其他组件。

然而,组件的实际实现由一组“可运行实体”(也更简单地称为Runable)组成。 “可运行实体”是可以由运行时环境启动的一系列指令(由组件提供)。

         上图显示了一个例子。 从逻辑上讲,组件类型“SeatHeatingControl”定义了六个端口,它希望通过这些端口与其他组件或服务进行交互。 另一方面,组件的实现包含两个Runable:“MainCyclic”和“Setting”。 该组件要求 RTE 循环(以特定速率)调用可运行的“MainCyclic”。

该组件要求每当另一个组件调用 PPort“设置”上的操作时调用第二个可运行的“设置”。 runnables 的实现将使用 RTE 提供的操作来实际通过组件的端口进行通信。 例如。 要访问通过 RPort“SeatSwitch”提供给组件的信息“PassengerDetected”,可运行的“Setting”将调用操作“Rte_Read_SeatSwitch_PassengerDetected()”。

一般来说,一个原子软件组件可以只提供一个可运行对象,也可以包含大量可运行对象。 一个 runnable 可以是一段非常简单的代码,它执行一个简单的算法或一个复杂的程序。

         “可运行实体”在task的上下文中运行。 任务为“可运行实体”提供公共资源,例如上下文和堆栈空间。 通常,操作系统调度程序有责任在运行时决定哪个task可以在 ECU 的 CPU(或多个 CPU)上运行。 调度程序可以使用许多标准策略(例如,基于优先级的抢占、循环、时间触发……)。

组件的实现和 RTE 的角色(或者应该直白一点成为作用)

总结一下,原子软件组件的实现主要包括三个方面:

  1. 使用的组件模型(使用端口和端口接口的概念) 将组件与 VFB 级别的其他组件挂钩 一个实现(“代码”);
  2. 组件的实现以“runnables”结构化,它们是可由 RTE 执行的代码片段。
  3. 软件组件描述,在这其中组件描述了 RTE 上的需求。 这些包括:
    1. 需要循环调用哪些可运行对象 
    2. 需要调用哪些可运行对象以响应与通信或其他来源相关的事件 
    3. 组件希望如何访问其端口中的信息或从其他调用它需要的操作的组件
    4. 组件需要的任何其他资源,例如:AUTOSAR 服务或本地内存。

在正确配置的 AUTOSAR ECU 中,RTE(与正确配置的基本软件配合)将满足组件的要求。 例如,RTE 将: 

  1. 确保在正确的时间调用可运行对象;
  2. 提供组件访问数据或调用操作所需的功能;
  3. 提供组件所需的所有其他资源

 

以上是今天小结的部分,本来以为今天需要看的东西会比较简单。其实,从目前的信息看的确是很简单。但是涉及到的条目还是很多的。一直以来,有点不清楚Runnable到底是一个啥概念,现在基本也清楚了。其实,从C的角度考虑,这种类似于task中被调度的一个函数,也可以是一段代码片段。至于RTE,后期需要努力的地方还有很多,毕竟这部分我是一点都没在工作中接触到过。

标签:RTE,AUTOSAR,调用,端口,VFB,ECU,EXP,组件,运行
来源: https://blog.51cto.com/greyzhang/2986941

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有