[Linux 驱动] CAN测试程序编写

本文介绍了如何在Linux系统中进行CAN总线的配置与测试,包括查看设备状态、设置波特率、使能设备以及验证驱动是否正常。通过示例代码展示了CAN的初始化、读写函数,并提供了主函数的编写思路。
摘要由CSDN通过智能技术生成

CAN在通讯中应用比较广泛,尤其是汽车领域;高端MCU跑Linux系统后,会把CAN归为网络设备,像操作网卡芯片一样去配置和激活,在操作上面会稍微复杂一些。

一、CAN测试
1、查看设备 ifconfig -a

[root@Jack Jack]$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:1
RX packets:0 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:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:19

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:1
RX packets:0 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:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:28

eth0 Link encap:Ethernet HWaddr e0:13:12:16:ba:01
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::e213:12ff:fe16:ba01/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:968 errors:0 dropped:0 overruns:0 frame:0
TX packets:910 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:150759 (147.2 KiB) TX bytes:65359 (63.8 KiB)
Interrupt:25 Base address:0x8000

eth1 Link encap:Ethernet HWaddr e0:13:12:16:ba:02
inet addr:192.168.2.100 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::e213:12ff:fe16:ba02/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:401 errors:0 dropped:0 overruns:0 frame:0
TX packets:154 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:29424 (28.7 KiB) TX bytes:11100 (10.8 KiB)
Interrupt:33 Base address:0xc000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:461 errors:0 dropped:0 overruns:0 frame:0
TX packets:461 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:41988 (41.0 KiB) TX bytes:41988 (41.0 KiB)

sit0 Link encap:UNSPEC HWaddr 00-00-00-00-66-65-31-36-00-00-00-00-00-00-00-00
NOARP MTU:1480 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

2、设置波特率 250K
ip link set can0 type can bitrate 250000

[root@Jack Jack] i p l i n k s e t c a n 0 t y p e c a n b i t r a t e 250000 [ r o o t @ J a c k J a c k ] ip link set can0 type can bitrate 250000 [root@Jack Jack] iplinksetcan0typecanbitrate250000[root@JackJack]

3、查询can设备参数
ip -details link show can0

[root@Jack Jack]$ip -details link show can0
2: 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 (berr-counter tx 0 rx 0) restart-ms 0
bitrate 250000 sample-point 0.833
tq 333 prop-seg 4 phase-seg1 5 phase-seg2 2 sjw 1
at91_can: tseg1 4…16 tseg2 2…8 sjw 1…4 brp 2…128 brp-inc 1
clock 66000000

4、使能CAN0设备
ifconfig can0 up

5、查询工作状态
[root@Jack Jack] i p − d e t a i l s − s t a t i s t i c s l i n k s h o w c a n 02 : c a n 0 : < N O A R P , U P , L O W E R U P , E C H O > m t u 16 q d i s c p f i f o f a s t s t a t e U N K N O W N m o d e D E F A U L T g r o u p d e f a u l t q l e n 10 l i n k / c a n p r o m i s c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值