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

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

3天内不再提示

ZQWL-USBCANFD二次开发通讯协议V1.04

jf_92180065 来源:jf_92180065 作者:jf_92180065 2023-09-28 15:52 次阅读

修订历史:

wKgZomUT5GqAXjPUAACLOR0RhxM428.png

wKgaomUT5I6AL02eAAQucs6g1qE088.png

1.功能介绍

1.1型号说明

本文档适用以下型号:

wKgaomUT5PCAWudrAAMijUsj-es780.png

wKgZomUT5RuAYF3nAAFpgbB-6bc031.png

wKgaomUT5SOAbp64AANlYho4RJo910.png

ZQWL-CAN(FD)系列产品USB通讯采用CDC类实现,可以在PC机上虚拟出一个串口,串口参数N,8,1格式,波特率可以根据需要设置(范围9600~48000000bps),硬件自动匹配。本文档介绍二次开发的参数配置,数据收发等协议。
智嵌物联ZQWL开发的一系列高性能USBCAN(FD)接口卡,具有类型多,安装方式灵活,方便易用,功能强大等特点。接口卡支持XP/Win7/Win10/Win11等操作系统
其中,ZQWL-UCANFD-200U、ZQWL-UCAN-201U、ZQWL-UCANFD-400U、ZQWL-UCAN-401U等型号,CAN(FD)通道均采用电气隔离设计,可以适用于电磁环境恶劣的的场合。

1.2产品特性

● USB接口符合USB2.0高速规范;CAN接口支持 CAN2.0A、B 协议,符合 ISO11898-1 规范;
● CAN和CANFD协议可选;CANFD支持ISO标准和Non-ISO标准;
● 每个通道可以独立设置波特率,系统不仅预置了常用波特率列表,而且支持自定义波特 率;支持的波特率范围:CAN:10Kbps~1Mbps,CANFD:100Kbps~5Mbps;
● 最大流量测试:

wKgZomUT5XGAFA3jAATnGYXODWQ000.png

● 每个通道均有14组硬件滤波器;每组滤波器可以设置滤波ID以及掩码。
● 支持连续循环发送、组发送、定时发送等;
● 支持波特率探测,支持合并相同帧ID,支持总线异常统计,支持收发速率统计;
● 双通道CAN(FD)接口卡支持中继功能;
● 200U、201U、400U、401U的CAN(FD)-bus电路采用DC 2500V电气隔离,具有强大的抗电磁干扰的能力;
● 工作温度:-40~+85℃;

1.3典型应用

● 车载通讯系统、电力通讯系统;
● 煤矿远程通讯;
工业现场控制/;

● 远程监控与数据采集;

2.通讯协议

2.1USB硬件描述符

通过USB的硬件ID(VID和PID)来识别该系列设备,特征如下:

wKgZomUT5hqAAqapAAH1U8dbaME226.png

例如(双通道CANFD类型):

wKgaomUT5jyAWFEyAAGF1q3gY2w542.png

2.2参数配置

每帧数据长度为22字节,十六进制格式:包括2个字节帧头(0x49,0x3B)、1个字节功能码、1个字节读/写标志、16个字节数据和2个字节帧尾(0x45,0x2E):

wKgaomUT5nqAYDuUAAHdSraJ97I842.png

注意:
●当需要读参数,“读/写”填0x52;当需要写参数时,“读/写”填0x57;其中,“设备信息”和“设备序列号”命令只支持读命令(0x52)。
●CAN通道号:取值为0x00~0x03,分别对应CAN0~CAN3;
●自定义波特率标志:0x00为采用“常用波特率码”;0x01为自定义波特率;当为自定义波特率时(CAN3仅支持“常用波特率码”),实际波特率由SJW、TSEG1、TSEG2和BRP计算获得,计算方式:
Baud = 60000000/(SJW+1 + TSEG1+1 + TSEG2+1)/BRP。
其中SJW取值范围:0x00~0x03;
TSEG1取值范围:0x00~0x0F;
TSEG2取值范围:0x00~0x07;
BRP取值范围:1~0x0400,BRP是2字节长度,高字节在前,低字节在后。
采样点计算:SMP=(SJW+1 + TSEG1+1)/(SJW+1 + TSEG1+1 + TSEG2+1)。
●常用波特率码:高4位是仲裁域波特率(CAN),低4位是数据域波特率(CANFD)

仲裁域波特率码对应表:

wKgZomUT5tCAcoacAAErAt5StNI112.png

wKgaomUT5tCAQi9dAADJ6gonhpg172.png

wKgZomUT5vaAJgcHAAA8LnwxHp4660.png

数据域波特率码对应表:

wKgZomUT5xaAT6nKAAG_U0Ewh-A206.png

