基于EA的电子电气架构功能设计探讨

关注公众号,点击公众号主页右上角“ ··· ”,设置星标,实时关注智能汽车电子与软件最新资讯

来源:智能汽车设计 陈敏

【摘 要】 在软件定义汽车时代背景下,新一代的汽车电子电气架构(以下简称E/E 架构) 不断进化。物理拓扑上,控制器ECU 数量大幅减少,集中度提高,拓扑方式从分布式到域集中式,再到中央集成大脑逐步演进;功能开发思路上,从传统的以明确各ECU 之间交互为主体任务,实现功能为主线,切换到现在的以服务定义和ECU的软件接口设计为主体,穷尽硬件平台能力为主线,覆盖面更广,功能开发深度更深。传统的基于文档的功能设计方式,已不足以满足现阶段功能开发需求。本文结合项目实践案例,基于Enterprise Architect(以下简称:EA) 工具对SOA(Service Oriented Architecture,面向服务架构) 架构功能设计方法进行应用和探索。

随着汽车行业向智能化、 数字化和电动化发展, 现存大部分汽车的E/E架构由于ECU数量众多、 线束繁琐复杂、算力低和功能耦合度高等问题, 无法实现高级别自动驾驶和快速OTA (Over The Air, 空中下载技术) 升级, 从而无法满足人们对汽车的多样化需求。主要的挑战有高级别自动驾驶所要求的实时性和安全性高, 人工智能机器学习所需要的大数据量和高带宽需求, 还有满足未来多节点连接(比如车路协同、 云代驾等) 所带来的信息安全问题[1]。为更好地解决上述汽车行业挑战, E/E架构拓扑形式在不断演进, 新的通信方式和开发方法也从工业或IT领域引入, 给汽车行业提供了丰富的技术参考。
针对E/E架构功能开发方法, 其内容和开发思路也发生了变化。本文通过对比传统架构功能开发流程和SOA架构功能开发流程, 指出传统架构功能设计环节可能存在的不足, 结合具体项目实例, 提出一种基于EA的功能设计方法, 以满足架构功能开发过程中对功能设计的需求。
1 E/E架构功能开发介绍
1.1 E/E架构功能开发流程
参考AUTOSAR标准中关于方法论的文档描述, 围绕E/E架构功能开发主线, 可以将开发流程从上到下, 从虚到实, 分为4个层级的步骤:产品层、 虚拟功能层、 系统层、子系统层。
1) 产品层:主要定义整车层级的功能需求, 属于整车产品定义的范畴, 包含整车功能对标分析、 功能清单梳理、功能配置管理等。此部分内容不在本文讨论范畴。
2) 虚拟功能层:主要定义整车层级的功能交互关系,也就是本论文涉及的内容, 一般包含功能定义和功能实现设计两个部分。
3) 系统层:主要承接虚拟功能层的输出, 对功能实现涉及的逻辑模块进行分配, 定义ECU层级的交互关系, 包括ECU之间的连接拓扑关系、 功能交互时序、 ECU接口定义、 服务定义、 通信定义等。
4) 子系统层级:聚焦具体ECU, 对承接的功能逻辑模块进一步详细设计, 定义应用层软件架构, 软件组件SWC之间的接口交互、 服务接口设计、 SWC运行设计等。
E/E架构功能开发过程层级说明如图1所示。

