汽车电控底层及应用层软件开发 详细介绍
电控知识搬运工 2023-03-20

一、底层软件开发介绍


1 底层软件主要内容


底层软件开发内容有:一方面是设备驱动的实现,基于主芯片有:底层驱动PORTS,ADC,PWM,SPI,CAN,SENT等,基于外围芯片的复杂驱动。

另一方面基础功能的开发,bootloader开发,操作系统RTOS,存储管理,故障诊断,通讯和网络安全等功能。


2 底层软件开发基础

对于上述的底层软件开发内容,若要深入的话,一是要能看懂芯片手册,熟悉所使用芯片提供的资源 ,包括多核定义,内存分配情况(包括RAM和ROM/FLASH/EEPROM),ADC模块,GTM模块和通讯模块等等;二是要掌握常用的标准与协议,包括OSEK标准(操作系统相关),14229协议和15765协议(诊断,刷写相关),XCP协议(标定相关)和 11989协议(CAN通讯相关)等;三是要掌握C语言编程,ECU底层软件使用该语言进行开发。

3 底层软件开发工具

底层软件开发最常用的工具有劳特巴赫TRACE32和Vector三件套(Canlyzer, CANape,CANoe)。其中,劳特巴赫调试工具提供了嵌入式开发全生命周期的支持, 覆盖了Pre-Silicon,芯片Bring-Up, Bootloader、 Firmware的开发,OS和App的调试,以及后续的软件测试等过程。

举一个简单应用,比如开发者使用劳特巴赫实时跟踪代码的运行状态,观察一些调试资源,像寄存器、内存、C源码、变量等等,这样就可以识别开发的功能是否满足设计要求。

而Vector工具的话:对于CANlyzer,一方面可以模拟报文节点,发送或接收报文,以此来验证通讯或诊断功能,另一方面通过CAPL语言可设计一个模拟环境来测量或验证所开发的功能。对于CANape,一方面可以实时监测TCU的内外部变量,另一个方面还可以改变标定变量的数值。

熟悉了上述的两类工具,底层软件所涉及的测试和验证工作就基本没问题。


二、应用层软件开发介绍


1.应用层软件概述


相对于底层软件,应用层软件偏向于解决车辆的实际驾驶工况和应用场景问题,以及通过精妙的控制算法或策略实现零部件的精准控制。应用层软件一般从底层软件获取来自传感器或CAN通讯的输入数据,通过自身复杂而有效的策略和算法计算或决策出控制目标,输出给底层软件最终去驱动执行器。比如电机控制器,根据当前油门或制动,坡度,车速等数据,识别出车辆现在处于什么工况,再根据工况的特性,是加速还是减速,是急加速还是急减速等特性,计算出电机的目标转速和目标扭矩,然后基于电机特性Map,确定目标电流或电压,最终驱动电机,以此精准控制电机运转。通过这个例子,也不难发现,要做好应用层软件有几点要求:

1) 深入理解控制对象所应用的场景,车辆有不同的驾驶工况,比如加速超车,制动回馈,自动巡航,自动泊车等。在这些场景下,我们一方面要深入理解控制对象的应用状况,另一方面也要处理不同驾驶工况如何相互切换;

2)深入了解控制对象的实际特性,以电机为例,电机特性Map图(转速-扭矩-功率),电机特性受温度等因素的影响情况;

3)深入掌握控制对象的基础知识,还以电机为例,电机的基本控制方法,电机驱动控制原理,车辆运动学理论等。

2 应用层软件的开发工具

当前应用层软件的开发工具,在国内最流行的应该是Mathworks公司的Matlab+Simulink+Stateflow, 以前在德企会用Matlab+targetlink+stateflow, 像博世还有自己的开发工具。像当下自动驾驶的应用层,有很多公司会采用代码开发,像C、C++等,不过这里提到的都是基于模型的应用层软件开发。
相对于底层软件,应用层软件偏向于解决车辆的实际驾驶工况和应用场景问题,以及通过精妙的控制算法或策略实现零部件的精准控制。应用层软件一般从底层软件获取来自传感器或CAN通讯的输入数据,通过自身复杂而有效的策略和算法计算或决策出控制目标,输出给底层软件最终去驱动执行器。比如电机控制器,根据当前油门或制动,坡度,车速等数据,识别出车辆现在处于什么工况,再根据工况的特性,是加速还是减速,是急加速还是急减速等特性,计算出电机的目标转速和目标扭矩,然后基于电机特性Map,确定目标电流或电压,最终驱动电机,以此精准控制电机运转。通过这个例子,也不难发现,要做好应用层软件有几点要求:

