探秘EPCM3568A-LI:国产高性能工控机的CAN通信之旅

描述

在工业物联网时代,CAN是一种非常普遍的通信技术。本文将给大家介绍如何使用EPCM3568A-LI边缘计算控制器与上位机实现CAN通信范例。

 

工业物联网  EPCM3568A-LI产品简介EPCM3568A-LI 采用RK3568四核处理器,主频高达2.0GHz,内置1TOPs NPU,作为边缘计算网关,EPCM3568A-LI以其强大的计算能力,轻松高效处理数据,为用户带来更加便捷、智能的能源管理体验。

 

工业物联网  前期准备1. 软件方面

ZCANPRO.exe

下载EPCM3568A-LI开发环境

  • 安装好虚拟机的电脑;
  • MobaXterm虚拟终端。

2. 硬件方面

EPCM3568A-LI小型边缘计算网关;

网线1根 / 交换机1个;

USBCAN-8E-U1个。
 


工业物联网  CAN概述CAN(Controller Area Network,控制器局域网)是一种高可靠性的串行通信协议,专为汽车和工业控制等关键领域设计。它以高可靠性、实时性和出色的抗干扰能力为特点,非常适合在需要精确数据传输的控制系统中使用。

工业物联网

图1 EPCM3568A-LI的CAN接口


 

工业物联网  USBCAN-8E-U介绍

USBCAN-8E-U是致远电子开发的一款基于Linux操作系统的高性能CAN接口卡,其兼容USB2.0全速总线规范,集成1~4路CAN-bus接口,CAN通道集成独立的电气隔离保护电路。接口卡使PC通过USB端口连接至CAN网络,构成一个CAN-bus控制节点。

工业物联网

图2 USBCAN-8E-U

USBCAN-8E-U高性能CAN接口卡是CAN-bus产品开发、CAN-bus数据分析的强大工具;同时、即插即用等特点,也是便携式系统用户的最佳选择。USBCAN-8E-U接口卡上自带电气隔离模块,使接口卡避免由于地环流的损坏,增强系统在恶劣环境中使用的可靠性。
 

USBCAN-8E-U高性能CAN接口卡支持Win2000/XP/7/8/10等操作系统,也支持Linux的操作系统。

在ZLG产品用户手册上有USBCAN-8E-U的具体介绍和用法说明,用户可以自行查阅,


工业物联网  EPCM3568A-LI与上位机的CAN通讯实验本节,我们将利用EPCM3568A-LI的CAN接口(图1)和USBCAN-8E-U(图2),配合上位机模拟CAN通信。操作流程如下:

首先为EPCM3568A-LI接通电源,并通过网线将其与笔记本连接至同一交换机。待系统启动后,使用MobaXterm的SSH登录,IP:192.168.1.136,用户名:zlgmcu,密码:zlgmcu,如图3。

工业物联网

图3 SSH登录EPCM3568A-LI

1. 初始化EPCM3568A-LI的CAN接口在使用Socket CAN之前,需要先设置CAN的波特率,波特率为1000kbps,并激活CAN网络接口。执行如下指令:

  •  
  •  
  •  

sudo ifconfig can0 downsudo ip link set can0 type can bitrate 1000000sudo ifconfig can0 up

完成初始化后,输入如下指令,可以看到如图4所示

  •  

sudo ifconfig can0

工业物联网

图4 can0设备节点

2. 安装CAN 通信测试工具 can-utils

在确保EPCM3568A-LI能够上网的情况下,执行下面指令,安装CAN 通信测试工具 canutils:

  •  

sudo apt install can-utils

安装完后输入sudo can后按TAB键发现多了几个工具,如图5所示:

工业物联网图5 can-utils命令行可执行工具

canutils 工具包内含 5 个独立的程序:canconfig、candump、canecho、cansend、cansequence。这几个程序的功能简述如下:

canbusload:测量CAN总线的负载情况,帮助用户评估CAN总线的性能和稳定性。