图1 EE架构功能开发层级说明
图1中, 产品层级的整车功能分析主要任务为结合市场情况、 竞争对手分析、 公司战略、 终端用户需求和自身产品定位等信息, 对整车项目所需要实现的功能进行对标分析, 提炼出所需要实现的功能清单和配置信息, 输出给到E/E架构进行功能实现。
对于虚拟功能层的整车功能设计环节, 承接产品层级输出的功能清单, 对清单上的每一个功能进行定义, 拆分功能用例;功能实现层面, 对某一具体功能用例, 进行功能实现设计, 包括功能逻辑模块设计、 模块交互设计、 状态机等。
而系统层级和子系统层级设计, 则是依据上述功能设计环节的输出结果, 对其中的功能逻辑模块进行具体ECU或SWC的映射, 映射关系可以是一对一或多对一;对交互接口进行进一步详细细化, 区分ECU间或ECU内部接口,定义内外部接口的类型、 协议和数据类型。这一步做完后,即可提炼出对具体ECU的功能逻辑需求和接口需求, 用以指导Tier1的开发。
1.2 功能设计流程需求分析
由上述分析可知, 虚拟功能层所包含的功能设计位于产品分析和系统层设计之间, 是从整车层级过渡到ECU级的重要环节, 是功能实现过程中从虚到实的关键映射步骤,其需求一般包括以下内容。
1) 需要高效全面地转化需求。产品分析重在需求开发, 是以用户为中心, 服务于用户体验, 借用非工程化的语言描述其功能需求;系统设计重在工程实现, 考虑有限的成本和周期, 用工程化的方式导出Tier1的相应需求, 这就要求处于中间环节的功能设计过程具备简洁高效地将用户语言转化为工程语言的能力, 同时保证产品需求的实现完整性和可追溯性。
2) 功能设计广度和深度要求高。传统的E/E架构功能开发过程中, 功能设计到系统层即结束, 考虑不同ECU之间的交互设计即可;SOA理念下的E/E架构功能开发过程包括功能设计、 服务设计、 模块设计、 通信设计等[2]步骤, 功能设计需满足后续服务设计和模块设计的不同需求, 由于已经深入到子系统层级, 需要考虑的设计广度和深度大大提高。
3) 功能设计尽量做到可以复用。SOA理念的核心思想是追求解耦和复用, 以便达到快速应对需求变化, 快速迭代产品的目的。这种思想或理念理应贯穿整个架构开发流程。目前在基于SOA的E/E架构开发过程中, 系统层级和子系统层级的设计已经引入了面向服务的设计思想, 将每个服务设计为具体业务逻辑的封装, 具有明确定义的接口,并可被独立地实现[3], 每个服务都是独立的单元, 具备自洽和重用的特性;功能设计环节亦是需要考虑, 利用已有的成熟功能设计, 快速迭代, 快速转化日益变化的产品需求,进而提高整个开发流程的效率。

2 传统E/E架构功能开发流程分析

传统E/E架构功能开发以已有的固定的功能清单作为输入, 基于ECU控制器, 以功能实现为主线, 最终输出相应的DBC/LIN文件和具体的ECU开发需求给到Tier1供应商, 用以指导Tier1供应商开发。其大致流程可见图2。


图2 传统E/E架构功能开发流程示意
由图2可以看出, 传统E/E架构功能开发流程主要涉及虚拟功能层和系统层的设计, 输入为固有的功能清单, 结合具体的功能, 对功能进行定义和实现设计, 考虑故障处理、 功能安全和HMI需求等, 最终输出针对每个ECU的开发需求和接口文件 (如DBC/LIN文件)。以上过程, 大多借用Excel和Word等工具来描述和传递过程中产生的需求, 包括不限于功能需求规范、 系统规范和ECU开发需求等文件。
而随着基于SOA的理念引入, 传统功能开发流程已不足以满足SOA追求的灵活性、 可拓展性和可复用性, 主要表现在以下几方面。
1) 深度和广度不够。深度方面, 传统功能开发流程仅定义到系统层级, 明确ECU与ECU之间的交互接口和要求即可, 不满足需要深入到子系统层级的要求;广度方面,仅对现阶段定义的功能输入进行了功能设计, 未考虑未来产品迭代中可能出现的场景和需求。
2) 灵活性不够, 可复用性差。上述功能开发流程中,一般采用多级文档的形式来拆解功能, 不同级别文档或同级别文档之间存在耦合关系。往往一个功能点的更新会同时带来多份文档的维护, 并且不同级别文档的更新责任归属于不同部门或组织, 这样就极大地增加了应对需求变化时的维护成本和沟通成本, 进而影响快速迭代效率。另外,横向来说, 这些文档主要根据当前项目、 当前功能清单和当前ECU拓扑形式进行功能设计, 针对性较强, 无法做到跨项目跨平台使用, 可复用性较差。

