一个利用CAN实现车辆控制的简单模板

整理一下研究生第一年学到的东西,因为研究方向是和无人车相关,最先学习的就是CAN总线的相关知识了,这里简单地po一个笔者利用C/C++写的一个CAN的使用模板。

1. CAN简单了解

CAN的全称是controller area network是一种车内常用的通信协议,网络的设备直接互联通信。[1]基本上,现在很多车都是使用CAN协议作为车内ECU与各个模块之间的通信手段。这些协议的具体格式:例如它们的时间间隔、帧的每一位是什么含义,发送方和接收方是谁、怎样解读等等,各个车厂各有不同,还没有形成一个统一的标准。而且这些协议车厂不会轻易公开,否则非常容易被人直接控制车辆或者获取车辆的行驶数据。

对于我们来说,直接利用CAN协议进行改造是一件最为轻松的事情,因为我们只需要拿到CAN的协议内容,再利用CAN分析仪和简单电路修改,就可以选择屏蔽掉车内原来的CAN的线路,转而使用我们通过代码发出的指令到各个执行部分,例如ESP、ACC等等。

1.1. CAN协议的结构

这一部分,可以参考http://www.cnblogs.com/pejoicen/p/3986587.html 这篇文章,讲的非常详细,这里笔者就简单地概括了一下:
分为数据帧、远程帧、错误帧、过载帧和帧间隔。其中我们一般使用的都是数据帧。一个数据帧包括了帧起始、仲裁段、控制段、数据段、CRC段、ACK段、帧结束这几个部分,具体的命令含义都是集中在数据段,传输的数据量是8

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值