PICO-MAGIX通讯协议(初稿)
作者:互联网
第一章:综述
PICO_MAGIX通讯协议文件是总括上位机和下位机定义的通讯方式,所有的通讯指令都在本文件中包括。
-
本协议参考MODBUS协议进行编写。
-
本协议软件参考木南协议进行编写。
https://github.com/foxclever/Modbus
-
本协议参考GESHE测控大师软件编写。
-
本协议参考“中国电光MODBUS3.0 馈电开关”编写。
第二章:通讯协议总括
本章将总括使用的ModBus-RTU通讯协议。
各指令对应的地址说明
1.读单个线圈01命令(起始地址:00H)
线圈起始地址 | 位功能定义 | 事件代码(HEX) |
---|---|---|
00H | 设备停止状态 | —— |
01H | 设备运行状态 | —— |
02H | 备用 | —— |
03H | 备用 | —— |
04H | 备用 | —— |
05H | 备用 | —— |
06H | 备用 | —— |
07H | 备用 | —— |
08H | 备用 | —— |
09H | 备用 | —— |
0AH | 备用 | —— |
0BH | 备用 | —— |
0CH | 备用 | —— |
0DH | 备用 | —— |
0FH | 备用 | —— |
10H | 灯带运行状态(启动:1,停止:0) | |
11H | 灯带剧场模式(开启:1,关闭:0) | |
12H | 灯带彩虹模式(开启:1,关闭:0) | |
13H | 灯带测试模式(开启:1,关闭:0) | |
2.写单个线圈05命令(起始地址:100H)
线圈起始地址 | 位功能定义 | 事件代码(HEX) |
---|---|---|
100H | 灯带运行(启动:1,停止:0) | —— |
101H | 灯带剧场打开(开启:1,关闭:0) | —— |
102H | 灯带彩虹打开(开启:1,关闭:0) | —— |
103H | 灯带测试打开(开启:1,关闭:0) | —— |
104H | 读AL6180读写寄存器 | —— |
105H | 写AL6180读写寄存器 | —— |
106H | 读AL6180结果寄存器 | —— |
107H | —— | |
108H | —— | |
109H | —— | |
0AH | —— | |
0BH | —— | |
0CH | —— | |
0DH | —— | |
0FH | —— | |
10H | ||
11H | ||
12H | ||
13H | ||
3.读多路寄存器03命令(起始地址:00H)——模拟量
寄存器起始地址 | 功能定义 | 系数 |
---|---|---|
00H | 备用 | —— |
01H | 备用 | —— |
02H | 备用 | —— |
03H | 备用 | —— |
04H | 备用 | —— |
05H | 备用 | —— |
06H | 备用 | —— |
07H | 备用 | —— |
08H | 备用 | —— |
09H | 备用 | —— |
0AH | 系统电压 | 0.01 |
0BH | 气体浓度 | 1 |
0CH | 光强 | 1 |
0DH | 温度 | 0.01 |
0EH | 湿度 | 0.01 |
0FH | 距离 | 1 |
10H | ||
11H | ||
12H | ||
13H | ||
4.读多路寄存器03命令(起始地址:30H)——定制参数
序号 | 寄存器起始地址 | 功能定义 | 备注 |
---|---|---|---|
1 | 30H | Model_id | 实际8位无符号,复位后为0xb4 |
2 | 31H | Model_Rev_Major | 实际8位无符号,复位后为0x1,值有效范围0~7 |
3 | 32H | Model_Rev_Minor | 实际8位无符号,复位后为0x3,值有效范围0~7 |
4 | 33H | Module_Rev_Major | 实际8位无符号,复位后为0x1,值有效范围0~7 |
5 | 34H | Module_Rev_Minor | 实际8位无符号,复位后为0x2,值有效范围0~7 |
6 | 35H | Date_Hi | 实际8位无符号,高4位为年,低4位为月 |
7 | 36H | Date_Lo | 实际8位无符号,高4位为日,低4位为脉冲数 |
8 | 37H | Id_Time | 实际16位无符号,时间 = 寄存器值 *2 |
9 | 38H | Mode_GPIO0 | 实际8位无符号,复位后为0x60 |
10 | 39H | Mode_GPIO1 | 实际8位无符号,复位后为0x20 |
11 | 3AH | History_Ctrl | 实际8位无符号,复位后为0x0 |
12 | 3BH | Interrupt_Config_GPIO | 实际8位无符号,复位后为0x0 |
13 | 3CH | Interrupt_Clear | 实际8位无符号,复位后为0x0 |
14 | 3DH | Fresh_Out_Of_Reset | 实际8位无符号,复位后为0x1 |
15 | 3EH | Grouped_Para_Hold | 实际8位无符号,复位后为0x0 |
16 | 3FH | Range_start | 实际8位无符号,复位后为0x0 |
17 | 40H | Range_Thresh_High | 实际8位无符号,复位后为0xFF |
18 | 41H | Range_Thresh_Low | 实际8位无符号,复位后为0x0 |
19 | 42H | Range_InterMeasurement_Period | 实际8位无符号,复位后为0xFF |
20 | 43H | Range_Max_ConverGence_Time | 实际8位无符号,复位后为0x31 |
21 | 44H | Range_CrossTalk_Compensation_Rate | 实际16位无符号,复位后为0x0 |
22 | 45H | Range_CrossTalk_Valid_Height | 实际8位无符号,复位后为0x14 |
23 | 46H | Range_Early_ConverGence_Estimate | 实际16位无符号,复位后为0x0 |
24 | 47H | Range_Part_To_Part_Range_Offset | 实际8位无符号,复位后为0xYY |
25 | 48H | Range_Ignore_Valid_Height | 实际8位无符号,复位后为0x0 |
26 | 49H | Range_Ingore_Threshold | 实际16位无符号,复位后为0x0 |
27 | 4AH | Range_Max_Ambient_Level_Mult | 实际8位无符号,复位后为0xA0 |
28 | 4BH | Range_Check_Enables | 实际8位无符号,复位后为0x11 |
29 | 4CH | Range_Vhv_RecalibRate | 实际8位无符号,复位后为0x0 |
30 | 4DH | Range_Vhv_Repeat_Rate | 实际8位无符号,复位后为0x0 |
31 | 4EH | Als_Start | 实际8位无符号,复位后为0x0 |
32 | 4FH | Als_Thresh_High | 实际16位无符号,复位后为0xFFFF |
33 | 50H | Als_Thresh_Low | 实际16位无符号,复位后为0x0 |
34 | 51H | Als_InterMeasurement_Period | 实际8位无符号,复位后为0xFF |
35 | 52H | Als_Analogue_Gain | 实际8位无符号,复位后为0x06 |
36 | 53H | Als_interRation_Period | 实际16位无符号,复位后为0x0 |
37 | 54H | Readout_Averaging_Sample_Period | 实际8位无符号,复位后为0x30 |
38 | 55H | Firmware_bootup | 实际8位无符号,复位后为0x1 |
39 | 56H | Firmaware_Result_Scaler | 实际8位无符号,复位后为0x1 |
40 | 57H | I2C_Slave_Device_Adderss | 实际8位无符号,复位后为0x29 |
41 | 58H | InterLeaved_Mode_Enable | 实际8位无符号,复位后为0x0 |
1 | 59H | Range_Status | 实际8位无符号,复位后为0x01 |
2 | 5AH | Als_Status | 实际8位无符号,复位后为0x01 |
3 | 5BH | Interrupt_Status_GPIO | 实际8位无符号,复位后为0x00 |
4 | 5CH | Als_Value | 实际16位无符号,复位后为0x00 |
5 | 5DH | History_Buffer0 | 实际16位无符号,复位后为0x00 |
6 | 5EH | History_Buffer1 | 实际16位无符号,复位后为0x00 |
7 | 5FH | History_Buffer2 | 实际16位无符号,复位后为0x00 |
8 | 60H | History_Buffer3 | 实际16位无符号,复位后为0x00 |
9 | 61H | History_Buffer4 | 实际16位无符号,复位后为0x00 |
10 | 62H | History_Buffer5 | 实际16位无符号,复位后为0x00 |
11 | 63H | History_Buffer6 | 实际16位无符号,复位后为0x00 |
12 | 64H | History_Buffer7 | 实际16位无符号,复位后为0x00 |
13 | 65H | Range_Value | 实际8位无符号,复位后为0x00 |
14 | 66H | Range_Raw | 实际8位无符号,复位后为0x00 |
15 | 67H | Range_Rerurn_Rate | 实际16位无符号,复位后为0x00 |
16 | 68H | Range_Reference_Rate | 实际16位无符号,复位后为0x00 |
17 | 69H | Range_Return_Signal_Count_H | 实际32位无符号,复位后为0x00 |
18 | 6AH | Range_Return_Signal_Count_L | 实际32位无符号,复位后为0x00 |
19 | 6BH | Range_Reference_Signal_Count_H | 实际32位无符号,复位后为0x00 |
20 | 6CH | Range_Reference_Signal_Count_L | 实际32位无符号,复位后为0x00 |
21 | 6DH | Range_Return_Amb_Count_H | 实际32位无符号,复位后为0x00 |
22 | 6EH | Range_Return_Amb_Count_L | 实际32位无符号,复位后为0x00 |
23 | 6FH | Range_Reference_Amb_Count_H | 实际32位无符号,复位后为0x00 |
24 | 70H | Range_Reference_Amb_Count_L | 实际32位无符号,复位后为0x00 |
25 | 71H | Range_Return_Conv_Time_H | 实际32位无符号,复位后为0x00 |
26 | 72H | Range_Return_Conv_Time_L | 实际32位无符号,复位后为0x00 |
27 | 73H | Range_Reference_Conv_Time_H | 实际32位无符号,复位后为0x00 |
28 | 74H | Range_Reference_Conv_Time_L | 实际32位无符号,复位后为0x00 |
5.写单路寄存器06命令、写多路寄存器10命令(起始地址:30H)——定制参数
序号 | 寄存器起始地址 | 功能定义 | 备注 |
---|---|---|---|
1 | 30H | Model_id | 实际8位无符号,复位后为0xb4 |
2 | 31H | Model_Rev_Major | 实际8位无符号,复位后为0x1,值有效范围0~7 |
3 | 32H | Model_Rev_Minor | 实际8位无符号,复位后为0x3,值有效范围0~7 |
4 | 33H | Module_Rev_Major | 实际8位无符号,复位后为0x1,值有效范围0~7 |
5 | 34H | Module_Rev_Minor | 实际8位无符号,复位后为0x2,值有效范围0~7 |
6 | 35H | Date_Hi | 实际8位无符号,高4位为年,低4位为月 |
7 | 36H | Date_Lo | 实际8位无符号,高4位为日,低4位为脉冲数 |
8 | 37H | Id_Time | 实际16位无符号,时间 = 寄存器值 *2 |
9 | 38H | Mode_GPIO0 | 实际8位无符号,复位后为0x60 |
10 | 39H | Mode_GPIO1 | 实际8位无符号,复位后为0x20 |
11 | 3AH | History_Ctrl | 实际8位无符号,复位后为0x0 |
12 | 3BH | Interrupt_Config_GPIO | 实际8位无符号,复位后为0x0 |
13 | 3CH | Interrupt_Clear | 实际8位无符号,复位后为0x0 |
14 | 3DH | Fresh_Out_Of_Reset | 实际8位无符号,复位后为0x1 |
15 | 3EH | Grouped_Para_Hold | 实际8位无符号,复位后为0x0 |
16 | 3FH | Range_start | 实际8位无符号,复位后为0x0 |
17 | 40H | Range_Thresh_High | 实际8位无符号,复位后为0xFF |
18 | 41H | Range_Thresh_Low | 实际8位无符号,复位后为0x0 |
19 | 42H | Range_InterMeasurement_Period | 实际8位无符号,复位后为0xFF |
20 | 43H | Range_Max_ConverGence_Time | 实际8位无符号,复位后为0x31 |
21 | 44H | Range_CrossTalk_Compensation_Rate | 实际16位无符号,复位后为0x0 |
22 | 45H | Range_CrossTalk_Valid_Height | 实际8位无符号,复位后为0x14 |
23 | 46H | Range_Early_ConverGence_Estimate | 实际16位无符号,复位后为0x0 |
24 | 47H | Range_Part_To_Part_Range_Offset | 实际8位无符号,复位后为0xYY |
25 | 48H | Range_Ignore_Valid_Height | 实际8位无符号,复位后为0x0 |
26 | 49H | Range_Ingore_Threshold | 实际16位无符号,复位后为0x0 |
27 | 4AH | Range_Max_Ambient_Level_Mult | 实际8位无符号,复位后为0xA0 |
28 | 4BH | Range_Check_Enables | 实际8位无符号,复位后为0x11 |
29 | 4CH | Range_Vhv_RecalibRate | 实际8位无符号,复位后为0x0 |
30 | 4DH | Range_Vhv_Repeat_Rate | 实际8位无符号,复位后为0x0 |
31 | 4EH | Als_Start | 实际8位无符号,复位后为0x0 |
32 | 4FH | Als_Thresh_High | 实际16位无符号,复位后为0xFFFF |
33 | 50H | Als_Thresh_Low | 实际16位无符号,复位后为0x0 |
34 | 51H | Als_InterMeasurement_Period | 实际8位无符号,复位后为0xFF |
35 | 52H | Als_Analogue_Gain | 实际8位无符号,复位后为0x06 |
36 | 53H | Als_interRation_Period | 实际16位无符号,复位后为0x0 |
37 | 54H | Readout_Averaging_Sample_Period | 实际8位无符号,复位后为0x30 |
38 | 55H | Firmware_bootup | 实际8位无符号,复位后为0x1 |
39 | 56H | Firmaware_Result_Scaler | 实际8位无符号,复位后为0x1 |
40 | 57H | I2C_Slave_Device_Adderss | 实际8位无符号,复位后为0x29 |
41 | 58H | InterLeaved_Mode_Enable | 实际8位无符号,复位后为0x0 |
标签:符号,复位,初稿,0x0,Range,PICO,16,实际,MAGIX 来源: https://www.cnblogs.com/breakr-yu/p/16025459.html