本章节汇总了UWB650模块所有已知的配置与操作指令,旨在为软件开发工程师提供一个全面、快速的参考。UWB650模块通过配置命令来修改运行时的一些参数。
定义
- <CR> 回车字符,即0x0D。
- <LF> 换行字符,即0x0A。
- <…> 参数名称。尖括号不会出现在命令中。
配置命令格式
用户从串口输入数据时,模块会检测该数据是否为配置命令并做相应的处理与响应。配置命令的格式都是固定的:以UWBRFAT开头,以<CR><LF>结尾。命令的响应和结果代码总是<CR>和<LF>开始和结束。
在整个文档中说明配置命令以及响应时会故意省略掉<CR>和<LF>。用户在使用中如不需要配置参数,应尽量避免输入开头为UWBRFAT,末尾为<CR>和<LF>的数据包。
串口的接收处理机制
UWB650模块以超时检测的形式来判断串口接收到的字节数量。当模块接收到第一个字节时,会开启一个约5ms的定时器,当继续接收到其他字节时,定时器会重新计时,直到接收缓冲区满或者定时器触发超时时会停止接收并开始处理数据。
1) 检测模块是否正常工作
命令 |
响应 |
UWBRFAT |
OK |
2) 获取模块程序版本
命令 |
响应 |
UWBRFAT+VERSION? |
V1.2 |
注:由于模块后续存在更新程序的可能,该文档的响应内容仅供参考。
3) 将模块的所有参数恢复为默认值
命令 |
响应 |
UWBRFAT+DEFAULT |
OK |
注:该命令会让模块重启,且模块会响应OK后再执行重启操作。
模块启动完毕后,串口会输出以下字符串:
Finished Startup
4) 重启模块
命令 |
响应 |
UWBRFAT+RESET |
OK |
注:该命令会让模块重启,且模块会响应OK后再执行重启操作。
模块启动完毕后,串口会输出以下字符串:
Finished Startup
5) 将可配置参数保存在内部Flash中
命令 |
响应 |
UWBRFAT+FLASH |
OK |
注:文档后续的配置命令说明中,带*符号的命令说明其相关参数都可以通过该命令保存到Flash,模块后续重新启动会直接应用这些参数。
6) 配置模块的串口波特率
命令 |
响应 |
|
查询 |
UWBRFAT+BAUDRATE? |
+BAUDRATE=<rate> |
设置 |
*UWBRFAT+BAUDRATE=<rate> |
OK |
说明 |
<rate>:整数类型。每个值代表相应的串口波特率: 0:230400bps 1:115200bps(默认值) 2:57600bps 3.38400bps 4.19200bps 5.9600bps 注:模块串口的其他配置固定为数据位8位,停止位1位,无奇偶校验位,无流控制。 |
|
示例 |
查询模块的当前的串口波特率: 发送:UWBRFAT+BAUDRATE? 响应:+BAUDRATE=0 设置模块的串口波特率为9600: 发送:UWBRFAT+BAUDRATE=5 响应:OK 错误示例: 发送:UWBRFAT+BAUDRATE=6 响应:ERROR |
7) 配置UWB芯片的空中数据传输速率
命令 |
响应 |
|
查询 |
UWBRFAT+DATARATE? |
+DATARATE=<rate> |
设置 |
*UWBRFAT+DATARATE=<rate> |
OK |
说明 |
<rate>:整数类型,不同的值代表不同的空中数据传输速率。 0:850Kbps 1:6.8Mbps(默认值) |
|
示例 |
查询空中数据传输速率: 发送:UWBRFAT+DATARATE? 响应:+DATARATE=1 设置空中数据传输速率: 发送:UWBRFAT+DATARATE=0 响应:OK 错误示例: 发送:UWBRFAT+DATARATE=2 响应:ERROR |
8) 配置UWB芯片的PAN ID和Address
命令 |
响应 |
|
查询 |
UWBRFAT+DEVICEID? |
+DEVICEID=<id>,<addr> |
设置 |
*UWBRFAT+DEVICEID=<id>,<addr> |
OK |
说明 |
<id>:16进制4字节字符类型,范围:0000-FFFE(默认值:0000) <addr>:16进制4字节字符类型,范围:0000-FFFE(默认值:0000) |
|
示例 |
查询PAN ID和Address: 发送:UWBRFAT+DEVICEID? 响应:+DEVICEID=1234,5678 设置PAN ID和Address: 发送:UWBRFAT+DEVICEID=ABCD,1234 响应:OK 错误示例: 发送:UWBRFAT+DEVICEID=FFFF,FFFF 响应:ERROR |
9) 配置模块的发射功率
命令 |
响应 |
|||||||||||||||||||||||||
查询 |
UWBRFAT+POWER? |
+POWER=<gear> |
||||||||||||||||||||||||
设置 |
*UWBRFAT+POWER=<gear> |
OK |
||||||||||||||||||||||||
说明 |
<gear>:整数类型。范围:0-10,不同的值代表不同的功率档位:
|
|||||||||||||||||||||||||
示例 |
查询模块的发射功率: 发送:UWBRFAT+POWER? 响应:+POWER=0 设置发射功率: 发送:UWBRFAT+POWER=10 响应:OK 错误示例: 发送:UWBRFAT+POWER=11 响应:ERROR |
10) 配置UWB芯片的前导码参数
命令 |
响应 |
|
查询 |
UWBRFAT+PREAMBLECODE? |
+PREAMBLECODE=<code> |
设置 |
*UWBRFAT+PREAMBLECODE=<code> |
OK |
说明 |
<code>:整数类型。范围:9-24(默认值:9),不同前导码参数的UWB650模块无法通讯。 |
|
示例 |
查询前导码参数: 发送:UWBRFAT+ PREAMBLECODE? 响应:+PREAMBLECODE=9 设置前导码参数: 发送:UWBRFAT+PREAMBLECODE=12 响应:OK 错误示例: 发送:UWBRFAT+PREAMBLECODE=3 响应:ERROR |
11) 配置CCA(清晰信道评估)功能
命令 |
响应 |
|
查询 |
UWBRFAT+CCAENABLE? |
+CCAENABLE=<enable> |
设置 |
*UWBRFAT+CCAENABLE=<enable> |
OK |
说明 |
<enable>:整数类型。 0:关闭CCA功能(默认值) 1:开启CCA功能 该功能仅在数传模式时使用。开启CCA功能后,如果模块发送普通数据之前检测到 空中有数据正在传输,则会停止发送数据,串口会回复以下内容: CCA FAILURE |
|
示例 |
查询CCA功能是否开启: 发送:UWBRFAT+ CCAENABLE? 响应:+CCAENABLE=0 开启CCA功能: 发送:UWBRFAT+CCAENABLE=1 响应:OK 错误示例: 发送:UWBRFAT+CCAENABLE=2 响应:ERROR |
12) 配置ACK(自动响应请求)功能
命令 |
响应 |
|
查询 |
UWBRFAT+ACKENABLE? |
+ACKENABLE=<enable> |
设置 |
*UWBRFAT+ACKENABLE=<enable> |
OK |
说明 |
<enable>:整数类型。 0:关闭ACK发送请求(默认值) 1:开启ACK发送请求 开启ACK发送请求后,模块在数传功能下发送的数据都将附带ACK发送请求。如果 没有收到ACK回复,则串口会回复以下内容: ACK WAIT TIMEOUT 如果收到了ACK回复,则串口会回复以下内容: ACK DETECTED |
|
示例 |
查询ACK功能是否开启: 发送:UWBRFAT+ACKENABLE? 响应:+ACKENABLE=0 开启ACK功能: 发送:UWBRFAT+ACKENABLE=1 响应:OK 错误示例: 发送:UWBRFAT+ACKENABLE=2 响应:ERROR |
13) 配置模块的AES-128密钥
命令 |
响应 |
|
查询 |
UWBRFAT+SECURITY? |
+SECURITY=<enable>,<key> |
设置 |
*UWBRFAT+SECURITY=<enable>,<key> |
OK |
说明 |
<enable>:整数类型。 0:关闭AES加密(默认值) 1:开启AES加密 开启AES加密后,模块在数传功能下发送的Frame Payload内容将会被加密,以获得更加可靠的数据传输。 <key>:16进制字符类型。长度为32个字节。 默认值:000102030405060708090A0B0C0D0E0F |
|
示例 |
查询AES加密功能的状态与密钥: 发送:UWBRFAT+SECURITY? 响应:+SECURITY=0,00112233445566778899AABBCCDDEEFF 开启AES加密功能,并设置密钥: 发送:UWBRFAT+SECURITY=1,112233445566778899AABBCCDDEEFF00 响应:OK 错误示例: 发送:UWBRFAT+SECURITY=112233445566778899AABBCCDDEEFF00 响应:ERROR |
14) 设置数传功能的数据发送目标地址
命令 |
响应 |
|
查询 |
UWBRFAT+TXTARGET? |
+TXTARGET=<address> |
设置 |
*UWBRFAT+TXTARGET=<address> |
OK |
说明 |
<address>:16进制4字节字符类型。范围:0000-FFFF(默认值:0000) 当设置为FFFF时,模块数传功能发送的数据将会视为广播。 |
|
示例 |
查询当前的发送目标: 发送:UWBRFAT+TXTARGET? 响应:+TXTARGET=AB12 修改当前的发送目标: 发送:UWBRFAT+TXTARGET=1234 响应:OK 错误示例: 发送:UWBRFAT+TXTARGET=123 响应:ERROR |
15) 设置模块的Mesh自组网功能
命令 |
响应 |
|
查询 |
UWBRFAT+MESHENABLE? |
+MESHENABLE=<type> |
设置 |
*UWBRFAT+MESHENABLE=<type> |
OK |
说明 |
<type>:整数类型。 0:关闭Mesh功能(默认值) 1:启用Mesh功能,模块仅作为中继 2:启用Mesh功能,模块仅作为节点 3:启用Mesh功能,模块可同时作为中继和节点 注:Mesh模式下,模块单包最大可以发送1004个字节的数据,且启用Mesh功能的 模块无法与未开启Mesh功能的模块做普通数据的收发(测距/定位功能除外)。 |
|
示例 |
查询Mesh功能状态: 发送:UWBRFAT+MESHENABLE? 响应:+MESHENABLE=0 开启Mesh功能,模块作为节点 发送:UWBRFAT+MESHENABLE=2 响应:OK 错误示例:UWBRFAT+MESHENABLE=4 响应:ERROR |
16)设置模块接收到数据时,显示来源地址信息
命令 |
响应 |
|
查询 |
UWBRFAT+RXSHOWSRC? |
+RXSHOWSRC=<enable> |
设置 |
*UWBRFAT+RXSHOWSRC=<enable> |
OK |
说明 |
<enable>:整数类型。 0:不显示来源地址信息 1:显示来源地址信息(默认值) 注:开启后,模块接收到普通数据时,会显示来源地址以及信号强度。 例如接收到来自其他模块(地址1234)的数据(123456789),信号强度为-45.60dBm: SrcAddr:1234;Rssi:-45.60dBm;Data:123456789 如果模块启用了Mesh功能并设置为节点,则将会收到以下格式的数据: Mesh SrcAddr:1234;Data:123456789 |
|
示例 |
查询是否显示来源地址信息: 发送:UWBRFAT+RXSHOWSRC? 响应:+RXSHOWSRC=0 开启显示来源地址信息: 发送:UWBRFAT+RXSHOWSRC=1 响应:OK 错误示例: 发送:UWBRFAT+RXSHOWSRC=2 响应:ERROR |
17) 设置模块板上LED灯的状态:
命令 |
响应 |
|
查询 |
UWBRFAT+LEDSTATUS? |
+LEDSTATUS=<enable> |
设置 |
*UWBRFAT+LEDSTATUS=<enable> |
OK |
说明 |
<enable>:整数类型。 0:关闭LED灯状态指示 1:开启LED灯状态指示(默认值) 注:工作状态时,红灯闪烁代表模块正在发送数据;蓝灯闪烁代表模块处于接收状态, 但不代表接收到数据。 |
|
示例 |
查询是否开启了LED灯状态指示: 发送:UWBRFAT+LEDSTATUS? 响应:+LEDSTATUS=1 关闭LED灯状态指示: 发送:UWBRFAT+LEDSTATUS=0 响应:OK 错误示例: 发送:UWBRFAT+LEDSTATUS=2 响应:ERROR |
18) 设置模块的接收状态
命令 |
响应 |
|
查询 |
UWBRFAT+RXENABLE? |
+RXENABLE=<enable> |
设置 |
*UWBRFAT+RXENABLE=<enable> |
OK |
说明 |
<enable>:整数类型。 0:关闭接收状态 1:开启接收状态(默认值) 关闭接收后,模块将进入IDLE状态,数传模式下仍能发送数据,但无法接收数据, 这种状态下模块的功耗会有所降低。 |
|
示例 |
查询是否开启接收状态: 发送:UWBRFAT+RXENABLE? 响应:+RXENABLE=1 关闭接收: 发送:UWBRFAT+RXENABLE=0 响应:OK 错误示例: 发送:UWBRFAT+RXENABLE=2 响应:ERROR |
19) 设置模块的SNIFF(侦听接收)状态
命令 |
响应 |
|
查询 |
UWBRFAT+SNIFFEN? |
+SNIFFEN=<enable> |
设置 |
*UWBRFAT+SNIFFEN=<enable> |
OK |
说明 |
<enable>:整数类型。 0:关闭侦听接收(默认值) 1:开启侦听接收 用户设置开启侦听接收后,模块开启测距/定位功能后会暂时关闭侦听接收。 直到功能关闭后再重新开启。 |
|
示例 |
查询是否开启侦听接收: 发送:UWBRFAT+SNIFFEN? 响应:+SNIFFEN=0 关闭接收: 发送:UWBRFAT+SNIFFEN=1 响应:OK 错误示例: 发送:UWBRFAT+SNIFFEN=2 响应:ERROR |
20) 设置模块的天线延迟
命令 |
响应 |
|||||||||||
查询 |
UWBRFAT+ANTDELAY? |
+ANTDELAY=<delay> |
||||||||||
设置 |
*UWBRFAT+ANTDELAY=<delay> |
OK |
||||||||||
说明 |
<delay>:整数类型。范围:0-65535。默认值:16400。模块的天线延迟参数。 天线延迟参数会直接影响测距功能和定位功能中测距结果的误差。将天线延迟校准, 可以使得测距结果的值尽可能接近实际距离。 用户使用我司的UWB天线时,可以根据不同型号使用对应的天线延迟参数:
各型号天线的具体参数可向我司咨询。 如不使用我司的UWB天线,则需要自己手动校准天线延迟。关于如何校准天线延迟,请查看《UWB650模块如何校准天线延迟.pdf》。 |
|||||||||||
示例 |
查询天线延迟参数: 发送:UWBRFAT+ANTDELAY? 响应:+ANTDELAY=16400 设置天线延迟参数: 发送:UWBRFAT+ANTDELAY=12345 响应:OK 错误示例: 发送:UWBRFAT+LEDSTATUS=123456 响应:ERROR |
21) 模块的测距功能
命令 |
响应 |
|
设置 |
UWBRFAT+RANGING=<number>, <addr> |
+RANGING=(<distance>),(<rssi>) |
说明 |
<number>:整数类型,需要测距的目标从机的数量 <addr>:16进制4字节类型。模块作为主机进行测距的目标地址,范围:0000-FFFE。 可以输入多个地址,地址的数量必须与<number>参数的值相同,多个地址用逗号分开。 模块会按照命令中的地址顺序向目标模块进行测距流程,测距完毕后同一输出测距信 息。 <distance>:浮点数字符串类型,测距完成后输出的距离信息。最多可输出小数点后2 位。 如果测距失败,那么该值必定为-1。 <rssi>:浮点数字符串类型,测距完成后输出的另一端的信号强度信息,最多可输出 小数点后2位。 注:另一端收到主机的测距信号后,测距完毕后也会输出测距信息。 |
|
示例 |
获取与地址为0001的模块的距离: 发送:UWBRFAT+RANGING=1,0001 响应:+RANGING=(12.34),(-56.78) 地址0001的模块输出的测距信息: 同时获取与地址为0002和0003的模块的距离: 发送:UWBRFAT+RANGING=2,0002,0003 响应:+RANGING=(34.12,26.17),(-53.23,-49.15) 获取与地址0004的模块的距离,但是测距失败: 发送:UWBRFAT+RANGING=1,0004 响应:+RANGING=(-1),(0.00) 错误示例: 发送:UWBRFAT+RANGING=123,456 响应:ERROR |
22) 模块的定位功能
命令 |
响应 |
|
设置 |
UWBRFAT+LOCATION=<addr> |
+LOCATION=(<x>,<y>,<z>),(<distance>),(<rssi>) |
说明 |
<addr>:16进制4字节类型。模块作为Tag进行定位的目标基站地址, 范围:0000-FFFE。至少需要输入3个地址,最多可输入8个(用逗号分开)。 模块会按照命令中的地址向目标模块发起定位流程,流程结束后输出定位结果。 <x>:定位完成后计算出的自身的当前x坐标值,最多可输出小数点后2位, 单位为m。 <y>:定位完成后计算出的自身的当前y坐标值,最多可输出小数点后2位, 单位为m。 <z>:定位完成后计算出的自身的当前z坐标值,最多可输出小数点后2位, 单位为m。 <distance>:浮点数字符串类型,定位完成后输出的距离信息。最多可输出小数点 后2位。如果获取失败,那么该值必定为-1。 <rssi>:浮点数字符串类型,测距完成后输出的另一端的信号强度信息,最多可输出 小数点后2位。如果获取距离失败,那么该值必定为0。 |
|
示例 |
附近有3个基站(0001,0002,0003),获取与这3个基站的相对位置: 发送:UWBRFAT+LOCATION=0001,0002,0003 响应:+LOCATION=(12.34,34.56,56.78),(11.22,33.44,55.66),(-45.45,-56.56,-67.67) 错误示例(输入基站地址数量不足): 发送:UWBRFAT+RANGING=0001,0002 响应:ERROR |
23) 设置基站地址
命令 |
响应 |
|
查询 |
UWBRFAT+COORDINATE? |
+COORDINATE=<x>,<y>,<z> |
设置 |
*UWBRFAT+COORDINATE= <x>,<y>,<z> |
OK |
说明 |
<x>:整数类型,基站的x坐标,单位为cm。取值范围:0-100000(默认值:0) <y>:整数类型,基站的y坐标,单位为cm。取值范围:0-100000(默认值:0) <z>:整数类型,基站的z坐标,单位为cm。取值范围:0-100000(默认值:0) |
|
示例 |
查询模块作为基站时的自身坐标: 发送:UWBRFAT+COORDINATE? 响应:+COORDINATE=12345,0,54321 设置模块的自身坐标: 发送:UWBRFAT+COORDINATE=12345,54321,100 响应:OK |
24) 设置测距偏移
命令 |
响应 |
|
查询 |
UWBRFAT+DISTOFFSET? |
+DISTOFFSET=<offset> |
设置 |
*UWBRFAT+DISTOFFSET=<offset> |
OK |
说明 |
<offset>:整数类型。范围:-500~500。默认值:0。设置模块使用测距或定位功能 时的测距结果的偏移值。单位为cm。 当设置的偏移值为正数时,模块将在测距结果中额外添加该偏移值;当值为负数时, 则减少该偏移值。 |
|
示例 |
查询测距偏移值: 发送:UWBRFAT+DISTOFFSET? 响应:+DISTOFFSET=34 设置测距偏移值: 发送:UWBRFAT+DISTOFFSET=100 响应:OK |
UWB650模块深度解析系列
UWB650模块深度解析一 :UWB技术及UWB650模块导论