CAN BUS 测试教程Ⅱ:德承工控机DS-1402在Linux操作系统调试CAN模块的详细教程指南
上期文章分享了如何在windows操作系统中调试Cervoz CAN模块,可参考上期文章:
《CAN BUS 测试教程:德承工控机DS-1402在windows操作系统调试CAN模块的测试步骤》
而在实际工业应用场景中,除了用windows操作系统,也有很多应用是采用Linux系统的,众所周知Linux系统是需要用指令来完成许多操作,相对windows系统来说就稍微复杂些,所以本篇就在原有硬件的基础上,在Linux操作系统中来演示如何测试CAN模块,即使是电脑小白也可以轻松上手。
德承工控机DS-1402在Linux操作系统调试CAN模块的详细教程指南
# 一、硬件配置
工控机型号:德承 Cincoze DS-1402
CPU:Intel® Core® i7-14700
内存:DDR5 5600 MHz 32GB
存储:SSD 1TB
CAN模块:Cervoz MEC-CAN-2814i
Cincoze DS-1402
第 14/13/12 代 Intel Core 系列处理器,高性能且可扩展 PCIe 的强固型嵌入式工控机,支持 2 张 PCI/PCIe 扩展卡
- Intel® 第 14/13/12 代 Raptor Lake-S Refresh / Raptor Lake-S / Alder Lake-S Core™ i9/i7/i5/i3 处理器(功耗达65W)
- 2个DDR5 SO-DIMM插槽,支持ECC/非ECC类型内存,高达5600MHz,64GB
- 2个1GbE LAN和可选的2个10GbE LAN、8个1GbE LAN、8个1GbE M12 LAN
- 2个2.5 英寸SATA存储、3个mSATA插槽、1个NVMe SSD的M.2 key M
- 支持2个PCI/PCIe扩展插槽, 支持最高130W功耗的GPU显卡
- 用于I/O扩展的可选 CMI 模块,用于点火感应和PoE的可选CFM模块
- 宽工作温度 -40°C 至 70°C
- MIL-STD-810G 军用标准和 EN50155轨道交通认证(EN 50121-3-2 only)
- 安全标准:UL、cUL、CB、IEC、EN 62368-1
Cervoz MEC-CAN-2814i
工业级 M.2 PCIe CAN Bus 扩展模块,支持M.2 2242/2260/2280 B+M key,可扩展4个独立的CAN BUS接口
- 单通道(x1)PCI Express,吞吐量高达5.0/2.5GT/s
- 符合PCI Express Rev. 2.0
- 满足ISO 11898高速标准
- CAN总线2.0B EFF向下兼容2.0A SFF
- 支持波特率10/20/50/100/125/250/500/800/1000K
- 支持CAN消息接收过滤器
- 每个端口带隔离2.5kV
二、针脚定义&接线
CAN bus的针脚定义如下图,采用标准的DB9接口,测试时也需准备两个DP9 接口的连接线 ,并需将其中的2、3、7 pin 对接(即2接2、3接3、7接7),若是使用RS-232 测试线进行测试 ,需注意应选择直连线(pin to pin),不可使用交叉线。
三、下载驱动
下载Linux驱动(支援内核版本3.4以上的Linux操作系统)
下载网址:https://www.cervoz.com/products/industrial-canbus-m.2-pcie-expansion-card-MEC-CAN-2814i/detail
四、驱动安装
-
将下载好的驱动文档解压缩之后,存放在需安装驱动的工控机DS-1402的桌面中,本次测试以ubuntu系统为例。
① 打开终端,输入命令
sudo su
② 输入 root 密码后,先进行更新,输入命令
apt-get update
③ 安装gcc及相关程序,输入命令
apt-get install build-essential gcc net-tools can-utils
④ cd 至driver(桌面的驱动文件夹中),再输入命令
make clean ; make ; make install
⑤ 重启,输入命令
reboot
-
查看驱动是否已安装完成,查看CAN的状态,输入命令
ls /sys/class/net/ -al
can0:表示CAN 1,can1:表示CAN 2,以此类推
五、CAN对接测试
-
依照针脚定义备妥测试的连接线,并接至需要测试的CAN接口,安装测试软件
① 打开终端,输入命令
sudo su
② 输入 root 密码后,安装测试软件 : can-utils,输入命令
apt-get install can-utils
-
在已打开的终端中,设置CAN0
设置CAN0,分别依次输入下列命令
点击查看代码
ifconfig can0 down
ip link set can0 type can restart-ms 100
ip link set can0 type can bitrate 250000 sample-point 0.875
ip link set can0 type can berr-reporting on
ifconfig can0 txqueuelen 1000
tc qdisc add dev can0 root handle 1: pfifo
ifconfig can0 up
如图:
第三行命令:ip link set can0 type can bitrate 250000 sample-point 0.875,为测试速度,如要设置其他速度,可参考图示中对应的数值进行更改,如:can bitrate 800000 sample-point 0.800
- 再打开另一个终端,设置CAN1
① 打开终端,输入命令
sudo su
② 输入 root 密码后,设置CAN1,分别依次输入下列命令
点击查看代码
ifconfig can1 down
ip link set can1 type can restart-ms 100
ip link set can1 type can bitrate 250000 sample-point 0.875
ip link set can1 type can berr-reporting on
ifconfig can1 txqueuelen 1000
tc qdisc add dev can1 root handle 1: pfifo
ifconfig can1 up
如图:
- 测试发送接收数据
① 在CAN0 终端窗口,设置发送端(cangen),输入命令
cangen can0 -n 6
② 在CAN1终端窗口,设置接收端(candump),输入命令
candump can1
③ 查看设置为接收端的CAN1终端窗口,是否有收到数据
④ 再重复上述动作,可交换测试CAN的发送端和接收端。
参考网址1:
https://www.cincoze-china.com/goods_info.php?id=462
参考网址2:
https://www.cervoz.com/products/industrial-canbus-m.2-pcie-expansion-card-MEC-CAN-2814i/detail