●滤波器组号:每个通道均有14组硬件滤波器,组号取值范围0~13;
组使能:0x00为禁止该组;0x01为开启该组;注意,设备从0组开始查询该位,遇到一个不为0x01的组时,退出查询,即便是后面再有使能的组也无效。
●滤波器帧类型:0x00为标准帧;0x01为扩展帧;
●滤波验收ID和掩码:
滤波验收ID:用于比对CAN(FD)接收到的帧ID,以确定该帧是否被接收,十六进制。
掩码:用于屏蔽滤波验收ID里的某些位,以确定验收码某些位(bit)是否参与比对(对应位为0不参与比对,为1参与比对),十六进制。
举例1:滤波帧类型选择“标准帧”;“滤波验收ID”填001,“掩码”填7FF;
释义:由于标准帧ID只有11位,滤波验收ID和掩码最后11位有意义, 掩码最后11位全是1,所以滤波验收ID的后11位全部参与比对,因此上述设置可以让帧ID为001的标准帧通过。
举例2:滤波帧类型选择“标准帧”;“滤波验收ID”填010,“过滤屏蔽码”填7F0释义:同例1,标准帧只有11位有效,掩码的最后4位是0,表示滤波验收ID的最后4位不参与对比,因此上述设置可以让帧ID从010到01F的一组标准帧通过。
举例3:滤波帧类型选择“扩展帧”;“滤波验收ID”填00 03 04 01,“掩码”填1F FF FF FF;
释义:扩展帧有29位,掩码的后29位全为1,表示滤波验收ID的后29位全部参与比对,因此上述设置可以让帧ID为00 03 04 01的扩展帧通过。
举例4:滤波帧类型选择“扩展帧”;“滤波验收ID”填00 03 04 00,“掩码”填1F F0 FF FF;
释义:根据上述设置可以让帧ID从00 00 04 00到00 0F 04 00的一组扩展帧通过(注意只是标红色的0到F变化,04 00为固定)。
●系统控制命令
可以通过这个命令实现将设置好的参数写入到设备里(即断电不丢失)。
生效参数:0x00为不生效(断电参数丢失),0x01为生效(保存到flash中,断电不丢失);
系统复位:0x00为系统不复位,0x01为系统复位;
CAN0开关:0x00为关闭CAN0,0x01为开启CAN0;
CAN1开关:0x00为关闭CAN1,0x01为开启CAN1;

举例说明(用串口助手作为上位机):

①读取设备信息
上位机发送(Hex格式):49 3B 40 52 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 2E

wKgZomUT58GAZlmEAAI8UHNtQ3Q295.png

②读取设备序列号
上位机发送(Hex格式):49 3B 41 52 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 2E

wKgZomUT5-CAGG4cAAI3wTgbpqU874.png

③设置CAN参数
设置CAN0参数:仲裁域波特率250kbps,数据域波特率500kbps
上位机发送(Hex格式):49 3B 42 57 00 00 45 00 00 00 00 00 00 00 00 00 00 00 00 00 45 2E

wKgaomUT5_2AdcJKAAL0VfZ1GLo007.png

注意,设置完后,还要发送生效参数并开启CAN0命令:
49 3B 44 57 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 45 2E

wKgaomUT6BmAbVj0AAOvwGg8h40532.png

开启任一CAN通道后,设备开始向上位机发心跳包。

2.3心跳包

根据设备的CAN(FD)的通道数量,心跳包分为2种格式:单双通道设备心跳包和4通道设备心跳包。

2.3.1单双通道心跳包格式

单双通道心跳包为设备向上位机发送的数据包,心跳包长度为17字节,含义如下:

wKgZomUT6IOAd9i9AACsOmczPvw041.png

●功能码为0xFF(注意4通道功能码是0xFE)。
●设备状态:1个字节,定义如下:

wKgaomUT6LCAd6zlAAEF-_Wi6ME316.png

开启标志:0为未开启,1为开启;

总线状态:

00:总线正常;
01:总线警告
10:总线被动错误
11:设备离线(此时已不能再发送CAN(FD)报文)

2.3.24通道心跳包格式

4通道心跳包为设备向上位机发送的数据包,心跳包长度为32字节,含义如下:

wKgaomUT6QyAXN1xAACwI4ZYSDE633.png

●功能码为0xFE(注意单双通道功能码是0xFF)。
●CAN0~1设备状态:1个字节,定义如下:

wKgaomUT6SyANyYCAAEBQ9Je7Jg560.png

●CAN2~3设备状态:1个字节,定义如下:

wKgaomUT6VOAZHU5AAEBpGIunO0460.png

开启标志:0为未开启,1为开启;

总线状态:

00:总线正常;
01:总线警告
10:总线被动错误
11:设备离线(此时已不能再发送CAN(FD)报文)

2.3.3心跳包参数含义

●发送速率:每秒发送的CAN(FD)报文个数。
●接收速率:每秒接收的CAN(FD)报文个数。
●错误计数器:
包括发送错误计数器和接收错误计数器,这些状态直接反映了总线的通畅情况,当接收错误计数器值大于127时,总线几乎已经瘫痪。当出现错误值较高的情况(40以上),表示总线的通讯出现比较严重的阻塞,此时就有必要调整CAN(FD)网络的波特率值或增加CAN(FD)网桥,以提高CAN(FD)总线质量。当总线通信良好时,错误计数器一般都能维持在0。
在没有数据向CAN(FD)发送时,心跳包每隔1秒向上位机发送一次,当有数据向CAN(FD)发送时,设备立即向上位机发送一条心跳包。

2.4CAN(FD)数据收发指令

通过该命令可以实现CAN(FD)报文的发送和接收,报文格式如下:

wKgZomUT6dGAIiAwAAD_u4RzR90177.png

●BYTE0:帧头固定为0x5A;
●BYTE1:帧信息1,包含CAN通道和CAN(FD)报文数据长度DLC;
该字节的每个bit位的含义如下:

wKgZomUT6geAAiimAAEoFsU6Yk0899.png

当为CAN帧时,DLC的取值范围是0~8;
当为CANFD帧时,DLC取值为0~8、12、16、20、24、32、48、64。

注意,BYTE1为0xFF或0XFE时为设备发向上位机的心跳包,接收数据时需要注意。

●BYTE2:帧信息2,包含发送类型、帧格式、帧类型和是否加速等信息,含义定义如下:

wKgZomUT6jqAPDHtAAIedOd9gZs158.png

注意:CAN通道号有3个bit构成,从高位到低位分别是:BYTE2的Bit4、Bit3、BYTE1的Bit7。取值为0x00~0x07,分别对应CAN0~CAN7通道。

正常发送:在ID仲裁丢失或发送出现错误时,CAN控制器会自动重发,直到发送成功,或 发送超时(超时时间1秒),或总线关闭。
单次发送:在一些应用中,允许部分数据丢失,但不能出现传输延迟时,自动重发就没有意 义了。在这些应用中,一般会以固定的时间间隔发送数据,自动重发会导致后面的数据无法发送,出现传输延迟。使用单次发送,仲裁丢失或发送错误,CAN 控制器不会重发报文。
●BYTE3~6:CAN(FD)帧ID,一共4个字节。标准帧时,只有BYTE5~6的低11bit有效;扩展帧时,29bit有效。
注意,BYTE3的最高位(Bit7)是CAN协议类型标志:
0:CAN帧;
1:CANFD帧;
●帧数据:长度为DLC。
●帧尾:一个字节,固定为0xA5
当上位机向设备发送CAN(FD)数据包时,设备收到后会立即返回一条心跳包。

审核编辑 黄宇

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

    关注

    57

    文章

    2690

    浏览量

    463053
  • 通讯协仪
    +关注

    关注

    0

    文章

    8

    浏览量

    6204
