中国汽车工程师之家--聚集了汽车行业80%专业人士 

论坛口号:知无不言,言无不尽!QQ:542334618 

本站手机访问:直接在浏览器中输入本站域名即可 

  • 182查看
  • 0回复

ECU应用层软件开发前景如何?

[复制链接]

该用户从未签到

发表于 20-1-2024 11:13:05 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


如果你想往技术方向发展,应用层软件是个不错的选择,但要注意选对选好产品的方向,比如智驾域,底盘域和动力域等。


对于刚毕业的朋友,选择应用层软件开发岗位的话,通常会比其他技术岗位薪资高点,如果产品方向热门的话,发展潜力非常大。反正不管什么产品方向,从事应用层软件开发要注重几点:
1.针对产品  

要注重产品的功能和应用,也要注重产品特性和性能。

    产品功能与应用,首先要掌握产品的功能控制与实现,最好搞透彻产品的基本组成和控制原理,就拿iBooster+ESP来说,从实物出发,搞清楚机械部件都有什么,怎么连接,传感器有哪些等。

ECU应用层软件开发前景如何?w1.jpg

结合原理图,了解各个功能都是怎么控制相应的执行器来实现。   

ECU应用层软件开发前景如何?w2.jpg

这些都是最基本的,个人一向比较注重,很明显地受益点就是很容易称为团队的补锅匠,哪个模块都不陌生,哪个模块都可以去接手。还有一点非常非常重要的,注重产品的应用场景或应用工况,这意味着要多去上车或台架调试,实践出真知,切记不要一开始就盯着代码或者模型看,注重上车实践,尤其是与车辆运动控制相关的产品,很多控制策略都是经过一代又一代工程师上车调试的积累,当然能够上车调试也是应用层软件工程师的日常工作乐趣点之一。个人经历了偏理论的学术思维到偏应用的工程思维的转换过程,反正当你看的糊里糊涂时,先测再看,多试多调!

    产品特性和性能,这块在做应用层软件开发投入的精力有限,没有太深的体会,还有就是当时软件非常成熟,客户的需求都能达到,没出现过性能不达标的案例,有点遗憾,但是再做软件技术管理时就碰到了客户提的性能需求,这时就发现这方面的积累匮乏。当然这块首先得看机械或硬件的能力,再靠软件的发挥,所以做应用层软件也需要特别注意积累,拉开水平差异的点。
所以在产品方面,如何做应用层软件开发,可以回顾之前分享的一个图:  
ECU应用层软件开发前景如何?w3.jpg

2. 针对研发基础,包括工具链和开发流程。


    对于工具链,很多工程师不太愿意花很多精力,如果我多花点精力到Simulink,可能我现在在Mathoworks卖工具了,但是没关系,况且每家公司的工具链可能都会有所差异,满足工作需要就行,个人有兴趣深究那是最好。

ECU应用层软件开发前景如何?w4.jpg

source:https://www.embitel.com/blog/embedded-blog/transition-from-code-based-development-to-model-based-development工具链有个非常重要的点,就是与软件开发流程结合起来,能够让V流程各个阶段高效地落地。

    对于开发流程,现在通常都有ASPICE, 功能安全和信息安全等方面的要求,本质上以V流程为基础,左边需求,架构和设计,右边UT, IT和QT,要求不同投入有差异。而对于每个阶段,一句话概括就是:什么时候(When)谁(Who)通过哪些活动必须交付怎样(How)的东西(What)。

ECU应用层软件开发前景如何?w5.jpg

个人比较注重开发流程,做过的事情需要闭环。当然也要注重开发流程的灵活性,因环境而异,因时而异。3. 针对软件本身功能  

如果有机会接触到底层软件和控制器硬件,有余力可以更全面地了解下列与应用层相关的软件功能。

    任务调度   

ECU应用层软件开发前景如何?w6.jpg

    CAN通讯和故障诊断,这块不展开说,可以参考我分享的系列文章。

    存储,这里想说的是自学习或自适应功能,会涉及到下电写入NVM,上电从NVM读取。

    传感器信号,包括模拟信号类型,数字信号类型,PWM信号类型等,下图示意了模拟类型的压力传感器信号如何从原始电压信号被采集,然后经过底层软件处理,最后传到应用层软件被处理。

ECU应用层软件开发前景如何?w7.jpg

以上就从产品,研发基础和软件功能三个角度介绍了下怎么做应用层软件开发,如果这几个方面都有所经验,可能后续发展就不仅仅局限于应用层软件开发,还可以做功能,或系统,或软件(ASW和BSW)开发,或技术项目管理,或功能安全等方面的工作,个人觉得应用层软件开发起到一个非常好的桥梁作用,承上-系统功能,启下-底层软件。

最后对于应用层软件通常有两种开发方式,一种是基于模型的设计-MBD,具体工具链可参考:扫盲系列 -- 3 汽车控制器软件开发的常用工具1 - 知乎 (zhihu.com)。另一种是手写代码,可能是用C或者C++(ADAS),取决于具体的产品。

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 28-4-2024 12:20 , Processed in 0.360274 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.