canfdtest:测试CAN Flexible Data Rate(CAN FD)总线的工具,用于发送和接收CAN FD数据帧。

canplayer:回放CAN总线数据,模拟将保存的CAN数据文件发送到CAN总线。

cansend:往指定的 CAN 总线接口发送指定的数据。

candump:捕获CAN总线上的数据帧,并将其显示在终端上。

cangen:生成CAN总线数据帧,模拟发送特定的CAN数据。

3. EPCM3568A-LI和USBCAN-8E-U接线

接下来看EPCM3568A-LI的CAN接口,如下所示:

工业物联网

图6 EPCM3568A-LI的CAN接口

USBCAN-8E-U接口卡集成了1~4路CAN通道,可以连接一个CAN-bus网络或者CAN-bus接口的设备,其CAN-bus通道采用标准公头DB9座子引出。DB9的引脚定义如图7所示。

工业物联网图7 DB9 插座的管脚信号定义

用户可以通过选配的DB9OPEN5转换器,将DB9插座的CAN-bus 信号转换至易于连接的5引脚OPEN5连接器,接口说明见图8。

工业物联网图8 DB9OPEN5转换器信号定义

CAN-Bus通讯连接如图9所示。

工业物联网图9 CAN-Bus通讯连接

所以我们将EPCM3568A-LI和USBCAN-8E-U的H、L两两对接,如图10,然后开始实验。

工业物联网

图10 EPCM3568A-LI和USBCAN-8E-U接线

4. 收发实验

4.1 设置上位机ZCANPRO

如图11,启动通道0,并且将波特率设置为1000kbps。

工业物联网

图11 设置上位机ZCANPRO

4.2 EPCM3568A-LI发送CAN数据帧

首先在EPCM3568A-LI执行下面指令查看CAN0的负载情况,如图12所示

  •  

sudo canbusload can0@1000000 -r -t -b -c

工业物联网图12 使用canbusload查看can0负载

可以看到当前CAN0上没有负载。

接下来,EPCM3568A-LI发送CAN数据帧,上位机接收,在ZCANPRO上显示收到的数据。EPCM3568A-LI发送11223344,帧ID为123,输入下面指令:

  •  

cansend can0 123#11223344

上位机收到数据11223344,帧ID来自123,如图13所示:

工业物联网

图13 上位机收到EPCM3568A-LI发送的CAN数据帧

4.3 EPCM3568A-LI接收CAN数据帧

接下来,上位机发送CAN数据帧,EPCM3568A-LI接收并显示在终端上。EPCM3568A-LI设置成接收数据帧模式,输入下面指令:

  •  

candump -ta can0 &

在上位机使用ZCANPRO发送数据00 11 22 33 44 55 66 77,如图14所示:

工业物联网图14 使用ZCANPRO给EPCM3568A-LI发送CAN数据帧

如图,EPCM3568A-LI接收到00 11 22 33 44 55 66 77,来自帧ID:100,如图15所示:

工业物联网

图15 EPCM3568A-LI接收到ZCANPRO发送的数据帧

4.4 使用cangen循环发送CAN数据帧

我们也可以用cangen,这将在CAN0接口上生成8字节数据长度的CAN帧,并且每1000毫秒生成一帧。此外,您也可以根据需要调整其他选项来满足您的测试需求。

  •  

cangen -g 1000 -D r can0

这是EPCM3568A-LI循环发送的数据,如图16所示:

工业物联网图16 在EPCM3568A-LI使用cangen循环发送CAN数据帧

这是上位机接收到的数据,如图17所示:

工业物联网图17 上位机收到EPCM3568A-LI使用cangen循环发送的CAN数据帧从图16和图17中可以看到,EPCM3568A-LI发出的CAN数据帧与上位机收到的数据帧是一样的,本实验实现了EPCM3568A-LI与上位机的CAN通信。

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分