stm32选型,汽车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总线应该成了标配,车上的电器状况可以轻而易举通过诊断仪以及行车电脑进行诊断,所谓的汽车电子维修变成了诊断工具的使用以及元件替换,越来越没有技术含量,变成单纯的体力劳动。
关于stm32嵌入os系统的问题?
128KB够用。
具体大小要看你的功能以及用什么OS。主要是界面图片占用很大。
我以前做的CODE是80KB,DATA 64KB 连视频都做下来了。。
2。
除了存储容量以外,stm32F103RC和STM32F103RD还比STM32F103RB还多了IIS接口和SDIO接口,其他一样。
3。
101、103、107区别可以看手册拉,主要的是101最多36MHZ,103是72MHz,还有103比101多了USB接口。还有象IIS,SDIO等接口也是103以后才有的。当然这些也不是全系列都有。还有定时器资源, AD/DA通道资源等,101都是最少的。
107高端的还加了以太网接口等。这些找个STM32的选型手册一看便知。
关于外部时钟晶振为什么选用8MHz?
外部时钟是各个芯片内部有都有一个时钟拓扑的,通过配置芯片内部的寄存器可以将外部时钟进行分频、倍频、差频等,从而得到芯片内部各个模块工作的时钟。
32.768KHZ的时钟晶振产生的振荡信号经过石英钟内部分频器进行15次分频后得到1HZ秒信号,即秒针每秒钟走一下,石英钟内部分频器只能进行15 次分频,要是换成别的频率的晶振,15次分频后就不是1HZ的秒信号,时钟就不准了。32.768K=32768=2的15次方,数据转换比较方便、精确。最新最兼容的单片机是哪一款?
现在常用的单片机还是以前那些型号的单片机,没出现什么功能很强大的新型单片机。不过要说最兼容的一款单片机,应该就是AVR系列的ATmega8515单片机了,该单片机的引脚排列与大家熟悉的AT89S51单片机完全一样,但是其内置资源及驱动能力却比AT89S51好很多。▲ DIP-40封装的ATmega8515单片机。
ATmega8515属于AVR系列单片机,其工作电压范围为4.5~5.5伏,带有后缀“L”的ATmega8515L的工作电压范围为2.7~5.5伏(AT89S51的工作电压范围为4.0~5.5伏),其IO口带负载能力与ATmega16一样强大。
ATmega8515内置可编程的8K Flash存储器,512字节的EEPROM,三通道的PWM及片内模拟比较器,35个IO口,并内置有阻容振荡器,而AT89S51的Flash为4K,IO口为32个,不含模拟比较器、阻容振荡器及PWM。▲ ATmega8515的引脚排列。
从上图可见,ATmega8515的引脚排列与AT89S51完全一样,其40脚为电源正端,20脚为GND端,18、19脚外接石英晶体。该单片机可以代替AT89S51单片机。
现在单片机发展到什么程度了?
我来,我个人用过51,STM32,瑞萨F13,NXP S12 RT1050等等很多品牌,包括不常见的赛普拉斯。
单片机已经发展到快要撼动嵌入式大系统方案的地步了。。。也就是基本上已经动摇了很多UI应用层的饭碗了。
我想介绍下单片机和嵌入式Linux区别。Linux就是像Ubuntu Android之类的操作系统层的开发,单片机就是裸机和RTOS的开发,平常我们想到的就是单片机界面开发low的一比。然而600MHZ主频带硬件图形解码的MCU内置VRAM图形显存做出来的界面效果绚丽,成本低廉,非常适合各类屏幕场景,比如汽车仪表。
600mhz单片机目前就是NXP RT1050已然量产,价格便宜到令人发指。开发板也很便宜,300-400块淘宝上就可以弄一个,发布至今约一年时间,目前基本学习资源生态都快齐了。非常值得入手,目前IC BUG还是蛮多的,勘误手册也一直在变动。但不影响学习。
STM32出了个H系列。说实在的,性价比太低了。虽然大家都是STM32粉丝。但是这种没得性价比的垃圾必须淘汰啊。。。


还没有评论,来说两句吧...