• 0
  • 0
分享

  我们总说汽车软件不同于互联网软件,要区别对待,也有很多说法,比如:

  ·汽车软件的实时性要求更高

  · 汽车软件的安全性要求更高

  · 汽车软件与硬件耦合度更高

  · 汽车软件所用编程语言不同

  · 汽车软件操作系统不同

  · 汽车软件的开发环境与工具链不同

  ......

  这些都没错,但又不怎么对。

  一来是,在座舱、智驾、后台软件大举进入以及电子电气架构不断演化后,汽车软件的内涵已经有了比较大的扩展。

  二来呢,这些都属于技术特性,技术差异点只能说明汽车的“软件”和互联网的“软件”,而非“汽车软件”与“互联网软件”。

  我们希望能从整体的角度来看汽车软件,这就引出了今天的话题——集成,它也是汽车软件独特性的核心体现。

  具体来看,集成可以分为以下5个层次:

  1. 将软件单元集成到一起

  2. 将软件集成到硬件上

  3. 将硬件集成到机械壳体上

  4. 将ECU集成到子系统中

  5. 将子系统集成到整车上

1.png

  第一层:将软件单元集成到一起

  当我们讲软件集成时,软件自身的集成是其最典型和最狭义的含义。

  简单说,软件集成就是将经过验证的软件单元集成为完整软件,操作层面的表现为将不同的.c或.h文件以及一些config文件通过集成工具集成构建成软件包。

  当然,由于实际项目的复杂性,集成会作为整个软件项目管理链条的一个环节。

  第一,开发工程师接受ALM工作流工具上的缺陷、变更或任务等的驱动,进行本地代码的修改,之后将代码push到代码仓库,把代码备好。

  第二,集成工程师也最好通过工作流工具接受集成任务,任务中要明确集成的分支策略、交付目的、时间计划、各单元信息等,而后基于这些输入要完成软件的构建。

  第三,集成工程师自然也需要对自身工作质量做一个确认,所以要完成静态或动态集成测试,相关结果可能会包括编译器的警告信息、代码扫描结果、资源消耗数据、堆栈分析内容、代码评审及冒烟测试情况等。

  第四,集成工程师将包括可执行文件、测试报告、配置信息、问题清单、releasenotes 等一系列必要材料打包对外发布。

  第二层:将软件集成到硬件上

  当完整的软件包就绪后,我们需要将软件集成到硬件上,准确来说是将软件刷写到MCU等芯片里。

  理论上讲,集成都是通过接口来完成的,软硬件集成也就是通过软硬件接口来进行,具体表现就是物理的芯片引脚和逻辑的传输数据的软件接口,具体方法如下:

  常规的产线或打样室刷新的方式基本是通过芯片引脚直接烧录

  如果硬件已经装在车上了,就可以通过OBD或USB口刷新

  非现场则可以通过远程OTA刷新

  另外,如果开发过程比较理想,这些接口应该在系统架构的部分进行过定义。

  第三层:将硬件集成到机械壳体上

  到这里,我们会得到一块有软件的电路板。

  进一步地,还需要电路板与机械外壳、接插件、屏幕等的集成,只不过这步集成更多有着机械装配的意味,落在现实工作里就是打一批样件了,结果就是形成我们所说的ECU或者控制模块。

  由于汽车电子需要面临各类复杂严苛的驾驶环境,所以这部分仍然对软件功能的发挥有很大影响,很典型的例子是内部传感器对安装环境有模态和尺寸要求。

  第四层:将ECU集成到子系统中

  ECU至少需要和一套传感器及一套执行器一起构成一套具备特定功能的系统,我们姑且称之为子系统,比如,驱动系统、刹车系统、转向系统、被动安全系统、照明系统、辅助驾驶系统等。

  对于这个层级的集成,操作上就是通过线束连接ECU、传感器、执行器这三者,并且将ECU固定在整车上。后两者通常来源于不同组织,所以特定集成的意义就更明确。

  至于集成效果,是需要通过在整车环境中完成布置确认、模态分析、传感信号校验、电子对手件联调、子系统功能确认、产线确认以及EMC、振动、冲击、水淋、盐雾、高低温等一系列的考验的。

  对于软件来说,尤其要考虑对手件联调,越来越多的电子功能需要多模块协同,最常见的诊断、通信问题就是该环节频繁识别出来的。

  另外,很多在子系统性能也是需要在整车环境下进行软件标定匹配的。

  第五层:将子系统集成到整车上

  传统汽车的各个子系统或者域通常是分离的,相互之间大体隔绝,所以涉及到的是装配,而非集成这个概念。

  但是,电子电气架构在不断走向跨子系统、跨域、域融合、中央集中,现在车辆子系统之间的边界越来越模糊,越来越多的功能特性需要聚焦在更整车、更终端才能得到验证与确认。

  写在最后

  整体来说,在汽车行业里做软件,要意识到,所有的代码其实都是最终服务于整车里的表现。

  另外一点,汽车的多层次集成其实是有历史原因的,主要是来源于汽车零部件全球模块化分工及采购这种模式。

  这种分工与标准化的好处不言自明,但也增加了很多集成点,集成点多了就会造成沟通协调复杂或者解决方案整合困难等弊端,而这也是我们做汽车软件要充分考量的。

  往长远看,我们现在从架构层面追求的中央化正在不断地减少集成点,同样也就会弱化集成的价值与必要性。


