ECU 中的随机RAM储存原理器(RAM)主要用来RAM储存原理什么。

上次说到排气的改装,今天来说说ECU的调教,俗称刷ECU,刷ECU几乎是除了排气改装外最快也是最便捷的汽车改装,但是刷ECU并不是建议所有人都去做,因为ECU刷不好不仅会对汽车使用寿命带来缩减,还会影响车辆的保修,因为刷过ECU的汽车是不能享受原厂的三包服务的。

ECU(Electronic Control Unit)电子控制单元,又称“行车电脑”、“车载电脑”等。从用途上讲则是汽车专用微机控制器。它和普通的电脑一样,由微处理器(CPU)、存储器(ROM、、RAM)、输入/输出接口(I/O)、模数转换器(A/D)以及整形、驱动等大规模集成电路组成,简单来说ECU就是汽车的大脑,控制着汽车的一举一动。

刷ECU为什么可以提升性能?

量产车基于生产过程中的品质控制考虑,通常引擎的实际性能指标是稍微高出标称值然后用统一标准的行车电脑来决定性能的。

打个比方就是一台引擎原厂调教为200马力,但机械设计时实际会设计成可以承受225马力,制造出来的引擎由于公差很可能实际输出功率随个体差异在215-225马力之间,最后通过软件限制在200马力(与限制发动机转数道理相似)。

因此,第三方可以通过改动软件之后(刷ECU)把这个厂家设定的安全区减小,让引擎更接近其设计上所能达到的最高性能。

车主安装了比原厂规格更高的硬件(进气,排气,涡轮等),原厂ECU不能满足硬件的需求或不适应高性能硬件导致的引擎工作,所以必须要对原厂行车电脑进行改变,才能发挥改装件的最高性能。

ECU应该怎么调?随便买来的ECU程序能用吗?

首先刷ECU分为直刷和外挂两种。直刷的品牌有很多,市面上比较火的两个是AC XX和All XX Racing。直刷这个概念和其实就是刷写电脑版 一般来说这个东西我们叫做刷写ECU 宝马管这个叫DME模块。

DME模块就是发动机控制模块,这个模块N20位于发动机的上方,N55位于发动机的下方,一个连接着所有传感器信息号线的芯片盒子,这个就是DME模块。DME模块相当于人体的大脑,汽车的核心指令都是从这里发出和回馈。

发动机模块刷写没大家想的那么高深莫测,其实只要自己掌握些要领,用对软件,基本上谁都可以自己对爱车进行ECU调教,世界上所有的汽车发动机的ECU无非是几家公司生产的,博世和西门子。

一般来说任何品牌直刷ECU的原理都是一模一样的,并且也更加稳定,更加安全,像奥迪的御用MTM,奔驰的巴博斯,宝马的AC等等御用改装品牌,都会与原厂的设计团队有着千丝万缕的联系。天下没有不透风的墙,没有永远不能破解的程序,所以市面上的直刷都比较安全和稳定,基本是在原厂程序上做保守的改动。

再来说说第二种,也就是外挂,也就是很多三流改装厂常用的,他们所谓说的刷ECU多半使用的就是外挂程序。这个外挂可以想象成游戏中的作弊行为。

说真的这个让我挺无奈的,可以说国内大部份玩车的车主都是使用外挂程序刷的ECU,外挂相比于直刷本质上的区别是什么呢?说得通俗一点就像打游戏(怕说得太专业很多读者看不懂......),直刷顶多就是游戏里的人名币玩家,通过商城道具提升自己的攻击力,并不会影响游戏平衡,然而外挂,我就不用多说了吧,肯定是会破坏游戏平衡的。

例如通过外挂刷ECU后,控制单元处理器会压榨汽车所有的动力,会对机油,变速箱油,轮胎,转动轴都起到一定的压力,原厂转速为了对发动机的保护限制在了7000转,然而经过外挂调教后,直接脱离保护程序直接可以飙升到9000转。

一方面会影响发动机的使用寿命,甚至会导致发动机拉缸或者炸缸,如果单单只是通过外挂刷ECU,并没有对车体的缸体或者对其它零部件的改造和强化的话是极其不保险的,原厂零部件不一定能承受那么强大的压力。

另一方面因为更多更大的进气会吸入更多的杂质,持续高转速激烈驾驶的情况下面进气的频率非常快,所以对机油也是个严峻的考验,一般来说公里之间就要更换,发动机的压力越高也就对机油的品质要求也就越高,高温的粘稠度直接决定了高油温下面机油油膜的厚度,从而保护发动机。

