贴说网 > 生活 > 正文

​特斯拉采用的iBooster刹车系统,为什么几乎成新能源车的标配?

2023-12-18 03:48 来源:贴说网 点击:

特斯拉采用的iBooster刹车系统,为什么几乎成新能源车的标配?

关于特斯拉的旗下新能源的刹车系统,每隔一段时间就会成为焦点.而它采用的刹车系统是博世bosch的iBooster 刹车系统,其它一共出了二代,特斯拉都使用了.关于这个刹车系统介绍文章很多了,但是作为一个资深的嵌入式开发工程师,我想在文章后面讲到用控制软件角度多谈谈这个系统内部一些东西,因为开源自动驾驶和逆向破解,很多关于iBooster的信息都公开了,因此我们能得到很多有用信息.所以大家一定要看最后.

关于iBooster的能否用机械力刹车问题

iBooster GEN1 外形,注意它的ECU外形是一个方形的

iBooster GEN2 外形,注意它的ECU在下方并且是一个圆形的

iBooster GEN2

二代体积更少,更多外壳采用非金属件,成本更低,体积更小.功能差不多

使用iBooster GEN1 有

奥迪 A3 e-创雪佛兰螺栓雪佛兰马里布本田 CR-V (MY 2018, 2019)捷豹i-Pace(2019年、2020年)保时捷 Panamera (MY 2017+)特斯拉 Model S (MY 2015+ (带自动驾驶仪))特斯拉 X 型 (MY 2015+)大众帕萨特混合动力车大众电动高尔夫大众e-UP汽车

使用二代 iBooster GEN2有

特斯拉 Model 3特斯拉 Y 型车雷诺佐伊 (2018+)理想ONE比亚迪汉

为什么这么多车用它,因为这套设备就是为新能源车而生,

主要几个因素,采用电机推动液压油制动,无需烧油的真空泵,这是新能源的刚需,第二个是支持动能回收的,就是可以与上层控制软件配合,以电机减速来代替液压驱动,并通用软件算法达到几乎一样效果.两个部件同时减少电能消耗. 第三是支持以can通讯的软件控制接口,可以让自动软件比如ACC(自动巡航)来支持自动刹车.

从这个拆解图上,象个白色油箱就是装液压油的地方,而制动主腔伸出的硬管就是连接轮胎的刹车盘的.在前面的触手实际就是连接汽车刹车踏板的地方.

那这套系统是如何保存安全呢?

这里博世在自己介绍文档还特别提到了.

比如系统低电情况下,或者电力失效情况有双重保护措施

其中断电情况下,可以机械推动力来强制刹车,但是有一个前提就是刹车踏板要与iBooster那个踏板推杆有机械连接的情况才能生效,因此要看一下拆解图就能明白某款车是否支持机械力刹力了.

软件如何控制iBooster?

特斯拉的最NB的 autopilot系统是不开源的,怎么工作我们无从了解,但是国外有人在DIY 新能源车,因此逆向分析不少新能源的部件,我们通过他们分析是可以对其进行一定了解.而且在开源的自动驾驶软件 openpilot里面也有对相关描述,如果你对C++和Python 有一定了解的话,我们还是了解

这里软件控制iBooster 中主要是通过设备上的Can总线,而且控制Can总线,就要提到到CAN通信矩阵,你可以理解为这个设备的Can总线协议的字典,而记录某一个设备的协议的文件后缀名为 dbc.很多车型数据在网上是公开的.

iBooster是一个双CAN设备。两个通道都没有终端,运行速度为 500 kbps。

车辆 CAN(CAN-H = 引脚 25 / CAN-L = iBooster ECU 上的引脚 16)偏航(CAN-H = iBooster ECU 上的引脚 18 / CAN-L = 引脚 10)

类似于如下格式:

因此对iBooster 发送软件包,是是可以控制刹车的.而且在开源的openpilot 也有类似控制代码

在这里还有对telsa 的汽车控制,因为在2016后带有obd接口,只要支持ACC(自动巡航),ALK(自动车道保持),LK的系统都能通过软件控制,所以这里是一组python代码在控制telsa,它相当于外接一个PC机,通过这一些接口就是玩自动驾驶了.

从openpilot支持200多款车中,在前挡加一个小设备运行相应的python代码,并且通过走线拉到方向盘下OBD-II的接口就能控制整车自己驾驶了,很简单吧,因内很多小的自动驾驶公司就是这样起步的!

最看我们来看一下一些的iBooster控制接口,注意这是两款通用的车上接口,不过大致能看出其有哪一些接口,有意思这段描述已经从当前版本移走了.

# Chassis CAN on pin 16,25 & 15,24
# information from: gm_global_a_chassis.dbc
# IBOOSTER is the EBCM (Electronic Brake Control Module);
# VCU is the (Vehicle Control Unit)
# this message is probably needed to make the pedal feel harder when regen is used for deceleration ???
BO_ 560 iBoosterRegen: 6 VCU
SG_ Regen : 1|10@0+ (1,0) [0|0] “” IBOOSTER
# this is the status of the iBooster with the FrictionBrakePressure.
# maybe some other parameters in this message which are not documented jet.
BO_ 368 iBoosterFrictionBrakeStatus: 8 IBOOSTER
SG_ FrictionBrakePressure : 23|16@0+ (1,0) [0|0] “” VCU
# this is the friction brake comand for the iBooster
BO_ 789 iBoosterFrictionBrakeCmd: 5 VCU
SG_ RollingCounter : 33|2@0+ (1,0) [0|0] “” IBOOSTER
SG_ FrictionBrakeMode : 7|4@0+ (1,0) [0|0] “” IBOOSTER
SG_ FrictionBrakeChecksum : 23|16@0+ (1,0) [0|0] “” IBOOSTER
SG_ FrictionBrakeCmd : 3|12@0- (1,0) [0|0] “” IBOOSTER
# ————————————————————————-
# Powertrain CAN on pin 10,18 & 11,19
# information from: gm_global_a_powertrain.dbc
BO_ 189 iBoosterRegenPaddle: 7 IBOOSTER
SG_ RegenPaddle : 7|4@0+ (1,0) [0|0] “” VCU
BO_ 209 iBoosterBrakePedalTorque: 7 IBOOSTER
SG_ BrakePedalTorque : 3|12@0+ (1,0) [0|0] “” VCU
BO_ 241 iBoosterBrakePedalPosition: 6 IBOOSTER
SG_ BrakePedalPosition : 15|8@0+ (1,0) [0|255] “” VCU

能不能用只能上实机运行测试才行了,这里就不展开了.