BLDC驱动器实现485通讯的协议简介 - 图文

更新时间:2023-10-04 05:58:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

BLDC驱动器实现485通讯的协议简介

通讯协议

本驱动器使用MODBUS-RTU(国标GB/T19582-2008)通讯协议进行通讯,支持一主站控制多个从站,通过拨码开关可以配置128个从站地址,主站可以是单片机、PLC或PC机等。关于从站地址的配置见错误!未找到引用源。小节。

1.1 通讯参数

电位器/模拟信号控制方式时,串口波特率9600bps固定,数据位8,偶校验,停止位1;从站地址固定为0x01;

串口通讯控制方式时,波特率默认为9600bps,数据位8,偶校验,停止位1;波特率可配置范围1200-115200bps,数据位固定为8位,校验方式可配置为奇校验、偶校验或无校验,当为奇、偶校验时停止位为1位,无校验时停止位为2;从站地址由拨码开关1 – 7位设定。

每个字符使用11个比特位(1启始位,8数据位,1校验位1停止位或无校校验位2停止位);当波特率在19200bps及以下时,字符超时时间为1.5个字符间隔;19200bps以上时,超时时间为0.75ms;当发生字符超时时,之前接收到的数据将被视为无效。

1.2 MODBUS-RTU帧格式

本驱动器支持MODBUS的0x03(读保持寄存器)、0x06(写单个寄存器)、0x10(写多个寄存器)和0x2B(读设备识别码)功能码。

1.2.1 0x03 读保持寄存器

1

主站发送:

字节 内容 1 ADR 2 0x03 3 起始寄存器高字节 4 起始寄存器低字节 5 寄存器数高字节 6 寄存器数低字节 7 CRC低字节 8 CRC 高字节 第1字节 ADR: 从站地址码(=001~254) 第2字节 0x03: 读寄存器值功能码 第3、4字节: 要读的寄存器开始地址 第5、6字节: 要读的寄存器数量

第7、8字节: 从字节1到6的CRC16校验和

从站回送: 字节 1 2 3 4、5 6、7 内容 ADR 0x03 字节总数 寄存器数据1 寄存器数据2 … M-1、M 寄存器数据M M+1 CRC低字节 M+2 CRC高字节 第1字节ADR: 从站地址码(=001~254) 第2字节 0x03: 返回读功能码 第3字节: 从4到M(包括4及M)的字节总数 第4到M字节: 寄存器数据

第M+1、M+2字节: 从字节1到M的CRC16校验和 当从站接收错误时,从站回送:

字节 内容 1 ADR 2 0x83 3 异常码 4 CRC低字节 5 CRC高字节 第1字节 ADR: 从站地址码(=001~254) 第2字节 0x83: 读寄存器值出错 第3字节 异常码:见1.2.4小节

第4、5字节: 从字节1到3的CRC16校验和

1.2.2 0x06 写单个寄存器

主站发送: 字节 1 内容 ADR 2 0x06 3 寄存器高字节地址 4 寄存器低字节地址 5 数据高字节 6 数据低字节 7 CRC码低字节 8 CRC码高字节 当从站接收正确时,从站回送: 字节 1 2 3 内容 ADR 0x06 寄存器高字节地址 4 寄存器低字节地址 5 数据高字节 6 数据低字节 7 CRC码低字节 8 CRC码高字节

当从站接收错误时,从站回送:

字节 内容 1 ADR 2 0x86 3 异常码 4 CRC低字节 5 CRC高字节 第1字节 ADR: 从站地址码(=001~254)

2

第2字节 0x86: 写寄存器值出错功能码 第3字节 异常码:见1.2.4小节

第4、5字节:从字节1到3的CRC16校验和

1.2.3 0x10 写多个寄存器值

主站发送: 字节 1 内容 ADR 2 0x10 3 起始寄存器高字节地址 4 起始寄存器低字节地址 5 寄存器数量高字节 6 寄存器数量低字节 7 数据字节总数 字节 内容 8,9 寄存器数据1 10,11 寄存器数据2 N,N+1 寄存器数据M N+2 CRC码低字节 N+3 CRC码低字节 当从站接收正确时,从站回送: 字节 1 2 3 内容 ADR 0x10 寄存器高字节地址 4 寄存器低字节地址 5 寄存器数量高字节 6 寄存器数量低字节 7 CRC码低字节 8 CRC码高字节 当从站接收错误时,从站回送: 字节 1 2 3 内容 ADR 0x90 异常码 4 CRC低字节 5 CRC高字节 第1字节 ADR: 从站地址码(=001~254) 第2字节 0x90: 写寄存器值出错 第3字节 异常码:见1.2.4小节

