SOA中的软件架构设计及软硬件解耦方法论
对于下一代集中式电子电器架构而言,采用central+zonal 中央计算单元与区域控制器布局已经成为各主机厂或者tier1玩家的必争选项,关于中央计算单元的架构方式,有三种方式:分离SOC、硬件隔离、软件虚拟化。集中式中央计算单元将整合自动驾驶,智能座舱和车辆控制三大域的核心业务功能,标准化的区域控制器主要有三个职责:电力分配、数据服务、区域网关。因此,中央计算单元将会集成一个高吞吐量的以太网交换机。
随着整车集成化的程度越来越高,越来越多ECU的功能将会慢慢的被吸收到区域控制器当中。而平台化区域控制器则是采用相同的硬件设计、相同的IO接口看,可以更好的满足对于不同车型的扩展性要求。所以,区域控制还同时承担整车硬件抽象的重要职能。其两者之间都会采用高速以太网代替原始的Can通信进行相互连接。概括来讲,可拓展的电子架构就是要屏蔽车型之间的硬件差异。不管采用多少个区域控制器组成的通讯网络,其相互之间的通讯模式,都遵守同样的规则。同时区域控制器也承担其局域网内,ECU功能的抽象之责。
如上以中央计算平台为核心的集中式架构设置了统一的传感器及外设接口,能够支持芯片的升级,其最终目的就是要实现在车生命周期内的硬件可升级,从而延长汽车的智能化生命周期。而各区域控制器各自带有自己的操作系统中间件SOA Core Middleware,可以提供一个分布式计算和通信框架,对下屏蔽各类操作系统系统内核差异,对上提供统一的服务开发框架。涉及功能包括服务管理、网络管理、通信管理、升级、诊断、日志、状态等。
本文将重点重软硬件解耦的方向讲解如何对SOA进行软硬件部署。
01 SOA的软件架构设计原理
如下图表示了典型的SOA软件架构设计原理。这种以服务为目标的开发架构实际上是实现面向服务开发的SOA架构模型方案,让产品经理专注于服务的设计,而系统软件则深入到产品的开发过程中,这也是解决汽车软件危机的重大突破。整个SOA架构可以总结为由逻辑架构构建起的一个软硬解耦的系统和由服务架构完成的服务抽象与适配,最终建立了一个标准化的服务体系。
其整体逻辑架构设计过程可概括为:
电子电气架构:设计可拓展的架构(也叫计算与通信架构)需要满足分层设计、分层测试、分层验证要求,避免在开发阶段软件更迭的连锁反应和集成测试中问题集中爆发,使得发现问题更加迅速,软件版本更迭更加快速。
硬件计算平台:可扩展的硬件平台包括SOA基础服务管理和SOA硬件I/O控制管理,可兼容自动驾驶系统的多个传感器和外部设备,支持多异构芯片和硬件升级。
操作系统内核/服务中间件:作为文件调度和驱动的核心,操作系统在支撑软硬件解耦和软件在硬件上的部署方面可以实现最好的支配能力。
通信架构:通信架构的可扩展性可以很好的确保平台化车型开发中快速适配,车型之间的差异可以减少到最少,开发下阶段车型秩序进行通信扩展借鉴当前这代产品,不用再进行很多额外的开发工作,这样可以大大减少后期产品线维护的压力。
为了满足车辆控制实时性的要求,核心网将会采用如TSN等的可靠通讯技术。在区域控制器下的局域网内,传统的CAN、Lin等通讯方式将会继续存在。局域网内可以以传统的信号的方式进行通信,在核心的以太网骨干网络中,将会以服务的方式进行数据之间的交互,就需要如DDS等通信中间件。
服务层/应用层:标准化的服务层及可编排的应用层包含SOA系统功能管理、单元域功能管理、整车功能控制管理、云端服务管理几个重要部分。
02 SOA中的设备抽象技术
在详细分析以中央域控为核心的软件架构部署核心技术之前,需要详细说明一下相关联的几个重要概念。Autosar中的传感器/执行器设计模式描述了在整体架构环境中ECU如何处理在环的传感器/执行器。
BEG设备抽象位于RTE(是试运行环境之上),它是从连接到特定ECU的传感器和执行器中抽象出来的一组软件组件,他使用了传感器或执行器软件组件,是RTE之上唯一允许访问ECU抽象接口的组件。设备抽象提取传感器和执行器的原始信号,如像素点、点云、电压、PWM信号、数字信号/消息、频率,并为应用层软件提供物理接口(例如像素点、点云、压力、质量、温度等),实际说来,设备抽象完成了电压值、数字信号、点云等到物理值的转换。
设备抽象体现了应用层软件通过平台软件及底层驱动软件在其他不同硬件变体之间的可互换性。
表1平台软件与设备抽象关系(传感器)
抽象分层 |
作用 |
工作原理 |
工作明细 |
平台软件 |
输入原始采集值,输出电压值 解耦软件与硬件连接 |
提供物理特性原始接口 |
机械特性、电气特性、功能特性和规程特性。 |
电气设备驱动 |
输入电压值,输出过滤后电压值 确保传感器测量值可用性 |
运行电气设备驱动软件电气诊断(如检测对地、电池短路、开路等) |
去噪滤波器 传感器外部供电时的电压补偿 |
传感器设备驱动 |
输入电压值,输出传感器含值如像素、点云、温度值 解耦不同传感器差异项 |
执行传感器设备驱动程序; 控制传感器的物理行为; |
·从原始信号(电信号)到物理值的转换; ·零点和偏移适应 ·测量值的漂移检测 ·诊断检查 ·物理值检查 ·过滤功能(包括下采样) |
虚拟设备驱动 |
输入传感器含义值,输出补充后完整值,如亮度值 解耦传感器信号补偿端 |
传感器的虚拟设备驱动用软件程序其物理表示进行抽象 |
·信号质量评估 ·信号原始值替换(如传感器信号质量不足时) ·信号原始值补偿 ·信号原始值验证 ·功能测试诊断接口 |
表2 平台软件与设备抽象关系(执行器)
抽象分层 |
作用 |
工作原理 |
工作明细 |
平台软件 |
输入PWM,输出PWM值 解耦软件与硬件连接 |
提供物理特性原始接口 |
机械特性、电气特性、功能特性和规程特性。 |
电子设备驱动 |
输入电压值,输出过滤后电压值 确保执行器执行过程有效性 |
运行电气设备驱动软件电气诊断(如检测对地、电池短路、开路等) |
去噪滤波器 执行器外部供电时的电压补偿 |
执行器设备驱动 |
输入PWM,输出保护及相应的PWM值 解耦执行机械过程 解耦执行器能力保护 |
传感器设备驱动程序代表执行器的物理行为 |
·叠加输出值以克服驱动器的摩擦 ·输出执行信号值并保证执行有效 ·限制输出值以防止过度损坏 ·控制设定值(配合传感数据闭环) ·提供限制和能力信息的接口 |
虚拟设备驱动 |
输入执行器请求值输出PWM值,如阀门开度 解耦传执行器抖动、非线性化、执行超限等处理 |
虚拟设备执行程序抽象执行器的物理表现 |
·控制端物理请求值转换 ·非线性值转化为线性值 ·用于功能测试的诊断测试器接口 ·特殊模式处理 ·启动执行机构运行 ·通过覆盖设定值或滤波消除执行器阶段性抖动 ·协调执行器的安全激活 |
总结来讲,BEG设备抽象概念和设计可概括如下:
应用软件独立于连接到特定ECU的具体传感器和执行器;
不同传感器和执行器之间代码可复用;
不同的代码共享合作模式(软件共享),从而支持不同的商业模式;
将功能部署或重新分配到不同的ECU;该设计模式也被称为设备抽象;
设备抽象解决了S&A层Module向上暴露功能及服务接口,向下连接平台软件,目标是尽可能地暴露接口,实现软硬件解耦,避免因S&A变化导致地软件变更。
03 SOA中的设备抽象示例
这里我们列举一个实例说明在SOA架构中如何进行设备抽象。这种方式只需要了解传感器类别(如雷达、摄像头等)来定义输入的原始数据Rawdata,无需了解这些传感器的具体连接方式,对于顶层应用层则是只需要应用最终的传感数据。
以传感器的设备抽象为例,可以表示如下:
首先是在底层物理层MCAL通过访问uC端口的方式进行数据采集并提供原始数据,每隔一定周期(如10ms)检测一次,这里不需要了解器电器连接方式以及相应的数据含义。比如从底层激光雷达传感器采集到原始图像像素点数据,并输入给微控制器MCU/SOC。
其次,MCU/SOC从对应物理地址中按照一定周期取出对应的点云值,通过I/O设备给I/O硬件抽象模块,并通过I/O硬件抽象点检测所测数据测量点的一级电器连接路由,传感器基于路由信息和解读后的原始数据计算的电压值并进行滤波处理,该过程不需要了解所测数据的含义。
随后,将硬件抽象模块中的电压值按照8bit驱动进行分阶处理,并由传感器电子设备驱动调用生成基础原始值。该值通过传感器虚拟设备驱动Virtual Device Dri 行人、路标等。
最终,AP Autosar中的应用软件通过实时运行环境RTE对传感器感知目标级数据进行实时的读取,用于后续的应用软件的规划控制和决策控制。
从如上示例可看出,设备抽象具备如下优势,Sensor&Actuator的变化不会引起平台软件和应用软件的连带更改,总结起来大致有如下几种变换导致的软硬件解耦类型。
对于替换不同型号的感知传感器,ECU的选型不再受限制于ECU支持的信号分析模式的型号。如NTC和PTC型号的替换,只需要修改位于Device Driver中软件模块即可。
同一类型的传感器和执行器模块可共用某些相同的处理模块,比如对于侧视摄像头的处理模式,可以直接将对其中一个侧视摄像头的处理算法直接应用于其余三个,而只需要重新对该三个摄像头的相机参数进行标定即可,如果有部分摄像头需要更新换代为更高分辨率摄像头,对于底层驱动软件和平台软件来讲也是无需做很大变动的,至少I/O接口形式和数据输入模式都不用在动,只是在处理图像的算法模块需要重新进行调优,比如原来采用的低分辨率处理算法可能无法达到高分辨率处理模块对其实时性的要求,这时需要研究神经网络加速模型的优化方式,但是整体的算法架构模型是仍旧不变的。
04 总结
当前众多主机厂比较倡导的开发方式是进行平台化产品开发,而平台化讲求的就是软硬件解耦的核心思想,采用SOA架构模式则是便于形成产品线和平台线的分工,产品线负责具体车型项目,平台线,负责构建技术中台。新平台的开发,技术链路往往非常长且复杂,分层的架构设计和软硬件解耦的方式,可很好的便于进行分层测试与验证,减少集成测试的压力,问题发现的更充分,也能够提高版本发布的速度。
以上是SOA中的软件架构设计及软硬件解耦方法论的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

