Author / 不会开车的CC
Pic / 来源于网络
电影《速度与激情》大家都看过,接下来第六部里面的这个场景大家肯定有印象。
Paul Walker一行人在追捕Shaw时,他们驾驶的宝马被Shaw等人安装了一种电子芯片,之后Shaw等人通过电脑一顿操作之后,这些宝马突然不受驾驶员控制,突然刹车或者直接撞上其他车。
有人会问,这些是真的嘛,怎么实现的,看完这篇文章你就会有所了解。
上期回顾
特此申明
1. 所有内容均不涉及核心技术细节,或故意略去。
2. 本文只提供知识分享,所有DIY引擎调校程序均有风险,有可能严重损坏发动机或导致ECU报废,所引发的责任请自行承担,与本文作者无关。
改装有风险,须谨慎!
之前有提到CAN总线数据相当于是桥梁上面的“车辆”,如果拥有“解码钥匙”就可以看到,比如方向盘转角,发动机转速信息等。而这些信息传输的目的是共享给其他的车辆控制系统。
比如在冰雪路面驾驶,车轮打滑时,发动机ECM(Engine Control Management)把发动机实时扭矩,转速等告诉ESP(Electronic Stability Program),而ESP把自己需要的扭矩同时发送给ECM,让发动机减小输出扭矩,从而抑制打滑,让车辆更稳定。
而为了达到需要的控制效果,这些信息的传输速度是很快的,比如10毫秒,5毫秒就会传输一次新的数据,1秒的时间里就可能传输多达200多辆“车”!
所以CAN总线的带宽很重要,如果信息特别多,就有可能造成总线“堵车”而出错。如今越来越多的电子功能,自动驾驶功能都依靠总线去沟通,这个“交通量”和20多年前比起来都不是一个数量级的。
Cruise自动驾驶车辆展示图
一方面,车厂会优先考虑需求比较高的信息。
比如发动机控制,车辆稳定系统,可以以较快速率传输,5毫秒,10毫秒。而另外一些不是那么重要的系统,可以以较慢速度传输,100毫秒,200毫秒等。
另一方面,新一代的CAN总线也即将进入登上舞台。
比如CAN-FD,全称为Controller Area Network Flexible Data-Rate。新的这个协议是基于之前的CAN,也是由德国博世公司在2012年研发出来的。
有两个最大的区别。
第一就是传输速率可以自由切换,更灵活(Flexible)。比如在有需要时加速传播,没有需要时,减速传播,而现有的CAN协议只能通过固定速率传播。
第二就是增大了基本带宽,从11位增加到了29位,这个“位数”我会在之后的文章具体说到。
所以从这两点来看,新的CAN-FD给之后的L3,L4自动驾驶功能的实现创建了一个很好的平台。
车辆自动驾驶展示图
做为一个玩车的人来说,传输速度的快慢有什么意义呢。
从最简单的说起,圈速 —— 圈速是怎么计算的?
如果不考虑正规的比赛,因为比赛会用专门的传感器,而我们平时跑赛道记圈速绝大多数都是通过GPS定位,车辆在这次通过终点线和上次通过终点线的时间差就是圈速。
GPS更新速度就决定了圈速的一部分误差。
最方便计时的设备就是手机,我在最早跑赛道日的时候也就是用手机,而iPhone的GPS更新率为1Hz,也就是1秒才更新一次。当你以120kph在赛道上开的时候,1秒就可以行驶33米,这样的圈速误差还是很大的。
我个人觉得这种情况下,圈速会有最多2秒的误差。想要减小这种误差的话,只要给iPhone接上一个外置GPS接收器就可以了,一般可以提高到10hz,也就是最多200毫秒的误差。
纽博格林北环跑圈计时图
这里只是用GPS来举例,而CAN总线数据也是类似的道理。
硬核玩家肯定是要在赛后分析自己跑的如何,在哪个弯有失误,在哪个地方可以进一步提高,所以就需要把方向盘转角,油门位置,刹车位置等信息和实际GPS信息结合在一起再分析。
这时候传输速度显得尤为重要,如果GPS是0.1秒更新一次,而油门位置1秒才更新一次,在很多时候你根本没法准确分析在某个弯,油门究竟是给早还是给晚。
超级硬核玩家或赛车队肯定会自己加这些传感器,而不依赖于CAN总线。
理论上这些传感器连上一个单片机(Anduino之类)就可以实现数据采集,而高速率的传感器价格也不菲,这些也不在我们今天讨论的范围内。
赛道日跑圈数据图
而我们这些一般车友还是希望依靠现有的CAN来获取信息。
这里再说一个新的概念,OBD设备如何读取信息。虽然我之前有说很多关于DBC文件的概念,只要有了这个就可以读取CAN上所有信息,但这个基本上还是车辆开发阶段用的,或者是车厂自己的赛车队会最大限度的使用这些。
CAN总线的另一个功能是收取发送指令。
如果你想要知道发动机转速,发动机控制模块自带一些指令,只要你在CAN总线上发送这个指令,发动机模块会自动返回相应的信息。
另外一个最常见的例子就是诊断发动机故障和清除故障码。只要你发送读取发动机故障码或清除故障码的指令,发动机就会照做了。
发动机故障码示意图
现在市面上可以买到的一些OBD设备应该都是通过CAN的这个功能来读取车辆信息的,这个功能相对简单一些,但主要缺点就是传输速度相对低一些。
因为这就相当于在CAN总线上发送一辆额外的车去找回特定信息,会增加CAN总线的负荷。单个信息影响不大,但大量信息的话同样会造成总线过载的问题。
另外,这个传输速度就不可能和信息本身的速度一致了。
一般情况下,应该在100毫秒左右,不过对于我们来说,也是足够快了,再配合上一个10Hz的GPS接收器,基本可以满足赛道日和时间挑战赛的需求。
以上就是我了解的关于CAN总线的一些基本内容了,有写的不清楚的地方欢迎评论或留言。
说了这么多,可能有些车友认为这些对于自己改写发动机并没有用,因为第三方软件都已经把这些底层的框架都建好了,比如EcuTek,Cobb Tuning等。
确实没错,我们只要按照他们的用户手册去做,就可以刷程序了。但我个人觉得,了解这些最基本的还是有必要的。一方面可以避免在自己刷程序的过程中犯错,另一方面也有助于自己进一步提高修改发动机程序的能力。
EcuTek硬件示意图
点火延迟之排气回火实例
聊了这么多理论基础,下面来实战演练。详细的教程在以下视频中,这里把要点总结一些。
B站UP主:不会开车滴CC
目标 实现排气回火啪啪啪,获得好听的排气声
发动机调校参数 推迟点火时间
发动机刷写硬件 Open Flash Tablet
发动机程序改写软件 RomRaider
测试车辆 2013丰田86
测试车辆相关改件
1. Skunk2 Alpha EL Catless Exhaust Header
2. Invidia Overpipe
3. Invidia Resonated Front Pipe
4. Greddy Remark Muffler Delete Axle Back w/ Titanium
这里以Open Flash Tablet自带的86/BRZ一阶程序为基础
1. 先用RomRaider打开此程序,找到点火延迟角的标定表格B。
2. 把B表里面发动机转速2000到5000转,最低负荷点的点火延迟角改为零。
3. 另存此程序为回火程序b。
4. 连接Open Flash Tablet硬件到电脑上,打开Open Flash Manager软件。
5. 上传新写的回火程序b到Tablet里面。
6. 连接Open Flash Tablet到86的OBD接口上,根据提示写入回火程序b到发动机ECU中。
7. 刷写完毕,重新点火,确定刷写成功,怠速45秒,开始正常驾驶。
OpenFlashTablet可以用于86/BRZ
测试方法
在刷写程序前后,我用同样的方式驾驶了一小段,并用视频和Tablet记录驾驶时的声音和发动机数据。
为了最快地证明这样的程序改写达到预期效果,我们需要尽量让发动机在我们改写的区间运行,2000-5000转,低负荷(低进气量)。所以我们在3档时保持车速在40mph左右,轰一小脚油门后,轻轻地扶着一点油门。
OpenFlashTablet同样适用于Mazda ND Miata
测试结果
改写程序后,同样驾驶条件下,轻扶油门时可以明显听到排气管中有“啪啪啪”的回火声,多次驾驶后可以熟练控制油门开度听到预期的回火声。
通过对比发动机运行时的数据也可以看出,点火提前角有变化。
调校弊端
由于燃油混合气有可能在排气管中点燃,对于三元催化器或涡轮有一定伤害,不建议长期使用。
350Z排气回火图
之后计划去附近的shop测试一下现在这辆86的发动机输出功率/扭矩如何,有条件的话也会尝试不同的发动机程序跑Dyno,有兴趣的车友欢迎关注此公众号和b站UP主(不会开车滴CC),会第一时间和大家分享。
阅读本文作者其他文章
识别以下二维码
关注作者个人公众号
More
今日日签
文章推荐
探索沃尔沃XC60:豪华SUV中的安全典范 传祺gs4雾灯在哪开 传祺gs4倒车灯型号 比亚迪元用什么机油好 gs4空调滤芯怎么换 gs4自动空调怎么用 传祺gs4水箱在哪里 广汽gs4传祺换车门 传祺gs4仪表盘图标 传祺gs4雨刷怎么用最新文章
探索沃尔沃XC60:豪华SUV中的安全典范 传祺gs4雾灯在哪开 传祺gs4倒车灯型号 比亚迪元用什么机油好 gs4空调滤芯怎么换 gs4自动空调怎么用 传祺gs4水箱在哪里 广汽gs4传祺换车门 传祺gs4仪表盘图标 传祺gs4雨刷怎么用