[24V小电机驱动器]C型直流变频器说明..(13)
时间:2025-03-10
时间:2025-03-10
读从机响应帧格式:
5.1主机命令或从机响应
5.2命令索引
命令索引即功能码后三位。
例如,设定转速F1.00,其命令索引:0x01(高位命令) + 0x00(低位命令)。
5.3 CRC校验数据
RTU格式的校验码(CRC):
校验和由Address 到Data content 結束。其运算规则如下: 步骤1:令16-bit 暂存器 (CRC 暂存器) = FFFFH.
步骤2:Exclusive OR 第一个8-bit byte 的信息指令与低位元16-bit CRC 暂存器, 做Exclusive OR ,將结果存入CRC 暂存器內。
步骤3:又移一位CRC 暂存器,將0 填入高位元处。
步骤4:拣查右移的值,如果是0, 將步骤3 的新值存入CRC 暂存器內, 否则 Exclusive OR A001H 与CRC 暂存器,將结果存入CRC 暂存器內。 步骤5:重复步骤3~步骤4,將8-bit 全部运算完成。
步骤6:重复步骤2~步骤5,取下一个8-bit 的信息指令,直到所有信息指令运算完成。最后, 得到的CRC 暂存器的值,高低8位交换位置后即是CRC 的校验和。 值得注意的是CRC 的校验和必须交换放置与信息指令的校验码中。 以下為用C语言所写的CRC 校验码示例: unsigned char* data unsigned char length
unsigned int crc_chk(unsigned char* data, unsigned char length) {
int j;
unsigned int tmp_crc;
unsigned int reg_crc=0Xffff; while(length--){ reg_crc ^= *data++; for(j=0;j<8;j++){
if(reg_crc & 0x01){ /* LSB(b0)=1 */
reg_crc=(reg_crc>>1) ^ 0Xa001; }
else{reg_crc=reg_crc >>1;}
上一篇:汽车电动后视镜的结构与控制