第4、5字节:从字节1到3的CRC16校验和

1.2.4 错误异常码

1. MODBUS异常码

表 0.1 MODBUS异常码表

异常码 0x01 0x02 0x03 0x04 0x05 0x06 0x08 0x0A

3

含义 非法功能码 非法数据地址 非法数据值 从站设备故障 请求已被确认,但需要较长时间来处理请求 从设备忙 存储奇偶性差错 不可用的网关

0x0B 网关目标设备响应失败 1. 扩展异常码

表 0.2 扩展异常码表 异常码 0x40 0x60 0xff 含义 禁止操作 尚未学习电机相序 未定义错误 1.3 寄存器定义

1.3.1 设备描述信息寄存器

寄存器地址 0x0000 0x0001 0x0002 | 0x0009 0x000A 0x000B 0x000C 0x000D 0x000E 0x000F PWM分辨率的倒数 PWM频率 最大输出电流 电流分辨率 保留 保留 0x03 0x03 0x03 0x03 0x03 0x03 单位为Hz 数值乘以0.01为电流值,单位为A。 单位为mA 设备名称 0x03 以’\\0’结束的字符串 描述 设备标识 设备版本号 取值范围 支持功能码 0x03 0x03 副版本号。 备注 高字节为主版本号,低字节为1.3.2 实时状态寄存器

寄存器地址 0x0020 0x0021 描述 实时PWM 实时电流 取值范围 0~1000 0~700 支持功能码 0x03 0x03 备注 数值乘以0.1%为占空比 数值乘以0.01为电流值,单位为A。 当0x0035寄存器为1时,数值即为换向频率;当0x00350x0022 实时换向频率(转速) -32768~32767 寄存器为0时,数值乘以0.10x03 为换向频率;单位为Hz;换向频率除以电机极个数再乘以30为电机转速,单位RPM。 0x0023 0x0024 0x0025 0x0026

位置控制完成状态 电机实时位置高半字 电机实时位置低半字 剩余完成时间高半字 0, 1 -2147483648~2147483647 0~4

0x03 单位为ms 0x03 电机换向脉冲数 0x03 0:未完成 1:完成

0x0027 0x0028 0x0029 0x002a 0x002b 0x002c 0x002d 0x002e 0x002f 0x0030 0x0031 剩余完成时间低半字 IN1电压 IN2电压 IN3电压 差分电压 SQ1电平 SQ2电平 IN1输入占空比 IN1输入频率 IN1输入脉冲高半字 IN1输入脉冲低半字 4294967295 0~3300 0~3300 0~3300 -3300~3300 0,1 0,1 0~1000 0~100000 -2147483648~2147483647 0:未堵转 0, 1, 2 0x03 1:正转堵转停止 2:反转堵转停止 0:无错误 1:尚未学习 0x03 输入脉冲个数 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 单位为mV 单位为mV 单位为mV 单位为mV 0:低电平 1:高电平 0:低电平 1:高电平 数值乘以0.1%为占空比 单位为Hz 0x0032 堵转状态 0x0033 错误状态 0, 1, 2, 3, 4 0x03 2:堵转停止 3:霍尔错误 4:无法达到目标速度 当0x0035寄存器为1时,数值乘以10为转速;当0x0035寄存器为0时,数值即为转速;单位为RPM。 注:需先通过0x0073和0x0074寄存器配置正确的电机极个数和减速比,读取的转速才正确。 0x0034 电机转速 0~65535 0x03 0x0035 转速是否需要乘以10 0, 1 0x03 1.3.3 速度控制寄存器

寄存器地址 描述 取值范围 支持功能码 备注 0:正常停止 0x0040 0x0041 0x0042 停止 保留 设定占空比 设定速度闭环控制目标速度(换向频率) 设定位置闭环控制行走速度(换向频率) 设定位置闭环控制类型 0, 1, 2 -1000~1000 0x06 不能访问 0x06 1:紧急制动 2:自由停止 数值乘以0.1%为目标占空比 数值乘以0.1为目标换向频率,单位为Hz 数值乘以0.1为目标换向频率,单位为Hz 0:绝对位置 1:相对位置 0x0043 0x0044 0x0045

-32768~32767 -32768~32767 0, 1 5

0x06 0x06 0x06

本文来源:https://www.bwwdw.com/article/iabd.html

Top