前言

嵌入式linux下的CAN接口,如何方便地测试验证是一个问题。实际上Linux系统已经自带了测试验证的软件工具。

环境

硬件:NXP IMX6Solox,Kvaser Can Card
软件:嵌入式Linux,串口控制终端,Kvaser CanKing
使用2根线飞出CAN L和CAN H,连接上CAN卡。

操作方法

1. 查找CAN节点

使用ifconfig -a

# ifconfig -a
can0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  NOARP  MTU:16  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:10 RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)Interrupt:30 can1      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  NOARP  MTU:16  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:10 RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)Interrupt:31 eth0      Link encap:Ethernet  HWaddr 72:5B:8C:6D:BF:77  UP BROADCAST MULTICAST  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)lo        Link encap:Local Loopback  inet addr:127.0.0.1  Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)sit0      Link encap:IPv6-in-IPv4  NOARP  MTU:1480  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

如果驱动正常,就能看到can节点(如上图的can0和can1)。

2. 设置can节点

以can0节点为例

ifconfig can0 down
ip link set can0 type can bitrate 500000 triple-sampling on
ifconfig can0 up

3. 查看can节点状态

ip -details link show can0
# ip -details link show can0
2: can0: <NOARP,ECHO> mtu 16 qdisc noop state DOWN mode DEFAULT group default qlen 10link/can  promiscuity 0 can state STOPPED (berr-counter tx 0 rx 0) restart-ms 0 flexcan: tseg1 4..16 tseg2 2..8 sjw 1..4 brp 1..256 brp-inc 1flexcan: dtseg1 1..39 dtseg2 1..8 dsjw 1..8 dbrp 1..1024 dbrp-inc 1clock 30000000 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 

4. 发送接收can消息

发送消息:cansend;

# cansend can0 123#000102030405060708

接收消息: candump

# candump can0can0  001   [8]  01 02 03 04 05 06 07 08can0  001   [8]  01 02 03 04 05 06 07 08can0  001   [8]  01 02 03 04 05 06 07 08can0  001   [8]  01 02 03 04 05 06 07 08

最后

Linux提供了一整套的can的软件工具,极大方便了can的测试验证。

遗留问题

1. Linux系统下的can消息的发送和读取采用的是什么API?

2. Linux系统下的can为什么被设计成这样?

如何测试验证linux下的CAN接口相关推荐

  1. linux支持pci-e硬盘吗,Linux下基于PCI-E接口的固态硬盘驱动设计与实现

    摘要: 随着信息技术的不断发展和创新,特别是自互联网出现以来,人类社会的信息总量每日剧增,呈现爆炸式的增长.人们对信息存储的效率也有了更高的要求,不再满足于单纯的容量提升.固态硬盘作为一个在存储领域刚 ...

  2. linux 服务器 硬盘测试工具,Linux 下的硬盘读写速度测试工具

    Linux 下的硬盘读写速度测试工具 执行一下以下命令看看你服务器的磁盘性能如何. hdparm -Tt /dev/sda 以下是 2块 希捷 ES2 SATA 500G 做 Raid0 的速度 [r ...

  3. linux下测试权限,Linux下进程权限分析

    在linux下,关于文件权限,大部分人接触比较多,也比较熟悉了解.但是对进程权限一般知之甚少.本文总结一下linux系统下进程权限问题和现象. 需要强调的是,本文是linux系统下讨论,因为linux ...

  4. Linux下多路复用IO接口epoll/select/poll的区别

    select比epoll效率差的原因:select是轮询,epoll是触发式的,所以效率高. Select: 1.Socket数量限制:该模式可操作的Socket数由FD_SETSIZE决定,内核默认 ...

  5. linux下修改网卡接口名称

    修改接口名修改接口名: linux@server:~$ vim /etc/udev/rules.d/70-persistent-net.rules 其中: # PCI device 0x10ec:0x ...

  6. python修改linux网卡信息,linux下修改网卡接口名称

    修改接口名修改接口名: linux@server:~$ vim /etc/udev/rules.d/70-persistent-net.rules 其中: # PCI device 0x10ec:0x ...

  7. 【WLAN】【测试】Linux下aircrack-ng的应用之空口抓包全解

    简介 aircrack-ng是一套完整的访问wifi网络安全的套件,主要用于命令行,主要包含以下工具: airmon-ng airodump-ng aireplay-ng aircrack-ng 主要 ...

  8. 汇总:Linux下文件操作接口

    写在前面: 文件描述符: 对于内核而言,所有打开的文件都通过文件描述符引用.文件描述符是一个非负整数.当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符.当读或写一个文件时,使用ope ...

  9. 获取linux下的所有接口名,在Linux中获取所有网络接口名

    在Linux开发中可能会遇到需要对网络接口的处理,此时就需要获取主机上所有的接口名,为了方便获取可以采用if_nameindex函数即可得到每个接口的接口名和接口索引号,需要包含net/if.h头文件 ...

最新文章

  1. PYTHON1.day01
  2. 对人工智能问题的提问
  3. (持续更新)webstorm快捷键及术语翻译
  4. cannot import name 'imresize' from 'scipy.misc'
  5. expect详解及自动登录脚本的实现
  6. 微机原理和计算机组成原理一样吗_计算机组成原理:计算机的层次与编程语言...
  7. android viewpager fragment 生命周期,ViewPager中Fragment的生命周期
  8. 个人使用unity3d过程中遇到的一些小问题集合之有时候在场景中创建光源会有一条虚线...
  9. 最详细的L298N模块使用说明
  10. sqluldr2的介绍
  11. 微机综合保护装置怎么选择?在高压柜中起什么作用?
  12. Hive SQL之表与建表
  13. Tomcat虚拟主机配置示例
  14. markdown 入门 - 这样就够用了
  15. 自己做网站要买服务器,自己做网站要买服务器
  16. Python matplotlib 饼图
  17. Objective-c自学笔记(5)-自动释放池
  18. 【烈日炎炎战后端】MySQL编程(3.6万字)
  19. 4kw机柜无通道封闭CFD模拟分析及优化(下篇) -孙长青
  20. 为什么大家都愿意进入外企?

热门文章

  1. 什么是 Deno,它与 Node.js 有何不同?
  2. Oracle删除用户drop user报错解决方案
  3. 荣耀智慧屏鸿蒙系统评测,荣耀智慧屏体验评测:电视只是小功能,鸿蒙系统才是真亮点...
  4. 重磅!数字人民币接入支付宝!
  5. 深度 | 腾讯 AI Lab副主任俞栋:过去两年基于深度学习的声学模型进展
  6. 解决百度Ueditor编辑器表格不显示边框问题
  7. Go go.mod详解
  8. 胡萝卜的故事 第五篇
  9. 用鼠标按下事件和鼠标松开事件实现长按事件
  10. 【测评】腾讯极光T1投影仪详细使用测评