StableDiffusion3的论文终于来了!这个模型于两周前发布,采用了与Sora相同的DiT(DiffusionTransformer)架构,一经发布就引起了不小的轰动。与之前版本相比,StableDiffusion3生成的图质量有了显着提升,现在支持多主题提示,并且文字书写效果也得到了改善,不再出现乱码情况。 StabilityAI指出,StableDiffusion3是一个系列模型,其参数量从800M到8B不等。这一参数范围意味着该模型可以在许多便携设备上直接运行,从而显着降低了使用AI

轨迹预测在自动驾驶中承担着重要的角色,自动驾驶轨迹预测是指通过分析车辆行驶过程中的各种数据,预测车辆未来的行驶轨迹。作为自动驾驶的核心模块,轨迹预测的质量对于下游的规划控制至关重要。轨迹预测任务技术栈丰富,需要熟悉自动驾驶动/静态感知、高精地图、车道线、神经网络架构(CNN&GNN&Transformer)技能等,入门难度很大!很多粉丝期望能够尽快上手轨迹预测,少踩坑,今天就为大家盘点下轨迹预测常见的一些问题和入门学习方法!入门相关知识1.预习的论文有没有切入顺序?A:先看survey,p

这篇论文探讨了在自动驾驶中,从不同视角(如透视图和鸟瞰图)准确检测物体的问题,特别是如何有效地从透视图(PV)到鸟瞰图(BEV)空间转换特征,这一转换是通过视觉转换(VT)模块实施的。现有的方法大致分为两种策略:2D到3D和3D到2D转换。2D到3D的方法通过预测深度概率来提升密集的2D特征,但深度预测的固有不确定性,尤其是在远处区域,可能会引入不准确性。而3D到2D的方法通常使用3D查询来采样2D特征,并通过Transformer学习3D和2D特征之间对应关系的注意力权重,这增加了计算和部署的

