真没想到(什麼的技术)啥样的技术,啥啥的技__成都万通汽车学校
成都万通汽车学校 学汽修咨询电话

真没想到(什麼的技术)啥样的技术,啥啥的技

2022-12-16 来源:成都万通汽车学校

新年首答!这个话题很有意思,正好详细解释一下。

1. 什么是自动代码生成技术?或者说什么是基于模型的设计?

在汽车行业,2010年之前,大多数控制软件,比如发动机控制软件,自动变速箱控制软件,车身控制软件等等,都是手写C代码的。欧洲汽车行业使用很多外包公司来进行这项重复性的脑力活动,甚至把很多写代码的活儿外包到印度降低成本。一个大型软件比如发动机控制软件,甚至需要超过上百个码农在像网吧一样的大办公室里手动撰写不同模块的代码,之后再进行拼装。

2010年之后到现在,在汽车行业手写C代码的情况已经非常少了,如下表所示来自Infineon的预测,到2020年手动C代码在整个汽车行业所占的比例会只剩下10%左右,就这个估计我觉得还是保守的,其实现在除了少数一些发展中的车企和微型公司,C代码已经很罕见了。

那么如果不用手写C代码,汽车控制软件编译前的代码怎么得到呢?就是通过自动代码生成技术,或者说基于模型的设计。如果你用过类似 Matlab 中的 Simulink 或者其他图形化的语言就会知道,在建模和仿真的过程中很少直接使用 C 代码。Simulink对比C代码,就好像 Windows 操作系统对比 DOS 操作系统一样,一个是图形化的控制,一个是基于命令行。Simulink 的图形和 C 代码之间是可以双向转换的,比如下图这段代码:

那么在这个背景下, Simulink 可以搭配专门的自动代码生成工具,比如Targetlink或者Matlab自己的Embedded Coder,软件设计者只需要编写图形化的 Simulink 代码,之后通过上面说到的两个工具之一自动生成对应的C代码,最后可以直接编译再刷写到具体的电子控制器上使用。

2. 这种技术有什么优点?

在使用自动代码生成技术前,汽车控制软件的主要一部分开发流程是下图这样的:

首先系统和功能设计工程师需要制定软件的功能和需求,并设计控制模型,系统和功能设计工程师可能完全不懂C代码。

之后功能设计工程师提供具体的需求和设计说明书给软件工程

师或者外包公司的码农。

码农将系统工程师的设计理念从模型转化为C代码,编译后刷写到电子控制器。

最后系统工程师或者测试工程师

再拿到刷写好的软件去测试自己设计的功能。

而使用了自动代码生成技术之后,软件开发流程就成了下面这样:

码农下岗了。

软件开发中,功能设计工程师不再需要浪费时间给码农解释自己的设计理念,也不需要等待码农输出C代码,只需要使用Targetlink,Embedded coder加上其他软件工具来自动生成和编译图形化的代码。

那么相对于上面的手动C代码,基于模型的设计有显而易见的巨大进步:

节约了闭环设计

中无数的时间和人力成本,那一房间上百个码农都可以节约下来了。

系统和功能设计工程师可以独立完成软件的输出,可以很容易避免因为技术文档描述不准确或者歧义而导致的从功能到代码的错误设计。

软件功能修改后可以快速自动生成代码而不需要经过复杂的流程由码农来做修改。

软件一致性不会像以前一样因为使用不同的码农而不同,代码也会由自动工具统一优化。

图形化的软件设计和Windows一样更易懂,类似Simulink中完整的诊断和查询显示功能也可以更容易对软件进行纠错,找到bugs。

基于模型的设计和自动代码生成技术对于包括汽车和航空航天在内的很多行业可以说是革命性的进步,也是目前汽车行业最多金和最热门的技术研发领域。

关于其他基于模型的软件设计以及设计流程、工具链的超多干货,请关注我两周后的 Live:

知乎 Live 入口
点击查看更多内容>>


短信获取学费

立刻查看课程学费,10秒内发至手机
  • 姓名:
  • 电话:
版权所有:成都万通汽车培训职业技能学校有限公司
蜀ICP 备1107724号