3 基于EA的SOA架构功能设计


不同于传统E/E架构功能开发, SOA架构功能开发的目的是穷尽硬件能力, 尽可能暴露更多服务, 同时降低软件耦合度。本文结合项目实践, 提出一种面向SOA架构的功能开发流程, 见图3。


图3 SOA架构功能开发流程示意
对比图2和图3可知, SOA架构功能开发思路和目标发生了重大变化, 不再是以实现具体功能为主要目标, 而是构建面向服务的软硬件平台, 通过当前已有的功能实现分析和硬件能力分析, 提取出该平台所能暴露出的最大能力,同时应用层软件尽量解耦, 固化SWC之间的接口, 再结合SOME/IP的通信方式, 可以实现功能的快速迭代和升级。
对于虚拟功能层所包含的功能设计环节, 其实际内容也发生了较大改变。功能定义部分, 从用户体验角度, 将功能拆分为一个个独立的功能用例 (Use Case, 以下简称UC), 对每个UC进行属性分析, 定义其前置条件、 后置条件、 基本事件流、 可选事件流、 异常事件流等, 同时加上功能安全需求、 非功能需求、 HMI需求等内容。功能实现设计部分, 不再基于ECU进行实现分析, 而是定义实现某UC所需要的功能实体, 设计功能实体之间的交互时序关系, 同时结合活动图和状态机, 对功能的实现过程进一步验证, 以保证此环节输出的功能实体的必要性和整体性。这里的功能实体定义为一个虚拟的需求描述, 一般结构形式为过程+对象, 如提供车速, 是衔接功能与服务的重要概念。其创建原则一般包括高内聚, 低耦合, 具备完整单一责任。
下文结合项目实例对上述功能设计环节进行具体说明。

3.1 功能定义环节

本环节的主要任务是将用户需求转化为工程需求, 同时考虑功能安全、 性能要求等, 输出该功能所包含的UC集合, 一方面输入到功能UC库进行汇总, 以便后续新功能的定义进行复用;另一方面输入到下一环节, 进行后续的功能实现设计。
功能定义主要采用EA工具里的Use Case Diagram来进行功能UC的设计, EA是一款基于UML (Unified Modeling Language, 统一建模语言) 的可视化模型与设计工具, 提供了对软件系统的设计和构建、 业务流程建模和基于领域建模的支持。功能UC主要定义以下属性。
1) 描述:对本UC进行简单描述。
2) 前置条件:激活该UC所必须满足的前提条件。
3) 后置条件:描述UC执行后功能的状态。
4) 场景:是对UC激活期间一系列事件流的描述, 主要包含3种:①基本事件流——描述UC正常激活时的事件流;②可选事件流——描述与基本事件流不同的步骤, 但同样实现UC目标的事件流;③异常事件流——描述未能实现UC目标的异常事件流。图4为Use Case场景描述中不同事件流示意说明。

图4 Use Case场景描述中不同事件流示意说明
5) 需求描述:描述该UC涉及的需求, 包括功能安全需求、 非功能需求、 HMI需求等。
下面以FCW (Forward CollisionWarning, 前碰撞报警)功能为例, 说明功能定义的过程。
3.1.1 拆分UC
拆分UC是基于功能的使用场景分析, 将功能拆分为若干个用户可感知的、 独立的UC。按照此原则, 可将FCW功能拆分为以下7 个UC,如图5所示。

图5 FCW功能的UseCaseDiagram

