我想通过CAN总线(OBD ii端口)发送命令,将方向盘转向我的2017本田思域LX(没有本田传感),我的车有电动助力转向。我这样做是因为我需要对自动驾驶软件进行一些实验,这些软件会将转向角作为输出。
为此,我将使用comma.ai的panda OBD加密狗。我见过人们在本田感应车辆中这样做。只是想知道我的车辆是否可行。
我想通过CAN总线(OBD ii端口)发送命令,将方向盘转向我的2017本田思域LX(没有本田传感),我的车有电动助力转向。我这样做是因为我需要对自动驾驶软件进行一些实验,这些软件会将转向角作为输出。
为此,我将使用comma.ai的panda OBD加密狗。我见过人们在本田感应车辆中这样做。只是想知道我的车辆是否可行。
Answers:
不能直接通过OBDII端口。即使使用经销商级别的诊断设备,也无法通过OBD发送转向激活。如果可能的话,想象一下安全隐患。
即使您直接访问转向CAN总线,我也怀疑您可以发送任何数据来激活转向。
在我使用的系统中,(斯堪尼亚,Landrover,沃尔沃,丰田)转向控制系统是独立的,因此H-Bridge电机控制器和包括转向角传感器输入的处理单元在一个ECU中,因此您无法发送任何虚假信息。通过CAN总线发送的唯一信息是发动机转速,车速,重复的转向角以及来自其他传感器的数百个其他数据位。任何安全关键任务通常都会通过具有多个冗余区域的Flex-ray发送。
实际上只有三种方法可以控制转向:
1:模拟转向角传感器。这比它听起来更难,因为它需要拦截转向角传感器的输出,一些相当快的输入和输出。通过这样做可能是一些严重的安全问题所以我不会这样做。
2:直接入侵H桥输入。我已经做了很多次,如果你有基本的电子和软件技能,这可能是最安全和最简单的。只需拆开EPS ECU并找到从MCU到H桥的输入,这些输入很可能是3.3或5v。只需从Arduino或定制板上为这些电源供电,您可以通过监控CAN总线以获取来自驱动程序等的输入来添加一些额外的安全功能。您必须找到一种方法来阻止您的系统与新控制器对抗,我可以做的是切断从MCU到H桥的PCB走线,并将MCU输出连接到控制器上的输入,并将H桥输入连接到控制器上的输出。
3:将一些自定义代码注入EPS MCU。毫无疑问,如果您拥有广泛的软件和逆向工程知识,那么这是最好和最安全的解 当某些消息在CAN总线上时,只需注入一些代码即可激活转向。这样做的好处是你没有绕过任何安全功能,因为嵌入了代码,汽车认为没有任何错误。我能看到的唯一问题是时间,因为你在转向时显然需要极高的刷新/响应速度。