如何测试验证linux下的CAN接口
生活随笔
收集整理的這篇文章主要介紹了
如何测试验证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 up3. 查看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 655354. 發送接收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接口的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何快速分割多个视频,提取每个原音频单独
- 下一篇: 物联网卡相关知识