3.1.2 定义UC
针对拆解的每个UC进行上文提到的属性定义, 包括描述、 前置条件、 后置条件、 场景和需求描述。下面以UC-02-006-07 activate FCW function 为例进行展示,图6中展示的是场景定义中涉及事件流的定义界面, 可以定义基本事件流、 可 选 事 件 流 (如有)、 异 常 事 件 流。另外, 在Requirements选项框中定义需求描述, 在Constraints选项框中定义前置条件和后置条件。

图6 UC属性定义界面示意

3.2 功能实现设计环节

上述功能定义环节结束后, 可以得到针对某个具体功能的UC集合。功能实现设计环节则承接每个UC, 对其实现环节所需要的功能实体进行分析。该过程一般分为以下3个步骤。
1) UC实现过程分析。此步骤主要针对每个独立的UC,进行粗略的实现过程分析。包括时间维度的工作流程、 仲裁环节和可能并发存在的行为描述, 并确定上述过程中涉及的信息。该步骤主要采用EA中的活动图来实现, 活动图是一种基于UML语言的动态行为图, 主要包括活动、 动作、仲裁节点、 分支与合并等元素。上述UC:UC-02-006-07 activateFCWfunction的活动图如图7所示。

图7 UC:activate FCW function活动图示意
2) UC实现时序设计。此步骤主要是对上述实现过程的详细展开, 将其中涉及到的信息、 流程和动作进行细化。首先明确该UC的触发或启动条件, 进而按照活动图定义的粗略时序, 分析实现每一步过程需要的功能实体, 创建新的或从功能实体库中选择已有的功能实体;其次, 根据实现过程, 定义功能实体之间的交互接口内容;最后根据时间顺序, 将整个过程表述完整, 同时考虑使用组合片段来定义特殊条件和并列过程。
该步骤主要采用EA中的时序图来实现, 时序图是一种基于UML语言的动态交互图, 它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作关系, 主要包含对象、 生命线、 消息、 组合片段等元素。本项目中, 对象即功能实体, 生命线即功能实体的参与时间线, 消息主要用到了同步消息和异步消息两种, 组合片段则采用Opt(选项)、 Alt (抉择) 和Par (并行) 来处理UC中可能存在的不同情况, 其中Opt表示一个可能发生或可能不发生的选项过程, Alt则类似于If-Else语句, 定义多个备选过程, Par表示并行发生过程。
图8为UC:activate FCW function所对应的时序图, 图中定义了7个功能实体, 定义了FCW功能激活时的实体间的信息交互关系, 采用Alt组合片段定义可能存在的两级激活报警。

图8 UC:activate FCW function时序图示意
3) 功能状态机设计。状态机是针对复杂功能存在多个稳定状态, 定义每个状态的进入动作、 执行动作和退出动作, 定义状态跳转条件和优先级明确各状态之间的切换关系, 达到说明该功能随着不同条件的变化改变状态的目的。本项目主要采用EA中的状态机图来定义FCW功能的状态机切换, 由于状态机在传统E/E架构功能开发中已得到广泛使用, 这里不做过多展开。

3.3 小结

通过以上4种形式的图形建模, 可以完成FCW功能从功能定义到功能实现的详细设计。将功能拆解为一个个独立的UC, 对每个UC进行独立的活动图和时序图设计, 导出实现该UC需要的功能实体和接口需求, 同时辅助以功能状态机, 对设计过程进行校验。一般来说, 一个功能对应多个UC和最多一个状态机图, 而一个UC对应一个时序图和一个活动图 (可选)。
4 总结
本文介绍了E/E架构功能开发流程, 提出SOA架构开发中功能设计环节的需求。通过对传统E/E架构功能开发中的功能设计环节分析, 指出存在的不足:不能满足开发的深度和广度, 同时灵活性和复用性差。基于项目经验提出一种基于EA的功能设计方法, 通过4个形式的图形建模, 深入到子系统层级, 为后续服务设计提供设计依据;同时设计2个库:UC库和功能实体库, 为之后的新功能设计提供复用基础。另外, 从使用工具角度来说, EA建模工具具备良好的可视化界面, 支持各类插件的二次开发和模型的Word形式导出, 结合后续环节的Word转Excel工具和Excel生成ARXML工具, 可以打通E/E架构开发全流程工具链。
参考文献:
[1] Philipp Obergfell,Stefan Kugele,Eric Sax. Model-Based Resource Analysis and Synthesis of Service-Oriented AutomotiveSoftware Architectures [C]//IEEE/ACM 22nd International Conference on Model Driven EngineeringLanguages and Systems(MODELS)2019.
[2] 华一丁,龚进峰,戎辉,等. 基于模型的智能汽车电子电气架构发展综述[J]. 汽车零部件,2019(2):63-66.
[3] 刘佳熙,施思明,徐振敏,等. 面向服务架构汽车软件开发方法和实践[J]. 中国集成电路,2021,1(16):83-84.
关注公众号,点击公众号主页右上角“ ··· ”,设置星标,实时关注智能汽车电子与软件最新资讯


