需求多周期长,详解新能源整车控制器VCU开发过程
一款合适的整车控制器需要正确的输入,一般车型不一样整车控制器的接口需求也不一样,因为整车控制器开发周期比较长,所以在整车控制器的研发起始阶段要考虑,所研发的整车控制器要有一定的兼容性,能适应较多车型。
1、从输入来看:需要整车设计需求+整车控制原理图
2、整车电气原理确定后,就确定了整车的控制方案,这时就可以确定整车控制器的接口功能:
3、整车控制接口定义确定后,内部功能也就确定
我们需用飞思卡尔16位双核单片机Mc9s12xep100 112脚作为主处理器,将CAN通讯收发发在协处理器XGATE中,主CPU只经行与控制策略有关的处理,这样就大大提高了控制的实时性。
原理图如下:
PCB图如下:
外观如图:
4、整车硬件部分完成后,接着进行软件的设计,主要包括:
A、底层软件的编写,主要是配置时钟、SPI、CAN、PIT、ECT、IO、interrupt等的寄存器。
B、BootLoader驱动,主要是CAN模块和Flash模块的配置。
C、CCP标定驱动。
D、应用程序包括:数据采集、故障诊断、工况判断、辅机管理、通讯控制;
程序截图:
5、整车控制器调试软件:
5.1、通过CAN总线进行程序下载更新的BootLoader软件,如图:
5.2、通过Busmaster监控,如图:
在编写控制软件前,应制定相应的控制策略、通讯协议:
1、通讯协议:
2、CAN通讯网络拓扑结构(此处预留燃料电池)
3、控制策略:
有了以上就可以就行控制软件的编写和调试的工作,调试匹配,本开发主要是针对新能源电动中巴、大巴、物流车车型,本次调试的车型为纯电动考斯特,如图:
1.调试阶段:
2.试车阶段:
试车视频
整个过程经历了1年的时间,过程中总是一个接一个的困难,记得刚开始做这个项目的时候,CAN通讯也不是很精通,急忙恶补了下,CAN底层代码也是修改了好久,还好板子的硬件部分还算比较给力,没出问题,在一些demo的基础上,进行了移植和修改,很快搭建出了具有一定功能的整车控制器,同时根据项目的需要,开发了基于CAN总线下载的Bootloader。也不断的优化换控制策略,这一块对油门、刹车的解析是一个难点,也是废了不少功夫。
经过以上,形成了如下开发包。
如何学好单片机
了解单片机应用系统开发流程
我们学习单片机的目的就是为了进行嵌入式系统的开发,学好单片机首先要有一个整体认识,下面将简要介绍一下单片机应用系统的开发流程,如图1-22所示。
图1-22 单片机系统开发流程
(1)明确任务分析和了解项目的总体要求,并综合考虑系统使用环境、可靠性要求、可维护性及产品的成本等因素,制定出可行的性能指标。
(2)划分软、硬件功能
单片机系统由软件和硬件两部分组成。在应用系统中,有些功能既可由硬件来实现,也可以用软件来完成。硬件的使用可以提高系统的实时性和可靠性;使用软件实现,可以降低系统成本,简化硬件结构。因此在总体考虑时,必须综合分析以上因素,合理地制定硬件和软件任务的比例。
(3)确定希望使用的单片机及其他关键部件
根据硬件设计任务,选择能够满足系统需求并且性价比高的单片机及其他关键器件,如A/D、D/A转换器、传感器、放大器等,这些器件需要满足系统精度、速度以及可靠性等方面的要求。
(4)硬件设计
根据总体设计要求,以及选定的单片机及关键器件,利用Protel等软件设计出应用系统的电路原理图。
(5)软件设计
在系统整体设计和硬件设计的基础上,确定软件系统的程序结构并划分功能模块,然后进行各模块程序设计。
单片机程序设计语言可分为三类:
➢ 机器语言 :又称为二进制目标代码,是CPU硬件唯一能够直接识别的语言(在设计CPU时就已经确定其代码的含义)。人们要计算机所执行的所有操作,最终都必须转换成为相应的机器语言由CPU识别、控制执行。CPU系列不同,其机器语言代码的含义也不尽相同。
➢ 汇编语言 :由于机器语言必须转换为二进制代码描述,不便于记忆、使用和直接编写程序,为此产生了与机器语言相对应的汇编语言。用汇编语言编写的程序执行速度快,占用存储单元少,效率高。
➢ 高级语言 :高级语言具有很好的可读性,使程序的编写和操作都十分方便,目前广泛使用的高级语言是C51。
汇编语言和高级语言都必须被翻译成机器语言之后才能被CPU识别。
(6)仿真调试
软件和硬件设计结束后,需要进行进行进入两者的整合调试阶段。为避免浪费资源,在生成实际电路板之前,可以利用Keil C51和Proteus软件进行系统仿真,出现问题可以及时修改。
(7)系统调试
完成系统仿真后,利用Protel等绘图软件,根据电路原理图绘制PCB(Printed Circuit Board)印刷电路板图,然后将PCB图交给相关厂商生产电路板。拿到电路板后,为便于更换器件和修改电路,可首先在电路板上焊接所需芯片插座,并利用编程器将程序写入单片机。
接下来将单片机及其他芯片插到相应的芯片插座中,接通电源及其他输入、输出设备,进行系统联调,直至调试成功。
(8)测试修改、用户试用
经测试检验符合要求后,将系统交给用户试用,对于出现的实际问题进行修改完善,系统开发完成。
单片机学习方法探讨
单片机学习的过程应该是一个循序渐进、不断学习、不断积累的过程,大致分为三个阶段。
第一阶段:掌握开发单片机的必备基础知识。
首先是熟练掌握单片机的基本原理,虽然现在单片机厂商众多,但各家单片机的基本结构和原理都比较相近,例如内核结构、内存分配、中断处理、定时计数、串行通信、端口复用等一些最基本的概念和原理。除此之外,我们还需要学习模拟电子、数字电子、C语言程序开发以及原理图和PCB(Printed Circuit Board,印刷电路板)设计等知识。只有扎实的掌握了这些知识,在进行系统开发的时候,才能顺利地进行原理设计、PCB布板、程序编写、系统联调等工作。
第二阶段:在掌握好一款单片机原理和应用的基础上,开始学习其他各家单片机,了解其独有的功能和特点。
例如实际工作中若客户要求低成本,那我们可以选用和泰、义隆、华邦等这类台湾芯片;如果客户要求工业级的性能,那么最好从PIC、NEC、飞思卡尔、NXP等这些欧美和日式单片机中选择;若要进行功耗的开发,选用MSP430系列应该有一定优势;在进行测量仪器设计的时候,C8051和AduC842这类数模混合芯片又显得比较实用。
另外,平时要注意技术积累。在项目开发过程中将一些常用的接口程序和控制算法整理成模块或者函数,日后若在其他的项目开发中有同样或者接近的需求时,原程序可以直接或者进行少量改动后使用,这样一来会节约大量开发成本。
第三阶段:在实际的项目开发过程中,不断深入研究单片机应用技术,不断积累应用行业的专业知识。
有了扎实的单片机应用相关的基础知识,并且熟悉掌握了几款不同类型单片机的开发方法后,对于各种实际的应用项目,往往还需要理解和掌握外围电路相关的原理和分析方法,并结合实际的应用背景,综合考虑各种因素,才能设计出性能最优、结构最合理的单片机应用系统。
相关问答
求 单片机编程 软件教程?这个问题有点大,因为目前市面上单片机有很多种,而每种单片机都有自己的编程软件,这些编程软件虽然编译原理近似,但是编译环境、编程配置的差别还是很大的,所...
如何设计一个以 单片机 为核心的继电器控制电路?根据提问者的意思以单片机为核心控制继电器,不知提问者提出这个问题的真正目的是什么,若只是为了想要一块继电器板实现相应的功能,可以直接购买一块单片机继电...
飞思卡尔单片机 型号分类。按字长分。分列型号。-ZOL问答飞思讨论回答(4)加不了的。官网呗,慢慢找可以,需要在PackInstaller中选择安装freescale的支持包这个可行吗
飞思卡尔 智能车入门需要什么知识? - 178****7561 的回答 - 懂得主要是单片机要比较好的掌握,另外在控制上你要学会PID等多种控制方式……硬件上,学习下绘制电路图……焊电路板……智能车制作论坛,里面有你所需要...
BDM背景调试和JTAG调试接口是什么关系啊? 飞思卡尔 我知道的一款16位 单片机 是BDM调试模式,一款32位的是JTA?没什么关系,是两种不同的技术标准,BDM一般只适用于freescale的单片机,用于单步调试和下载程序到单片机。JTAG的功能和BDM有些类似,但应用范围更广。没什么关...
汽车ecu的 编程语言 是什么?[最佳回答]汽车ecu是汽车电脑的总称。目前90%的汽车ecu编程语言基本都是用C语言写的,汽车ecu中也可能会用到一些汇编语言和一些C语言。目前汽车ecu的关键只有1...
汽车级 单片机 的特点?宽温度和抗电磁干扰是汽车级单片机的基本要求。其实,从指标看,现在不少牌子的单片机都有符合要求的型号,但这里有个实际使用的问题,像PIC,ST和飞思卡尔都是...
上位机怎样实时检测 单片机 所测数据?这个很简单,花个几十块钱买个蓝牙收发模块就行。单片机有串口就行,接串口蓝牙小电路板,上位机手机进行搜索连接。不过你需要进行二次开发,手机端需要开发蓝牙...
单片机 常见的触发类型?常见的有以下几种1、传统的51系列单片机。2、STC系列的增强型单片机,是在51的基础上增强的。3、AVR系列,以ATMEL公司的ATmega16为代表。4、PIC系列单片机...
51 单片机 哪种好一点?国内常用的:ATMEL(美国):AT89S51TI德州仪器(美国):MSP430系列MicroChip(美国):PIC系列单片机飞思卡尔半导体(原摩托罗拉半导体)(美国):基于A...国内常...