电子说
CAN是ISO国际标准化的串行通信协议。由于性能高,可靠性高现被广泛应用在汽车,医疗,船舶,工业自动化等其他方面。因为只需要两根线就可在多个设备间进行数据通信所以被广泛使用。本文基于EsDA开发平台,为您简单介绍如何用5分钟快速建立CAN通信。
基本工作原理:通过USBCANFD-200U接口卡实现主板与PC实现CAN(FD)通信。
本应用选用 EPC6450-AWI开发板,USBCANFD-200U接口卡与PC连接,使其能与接入CAN(FD)网络的开发板进行数据收发,USBCANFD不同系列产品支持1~8路CAN(FD)通信,可根据不同需求进行选择,本文采用的200U系列仅支持2路通信。该实验用到了timer,fscript,canfd_out,canfd_in,fscript和log节点。 前期准备若是刚开始接触EsDA,可先阅读EsDA其他系列文章,从零开始搭建环境和掌握基本开发流程,已有基础的可以跳过:EsDA MPC-ZC1 入门(一)—— 软件安装
EsDA MPC-ZC1入门(二)—— LED控制
【EsDA应用】5分钟实现一个串口通信业务
1. 硬件准备
1.1 准备一个USBCANFD-200U接口卡,并在PC上下载并安装ZCANPRO的上位机软件。
1.2 准备EPC6450-AWI开发板,并按照下图所示连接好硬件。将EPC6450-AWI开发板上的CAN_0与USBCANFD-200U随机一路进行连接,并将USBCANFD-200U接口卡的USB2.0连接到PC上,建立好硬件连接。
2. 节点介绍
实现CAN(FD)总线通信,需要使用到canfd相关的AWFlow节点,包括canfd_out,canfd_in和canfd三个节点。
2.1 canfdCANFD通信协议配置节点,属于隐式节点,不会显示在画布中,需要配套相应功能节点一起使用。2.1.1 属性
1. 添加节点并连线
本实验主要执行两个步骤:
buf = wbuffer_create()
wbuffer_write_int8(buf, 202)
wbuffer_write_int8(buf, 150)
wbuffer_write_int8(buf, 9)
wbuffer_write_int8(buf, 124)
wbuffer_write_int8(buf, 0)
wbuffer_write_int8(buf, 0)
wbuffer_write_int8(buf, 0)
wbuffer_write_int8(buf, 0)
wbuffer_write_int8(buf, 17)
wbuffer_write_int8(buf, 1)
wbuffer_write_int8(buf, 0)
wbuffer_write_int8(buf, 0)
wbuffer_write_int8(buf, 0)
wbuffer_write_int8(buf, 0)
wbuffer_write_int8(buf, 0)
wbuffer_write_int8(buf, 1)
wbuffer_write_int8(buf, 0)
wbuffer_write_int8(buf, 1)
wbuffer_write_int8(buf, 2)
wbuffer_write_int8(buf, 3)
wbuffer_write_int8(buf, 4)
wbuffer_write_int8(buf, 5)
wbuffer_write_int8(buf, 6)
wbuffer_write_int8(buf, 7)
msg.payload = wbuffer_get_data(buf)msg.payloadLength = str(24)
双击canfd_in的消费者节点fscript,根据2.2节点介绍中对canfd_in的输出参数描述,fscript的内容如下:
data_str = "data:"
len = msg.payloadLength
rbuf = rbuffer_create(msg.payload, msg.payloadLength)
for (var i = 0; i < len; i = i + 1) {
data = rbuffer_read_uint8(rbuf);
//print("data:" + data)
data_str = data_str + data
if (i < (len - 1)) {
data_str = data_str + ","
}
}
output.payload = data_str
3. 下载验证因为EPC6450-AWI开发板是通过网口去下载流图,所以打开AWFlow_Designer后需要配置目标板IP和端口号。点击流图下载,显示下载流图成功即可。打开上位机ZCANPRO并开启对应的通道号,将波特率等参数选择与流图上的canfd配置节点参数同步一致。上位机CAN视图可以查看从上位机发送出去的数据和接收到的数据如下。根据流图中log节点的打印信息可知:数据内容和长度与上位机发送的数据是一致的。综上测试结果可知:实验效果已达成。技术交流群长按识别如下二维码可加入“EsDA嵌入式系统设计自动化交流群”,与志同道合的朋友交流,并有专业技术人员为您答疑解惑,如有问题可以咨询小致微信:zlgmcu-888。
全部0条评论
快来发表一下你的评论吧 !