汽车底层软件和应用层软件的接口是怎么设计的呢?或者是怎么集成的呢? 现在汽车电控软件都开始分层开发了,一般OEM做上层的ASW开发,供应商负责BSW和硬件开发,我的疑问是,ASW和BSW的接口规范是怎么设计的呢?一般是哪方负责这个设计?行业里大家是怎么把ASW和BSW集成在一起的呢?因为两方用的变量名,函数名都不太一致,一直不明白这个中间层的开发方法和流程,希望大神指导下。 我们总说汽车软件不同于互联网软件,要区别对待,也有很多说法,比如: • 汽车软件的实时性要求更高 • 汽车软件的安全性要求更高 • 汽车软件与硬件耦合度更高 • 汽车软件所用编程语言不同 • 汽车软件操作系统不同 • 汽车软件的开发环境与工具链不同 …… 这些都没错,但又不怎么对。 一来是,在座舱、智驾、后台软件大举进入以及电子电气架构不断演化后,汽车软件的内涵已经有了比较大的扩展。 二来呢,这些都属于技术特性,技术差异点只能说明汽车的“软件”和互联网的“软件”,而非“汽车软件”与“互联网软件”。 我们希望能从整体的角度来看汽车软件,这就引出了今天的话题——集成,它也是汽车软件独特性的核心体现。 具体来看,集成可以分为以下 5 个层次: • 将软件单集成到一起 • 将软件集成到硬件上 • 将硬件集成到机械壳体上 • 将 ECU 集成到子系统中 • 将子系统集成到整车上
第一层:将软件单集成到一起 当我们讲软件集成时,软件自身的集成是其最典型和最狭义的含义。 简单说,软件集成就是将经过验证的软件单集成为完整软件,操作层面的表现为将不同的.c 或.h 文件以及一些 config 文件通过集 成工具集成构建成软件包。 当然,由于实际项目的复杂性,集成会作为整个软件项目管理链条的一个环节。 第一,开发工程师接受 ALM 工作流工具上的缺陷、变更或任务等的驱动,进行本地代码的修改,之后将代码 push 到代码仓库,把代 码备好。 第二,集成工程师也最好通过工作流工具接受集成任务,任务中要明确集成的分支策略、交付目的、时间计划、各单信息等,而后 基于这些输入要完成软件的构建。 第三,集成工程师自然也需要对自身工作质量做一个确认,所以要完成静态或动态集成测试,相关结果可能会包括编译器的警告信息、 代码扫描结果、资源消耗数据、堆栈分析内容、代码评审及冒烟测试情况等。 第四,集成工程师将包括可执行文件、测试报告、配置信息、问题清单、releasenotes 等一系列必要材料打包对外发布。 第二层:将软件集成到硬件上 当完整的软件包就绪后,我们需要将软件集成到硬件上,准确来说是将软件刷写到 MCU 等芯片里。 理论上讲,集成都是通过接口来完成的,软硬件集成也就是通过软硬件接口来进行,具体表现就是物理的芯片引脚和逻辑的传输数据的软件接口,具体方法如下: •常规的产线或打样室刷新的方式基本是通过芯片引脚直接烧录 • 如果硬件已经装在车上了,就可以通过 OBD 或 USB 口刷新 • 非现场则可以通过远程 OTA 刷新 另外,如果开发过程比较理想,这些接口应该在系统架构的部分进行过定义。 第三层:将硬件集成到机械壳体上 到这里,我们会得到一块有软件的电路板。 进一步地,还需要电路板与机械外壳、接插件、屏幕等的集成,只不过这步集成更多有着机械装配的意味,落在现实工作里就是打一 批样件了,结果就是形成我们所说的 ECU 或者控制模块。 由于汽车电子需要面临各类复杂严苛的驾驶环境,所以这部分仍然对软件功能的发挥有很大影响,很典型的例子是内部传感器对安装 环境有模态和尺寸要求。 第四层:将 ECU 集成到子系统中 ECU 至少需要和一套传感器及一套执行器一起构成一套具备特定功能的系统,我们姑且称之为子系统,比如,驱动系统、刹车系统、 转向系统、被动安全系统、照明系统、辅助驾驶系统等。 对于这个层级的集成,操作上就是通过线束连接 ECU、传感器、执行器这三者,并且将 ECU 固定在整车上。后两者通常来源于不同组 织,所以特定集成的意义就更明确。 至于集成效果,是需要通过在整车环境中完成布置确认、模态分析、传感信号校验、电子对手件联调、子系统功能确认、产线确认以 及 EMC、振动、冲击、水淋、盐雾、高低温等一系列的考验的。 对于软件来说,尤其要考虑对手件联调,越来越多的电子功能需要多模块协同,最常见的诊断、通信问题就是该环节频繁识别出来的。 另外,很多在子系统性能也是需要在整车环境下进行软件标定匹配的。 第五层:将子系统集成到整车上 传统汽车的各个子系统或者域通常是分离的,相互之间大体隔绝,所以涉及到的是装配,而非集成这个概念。 但是,电子电气架构在不断走向跨子系统、跨域、域融合、中央集中,现在车辆子系统之间的边界越来越模糊,越来越多的功能特性 需要聚焦在更整车、更终端才能得到验证与确认。 写在最后 整体来说,在汽车行业里做软件,要意识到,所有的代码其实都是最终服务于整车里的表现。 另外一点,汽车的多层次集成其实是有历史原因的,主要是来源于汽车零部件全球模块化分工及采购这种模式。 这种分工与标准化的好处不言自明,但也增加了很多集成点,集成点多了就会造成沟通协调复杂或者解决方案整合困难等弊端,而这 也是我们做汽车软件要充分考量的。 往长远看,我们现在从架构层面追求的中央化正在不断地减少集成点,同样也就会弱化集成的价值与必要性。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/18429.html