目录
Can总线多用于汽车电子,车载通信功能,其功能稳定接线简单,通信速率快,现介绍其常用调试方法如下:
接线
只有两根高低电平线canl canh,要分别接到串口db9的2 7号端子,如果终端控制器没有终端电阻要并联终端电阻。否则数据无法接收到,而且电阻也不能并联太多,否则随着电阻值降低功能失效,不能形成有效回路。
测试
是否联通,可以用万用表分别测试两边是否短路,用canoe测试端口能否收到数据,canoe是不带终端电阻的如果两端都不带终端电阻那么接收数据回提示短路。可以用linux命令发送can数据。发送前确保can卡驱动安装好,可以用ifconfig -p看是否有can选项,另外可以用命令查看can口是否初始化过。确保canoe和控制器两端的波特率一致,否则无法接收到数据。
can指令
联通后可以用两个控制器分别接收发送can数据,包括标准帧和扩展帧,扩展帧id 29位,数据共8个字节。可以用指令can dump ,can send测试数据收发。
1. 安装can-utils包
“`
sudo apt-get install can-utils
“`
可以通过以上命令来安装can-utils包,这个包中包含了一些CAN工具,包括发送CAN数据的工具。
2. 启动CAN接口
在发送CAN数据之前,需要先启动CAN接口。以下是启动CAN接口的命令:
“`
sudo ip link set can0 up type can bitrate 500000
“`
其中can0是CAN接口的名称,可以根据实际情况修改。bitrate参数指定了CAN总线的波特率,这里设置为500000bps。
3. 发送CAN数据
使用cansend命令可以发送CAN数据。以下是cansend命令的语法:
“`
cansend #
“`
其中,是CAN接口的名称,是CAN数据帧的标识符,是CAN数据。可以根据实际情况修改这些参数。
示例:
“`
cansend can0 123#11223344
“`
以上命令会向CAN接口can0发送一帧CAN数据,标识符为0x123,数据为0x11223344。
can检测
都正常的情况下,也有可能收不到数据,有可能是采样率设置不对,一般的采样点在0.85,用示波器看是上升沿的85%位置处。如果数据偶尔能收到一个两个说明要调整采样率。比如0.87直到能收到为止。可以通过指令设置采样率。
ip link set can0 type can bitrate 1000000 sample-point 0.8 dbitrate 5000000 dsample-point 0.75 fd on restart-ms 1000
can vector检测
- 新建工程:在CANoe中,点击“File”→“New”,选择适当的总线类型和速率,例如500k波特率的CAN总线。
- 硬件驱动配置:在“Hardware”菜单中,选择网络硬件设备,如VN8970,并配置驱动。
- 通道配置:打开“Network Hardware Configuration”窗口,选择相应的通道并配置通信速率,确保软件通道与硬件通道匹配。
- 数据库添加:为了解析总线上的报文,需要添加DBC文件或其他相关数据库文件。
具体实例说明:
- 发送以太网数据包:使用CANoe向ECU发送以太网数据包时,数据包由CANoe生成,通过虚拟端口传输,再由VN5000接口转发到物理端口1。
- 接收以太网数据包:从ECU接收数据包时,数据包出现在VN5000接口的物理端口,然后被转发到虚拟端口由CANoe处理1。
Vector工具的特点和优势包括:
- 强大的数据分析能力:CANoe和CANalyzer提供详细的数据分析和可视化工具,帮助开发者深入了解总线通信。
- 广泛的总线支持:Vector工具支持多种总线系统,包括CAN、LIN、FlexRay和Ethernet,满足不同汽车电子系统的开发需求。
- 灵活的配置选项:通过配置工具和插件,用户可以根据具体需求调整工具的设置,以适应不同的测试场景23。
can vector接口不支持终端电阻,所以检测前要保证另一端有终端电阻。否则软件会报错