全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!
继续学习AUTOSAR的文档,看一下《AUTOSAR_TR_FrancaIntegration》。
1.3 动机
为了更详细地激发作为 AUTOSAR 和非 AUTOSAR 系统集成一部分的 Franca 集成的需求,我们将开发集成系统的总体用例草图,其中汽车应用组件 AutoComp 和信息娱乐应用组件 InfoComp 互操作(参见图 1.1,“GENIVI 和 AUTOSAR 应用组件的互操作”)。因此,前者是 AUTOSAR 系统的一部分,而后者是 GENIVI 系统的一部分。 集成系统可能包括例如 下面两个互操作。
• InfoComp 向 AutoComp 请求服务,例如,车辆状态信息。
• AutoComp 向 InfoComp 请求服务,例如,诊断信息。
小结:Franca架构还包含一个诊断的架构设计吗?
为简单起见,我们假设这两个组件运行在不同的 ECU 上,AUTOSAR ECU 和 GENIVI ECU,它们通过以太网连接。 假设此设置的原因是,对于 SOME/IP,已经有一个可以在 AUTOSAR 和 GENIVI 中实现的拟合协议。 其他系统配置,例如,通过慢速总线(如 SPI)或两个系统在同一处理器上运行的解决方案进行连接,将需要其他协议。 在所考虑的设置中,整个 AUTOSAR-GENIVI 集成的基本边条件可以表述如下。
• AutoComp 实现为AUTOSAR ECU 的AUTOSAR 软件组件,这意味着:
1. AutoComp 仅使用通过AUTOSAR 运行时环境(RTE,参见[4])的软件组件API 提供的AUTOSAR 通信服务进行通信。
2. AutoComp 有一个 AUTOSAR 软件组件说明(见 [5])。
3. AUTOSAR ECU 的RTE 和基础软件是根据AUTOSAR 过程生成和配置的(见[6])。
• InfoComp 实现为 GENIVI ECU 的 GENIVI 组件,这意味着:
1. InfoComp 仅使用 GENIVI 节点间通信中间件 (INC MW) 和传输协议 (INC TP) 通过通用 API 提供的服务进行通信(参见 [7])。
2. InfoComp 有它在 Franca IDL 中实现的接口的描述。
3. InfoComp 的实现仅依赖于从 Franca IDL 描述生成的公共 API 桩和代理。
根据这些条件,为了能够与 InfoComp 通信,AUTOSAR 组件 AutoComp 首先需要一个 RTE API 操作来在其端口之一调用所需的 InfoComp 方法 getDiagnosisInfo()。 其次,它需要一个以太网通信栈来实现信号路由到总线。 仅当 AutoComp 和 InfoComp 之间的通信链接作为连接器包含在 AUTOSAR 软件组件描述中时,才能正确生成 RTE API 和通信堆栈。只有在 AUTOSAR 软件组件描述中也有 InfoComp 的表示时,这才是可能的。 为了获得这一点,需要将 Franca 模型转换为 AUTOSAR 软件组件描述。
系统的 GENIVI 部分生成通用 API 也是如此:它需要它想要与之通信的 AUTOSAR 组件的有关信息,这些在 Franca IDL 中指定。 鉴于从 AUTOSAR 软件组件描述到 Franca 模型的转换,这也可以实现。
1.4 集成方法
[6] 中描述的 AUTOSAR 过程从使用 AUTOSAR 符号的系统描述开始。 这意味着用于描述应用程序组件及其连接、ECU 及其连接以及应用程序组件到 ECU 的映射的相应模板已被填充。
Franca 整合解决了这个起点之前的方法步骤。 当它开始时只提供不完整的描述 - 特别是在应用程序级别 - 因为尚未指定 AUTOSAR 和 GENIVI 应用程序组件的互连。 集成系统的描述只是 Franca 集成的目标。
Franca 集成的初始情况可以定义如下。
• 有相互连接的应用程序组件的AUTOSAR 软件组件描述。有些端口可能没有连接,有些端口可能没有或不完整的接口。它们代表提供给 GENIVI 部分的操作(提供未连接的端口)或 GENIVI 部分所需的操作(没有或不完整的所需端口接口)。
• Franca 模型包含一组接口和数据类型定义。
• 已知——但尚未正式表示——哪个AUTOSAR 组件应与哪个GENIVI 组件互操作,反之亦然。相互操作可能包括客户端服务器通信或发送方接收方通信。
从 AUTOSAR 的角度来看,这种情况下 Franca 集成的主要有条理的步骤是: 1. 通过 Franca 连接器表示关于互操作的知识。
2. 将 Franca-to-AUTOSAR 转换应用到 Franca 模型和 Franca Connector。结果是系统的完整集成应用程序级别的 AUTOSAR 软件组件描述,即完整的 VFB 视图。
GENIVI 的观点是类似的。 由于实例和连接未在 Franca IDL 中表示,因此 Franca 连接器与完整 Franca 模型的推导无关。 因此只有一步。
1. 将 AUTOSAR 到 Franca 的转换应用于 AUTOSAR 软件组件描述。
结果是系统完整、集成的应用程序级别的 Franca 模型。它由系统的全套接口、GENIVI 部分的接口和AUTOSAR 部分的接口组成。
如上所述,两个完整的集成应用层描述在语义上是一致的,但并不等同。 首先,这是因为 Franca 模型指定了类型,但没有指定实例或连接。 此外,Franca 接口只定义了组件提供的方法和属性,而不是它需要的方法和属性。 在图 1.2“Franca 模型和 AUTOSAR 软件组件描述的范围”中,描述了 Franca 模型和 AUTOSAR 软件组件描述所涉及的不同方面。 两者都指定了数据类型和接口。 组件实例和内部连接(即系统的 GENIVI 或 AUTOSAR 部分内的组件实例之间的连接)仅在 AUTOSAR 软件组件描述中指定。互连(即 AUTOSAR 和 GENIVI 组件实例之间的连接)显然既没有在 Franca 模型中也没有在 AUTOSAR 软件组件描述中指定。 Franca 连接器捕获了这种不对称性。 它提供了定义实现 Franca 接口以及 Franca 和 AUTOSAR 组件实例互连的组件实例的可能性。 这在第 2 章“Franca 连接器”中有详细定义。
图 1.2:Franca 模型和 AUTOSAR 软件组件描述的范围
因此,这两种翻译也有不同的结果。Franca-toAUTOSAR 转换从 Franca 模型和 Franca 连接器中获取信息,并构建一个 AUTOSAR 软件组件描述,其中包含 Franca 接口、组件实例和互连,分别作为端口接口、组件原型和连接器。AUTOSAR-to-Franca 转换仅考虑 AUTOSAR 软件组件描述的端口接口和数据类型,并将它们转换为 Franca IDL。 无论如何,实例和互连不能用 Franca IDL 表示。
小结:这个虽然是讲Franca的软件集成,但是实际上,只能够算是类似需求的一个缩影。我们的软件中可能存在大量的非AUTOSAR的旧软件,而这部分软件可能大部分还是以复杂驱动的方式去简化处理了。