CAN 应用
CAN 简介
CAN(Controller Area Network,控制器局域网)是德国博世 1986 年为汽车 ECU 通信开发、后标准化为ISO 11898的多主、半双工、差分串行现场总线, 专注嵌入式场景下高可靠、强实时、抗干扰的设备间短距通信,仅定义物理层 + 数据链路层,无上层网络 / 传输层,协议开销极低。
准备
- 一块犀牛派 A1
- 杜邦线若干
- 一台 Windows 电脑
连接
- 短接犀牛派A1 can0 和 can1
- can0_H 连接can1_H
- can0_L 连接can1_L
| 序号 | 板卡丝印 | GPIO/系统映射 | 描述 |
|---|---|---|---|
| 21 | CAN_H0 | CAN_H1 | 实际对应can1 |
| 22 | CAN_L0 | CAN_L1 | 实际对应can1 |
| 23 | CAN_H1 | CAN_H0 | 实际对应can0 |
| 24 | CAN_L1 | CAN_L0 | 实际对应can0 |
注意
犀牛派A1 板卡丝印上的can0 和can1 与系统指令列出的can0 和can1,并非对应关系,实际对应关系,参考上表
测试
打开 Windows 电脑,在浏览器中输入犀牛派 A1 设备IP:8000,访问到设备web页面,用户名/密码:aidlux/aidlux。
执行如下指令,完成can0 和 can1 配置
shell
# 提权
sudo su
# can1 配置
ip link set can1 down
ip link set can1 up type can bitrate 500000
ip link set can1 up
# can0 配置
ip link set can0 down
ip link set can0 up type can bitrate 500000
ip link set can0 up
# 查询配置
ip --detail link show can0
ip --detail link show can1可以看到如下输出: 
- 执行如下指令,安装 cansend/candump 工具
shell
sudo apt install can-utils- 在web页面中,开启两个终端,执行如下指令:
shell
# 终端1
candump can1
# 终端2
cansend can1 123#1122334455667788
cansend can1 123#11111111可以看到如下输出: 