0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【EsDA应用】如何用5分钟快速建立CAN通信

AGk5_ZLG_zhiyua 来源:未知 2023-07-17 14:45 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

CAN总线的高可靠性、高性能等优点使其在工业测控以及工业自动化等领域中被大量广泛使用。本文基于EsDA开发平台,为您简单介绍如何用5分钟快速建立CAN通信1a7ceeb2-246d-11ee-962d-dac502259ad0.jpg  简介

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节点。 1a938a14-246d-11ee-962d-dac502259ad0.jpg前期准备若是刚开始接触EsDA,可先阅读EsDA其他系列文章,从零开始搭建环境和掌握基本开发流程,已有基础的可以跳过:
  • EsDAMPC-ZC1入门(一)——软件安装

  • EsDAMPC-ZC1入门(二)——LED控制

  • 【EsDA应用】5分钟实现一个串口通信业务

1. 硬件准备

1.1 准备一个USBCANFD-200U接口卡,并在PC上下载并安装ZCANPRO的上位机软件。

1aa83478-246d-11ee-962d-dac502259ad0.png

1.2 准备EPC6450-AWI开发板,并按照下图所示连接好硬件。1ac40bb2-246d-11ee-962d-dac502259ad0.jpg将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 属性

1b0ee16e-246d-11ee-962d-dac502259ad0.png

  • 端口(port):设备端口路径,用于系统打开设备;
  • CAN控制器类型(can_type):设置CAN控制器类型。值为0表示CAN;值为1表示CANFD;
  • 非标准ISO模式(non_iso_mode):开启/关闭非标准ISO模式。值为0表示关闭;值为1表示开启;
  • 仲裁域波特率(nominal_bps):设置仲裁域波特率,单位是bps,值域是0~1000000;
  • 仲裁域采样点精确的分子值(nominal_spf):设置仲裁域采样点精确的分子值,采样点用分数来表示,如需要将采样点设置为87.5%,则设置采样点的分母为1000,分子为875即可。因硬件原因可能导致不能精确地配置采样点,增加了两个分子值来表示范围。值域是0~10240;
  • 仲裁域采样点最小的分子值(nominal_spf_min):设置仲裁域采样点最小分子值,值域是0~10240;
  • 仲裁域采样点最大的分子值(nominal_spf_max):设置仲裁域采样点最大分子值,值域是0~10240;
  • 仲裁域采样点分母值(nominal_spd):设置仲裁域采样点分母值,值域是0~10240数据域波特率(data_bps):设置数据域波特率,值域是0~5000000;
  • 数据域采样点精确的分子值(data_spf):设置数据域采样点精确的分子值,采样点用分数来表示,如需要将采样点设置为87.5%,则设置采样点的分母为1000,分子为875即可。因硬件原因可能导致不能精确地配置采样点,增加了两个分子值来表示范围。值域是0~10240;
  • 数据域采样点最小的分子值(data_spf_min):设置数据域采样点最小的分子值。值域是0~10240;
  • 数据域采样点最大的分子值(data_spf_max):设置数据域采样点最大的分子值。值域是0~10240;
  • 数据域采样点分母值(data_spd):数据域采样点分母值。值域是0~10240;
  • 滤波器使能(filter_enable):开启/关闭滤波器。值为0表示关闭;值为1表示开启;
  • 滤波表(filter_table):滤波表,滤波表采用json数组的形式设置,最大支持32条,符合滤波表条件的报文将被接收,不符合的报文会被过滤,但错误报文不会被过滤。滤波表格式如下:id表示报文ID;msk表示ID掩码,ID掩码部分相同的报文将被接收;recv_std表示是否接收标准帧;recv_ext表示是否接收扩展帧;recv_data表示是否接收数据帧;recv_rmt:是否接收远程帧。
* 配置节点(config类型)只存在节点属性,不具备输入输出功能。2.2 canfd_in2.2.1 属性

1b35b9b0-246d-11ee-962d-dac502259ad0.png

  • 名称(name):节点名称,用于索引查找本节点;
  • 显示名称(displayName):用于画布上显示的名称;
  • 关联配置(config):绑定一个canfd的配置节点。
2.2.2 输出
  • payload:CAN报文,1-8字节为时间戳,9-12字节为ID,13-14字节为报文标志位【位0:发送帧标志(单次发送)。位1:CANFD帧标志,位2:远程帧标志,位3:扩展帧标志,位4:错误帧标志,位5:转换可变速率,位6:错误状态指示(0:被动错误,1:主动错误)】,15-16字节为通道号(低5位)和数据长度(高11位),17字节到末尾为报文数据;
  • payloadLength:负载长度。
* pump类型节点通常不具备数据输入。2.3 canfd_out2.3.1 属性1b5a296c-246d-11ee-962d-dac502259ad0.png
  • 名称(name):节点名称,用于索引查找本节点;
  • 显示名称(displayName):用于画布上显示的名称;
  • 关联配置(config):绑定一个canfd的配置节点。
