无人驾驶--CAN卡、CAN协议的使用

无人驾驶之CAN相关,记录小白学习过程~

目前有易咖底盘、CAN协议文件,CAN卡,不同CAN卡对应的调试软件,且本人的两个CAN卡经过处理,连接在一起。

前辈指导:不要着急接车的CAN 总线,目前有两个CAN 卡一个发送一个接收,两个CAN卡实现接收发送后,再接车调试。

在接入CAN卡,打开软件后首先要确定波特率,两个CAN的波特率要一致,然后选择发送文件,但是发送文件后显示发送失败。本人使用的是ZCANPRO和CANPro协议分析平台

询问技术指导发送失败的原因可能是1.没有接着终端设备,2.接线有问题,3.终端电阻的问题(一般一条总线首尾各加一个120欧姆的电阻)4.波特率不一致。

接线问题本人专业不对口,最后找了前辈,发现问题。所使用的CAN卡装置经过改良,将两个不同系列的CAN卡连接在一起,其中有跟接线松掉,所以一直显示发送数据失败,连接上后成功发送数据,且软件上能够显示接收到的数据。

能够收发后,要学习解析协议,即16进制与10进制或2进制的转换,然后到对应的CAN协议矩阵上查看实际含义。下面的教程对解析CAN协议、CAN矩阵帮助很大:

https://blog.csdn.net/LiuXF93/article/details/113729294

https://zhuanlan.zhihu.com/p/62333363

两个CAN卡之间收发成功,接下来实车测试(经过前辈帮忙,将CAN线接对)成功收到车辆传输来的报文,通过软件发送也显示发送成功,想要发送dbc文件控制车辆动起来,通过查看使用说明需要先切换模式,但是通过发送报文模式依然没有变化,通过与各个技术指导沟通,发现了好多问题。

问题一:报文发送错误,发送报文要注意循环计数位和校验位,不同协议校验位计算方式不同,简单测试时可以将循环计数设置为0,最好时依次循环;另外要学习CAN信号的Intel、motorola排列方式。

问题二:通过软件发送协议控制车辆,无法在保证规定时间内实现0-1的上升沿过程,且会出现丢帧的情况。(通过CANOE查看asc文件)大环境中一般都是通过软件查看通讯通不通,具体测试时使用脚本。没有循环计数和校验位的情况可以一条条的指令发送进行测试。

本篇只是记录本人学习过程,干货不多。接下来要学习如何写脚本测试CAN了~

猜你喜欢

转载自blog.csdn.net/qq_38988221/article/details/129256373