1) 深入理解控制对象所应用的场景,车辆有不同的驾驶工况,比如加速超车,制动回馈,自动巡航,自动泊车等。在这些场景下,我们一方面要深入理解控制对象的应用状况,另一方面也要处理不同驾驶工况如何相互切换;

2)深入了解控制对象的实际特性,以电机为例,电机特性Map图(转速-扭矩-功率),电机特性受温度等因素的影响情况;

3)深入掌握控制对象的基础知识,还以电机为例,电机的基本控制方法,电机驱动控制原理,车辆运动学理论等。

3 应用层软件的开发工具

当前应用层软件的开发工具,在国内最流行的应该是Mathworks公司的Matlab+Simulink+Stateflow, 以前在德企会用Matlab+targetlink+ stateflow, 像博世还有自己的开发工具。像当下自动驾驶的应用层,有很多公司会采用代码开发,像C、C++等,不过这里提到的都是基于模型的应用层软件开发。

就是先根据详细设计方案搭建模型,再基于开发工具所提供自动生成代码配置,将所有模型自动生成C代码;生成的应用层软件代码和底层代码一起编译执行,生成可供ECU执行运行的文件,比如s19,Hex,Bin等格式;最终通过刷写工具将软件烧录到ECU相应的内存空间,启动ECU就可以实时运行软件,执行相应的功能。

文章来源:上汽零束SOA开发者论坛
原文链接:https://bbs.z-onesoft.com/omp/community/front/api/page/mainTz?articleId=7628

本文内容综合于网络,版权属于原作者。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 【7.24 深圳】2025国际AI+IoT生态发展大会/2025全球 MCU及嵌入式技术论坛


  • 相关技术文库
  • C语言
  • 编程
  • 软件开发
  • 程序
  • 光立方程序编写步骤

    基于51单片机的4*4*4光立方程序实现原理及程序代码。LED光立方的复位电路、时钟电路、每层LED灯电路控制逻辑,系统总原理图,工作流程及相关C语言源码实现。希望能够对你学习了解LED光立方程序编写及LED立方实体制...

    前天
  • 封装继承多态

    封装: 封装是实现面向对象程序设计的第一步,封装就是将数据或函数等集合在一个个的单元中(我们称之为类)。被封装的对象通常被称为抽象数据类型。 封装的意义: 封装的意义在于保护或者防止代码(数据)被我们无意中...

    前天
  • 封装是什么意思?

    即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中...

    前天
  • 超声波模块测距51程序_单片机超声波测距c语言

    超声波检测原理 超声波测距的程序流程图 程序如下: //超声波模块程序 //超声波模块程序 //Trig = P2^0 //Echo = P3^2 #include #define uchar unsigned char #define uint unsigned int // void delay(uint z) {...

    07-01
  • 大佬带你看嵌入式系统,嵌入式系统该学习什么?

    嵌入式系统是当今的热门系统之一,在诸多领域,嵌入式系统都有所应用。为增进大家对嵌入式系统的认识,小编将为大家介绍嵌入式系统是一个什么样的专业,以及学习嵌入式系统该学习哪些内容。如果你对嵌入式系统具有...

    06-27
  • c51单片机编程要点总结

    c51单片机编程要点总结 1、头文件:#include (我用的是 STC 89C54RD+) 2、预定义:sbit LED = P1^0// 定义 P1 口的 0 位为 LED 注:“P1^0”这个写法,与 A51 不同(A51 是 P1.0),P1 是一组端口,端口号范围 0~7 注2...

    06-25
  • C语言基础知识点汇总

    总结C语言基础知识点

    06-23
  • Keil使用中的若干问题

      一、混合编程  1、模块内接口:  使用如下标志符:  #pragma asm  汇编语句  #pragma endasm  注意:如果在c51程序中使用了汇编语言,注意在keil编译器中需要激活Properties中的“Generate Assembler...

    06-23
  • ESP32-finsh

    esp32c2添加finsh实现了ping指令和AT指令解析

    06-13
  • 一文讲通C语言位域,快速掌握!

    在嵌入式系统的开发中,内存是最程序员非常需要关注的对象,尤其是MCU开发、网络协议解析、硬件寄存器操作等领域,能否对内存进行高效的利用和合理的管理,将直接影响程序的性能和硬件的稳定性。

    06-10
下载排行榜
更多
评测报告
更多
广告