ECU并不是人人都适合去改。那么什么时候需要改ECU?什么时候并不需要?

首先刷ECU对涡轮车型是提升很大的,例如一辆原厂宝马328通过直刷ECU的方式,在不做任何改装件的改动的前提下,零百跑进6秒内不是难事。

但是如果是自然吸气发动机的车型,只刷ECU是几乎起不到作用的,现在车的原厂ECU其实是比较仔细的调校过来获得性能,驾乘感受和经济性的平衡。刷ECU原则上可以稍微提升扭矩,但是并不会有马力上的提升。总的来说自然进气车型,软件是要配合硬件的。当车子有相应的改装的时候去调整ECU程序才会得到理想的效果。

所以要是自然进气车型就完全没有必要进行ECU调教,并且如果是涡轮增压车型的话也需要合理调教,应用合理的的程序调教,并且ECU的调教不是一个数字的游戏,想要极限的数据可以说是相当简单,但是开车并不是天天在马力机上跑数据对吗?

一辆车ECU的调教难的不是压榨出最极限的动力,难的而是匹配一台车,综合道路的情况调教出更优秀更出色的动力。

引用大神JAKE的一句话:日常驾驶需要的是快速产生扭矩在高速公路上巡航也很少需要超过100马力的动力,因此这段调校在驾驶员技术合理的情况下,完全可以以偏重利用引擎的长力臂区段为主,点火正时更早但不要过早否则车子抖震,尽量给驾驶员更直接的扭矩反馈常用段快过去的时候再退后正时回到正常的调校模式上

ECU调教的原理是什么

引擎,从机械结构上看就是一个气泵。这个气泵理论上只有一个最佳工作点。如果见过一些80,90年代老式跑车的马力扭矩曲线图的朋友,或许会发现车子扭矩曲线一定是一条弧线,而不像现代引擎那样,扭矩曲线是很宽的走线。

因为在九十年代以前引擎使用比较简单的电控或机械控制,因此就会出现只有一个最佳工作点,同时也是最大扭矩点的状况,往低转和高转区扭矩都会下降。个简单的理解是低转时气门开得太大因此进排气流速不够,高转时气门太小因此引擎进出气不畅。

然而现在的汽车通过ECU调校可以改善这种状况,扭矩曲线更平直。在低转时使用更早的点火正时来延长做功冲程改善扭矩,而且可以越来越早直至当引擎即将开始产生爆震时再逐渐延后点火正时,到最大扭矩点时回到原厂设定值附近。

当转速再升高时火焰延烧速度开始变成影响扭矩的主要因素,如果火焰延烧到缸顶时,活塞已经转过曲轴力臂最长点那引擎机械效率一定会下降,因此要提前点火正时,来保证最大缸压出现在做功冲程约一半前后的位置。当转速接近红线,气门通气量开始变成障碍时,需要保持或压后点火正时来保护引擎(转速保护)。

网上有无数的ECU调校教程和无数的改装件,声称它们可以达到最大50马力的性能提升,其中到底有多少真实性,付出的代价又是怎么样的?刷ECU后汽车的油耗、机油更换率和发动机寿命都会有影响,希望广大车主能认真考虑这个问题!

说实话,我也不算上是一个业内的专业人士,我也没有二三十年的玩车经验,只是身边有很多朋友从事着汽车改装工作,自己对汽车改装也完全是一种爱好,所以我希望用自己不够专业的知识,向广大读者解释一下合理的ECU调教是怎样的,我希望这篇文章能帮到大家!

玩车养车,爱车如命,选车购车,疑难杂症;

请直接搜索关注公众号《酷车无忧》

  有些维修人员在使用汽车电控系统检测设备时碰到以下情况:读出多个故障码、故障灯亮却无故障码、有故障却没有产生相应故障码、有故障码却查不出相应故障时,往往会感到困惑和无从下手,进而开始抱怨检测设备的质量或者性能有问题。实际上,维修人员只有在对汽车电控系统的原理、自诊断系统的原理、汽车电控系统诊断设备的原理有透彻的理解后,才能有效地使用仪器。

  正确理解汽车自诊断系统

  摘要 该文简要介绍了汽车电控系统检测设备的使用原理、汽车自我诊断系统的原理及特点,以及汽车自诊断系统对故障的确认的值域判定法、时域判定法、功能判定法、逻辑判定法四种方法;重点介绍汽车故障自诊断系统异常诊断产生原因及其故障排除实例,最后介绍依靠自诊断系统排除故障的有关技巧和注意事项。