智能汽车电子与软件 专注于汽车电子领域的信息交融平台,涵盖汽车电子行业资讯、市场动态、技术干货、知识见解、行业趋势等资讯深度覆盖。
评论
  • 随着AI大模型训练和推理对计算能力的需求呈指数级增长,AI数据中心的网络带宽需求大幅提升,推动了高速光模块的发展。光模块作为数据中心和高性能计算系统中的关键器件,主要用于提供高速和大容量的数据传输服务。 光模块提升带宽的方法有两种:1)提高每个通道的比特速率,如直接提升波特率,或者保持波特率不变,使用复杂的调制解调方式(如PAM4);2)增加通道数,如提升并行光纤数量,或采用波分复用(CWDM、LWDM)。按照传输模式,光模块可分为并行和波分两种类型,其中并行方案主要应用在中短距传输场景中成本
    hycsystembella 2025-01-25 17:24 475浏览
  • 高速先生成员--黄刚这不马上就要过年了嘛,高速先生就不打算给大家上难度了,整一篇简单但很实用的文章给大伙瞧瞧好了。相信这个标题一出来,尤其对于PCB设计工程师来说,心就立马凉了半截。他们辛辛苦苦进行PCB的过孔设计,高速先生居然说设计多大的过孔他们不关心!另外估计这时候就跳出很多“挑刺”的粉丝了哈,因为翻看很多以往的文章,高速先生都表达了过孔孔径对高速性能的影响是很大的哦!咋滴,今天居然说孔径不关心了?别,别急哈,听高速先生在这篇文章中娓娓道来。首先还是要对各位设计工程师的设计表示肯定,毕竟像我
    一博科技 2025-01-21 16:17 241浏览
  • 故障现象 一辆2007款日产天籁车,搭载VQ23发动机(气缸编号如图1所示,点火顺序为1-2-3-4-5-6),累计行驶里程约为21万km。车主反映,该车起步加速时偶尔抖动,且行驶中加速无力。 图1 VQ23发动机的气缸编号 故障诊断接车后试车,发动机怠速运转平稳,但只要换挡起步,稍微踩下一点加速踏板,就能感觉到车身明显抖动。用故障检测仪检测,发动机控制模块(ECM)无故障代码存储,且无失火数据流。用虹科Pico汽车示波器测量气缸1点火信号(COP点火信号)和曲轴位置传感器信
    虹科Pico汽车示波器 2025-01-23 10:46 324浏览
  • 飞凌嵌入式基于瑞芯微RK3562系列处理器打造的FET3562J-C全国产核心板,是一款专为工业自动化及消费类电子设备设计的产品,凭借其强大的功能和灵活性,自上市以来得到了各行业客户的广泛关注。本文将详细介绍如何启动并测试RK3562J处理器的MCU,通过实际操作步骤,帮助各位工程师朋友更好地了解这款芯片。1、RK3562J处理器概述RK3562J处理器采用了4*Cortex-A53@1.8GHz+Cortex-M0@200MHz架构。其中,4个Cortex-A53核心作为主要核心,负责处理复杂
    飞凌嵌入式 2025-01-24 11:21 295浏览
  • 不让汽车专美于前,近年来哈雷(Harley-Davidson)和本田(Honda)等大型重型机车大厂的旗下车款皆已陆续配备车载娱乐系统与语音助理,在路上也有越来越多的普通机车车主开始使用安全帽麦克风,在骑车时透过蓝牙连线执行语音搜寻地点导航、音乐播放控制或免持拨打接听电话等各种「机车语音助理」功能。客户背景与面临的挑战以本次分享的客户个案为例,该客户是一个跨国车用语音软件供货商,过往是与车厂合作开发前装车机为主,且有着多年的「汽车语音助理」产品经验。由于客户这次是首度跨足「机车语音助理」产品,因
    百佳泰测试实验室 2025-01-24 17:00 197浏览
  •     IPC-2581是基于ODB++标准、结合PCB行业特点而指定的PCB加工文件规范。    IPC-2581旨在替代CAM350格式,成为PCB加工行业的新的工业规范。    有一些免费软件,可以查看(不可修改)IPC-2581数据文件。这些软件典型用途是工艺校核。    1. Vu2581        出品:Downstream     
    电子知识打边炉 2025-01-22 11:12 465浏览
  • 书接上回:【2022年终总结】阳光总在风雨后,启航2023-面包板社区  https://mbb.eet-china.com/blog/468701-438244.html 总结2019,松山湖有个欧洲小镇-面包板社区  https://mbb.eet-china.com/blog/468701-413397.html        2025年该是总结下2024年的喜怒哀乐,有个好的开始,才能更好的面对2025年即将
    liweicheng 2025-01-24 23:18 351浏览
  • 前篇文章中『服务器散热效能不佳有解吗?』提到气冷式的服务器其散热效能对于系统稳定度是非常重要的关键因素,同时也说明了百佳泰对于散热效能能提供的协助与服务。本篇将为您延伸说明我们如何进行评估,同时也会举例在测试过程中发现的问题及改善后的数据。AI服务器的散热架构三大重点:GPU导风罩:尝试不同的GPU导风罩架构,用以集中服务器进风量,加强对GPU的降温效果。GPU托盘:改动GPU托盘架构,验证出风面积大小对GPU散热的影想程度。CPU导风罩:尝试封闭CPU导风罩间隙,集中风流,验证CPU降温效果。
    百佳泰测试实验室 2025-01-24 16:58 192浏览
  • 临近春节,各方社交及应酬也变得多起来了,甚至一月份就排满了各式约见。有的是关系好的专业朋友的周末“恳谈会”,基本是关于2025年经济预判的话题,以及如何稳定工作等话题;但更多的预约是来自几个客户老板及副总裁们的见面,他们为今年的经济预判与企业发展焦虑而来。在聊天过程中,我发现今年的聊天有个很有意思的“点”,挺多人尤其关心我到底是怎么成长成现在的多领域风格的,还能掌握一些经济趋势的分析能力,到底学过哪些专业、在企业管过哪些具体事情?单单就这个一个月内,我就重复了数次“为什么”,再辅以我上次写的:《
    牛言喵语 2025-01-22 17:10 496浏览
  • 项目展示①正面、反面②左侧、右侧项目源码:https://mbb.eet-china.com/download/316656.html前言为什么想到要做这个小玩意呢,作为一个死宅,懒得看手机,但又想要抬头就能看见时间和天气信息,于是就做个这么个小东西,放在示波器上面正好(示波器外壳有个小槽,刚好可以卡住)功能主要有,获取国家气象局的天气信息,还有实时的温湿度,主控采用ESP32,所以后续还可以开放更多奇奇怪怪的功能,比如油价信息、股票信息之类的,反正能联网可操作性就大多了原理图、PCB、面板设计
    小恶魔owo 2025-01-25 22:09 622浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