如何测试验证linux下的CAN接口
前言
嵌入式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接口相关推荐
- linux支持pci-e硬盘吗,Linux下基于PCI-E接口的固态硬盘驱动设计与实现
摘要: 随着信息技术的不断发展和创新,特别是自互联网出现以来,人类社会的信息总量每日剧增,呈现爆炸式的增长.人们对信息存储的效率也有了更高的要求,不再满足于单纯的容量提升.固态硬盘作为一个在存储领域刚 ...
- linux 服务器 硬盘测试工具,Linux 下的硬盘读写速度测试工具
Linux 下的硬盘读写速度测试工具 执行一下以下命令看看你服务器的磁盘性能如何. hdparm -Tt /dev/sda 以下是 2块 希捷 ES2 SATA 500G 做 Raid0 的速度 [r ...
- linux下测试权限,Linux下进程权限分析
在linux下,关于文件权限,大部分人接触比较多,也比较熟悉了解.但是对进程权限一般知之甚少.本文总结一下linux系统下进程权限问题和现象. 需要强调的是,本文是linux系统下讨论,因为linux ...
- Linux下多路复用IO接口epoll/select/poll的区别
select比epoll效率差的原因:select是轮询,epoll是触发式的,所以效率高. Select: 1.Socket数量限制:该模式可操作的Socket数由FD_SETSIZE决定,内核默认 ...
- linux下修改网卡接口名称
修改接口名修改接口名: linux@server:~$ vim /etc/udev/rules.d/70-persistent-net.rules 其中: # PCI device 0x10ec:0x ...
- python修改linux网卡信息,linux下修改网卡接口名称
修改接口名修改接口名: linux@server:~$ vim /etc/udev/rules.d/70-persistent-net.rules 其中: # PCI device 0x10ec:0x ...
- 【WLAN】【测试】Linux下aircrack-ng的应用之空口抓包全解
简介 aircrack-ng是一套完整的访问wifi网络安全的套件,主要用于命令行,主要包含以下工具: airmon-ng airodump-ng aireplay-ng aircrack-ng 主要 ...
- 汇总:Linux下文件操作接口
写在前面: 文件描述符: 对于内核而言,所有打开的文件都通过文件描述符引用.文件描述符是一个非负整数.当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符.当读或写一个文件时,使用ope ...
- 获取linux下的所有接口名,在Linux中获取所有网络接口名
在Linux开发中可能会遇到需要对网络接口的处理,此时就需要获取主机上所有的接口名,为了方便获取可以采用if_nameindex函数即可得到每个接口的接口名和接口索引号,需要包含net/if.h头文件 ...
最新文章
- PYTHON1.day01
- 对人工智能问题的提问
- (持续更新)webstorm快捷键及术语翻译
- cannot import name 'imresize' from 'scipy.misc'
- expect详解及自动登录脚本的实现
- 微机原理和计算机组成原理一样吗_计算机组成原理:计算机的层次与编程语言...
- android viewpager fragment 生命周期,ViewPager中Fragment的生命周期
- 个人使用unity3d过程中遇到的一些小问题集合之有时候在场景中创建光源会有一条虚线...
- 最详细的L298N模块使用说明
- sqluldr2的介绍
- 微机综合保护装置怎么选择?在高压柜中起什么作用?
- Hive SQL之表与建表
- Tomcat虚拟主机配置示例
- markdown 入门 - 这样就够用了
- 自己做网站要买服务器,自己做网站要买服务器
- Python matplotlib 饼图
- Objective-c自学笔记(5)-自动释放池
- 【烈日炎炎战后端】MySQL编程(3.6万字)
- 4kw机柜无通道封闭CFD模拟分析及优化(下篇) -孙长青
- 为什么大家都愿意进入外企?