收藏 人收藏

    评论

    相关推荐

    什么~FPGA可以自行二次开发了?

    什么!FPGA可以自行二次开发了? 目前市场上的标准采集卡通常不支持用户自行开发FPGA。但因为应用环境的需要,不仅仅只需要单一的数据采集流程,往往还需要在其中嵌入更复杂的运行和分析逻辑。为了解
    的头像 发表于 10-14 15:47 147次阅读
    什么~FPGA可以自行<b class='flag-5'>二次开发</b>了?

    ARMxy ARM工业边缘计算网关带Ubuntu OS支持二次开发

    ARMxy系列工业边缘计算网关,搭载Ubuntu操作系统,不仅提供了强大的数据处理能力,而且通过支持二次开发,为企业提供了定制化解决方案的可能性。本文将深入探讨ARMxy网关的技术特性、Ubuntu
    的头像 发表于 08-19 15:32 291次阅读
    ARMxy ARM工业边缘计算网关带Ubuntu OS支持<b class='flag-5'>二次开发</b>

    条码维码扫码模组,支持二次开发嵌入吗?

    维码扫码模组的技术支持、应用领域及其在二次开发嵌入中的优势和挑战。扫码模组技术支持与应用领域条码维码扫码模组采用了先进的CMOS影像技术和智能图像识别算法,能
    的头像 发表于 08-14 15:44 212次阅读
    条码<b class='flag-5'>二</b>维码扫码模组,支持<b class='flag-5'>二次开发</b>嵌入吗?

    边缘计算智能盒子如何助力HMI设备实现二次开发

    HMI(Human-MachineInterface)又称人机界面,是用户与机器之间交互和通信的媒介。今天带你了解智能盒子如何助力HMI设备实现二次开发?HMI设备被广泛应用在工业自动化中,具有显示
    的头像 发表于 07-10 18:52 365次阅读
    边缘计算智能盒子如何助力HMI设备实现<b class='flag-5'>二次开发</b>?

    5G千兆双核物联网模块 OpenWrt二次开发

    HLK-RM20是海凌科2024年推出的首款路由模块,多端口5G千兆网关,双核ARM处理器,1.3GHz主频,支持Openwrt二次开发。高性能、高速率、低延迟,功能强大,应用广泛。
    的头像 发表于 06-03 14:23 912次阅读
    5G千兆双核物联网模块 OpenWrt<b class='flag-5'>二次开发</b>

    二次谐波和三谐波区别 二次谐波危害没有三谐波大?

    二次谐波和三谐波区别 二次谐波危害没有三谐波大? 在现代电力系统中,谐波问题逐渐引起人们的关注。谐波是指频率是基波频率的倍数的电流或电压成分。
    的头像 发表于 04-08 17:11 4751次阅读

    一文了解二次电源模块的应用技巧!

    二次电源DC/DC模块广泛应用于数据采集、程控设备、仪器仪表、通讯系统和分布式供电系统中,将24V或48V直流变换到所需的2.5V、3.3
    的头像 发表于 02-21 18:17 1430次阅读
    一文了解<b class='flag-5'>二次</b>电源模块的应用技巧!

    二次供水监测设备安装应用

    二次供水泵房的管理上,通常应用二次供水监测系统,辅助管理供水作业,综合监测供水泵站的各项参数,可以及时发现问题并采取相应的措施,保障二次供水的质量和安全性,为水质监测提供有利的数据支持。
    的头像 发表于 02-19 09:59 264次阅读

    个性化定制,提升运营效率:SAP二次开发引领企业数字化转型

    SAP二次开发引领企业数字化转型 随着企业竞争的日益激烈,定制化管理方案成为企业实现差异化竞争的重要工具。SAP作为全球领先的企业管理软件提供商,SAP二次开发服务应运而生,为企业提供个性定制
    的头像 发表于 02-18 13:29 344次阅读

    电力系统一设备和二次设备区别,二次回路的分类

    在电力系统中,一设备是指直接参与电能生产、传输和分配的电气设备,如发电机、变压器、电力电缆等。电力二次设备是指对电力系统一设备进行监视、测量、控制、调节和保护的辅助设备,不直接与电能主电路连接
    的头像 发表于 01-19 10:10 2219次阅读
    电力系统一<b class='flag-5'>次</b>设备和<b class='flag-5'>二次</b>设备区别,<b class='flag-5'>二次</b>回路的分类

    什么是二次回路?二次回路的分类 辨识二次回路

    二次回路是指由二次设备互相连接,构成对一设备进行监测、控制、调节和保护的电气回路。
    的头像 发表于 12-13 15:31 3242次阅读
    什么是<b class='flag-5'>二次</b>回路?<b class='flag-5'>二次</b>回路的分类 辨识<b class='flag-5'>二次</b>回路

    什么是二次回路?二次回路的分类有哪些?二次回路抗干扰措施

    什么是二次回路?二次回路的分类有哪些?二次回路抗干扰措施  二次回路是指将一部分输出信号再次接入系统的输入端形成的回路。其作用是通过对输出信号进行反馈和控制,以调节系统的稳定性、精度和
    的头像 发表于 11-20 15:01 2066次阅读

    二次电池的特征 一电池与二次电池的区别

    二次电池的特征 一电池与二次电池的区别  二次电池,也称为可充电电池或蓄电池,是一种可以充电并多次使用的电池。它们具有许多特征和优点,同时与一
    的头像 发表于 11-17 14:49 2392次阅读

    如何看电气二次回路图?

    在电力系统中,二次回路主要是指对一设备的工况进行监测、控制、调节、保护的二次设备。描述二次回路的图纸称为二次回路图。由于
    发表于 11-07 09:48 948次阅读
    如何看电气<b class='flag-5'>二次</b>回路图?

    「科聪二次开发平台」移动机器人开发,只需3步!

    科聪提供独家二次开发平台,配合各类工具型软件,简单、灵活、快速完成移动机器人开发。随着移动机器人应用场景的持续扩展和整机形态的不断演化,厂商如何快速、高效、成熟地完成移动机器人开发至关重要。然而,在
    的头像 发表于 11-06 10:53 1044次阅读
    「科聪<b class='flag-5'>二次开发</b>平台」移动机器人<b class='flag-5'>开发</b>,只需3步!