在该SSD中提供了如下Flash驱动函数,其相应的功能如下表:

A. 关于MPC57xx系列MCU的C55 Flash模块及其SSD驱动使用,请参考本公众号之前的文章《》(直接点击跳转阅读),这里就不展开介绍了。

CAN总线bootloader和应用程序存储器地址分配的介绍,本例中使用RWW分区1的32KBFlash(RWW分区仅有的32KB地址空间)作为bootloader存储空间,剩下的分配给应用程序的Flash地址空间都属于不同的RWW分区,所以可以将SDD保存在bootloader的Flash空间,并在上面直接运行Flash驱动函数擦除和编程应用程序Flash空间。

C. 如果大家想要开发bootloader本身也可以更新的双boot模式bootloader,想要把Flash SSD放在SRAM中运行,可以参考本公众号之前的文章《》(直接点击跳转阅读)中介绍的如何将鱼护自定义代码段中的重定向函数自动拷贝到RAM中的方法不和步骤。

本设计中使用DEVKIT-MPC5744P的FlexCAN0与上位机软件进行通信获取应用程序,其与板载的CAN收发器MC33901连接(默认使能),从P5引出。

    • 支持标准数据帧和远程帧;

    • 支持扩展数据帧和远程帧;

    • 可编程通信波特率,最高可达1Mbps:

  • 每个消息邮箱(MB)可配置为发送或者接收,且均支持标准帧和扩展帧消息;

  • 每个消息邮箱(MB)拥有自己独立的RX掩码寄存器用于ID滤波;

  • 全功能的RX FIFO保存能力,可以支持最多6帧数据接收和自动内部指针处理;

  • 可编程的时钟源选择,可以选择总线时钟或者外部晶振时钟;

  • 未使用的buffer RAM空间可以当做通用RAM空间;

  • 可编程的辉煌模式以支持自测操作;

  • 可编程的发送优先级调度策略:最小ID优先,最小缓冲优先或者最高缓冲优先;

  • 16-比特只有运行的时间戳;

  • 特定消息的全局网络时间同步;

  • 发送媒介独立(外接收发器);

  • 高优先级的消息仲裁将拥有短的延迟时间;

  • 也提供了一些重要的新功能:

  • 远程请求帧可以自动处理或者有软件处理;

  • CAN位时间设置和配置位只能在模块冻结(Freeze)模式下可写;

  • TX消息邮箱(MB)状态;

  • 接收报文帧的ID滤波器命中提示(IDHIT);

  • 在状态1寄存器中提供SYNCH位以指示模块已经于CAN总线同步;

  • 已发送报文的CRC状态;

  • 接收FIFI全局屏蔽寄存器;

  • 在匹配处理是可以选择消息邮箱优先级和接收FIFO;

  • 提供强大的接收FIFI ID滤波器,可以设置为128个扩展帧、256个标准帧或者512个部分(8-bit)ID ,以及32个独立ID的屏蔽能力;

FlexCAN模块的波特率计算公式如下:

3.4 FlexCAN模块RX ID滤波器设置,中断设置以及驱动程序API介绍

配置接收独立屏蔽寄存器(CAN_RXIMRn)和接收消息邮箱(MB)将消息邮箱MB6设置为只接收ID=0x64标准数据帧,即本bootloader设计上位机软件下载数据的CAN消息帧ID;

配置中断屏蔽寄存器1(CAN_IMASK1)使能MB6的接收中断:

Tips:FlexCAN模块的每个MB的发送完成和接收数据ready中断都是由CAN_IMASK1/2中相应的一个比特位控制的,所以为了避免用于查询方式发送数据的MB在发送完成后也产生中断,需要将相应的MB中断使能位清零

并配置中断优先级寄存器INTC_0.PSR[523]设置其中断优先级为3:

在MB4~7(共用同一个中断向量和ISR)的中断ISR中调用API:

接收MB6收到的CAN消息报文。

使用查询方式用MB0发送CAN消息报文,以应答上位机软件。

Tips:将FlexCAN的接收ID滤波器设置为仅接收bootloader PC上位机软件下载数据使用的ID,可以避免CPU被其他无关ID的CAN报文中断,从而提高bootloader效率。

4. 上位机软件及CAN总线通信协议介绍

运行在PC上的上位机软件主要功能是读取目标MCU的应用程序S19文件,并调用USBCAN总线适配器 (Adapter) ,将其逐行下载到目标MCU,其软件设计软件设计流程图如下:

本设计中,采用Visual C 调用WFC和武汉吉阳光电的-GY8507 USBCAN适配器驱动,编写上位机界面软件。

host程序应答上位机的CAN消息帧是ID0xC8的标准数据帧,通信速率设置为500Kbit/s。因此在S12G初始化时将MSCAN模块的接收ID滤波器设置为只接收ID0x64的标准帧,以避免正常网络上其他ECU的干扰。具体在整车上实现时通信速率由当前ECU所在的CAN网络决定,其通信的消息ID由整车厂定义。具体的CAN消息命令定义如下:

每次MCU复位 (包括上电复位、看门狗复位、外部输入复位、低电压检测复位、时钟检测复位和非法地址之后,进行系统初始化,配置系统时钟、打开定时器、配置FlexCAN和用于状态指示的LED控制GPIO,打开CPU全局中断,然后等待上位机boot命令并检查是否超时:

如果在规定的500ms内接收到了上位机请求进入boot的命令,则接收数据并解析得到行地址和字对齐 (1word=2Byte) 的数据,接着判断S19行地址空间,

若是Flash地址且是第一次收到Flash数据,则将除bootloader程序之外的所有片上Flash擦除为编程应用程序做准备;对Flash地址的数据,在编程到Flash中之前,还必须将以上解析结果的地址和数据进行4字(8字节)对齐,以满足MPC57xx系列MCU

若是RAM地址,则无需擦除,直接将介绍到的数据写到指定RAM地址;

然后与上位机建立通信,逐行接收,解析并将结果烧写到相应地址的片上Flash/EEPROM/RAM中,直至整个应用程序S19文件结束,最后复位外设(关闭MSCAN)、清除全部系统RAM空间、关闭CPU全局中断,禁止所有外设中断,结束bootloader跳转至应用复位函数开始执行应用程序;

如果在规定的500ms内未收到上位机通过CAN发来的进入boot命令,则直接关闭CPU全局中断,禁止所有外部中断,结束bootloader跳转至应用复位函数开始执行应用程序。

整个bootloader工程的软件流程图如下:

由前面1.3 MPC5744P CAN总线bootloader和应用程序存储器地址分配的介绍,根据Power e200内核的启动过程,应用程序工程的启动函数地址存放在0x00FA_0004地址,所以只需要将其取出并转换为函数指针运行即可跳转到应用程序了。

Tips:在bootloader跳转到应用程序之前,尽量将bootloader中使用到的外设恢复到其初始化状态/配置,并把所有RAM清一遍可以保证从bootloader跳转到应用程序时,其运行环境与单独下载运行应用程序尽量一致。以避免由bootloader带来的影响。

这样配置之后,重新编译应用工程就会在工程目录下的FLASH子目录下生成与工程同名的S19文件,其后缀默认为.srec,需要手动将其改为.s19:

所以需要在下载之前使用其他软件(比如hexviewer),将其按8字节对齐:

比如在本例应用工程编译的S19文件中Block 1的长度就是0x1FE=510个字节,而Block 2的长度为0xF4=244字节都不是8字节对齐:

另存为其他名字的即可:

对齐后的结果如下,可以看Block 1和Block 2都按照8字节对齐了。

按照上图连接好电脑和硬件之后,

然后,打开基于吉阳光电的GY8507 USB-CAN Adapter开发的上位机软件下载测试应用工程S19文件:

最后,复位(按下外部复位按键SW3或者重新上电POR复位)DEVKIT-MPC5744P,则会开始更新测试应用程序:

更新完成后,MCU就会自动跳转到测试应用程序,这时可以看到板载的RGB LED灯被PIT中断toggle,红色和蓝色LED不断交替闪烁。

Tips:在下载过程中,在刚开始的时候,会出现如下暂停界面,原因是bootloader在对MPC5744P的片上Flash进行擦除,故花费较长时间,期间上位机暂停下载数据,等待其擦除完成。

本文系统全面的介绍了MPC5744P的CAN总线bootloader开发,并对其中的Flash驱动、FlexCAN配置和存储器地址空间划分以及bootloader向应用程序跳转等开发难点进行详解,并给出了在DEVKIT-MPC5744P demo板上测试和验证的方法和步骤。

我已将本文中介绍的bootloader工程和测试APP应用工程以及匹配的上位机软件分享到如下百度云盘,大家可以下载参考学习,希望对大家有所帮助。

我要回帖

更多关于 RAM储存原理 的文章

 

随机推荐