LoRa点对点系统3 与PC接口
1 通信介质
UART口:115200波特率、8位数据位、1位停止位、无校验。
2 通信模式
设置和读取参数遵循主从方式,PC为主,Node为从。通信由PC发起,Node根据相应的命令进行响应,如下图所示。
当Node接收唤醒通信数据帧时,它以“异步方式”发送给PC,如下图所示。
3 通信帧格式
PC与Node通信帧采用变长格式,如下图所示。大部分设备可以很好地处理以“回车符”结尾的数据帧,因此协议中的Tail等于0x0D(换行符)。
4 通信帧种类
没有额外说明,数据格式均为“大端”,即:4字节整数0x12345678在内存中(自低向高)存储顺序为:0x12、0x34、0x56、0x78。
帧含义 |
Type |
数据域 |
实例 | |
字节 |
数据解释 | |||
读取软件版本 (PC->Node) |
0x01 |
/ |
0 |
/ |
回应软件版本 (Node->PC) |
0x81 |
软件版本号 (字符串,以’\0’结尾) |
24 |
“LoRaP2P V1.0.0 16-10-20” |
发送数据 (PC->Node) |
0x02 |
实际发送数据, 最大字节=247 |
2 |
数据帧(十六进制):12 34 发送2字节数据:0x12 0x34 |
回应发送结果 (Node->PC) |
0x82 |
发送结果 (字符串,以’\0’结尾) |
6 9 |
“TX OK” “TX Error” |
配置射频参数 (PC->Node) |
0x03 |
2B:前导码0x55 0xAA 1B:空中速率档位 有效值=[4, 7, 10] 4B:频率,有效范围= [410 MHz~ 525MHz] 2B:CRC16校验 |
9 |
数据帧(十六进制):55 AA07 1C 03 A1 80 XX XX 55 AA:前导码(防错) 07:使用第7档速率(见表2) 1C 03 A1 80:0x1C03A180(470,000,000), 即频率为470MHz。 XX XX:对前面7字节CRC16校验 |
回应配置射频 (Node->PC) |
0x83 |
配置结果 (字符串,以’\0’结尾) |
3 28 |
“OK” “Bad bps, valid is[4, 7, 10]” |
读取射频参数 (PC->Node) |
0x04 |
/ |
0 |
/ |
回应读取射频 (Node->PC) |
0x84 |
2B:前导0x55 0xAA 1B:空中速率档位 4B:频率(大端格式) 2B:CRC16校验 |
9 |
数据帧(十六进制):55 AA07 1C 03 A1 80 XX XX 55 AA:前导码(防错) 07:使用第7档速率(见表2) 1C 03 A1 80:0x1C03A180(470,000,000), 即频率为470MHz。 XX XX:对前面7字节CRC16校验 |
设置发射功率 (PC->Node) |
0x07 |
1B:发射功率, 有效范围=[-1~20] |
1 |
数据帧(十六进制):14 14: 0x14=20,发射功率为20dBm |
回应设置功率 (Node->PC) |
0x87 |
发送结果 (字符串,以’\0’结尾) |
3 28 |
“OK” “Bad TX power, valid is[-1~20]” |
读取发射功率 (PC->Node) |
0x08 |
/ |
0 |
/ |
回应读取功率 (Node->PC) |
0x88 |
1B:发射功率, 有效范围=[-1~20] |
1 |
数据帧(十六进制):14 14: 0x14=20,发射功率为20dBm |
读取RSSI (PC->Node) |
0x0A |
/ |
0 |
/ |
回应读取RSSI (Node->PC) |
0x8A |
2B: 接收数据包RSSI值 有效范围=[-146~20] |
2 |
数据帧(十六进制):FF F6 FF F6: 0xFFF6=-10,RSSI为-10dBm |
接收数据 (Node->PC) |
0xC0 |
实际接收数据, 最大字节=247 |
2 |
数据帧(十六进制):12 34 接收2字节唤醒数据:0x12 0x34 |