2.3.2输入
  • payload:CAN报文,1-8字节为时间戳,9-12字节为ID,13-14字节为报文标志位【位0:发送帧标志(单次发送),位1:CANFD帧标志,位2:远程帧标志,位3:扩展帧标志,位4:错误帧标志,位5:转换可变速率,位6:错误状态指示(0:被动错误,1:主动错误)】,15-16字节为通道号(低5位)和数据长度(高11位),17字节到末尾为报文数据;
  • payloadLength:负载长度。
* sink类型节点通常不具备数据输出。 1a7ceeb2-246d-11ee-962d-dac502259ad0.jpg  业务处理本应用主要通过USBCANFD-200U接口卡将PC与接入CAN网络的EPC6450-AWI开发板进行数据收发,具体实现如下:

1. 添加节点并连线

本实验主要执行两个步骤:

  • EPC6450-AWI开发板上的CAN_0通过CAN通信协议,canfd_out节点定时向USBCANFD-200U接口卡发送0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,八个字节的数据,发送数据可在PC上的工具ZCANPRO上查看。
  • PC上的工具ZCANPRO通过CAN总线通信协议定时发送0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77八个字节的数据,EPC6450-AWI开发板上通过canfd_in这个节点去接收数据,并通过log最终打印可查看。
采用的节点有timer,fscript,canfd_out,canfd_in,fscript和log节点。1ba3a8c6-246d-11ee-962d-dac502259ad0.png2. 配置节点双击timer节点,设置canfd_out节点发送数据的定时时间。双击canfd_out节点的前驱节点fscript,结合2.2关于canfd_out节点的介绍可知canfd_out节点有两个输入参数:payload;payloadLength。一个传递通信数据内容,一个传递通信数据长度,内容如下:

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_out和canfd_in节点,并点击配置节点名旁边的铅笔图标去配置canfd的属性。1bc8bf08-246d-11ee-962d-dac502259ad0.png因为canfd_in和canfd_out节点的配置节点都是同一个,所以配置信息一致。根据2.2中对配置节点canfd的属性介绍,配置如下:

1b0ee16e-246d-11ee-962d-dac502259ad0.png

双击canfd_in的消费者节点fscript,根据2.2节点介绍中对canfd_in的输出参数描述,fscript的内容如下:

