汽车ecu用哪个编程语言(汽车ecu编程在哪学)

 家电维修自学网   2024-04-27 02:44:15    7805 人阅读  0 条评论

汽车ecu用哪个编程语言

汽车ecu就是通常讲的汽车电脑。

汽车ecu编程语言目前90%都是c语言编写,其中部分汇编语言,还有部分c++语言也会在汽车ecu使用。

汽车ecu目前主要还只是16位单片机,因此资源有限,需要特定的驱动代码和配置。汽车电脑的维修,一般能做的也是重新刷写软件,刷写参数。真正的电路板损坏或者其他元器件坏了,只能重新更换新的ecu,然后刷写软件配置参数。

汽车电脑维修,没有手机电脑维修那么复杂,也没有太多技术含量。

但也许未来不久,汽车也会变成一个大的电脑。到那时候维修可能就会和手机电脑维修一样,市场广阔,收益很大的。

我曾经在都汽车电子厂家从事过几年的汽车电子的研发,软件和硬件都有涉及。

为国内的几家合资车的新上市的车辆研发遥控中控以及车身控制系统。

主要功能包括车灯控制(比如,大灯,位置灯,顶灯,转向灯的开关检测以及逻辑控制),门锁的检测以及控制(包括RF遥控控制以及开关的手动控制),还有雨刮控制,车速检测,20km自动上锁,CAN,LIN通信等功能。

这些基本上都不直接涉及人身安全,我们国内没有哪一个汽车电子厂家能涉及出涉及安全的控制系统,比如发动机控制系统,助力转向系统等,不能研发不出来,而是没办法保证可靠性。受囿于国内的研发机制以及急功近利的心态。

那些声称可以研发,是对顾客生命的不负责任。

这些安全件不是几个工程师随便鼓捣就能出来的,需要包括物料、研发、测试、生产等环节长期系统性科学化的验证。

对于没有CAN,LIN通信功能的遥控中控功能由于功能简单,运算量小,选用了8位,最高主频为8MHz的microchip的PIC系列处理器,如PIC16F1936,该系列处理器最大优点是抗干扰性能好,但是ROM,RAM资源非常有效,运算效率也非常低,一条指令周期需要4个时钟周期,不支持硬件乘法,做乘法操作可能需要耗时上百毫秒。

多数产品采用c语言编写程序,通过PICC编译器编译成机器码。

编译出来代码有的时候有些冗余,执行效率不能达到最优。

为了达到最优的执行效率,有时会在c语言中嵌套汇编代码。

比如遥控信号接收的程序,遥控信号采用3E码进行编码,接收程序需要以100us左右的周期在中断程序检测遥控信号输入,如果用c语言编写,大概100us可能要占用50us以上,还有不到一半的时间处理其他逻辑,而如果嵌套汇编进行处理,则仅需要30us语言。

遥控数据采用数据编号进行滚动加密,避免被人空中截获,破解或者重发攻击,而数据解密进行大量移位运算,非常耗时,因此也用汇编语言编写解密代码。

对于功能要求很强大一点,比如有LIN,CAN通信功能的控制器,我们选择ROM/RAM资源更丰富,运算速度更快,来自于freescale的8位处理器DZ96,以及16位处理器DZ128。

由于性能得到了提升,所有代码都用C语言开发,没有在嵌入汇编代码。

考虑到实时性自己可靠性的要求,所有控制器都没有基于freeRTOS,linux等操作系统开发。

这都是几年前的事情了,这几年电子技术飞速发展,32位cortex-Mx的单片机以极高的性价比横扫一切,以前大行其道的PIC系列处理器应该已经慢慢退出了历史舞台。

我想现在CAN,LIN总线应该成了标配,车上的电器状况可以轻而易举通过诊断仪以及行车电脑进行诊断,所谓的汽车电子维修变成了诊断工具的使用以及元件替换,越来越没有技术含量,变成单纯的体力劳动。

看情况,我设计过车用ECU,不过不是汽油发动机,只是柴油发动机或发电机。上位机软件C++自编,没用INCA,太贵了,为客户省钱。发动机ECU都是用单片机,发电机ECU用的是DSP(不好意思,用的是德州DSP,希望国产普及),都是C语言编程,前面有人说用C++或者汇编,我说你真他妈本事。车用ECU无非是模拟量,开关量测控都有,主要特点:

1、带了大容量控制脉谱图(MAP),一般MAP二维横纵起码16点以上(各模块不同),但是MAP里的数据必须做大量实验标定,这就需要实现快速通信及读写,或者先在大容量RAM里标定,最后好了一次性写到存储器里。

2、通信:我们将标定通信和平时监控通信分开的,标定通信数据量大,我们用485或K线,平时数据通信用CAN。

普通单缸:用STC单片机,很意外吧?很多人特别是三脚猫的些人很鄙视用STC的,就因为它国产?就因为它老板看上去像吹牛?单片机这玩意要选就选适合的,反正我们用下来蛮可靠的,没遇到什么莫名其妙的问题。唯一不好的是他们号称要出汽车级芯片,一直难产。

多缸机:freescale,飞思卡尔,汽车上广泛应用,编程没什么难度,也有协处理XGATE,自带CAN收发器,方便很多。

发电机:DSP28系列,其实是是发动机发电机一起集成控制,带液晶操作界面,关键要实时采集计算三相交流电电压电流功率频率各项参数(本来有专用芯片,没用),DSP难度比单片机稍难,但实际上很多模块都配有专门头文件跟c文件,因此很方便,现在市场上牛逼轰轰的STM32(我没用过,看别人编程,狗屎水平)我看就是学DSP。

至于汽车维修,ECU坏了,也没必要修的,检测比修还费钱,一般也不容易坏,坏也是外围模块容易坏,如果改装,一般不会去也没那个本事改ECU程序,只是涉及到数据重新标定,弄到标定软件即可。但改装无非是加大喷油量,改变提前角,更改一些模块的控制MAP,但这是有风险的,轻则环保不过关,重则损坏发动机。

不要学,工作环境脏乱差,没银子只能买一堆盗版设备,主要客户就是汽修厂,说白了就是接点修理厂干不好的疑难杂症,又限于当今4s技术垄断你很难获取一些技术服务器的账号,只能花钱到处求人才能在线编程设码,所谓的工程师软件培训也只能一知半解。不建议你学。

本文地址:http://www.cr-hg.com/qtjdwx/1654686703.html
版权声明:本文为原创文章,版权归 家电维修自学网作者 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?