CAN总线:用编程来控制汽车

※发布时间:2019/1/13 13:48:39   ※发布作者:habao   ※出自何处: 

  属鸡的属相婚配表

  依靠人工智能、视觉计算、雷达、装置和全球定位系统协同合作,让电脑可以在没有任何人类主动的操作下,自动安全地操作机动车辆。

  Voyage是汽车自动驾驶领域内的一家专业公司,他们想要实现的终极目标是:对于世界上的任何一个人,他都可以随时随地一辆汽车直接开到他的口,并将他安全地送达到目的地,而且价格也非常便宜。对于Voyage来说,他们将不可避免地给乘客提供汽车关键功能的控制权,因为总有一天开车的将不再是我们人类,而这一天马上就要到来了。

  一台现代化汽车拥有大量的控制系统,这些控制系统的作用与Web应用中各种微服务的作用常相似的。对于一台电动汽车来说,它拥有安全气囊、自动刹车系统、电动助力转向系统、音响系统、电动车门、后视镜调整系统、以及电池与充电系统等等。这些系统需要相互通信并获取其他系统的运行状态。1983年, 博世公司 (一家从事汽车与智能交通技术的公司)的一个团队开始尝试通过研究CAN(Controller Area Network-控制器区域网络)总线来解决这一复杂的问题。

  你可以把CAN总线当作一个简单的网络,汽车中的任何一个系统都可以通过这个网络来或发送命令,它可以将汽车中那些复杂的组件以一种“优雅”的方式组合起来,并给我们的汽车提供各种各样的现代化功能。

  近些年来,随着自动驾驶汽车的快速发展,CAN总线的概念也得到了普及。为什么呢?因为自动驾驶汽车领域内的绝大多数公司都不会从零开始设计和制造自家的汽车,而且他们还需要想办法通过编程的方式来控制汽车。

  通过对汽车CAN总线进行逆向工程分析,工程师将可以通过软件来向汽车发送控制命令。比如说,最常用的控制命令有旋转方向盘、加速(踩油门)和制动(踩刹车)。

  通过使用类似LIDAR(激光雷达)这样的传感器,汽车将能够“看到”或“感受到”它所处的外部。汽车内的电脑可以根据传感器传回的数据来决定向汽车发送怎样的控制命令,比如说将方向盘旋转多少度、加速到多少迈、或者是否应该立即踩刹车等等。

  CAN总线年开始,CAN已经成为了美国汽车和轻型卡车中的一种标准了,但是直到2008年它才成为一种强制标准。它主要使用了两条线:CAN high(CANH)和CAN low(CANL)。CAN使用的是差分信号,这意味着当信号传输进来时,CAN会提升一条线的电压,并等量降低另一条线的电压。一般来说,只有对噪声容错较高的才会使用差分信号,例如汽车系统或工业制造领域。

  为了能够控制汽车空调系统的和关闭,我们首先需要找到正确的CAN总线(因为一辆汽车有很多CAN总线)。福特Fusion

  OBD-II端口了其中的两条总线,但这台汽车上这两条总线有防火墙的,因此不允许我们向其发送指令。在Alan(Voyage员工)的帮助下,我们解决了这个问题并成功拿到了HS1、HS2、HS3和MS的访问权。注:OBD-II端口后面有一个名叫Gateway Module的设备,所有的总线最终都要将数据传输到这个设备中,这就是我们的解决方案。

  但是,我们这样去总线的数据流量,就相当于用眼睛来观察声音信号的振幅一样,我们不仅很难弄清楚总线到底在传输什么数据,而且也很难发现其中的模式或规律。因此,我们需要像分析声音频率一样来分析这个问题,我们可以调用cansniffer.和cansniffer来查看相应的ID,然后主要分析CAN框架的数据区域中具体发生了哪些变化。我们通过研究后发现,我们可以利用特定的ID来过滤掉那些我们不需要的数据,然后只留下与我们问题相关的那些数据。

  我们现在可以向CAN总线发送相应的CAN控制代码了,这些代码与我们按下汽车物理实体按钮时所发出的总线控制命令是一样的。这也就意味着,我们可以远程改变汽车的车内温度了。

  本文由海南柴油发电机组 www.hnjqc.cn整理发布