data_str="data:"
len=msg.payloadLength
rbuf=rbuffer_create(msg.payload,msg.payloadLength)
for(vari=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和端口号。点击流图下载,显示下载流图成功即可。1bfa84d4-246d-11ee-962d-dac502259ad0.jpg打开上位机ZCANPRO并开启对应的通道号,将波特率等参数选择与流图上的canfd配置节点参数同步一致。上位机CAN视图可以查看从上位机发送出去的数据和接收到的数据如下。1c217148-246d-11ee-962d-dac502259ad0.jpg根据流图中log节点的打印信息可知:数据内容和长度与上位机发送的数据是一致的。1c57fe52-246d-11ee-962d-dac502259ad0.jpg综上测试结果可知:实验效果已达成。

1a938a14-246d-11ee-962d-dac502259ad0.jpg技术交流长按识别如下二维码可加入“EsDA嵌入式系统设计自动化交流群”,与志同道合的朋友交流,并有专业技术人员为您答疑解惑,如有问题可以咨询小致微信zlgmcu-888。1c9a77d2-246d-11ee-962d-dac502259ad0.png  


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

    关注

    13

    文章

    423

    浏览量

    32649

原文标题:【EsDA应用】如何用5分钟快速建立CAN通信

文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    EsDA 科普 | 一文读懂嵌入式开发的“全家桶”方案

    在工业4.0与AI浪潮交汇的今天,嵌入式软件开发正面临前所未有的复杂度挑战。如何降低门槛、提升效率、实现一站式交付?EsDA给出了系统化的答案。本文将带您快速了解这一嵌入式与工业自动化领域的核心工具
    的头像 发表于 03-18 11:37 314次阅读
    <b class='flag-5'>EsDA</b> 科普 | 一文读懂嵌入式开发的“全家桶”方案

    虹科答疑 | 如何快速上手CAN诊断仪?10分钟从开机到实战

    CAN总线通信的稳定运行直接影响设备性能——而排查总线故障、解析报文数据,往往需要一款兼顾专业性与易用性的诊断工具。本期虹科答疑,我们将介绍一款备受客户信赖的手持式诊断仪——虹科
    的头像 发表于 02-11 17:01 717次阅读
    虹科答疑 | 如何<b class='flag-5'>快速</b>上手<b class='flag-5'>CAN</b>诊断仪?10<b class='flag-5'>分钟</b>从开机到实战

    接口保护ESD选择解决方案

    ESDSRVLC05-4 封装:SOT23-6L 器件:ESD5V0K5 封装:SOT-363 器件:ESD5V0J4 封装: SOT-353 (保护地与信号地间距大于0.0254mm) 2
    的头像 发表于 11-28 17:16 1916次阅读
    接口保护<b class='flag-5'>ESD</b>选择解决方案

    极简XXTEA加密解密:5分钟代码速学!

    XXTEA加密解密的极简实现方法来了!只需5分钟,跟着本文的代码示例学习,你就能快速掌握加密与解密的核心技巧,轻松应用到项目中。 XXTEA (eXtended eXtended Tiny
    的头像 发表于 11-12 14:49 468次阅读
    极简XXTEA加密解密:<b class='flag-5'>5</b><b class='flag-5'>分钟</b>代码速学!

    无线充电25w:30分钟满血复活

    25W无线充电提升充电速度,实现30分钟补电,提升用户体验,推动无线充电技术发展。
    的头像 发表于 10-21 08:31 1422次阅读
    无线充电25w:30<b class='flag-5'>分钟</b>满血复活

    ESDA5WY车规级单向ESD保护器件技术解析与应用指南

    STMicroelectronics ESDA5WY车用双路单向ESD保护是一款车用单向瞬态电压抑制器 (TVS),设计用于恶劣环境。TVS可保护敏感电子产品免受因电气过应力 (EOS)、雷电浪涌和ESD造成的损坏或闩锁,而不会
    的头像 发表于 10-17 18:27 1505次阅读
    <b class='flag-5'>ESDA5</b>WY车规级单向<b class='flag-5'>ESD</b>保护器件技术解析与应用指南

    CAN通信原理及在消防领域中的应用#三格电子

    CAN通信
    三格电子科技
    发布于 :2025年09月12日 11:00:20

    silex希来科CAN通信的无线化解决方案

    silex希来科CAN通信的无线化解决方案
    的头像 发表于 08-27 15:07 855次阅读
    silex希来科<b class='flag-5'>CAN</b><b class='flag-5'>通信</b>的无线化解决方案

    120Ω的秘密:CAN总线终端电阻的重要性

    末端的电阻。此电阻虽小,但在CAN总线通信中具有十重要的作用。CAN总线终端电阻的作用主要有两个方面:1.提高抗干扰能力,确保总线快速进入
    的头像 发表于 08-08 11:35 1461次阅读
    120Ω的秘密:<b class='flag-5'>CAN</b>总线终端电阻的重要性

    新一代PLC控制软件平台EsDA-AWStudio

    在工业自动化和智能制造领域,高效的软件平台是提升开发效率和系统性能的关键。ZLG致远电子推出的EsDA-AWStudio平台,凭借其强大的功能和灵活的设计,为工业控制和物联网应用提供了全新的解决方案
    的头像 发表于 07-28 11:33 608次阅读
    新一代PLC控制软件平台<b class='flag-5'>EsDA</b>-AWStudio

    储能BMS通信“卡壳”?CAN转EtherCAT让电池数据“跑起来”

    提升至±2%以内。 技术硬核:通信转换的“三板斧” 1. 数据“翻译”的门道 CAN的8字节数据帧如何适配EtherCAT的PDO?通过网关配置工具建立映射表,把电池温度、电压等信号按优先级“打包
    发表于 07-18 15:32

    CAN总线通信异常频发?CANBridge+帮您快速搞定!

    CAN总线通信现场,工程师们常常遇到这样的难题:实验室测试一切正常,但一到现场就频繁出现错误帧,通信异常不断,排查起来既耗时又费力,令人头疼不已。别担心,ZLG致远电子的CANBridge+
    的头像 发表于 07-14 11:38 785次阅读
    <b class='flag-5'>CAN</b>总线<b class='flag-5'>通信</b>异常频发?CANBridge+帮您<b class='flag-5'>快速</b>搞定!

    ESD保护器件LESD5Z5.0C系列规格书

    LESD3Z5.0C器件专为保护电压敏感元件免受静电放电(ESD)和瞬态电压事件影响而设计。其出色的钳位能力、低漏电流和快速响应时间,使这些部件成为电路板空间受限设计中理想的ESD保护
    发表于 07-07 17:06 0次下载

    何用泰克MSO5系列混合信号示波器调试IoT和CAN总线

    随着物联网(IoT)技术的快速发展,设备之间的通信协议变得愈发复杂。CAN(Controller Area Network)总线作为一种可靠、高效的串行通信协议,广泛应用于汽车、工业控
    的头像 发表于 05-30 14:17 1027次阅读
    如<b class='flag-5'>何用</b>泰克MSO<b class='flag-5'>5</b>系列混合信号示波器调试IoT和<b class='flag-5'>CAN</b>总线

    CAN XL是什么?2分钟看懂下一代车载网络#CANXL #CANoe #CAN

    CAN
    北汇信息POLELINK
    发布于 :2025年04月28日 17:33:05