*/voidcan_bus_off(structnet_device*dev) {structcan_priv*priv=netdev_priv(dev);netdev_info(dev,"bus-off\n");netif_carrier_off(dev);//debug时发现该值为0if(priv->restart_ms)schedule_delayed_work(&priv->restart_work,msecs_to_jiffies(priv->restart_ms)); }EXPORT_SYMBOL_GPL(can_bus_of...
对CAN设备的配置,首先需要打开CAN子系统,然后打开CAN设备驱动,其他还包括调试信息等。 Networking support ->CAN bus subsystem support ->Raw CAN Protocol (raw access with CAN-ID filtering)--支持BSD socket API方位CAN总线。 ->Broadcast Manager CAN Protocol (with content filtering)-- ->CAN Gateway/Route...
restart-ms 100 设置总线 bus-off 时延时100ms自动重启; sample-point 0.8 总裁段的采样率80%; dsample-point 0.75 数据段的采样率75%; 然后,保存并且重启! 05.测试环境 根据Linux中CAN资源的配置,将CAN0的波特率配置为500K,标准CAN没什么好多说的。 另一路的CANFD配置就有一点点讲究,除了波特率要配置为仲裁...
(这里也修正一种说法,出于BUS OFF状态的节点就一辈子回不来了,这也是错误的) 6. 了解到这些知识后,ARM LINUX层可以看那些地方加速排查问题呢? 6.1cat /proc/net/can/stats 这个文件记录了can节点的收发情况,还有帧正确率,一个异常的现场看到如下的信息: 69227 transmitted frames (TXF) 14288017 received frames...
sudo apt-get install can-utils 使用应用程序进行测试 发送程序: cansend <can_interface> <can_frame> e.g. cansend can0 123#abcdabcd 接收程序: candump can_interface e.g. candump can1 检测canbus的状态: ip -details -statistics link show can0 ...
Linux 系统中CAN 接口配置 在Linux 系统中, CAN 总线接口设备作为网络设备被系统进行统一管理。在控制台下, CAN 总线的配置和以太网的配置使用相同的命令。 在控制台上输入命令: ifconfig –a 可以得到以下结果: 在上面的结果中, eth0 设备为以太网接口, can0和can1 设备为两个 CAN 总线接口。接下来使用 ip...
ifconfig can0 up 使用下面的命令取消 can0 设备使能: ifconfig can0 down 在设备工作中,可以使用下面的命令来查询工作状态: ip -details -statistics link show can0 Linux 系统中CAN 接口应用程序开发 由于系统将 CAN 设备作为网络设备进行管理,因此在 CAN 总线应用开发方面, Linux 提供了SocketCAN接口,使得 ...
图1 CAN 总线协议的三层协议 (1) 物理层 在物理层中定义实际信号的传输方法,包括位的编码和解码、位的定时和同步等内容,作用是定义不同节点之间根据电气属性如何进行位的实际传输。 在物理连接上,CAN 总线结构提供两个引脚–CANH 和 CANL,总线通过 CANH 和 CANL 之间的差分电压完成信号的位传输。
因为发送错误进入总线busoff状态
re-started bus-errors arbit-lost error-warn error-pass bus-off 0 0 0 0 0 0 RX: bytes packets errors dropped overrun mcast 0 0 0 0 0 0 TX: bytes packets errors dropped carrier collsns 0 0 0 0 0 0 ———– d). FlexCAN接口发送接收测试,下面以Colibri iMX6发送,Apalis iMX6接收为例,...