SpringDataJPA基于JPA架构,通过映射、ORM和事务管理与数据库交互。其存储库提供CRUD操作,派生查询简化了数据库访问。此外,它使用延迟加载,仅在必要时检索数据,从而提高了性能。

论文地址:https://arxiv.org/abs/2307.09283代码地址:https://github.com/THU-MIG/RepViTRepViT在移动端ViT架构中表现出色,展现出显着的优势。接下来,我们将探讨本研究的贡献所在。文中提到,轻量级ViTs通常比轻量级CNNs在视觉任务上表现得更好,这主要归功于它们的多头自注意力模块(MSHA)可以让模型学习全局表示。然而,轻量级ViTs和轻量级CNNs之间的架构差异尚未得到充分研究。在这项研究中,作者们通过整合轻量级ViTs的有效

Go框架架构的学习曲线取决于对Go语言和后端开发的熟悉程度以及所选框架的复杂性:对Go语言的基础知识有较好的理解。具有后端开发经验会有所帮助。复杂性不同的框架导致学习曲线差异。

请留意,这个方块人正在紧锁眉头,思考着面前几位“不速之客”的身份。原来她陷入了危险境地,意识到这一点后,她迅速展开脑力搜索,寻找解决问题的策略。最终,她决定先逃离现场,然后尽快寻求帮助,并立即采取行动。与此同时,对面的人也在进行着与她相同的思考……在《我的世界》中出现了这样一个场景,所有的角色都由人工智能控制。他们每个人都有着独特的身份设定,比如之前提到的女孩就是一个年仅17岁但聪明勇敢的快递员。他们拥有记忆和思考能力,在这个以《我的世界》为背景的小镇中像人类一样生活。驱动他们的,是一款全新的、

23年9月国防科大、京东和北理工的论文“DeepModelFusion:ASurvey”。深度模型融合/合并是一种新兴技术,它将多个深度学习模型的参数或预测合并为一个模型。它结合了不同模型的能力来弥补单个模型的偏差和错误,以获得更好的性能。而大规模深度学习模型(例如LLM和基础模型)上的深度模型融合面临着一些挑战,包括高计算成本、高维参数空间、不同异构模型之间的干扰等。本文将现有的深度模型融合方法分为四类:(1)“模式连接”,通过一条损失减少的路径将权重空间中的解连接起来,以获得更好的模型融合初