作者:佚名    

来源:http://www.51testing.com/html/07/n-7798207.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   当地时间 6 月 11 日,埃隆?马斯克在加州法院撤回了针对 OpenAI 以及该公司两位联合创始人萨姆?阿尔特曼 (Sam Altman) 和格雷格?布罗克曼 (Greg Brockman) 的诉讼。此前他指控该公司违反合同,并声称其放弃了造福人类的初衷。据 CNBC 报道,该案已无条件撤销。  马斯克撤诉的决定距离法官原定审理 OpenAI 驳回诉讼请求的听证会仅有一天。此前一天,马斯克还公开批评了 OpenAI 及其与苹果的新合作关系,称如果苹果公司将 OpenAI 的技术集成到 iPhone 和 Mac 的“操作系统层面”,他将禁止其公司使用苹果设备,并做出了其他一些威胁。  他的...
            0 0 499
            分享
          •   在江湖行走,尤其混迹于职场这片广阔天地时,总会有那么几句话飘荡在耳畔,如同魔咒般挥之不去,直戳心窝子。就像是下面这些金句,不论是在和学生们扯皮,还是在IT圈子里闲聊,甚至在饭桌上跟朋友们推杯换盏之间,它们都会时不时地冒出来刷一波存在感:  “哎呀,那家伙一天天划水摸鱼,正事没见干多少,结果一打听,人家工资竟然比我这个累死累活的老黄牛还高!”  “我们部门新来的毕业生愣头青一枚,啥都不会,全靠我手把手教,可笑的是他领的薪水几乎和我不相上下,这也忒不公平了吧!”  “我就纳闷了,我这儿拼死拼活干,职位比她还高,结果人家凭一张嘴皮子就把工资和绩效拿得比我漂亮多了,真让人憋屈得不行!”  乍一听,...
            0 0 387
            分享
          • 在转型成功之前,我们要先自学两个工具商业web自动化测试工具请自学QTP;QTP的学习可以跳过,我是跳过了的。开源web自动化测试工具请自学Selenium;我当年是先学watir(耗时1周),再学selenium(也耗时1周)。这里主要讲一些能让读者和普通小菜鸟区别开来的东西,这些请和上面的两个工具穿插地学:基础:浏览器前端相关的简单技术基础:就是那些什么html、xml、css、javascript、等等,详见w3c教程网站http://www.w3schools.com/;学习使用一个单元测试框架或者叫做测试执行器,建议testNG,学完testNG,你应该具备了3小时学会任何一个测试执...
            0 0 1309
            分享
          •   有很多小伙伴想转行进入测试行业,但是又不知道从何入手,就导致空有豪情壮志但是并没有付诸行动。那么我们到底应该从何入手呢?  首先我们应该先去了解一下,测试都分为哪几种?比如说黑盒测试、白盒测试、功能测试、性能测试、自动化测试、安全性测试、兼容性测试等等。  这里面最基础的应该就是功能测试的黑盒测试。  什么是黑盒测试呢,顾名思义就是我们只管输入和输出,至于实现方式是什么我们不关心。  那么什么是功能测试呢?功能测试就是对产品的各项功能进行验证是否符合需求。  那么我们验证是否符合要求的标准又是什么呢?  一个就是UI设计图及需求说明书,一个就是实际用户的需求。  先来说一下UI设计图和需求...
            12 13 1957
            分享
          • 51Testing软件测试圈的小伙伴们,九月开学季开始啦!为了给测试人员更多测试技能的提升,51Testing软件测试圈为大家准备了资深测试专家文章合辑~资深测试专家的精品文章内容包含:1、初级向中级测试工程师进阶2、入门测试行业的必备条件3、自动化框架构建4、测试经验分享5、python服务端小案例6、Python3编写接口自动化框架7、现有测试质量模型优化8、HTML基础9、浏览器兼容性策略本次活动资深测试专家及主题分享:蚂蚁金服开发工程师-任建勇曾供职于多家互联网公司及(比如支付宝)大型外企,多年安全测试以及测试管理工作经验,曾担任开发工程师、自动化测试 工程师、安全测试工程师...
            7 3 11713
            分享
      • 51testing软件测试圈微信