CAN 调试总结

这篇博客详细介绍了如何检查CAN设备状态、配置CAN参数以及进行数据收发。通过`ifconfig`、`iplink`命令查看和管理CAN设备,并使用`cansend`和`candump`进行数据交互。还提到了周立功的USB转CAN设备在不同模式下的工作情况。此外,介绍了使用ZCANPRO软件进行CAN通信测试的方法。
摘要由CSDN通过智能技术生成

1. 查看CAN设备状态

命令: ifconfig

~ # ifconfig
can0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          UP RUNNING NOARP  MTU:16  Metric:1
          RX packets:2165 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:10
          RX bytes:17320 (16.9 KiB)  TX bytes:0 (0.0 B)


ifconfig内容解释:参考文献1。

命令:ip link show device

~ # ip link show can0
3: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 10
    link/can
~ #

命令:ip -d -s link show device

~ # ip -d -s link show can0
3: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 10
    link/can  promiscuity 0
    can state ERROR-ACTIVE restart-ms 100
          bitrate 250000 sample-point 0.800
          tq 400 prop-seg 3 phase-seg1 4 phase-seg2 2 sjw 1
          mcp251x: tseg1 3..16 tseg2 2..8 sjw 1..4 brp 1..64 brp-inc 1
          clock 12500000
          re-started bus-errors arbit-lost error-warn error-pass bus-off
          0          0          0          0          0          0         numtxqueues 1 numrxqueues 1
    RX: bytes  packets  errors  dropped overrun mcast
    17320      2165     0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    0          0        0       0       0       0
~ #

ip link 命令内容解释:参考文献2。

2. CAN参数配置

ip link set can0 down
ip link set can0 type can bitrate 250000 loopback off
ip link set can0 up

说明:

loopback off:关闭回环模式。测试发现关闭后,可以实现CAN设备与外界的收发通信。同时可以实现是发自收,
前提是外接CAN设备(周立功的USB转CAN设备)正常运行。
loopback on:打开回环模式。测试发现打开后,可以实现只发自收,不依赖外部CAN设备,比较奇怪的是使用
cansend发送一次,candump能收到两次,不知道为什么。此时,外部CAN设备与本设备无法进行收发通信。

3. CAN数据收发

  1. CAN数据发送

    使用命令单条发送:cansend can0 12345678#112233
    多条连续发送
    while true
    do
    cansend can0 12345678#112233
    done

  2. CAN数据接收

    candump can0 或 candump can0 &
    其中can0为设备号。

  3. 使用CAN软件进行收发
    可以到周立功官网下载ZCANPRO进行收发测试
    下载地址:USB接口CAN卡

参考资料

参考文献1:ifconfig 使用总结
参考文献2:ip link 命令总结
参考文献3:CAN: From physical layer to application layer and beyond
参考文献4:The CAN wiki pages
参考文献5:CAN Bus

### 回答1: 在Linux下,可以使用多种工具来进行CAN、串口和网口的调试。 1. CAN调试工具: - can-utils:这是一个开源的CAN工具集,提供了多个命令行工具,如cansend、canrecv和cangen等,可以用于发送和接收CAN消息,进行CAN总线的调试和分析。 - can-utils还提供了一些其他功能,如生成统计报告、监听CAN总线等。 2. 串口调试工具: - Minicom:它是一个经典的串口调试工具,可以用于通过串口与设备进行通讯,发送和接收数据,以及进行调试和配置。 - Gtkterm:这是一个简单易用的串口调试工具,支持管理多个串口设备,能够发送和接收数据,以及进行数据的显示和分析。 3. 网口调试工具: - Wireshark:这是一个功能强大的网络协议分析工具,能够捕获和分析网络上的数据包。通过它,你可以监控网口上的数据通信,对数据进行过滤和解码,以帮助你进行网络故障诊断和网络协议分析。 - tcpdump:这是一个命令行工具,能够在终端上实时显示和捕获网络数据包。你可以使用它来监控和分析网口上的数据流量,了解网络通信情况。 以上是在Linux下常用的CAN、串口和网口调试工具,可以根据实际需求选择合适的工具进行调试和分析。 ### 回答2: 在Linux下,可以使用多种调试软件来进行CAN串口和网口的调试。 1. CAN调试软件:CAN适配器是用来连接CAN总线和计算机的设备,其中一种常用的适配器是SocketCAN。SocketCAN是Linux内核提供的CAN子系统,支持多种CAN适配器,并提供了一组工具用于CAN的配置、调试和分析。 其中,candump工具可以用来监控CAN总线上的报文,它会显示CAN报文的ID、数据和时间戳等信息。可以使用以下命令安装SocketCAN: ``` sudo apt-get install can-utils ``` 可以使用以下命令启动candump来监听CAN总线上的报文: ``` candump can0 ``` 此外,cansend工具可以用来向CAN总线发送报文。以下命令可以通过CAN适配器can0发送一个数据为1122的CAN报文: ``` cansend can0 123#1122 ``` 2. 网口调试软件:对于网口调试,常用的工具之一是Wireshark。Wireshark是一个开源的网络封包分析工具,支持Linux、Windows等多个平台。它可以用来对网络上的数据包进行捕获、显示和分析。 可以使用以下命令安装Wireshark: ``` sudo apt-get install wireshark ``` 启动Wireshark后,选择网口(例如eth0或wlan0),点击开始捕获按钮,即可开始捕获网络数据包。 除了Wireshark,还有其他一些命令行工具可用于网口调试,如tcpdump和tshark等。 总结:在Linux下,可以使用SocketCAN工具集来调试CAN串口,使用Wireshark等工具来调试网口。以上提到的工具只是其中的一部分,根据具体需求还可以使用其他工具来满足调试的需要。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值