TF-UW500 用户手册
TF-UW500 的激光安全、安装、接口、通信协议、串口指令和 I²C 寄存器说明。

前言
本用户手册包含 TF-UW500 激光雷达的介绍、使用和维护等内容。正式使用前请仔细阅读本手册,使用过程请严格按照手册所述步骤执行,以避免产品损坏、财产损失、人身损害或/和违反产品保修条款。如在使用过程中遇到无法解决的问题,请联系北醒工作人员协助解决。
联系方式官网地址:www.benewake.com
联系电话:400-880-9610咨询技术问题,请联系:support@benewake.com咨询销售事宜或索取介绍资料,请联系:bw@benewake.com公司总部地址北醒(北京)光子科技有限公司北京市海淀区上地街道海国嘉业科技园 3 层版权声明本文档版权归©北醒所有,未经北醒的官方书面许可,请勿对本文档内容进行修改、删减或翻译。
免责声明TF-UW500 产品不断改进中,其规格参数会发生迭代变化,请以官网最新版本为准。
1 激光安全信息

该激光雷达包含红色可见激光点。
根据 IEC 60825-1:2014 / EN 60825-1:2014+A11:2021,该激光产品满足激光级别 1。
注意!
如使用此处所列以外的操作设备或校准设备或采取其他操作方式,可能带来辐射危险。
2 安装与维护
注意!该产品被归类为 1 类激光产品。当测距功能被激活时,激光雷达模块的激光发射器可能会发出激光辐射,因此激光雷达不应瞄准人类和动物,以确保安全。
本产品是为外露镜头安装而设计和校准的,如果需要在镜头前添加保护窗,则需要确保使用高透射率和有抗反射涂层的材料。
避免检测现场存在烟雾和雾气。
避免冷凝。
避免直接接触湿气和水。
请勿使用粗糙的织物或脏毛巾或腐蚀性产品来清洁激光镜片。
请勿使用高于规格要求的最大电源电压为产品供电。
用压缩空气清洁激光镜片。需要时,只用柔软、干净的超细纤维布擦拭激光镜片。
确保传感器安装稳固,以防止错误读数或损坏。
只有经过培训和合格的人员才能安装、设置和维修激光雷达激光安全信息。
3 产品概述
本章主要介绍 TF-UW500 的工作原理、规格参数、结构外观和视场角度。
3.1 工作原理
TF-UW500 是一款基于脉冲时间飞行法测距(PToF)的传感器,发射端的激光器经过发射透镜准直发射出脉冲激光信号,经被测物体的反射,回波信号进入接收透镜,被接收端的探测器检测到。内部电路可计算发射与回波信号的时间差,根据光速即可计算被测物体与 LiDAR 之间的距离。

图 1 脉冲时间飞行法测距原理
3.2 规格参数
| 性能参数 | |
|---|---|
| 产品型号 | TF-UW500 |
| 水下测距范围 | > 5 m (室内,NTU< 0.5,30%反射率,垂直入射) |
| 盲区范围 | ≤ 0.1 m |
| 测距精度① | < 3 cm (0.1 ~ 2m) |
| 重复精度① | < 1 cm @ 1σ(0.1 ~ 2m) |
| 距离分辨率 | 1 mm |
| 帧率 | 默认 20 Hz |
| 抗环境光 | 100 KLux |
| 光学性能 | |
| 光源 | 激光 |
| 中心波长 | 红色可见光 |
| 视场角 | < 0.5° |
| 激光等级 | Class1 (IEC 60825-1:2014; EN 60825-1:2014+A11:2021) |
| 机械电气参数 | |
| 平均功耗② | < 5V × 100mA |
| 启动峰值电流② | < 700mA |
| 供电电压 | DC 5±0.2 V |
| 串口输出 | 3.3 V TTL |
| 连接端子 | 1.0mm-4P,端子型号 HC-1.0-4PWT |
| 工作温度 | 0 ℃ ~ + 50 ℃ |
| 存储温度 | - 20 ℃ ~ + 70 ℃ |
| 防护等级 | NA |
| 典型尺寸③ | 24.0 mm × 16.0 mm × 20.4 mm |
| 典型重量③ | < 5 g (不含尾线) |
| 通信接口参数 | |
| 通信接口 | UART / I2C (可通过指令切换) |
| 波特率 | 默认 115200 |
| 数据位 | 8 |
| 停止位 | 1 |
| 奇偶校验位 | None |
| 外形尺寸图(单位:mm) |
|---|
![]() |
备注: 1. NTU< 0.5,水面照度 100KLux,30%反射率,垂直入射,雷达位于水下深度超过 1m 时测量;
2. 室内 0 Klux,25 ℃下测得,仅作参考,环境变化时参数有可能变化;
3. 重量、尺寸为典型值仅作参考,详细公差参数请咨询北醒技术人员。
3.3 结构外观
雷达整体外观如下:

图 2 TF-UW500 外观示意图
3.4 视场角
TF-UW500 的视场角如下图所示,光斑形状呈长方形,任意方向发散角均小于 0.5°。

图 3 TF-UW500 视场角示意图备注: 0.5° 是理论值。由于生产加工和安装误差,实际视场角与此理论值会存在一定偏差。
4 设备安装
本章主要介绍 TF-UW500 的机械安装和连接器信息。
4.1 机械安装
TF-UW500 有 2 个安装定位孔可供使用,如下图所示:

图 4 TF-UW500 安装孔位示意图

由于光学装配公差需要,请在圆形镜筒周围各个方向至少留出 1mm 的额外空间。
4.2 连接器
连接器端子为 1.0mm-4P,端子型号 HC-1.0-4PWT,引脚定义如下图所示:

图 5 雷达连接器端子表 2 端子引脚定义
| 序号 | UART | I2C |
|---|---|---|
| PIN 1 | GND | GND |
| PIN 2 | VCC | VCC |
| PIN 3 | RX | SDA |
| PIN 4 | TX | SCL |
5 通信协议和数据格式
5.1 串口通讯
要连接两个设备进行 TTL 通信,发射器的 TXD 应连接到接收器的 RXD,接收器的 TXD 应连接到发射器的 RXD。
雷达不含电源开关,当给雷达供电后,数据会开始自动传输。
| 字符 | 值 | 是否可配置 |
|---|---|---|
| 波特率 | 115200 | 可配置 |
| 数据位 | 8 | 不可配置 |
| 停止位 | 1 | 不可配置 |
| 奇偶校验 | 无 | 不可配置 |
表 3 UART 通信协议备注:波特率可以设置为 9600, 14400, 19200, 38400, 56000, 57600, 115200, 128000, 230400, 256000, 460800, 500000, 512000, 600000, 750000, and 921600。TF-UW500 的默认波特率为115200。
串口输出格式:
| 字节 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|---|
| 描述 | 0x59 | 0x59 | Dist_L | Dist_H | Peak_L | Peak_H | Temp | Confidence | Check_sum |
Dist:输出水下测距值,空气中需乘以 1.33 的系数,可以根据需要配置为以 mm 或 cm 为单位输出,默认为 mm。
Peak:信号强度。一般情况下,Peak≥200 时数据质量较好;100<Peak<200 时数据重复精度开始降低;30≤Peak≤100 时准度和重复精度差;Peak<30 时信号强度过低,低雷达输出 65535。
Temp:芯片温度℃。
Confidence:置信度
5.2 I²C 通信
TF-UW500 启动为 I²C 通信模式,引脚 3 为时钟线 SDA,引脚 4 为数据线 SCL, TF- UW500 做为 I²C 从机,默认从机地址为 0x10,支持最高 400kbps 的时钟频率。I²C 寄存器列表见附录 I²C 寄存器列表。
注意:本文档中的 I²C 从机地址是 7-bit 的数值,可用范围是[0x08, 0x77],十进制[8, 119]。I ²C 开始信号后发送的第一个字节,需要先将 7-bit 的地址左移一位(乘以 2),再补充最低位的读写标志。如 TF-UW500 的默认从机地址为 0x10,写操作地址为 0x20,读操作地址为0x21。
写寄存器时序:
| Start | Slave Addr | W | Ack | Register Addr |
Ack | Data1 | Ack | … | DataN | Ack | Stop |
|---|
读寄存器时序:
| Start | Slave Addr | W | Ack | Register Addr | Ack | Stop |
|---|
| Start | Slave Addr | R | Ack | Data1 | Ack | … | DataN | Nack | Stop |
|---|
其中读寄存器时序中,主机可以不产生第一个 Stop 信号,直接产生第二个 Start 信号。最后一个 Nack 也可以是 Ack 信号。
通过 I²C 写寄存器后,TF-UW500 需要一段时间进行处理才能生效,如果用户需要读回寄存器值进行验证,建议在写操作之后等待 100ms 再进行读操作。
5.3 自定义配置指令
TF-UW500 中的一些参数客户可以进行自定义配置,例如数据帧格式、帧率等,可以通过发送特定指令进行更改,所有参数在配置成功后均会保存在 Flash 中,重新上电时无须再次配置。
| 数据位 | 定义 | 描述 |
|---|---|---|
| Byte 0 | 帧头 | 固定为 0x5A |
| Byte 1 | 帧长度 | 指令帧总长度(包含 Head 和 Checksum,单位为字节) |
| Byte 2 | 帧 ID | 代表不同功能指令的解析方式 |
|---|---|---|
| Byte 3~Byte N-2 | Payload | 数据段,根据 ID 进行解析,数据为小端格式 Opt:非 1 读取;1,写入 |
| Byte N-1 | Check sum | 对从 Head 到 Payload 的所有字节进行求和计算,取低 8 位 |
发送指令时请按照以下步骤: 1. 将参数值修改位十六进制2. 将十六进制数值放入某指令中3. 计算校验和,将低 8 位放入指令中例如,将波特率修改为 460800,首先将 460800 更改为 HEX(0x00 07 08 00), 然后计算校验和为 0x77,可以得到如下指令-5A 08 06 00 08 07 00 77。
配置参数时请遵循特定格式和规则,避免发送随机的指令。
5.3.1 获取版本号 ID_GET_VERSION=0x01
下行:
| 字节 | 0 | 1 | 2 | Len-1 |
|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Check_sum |
上行:
| 字节 | 0 | 1 | 2 | 3-5 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Version | Check_sum |
Version: 例如,第 3、4、5 字节分别为 112、50、9,表示版本号 9.50.112。
举例:指令 [5A 04 01 5F]
5.3.2 系统软件复位 ID_SOFT_RESET=0x02
下行:
| 字节 | 0 | 1 | 2 | Len-1 |
|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Check_sum |
上行:
| 字节 | 0 | 1 | 2 | 3 | Len-1 |
|---|
| 描述 | Head(0x5A) | Len | ID | Status | Check_sum |
|---|
Status: 0:成功,非 0:失败说明:被修改但未执行“保存当前设置”操作的配置项,将被复原到初始状态。
举例:指令 [5A 04 02 60]
5.3.3 设置输出频率 ID_SAMPLE_FREQ=0x03
下行
| 字节 | 0 | 1 | 2 | 3~4 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | FPS | Check_sum |
| 默认值 | 20 |
Freq: 雷达实际实现的工作频率。
上行
| 字节 | 0 | 1 | 2 | 3~4 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | FPS | Check_sum |
Freq: 雷达实际实现的工作频率。
举例:20Hz [5A 06 03 14 00 77]
5.3.4 设置输出格式 ID_OUTPUT_FORMAT=0x05
下行
| 字节 | 0 | 1 | 2 | 3 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Format | Check_sum |
| 默认值 | 0x01 |
Format: 0x01:9 字节 cm 输出,0x06:9 字节 mm 输出上行
| 字节 | 0 | 1 | 2 | 3 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Format | Check_sum |
Format: 雷达实际配置成的输出格式。
举例: 9 字节 mm 输出 [5A 05 05 06 6A]
5.3.5 设置串口波特率 ID_BAUD_RATE=0x06
下行
| 字节 | 0 | 1 | 2 | 3~6 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Baudrate | Check_sum |
| 默认值 | 115200 |
Baudrate: 雷达实际配置成的串口波特率。
说明:可配置的波特率范围[9600,921600],保存后生效。
上行
| 字节 | 0 | 1 | 2 | 3~6 | 7 | Len-1 |
|---|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Baudrate | Status 0:成功 !0:失败 |
Check_sum |
举例: 9600 [5A 08 06 80 25 00 00 0D] 19200 [5A 08 06 00 4B 00 00 B3] 38400 [5A 08 06 00 96 00 00 FE] 57600 [5A 08 06 00 E1 00 00 49] 115200 [5A 08 06 00 C2 01 00 2B] 230400 [5A 08 06 00 84 03 00 EF] 460800 [5A 08 06 00 08 07 00 77] 921600 [5A 08 06 00 10 0E 00 86]
5.3.6 输出开关 ID_OUTPUT_EN=0x07
下行
| 字节 | 0 | 1 | 2 | 3 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Enable | Check_sum |
| 默认值 | 1 |
Enable: 0:输出不使能,1:输出使能
上行
| 字节 | 0 | 1 | 2 | 3 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Enable | Check_sum |
举例:使能输出 [5A 05 07 01 67]关闭输出 [5A 05 07 00 66]
5.3.7 校验和开关 ID_FRAME_CHECKSUM_EN=0x08
下行
| 字节 | 0 | 1 | 2 | 3 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Enable | Check_sum |
| 默认值 | 0 |
Enable: 0:校验和不使能,1:校验和使能说明:校验和不使能时,雷达不对下行数据帧的校验和做检查,上行数据帧中仍包含正确的校验和字节。
上行
| 字节 | 0 | 1 | 2 | 3 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Enable | Check_sum |
举例:开启校验和 [5A 05 08 01 68]关闭校验和 [5A 05 08 00 67]
5.3.8 通讯接口设置 ID_IF_PROTOCOL=0x0A
下行
| 字节 | 0 | 1 | 2 | 3 | 4 | Len-1 |
|---|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Opt | If_protocol | Check_sum |
| 默认值 | !1 |
Opt:!1:读取,1:写入
If_protocol:!1:串口,1:I²C上行
| 字节 | 0 | 1 | 2 | 3 | 4 | Len-1 |
|---|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Status 0:成功 !0:失败 |
If_protocol | Check_sum |
举例:修改为 I²C [5A 06 0A 01 01 6C]说明:保存后生效
5.3.9 修改 I²C 从机地址 ID_I²C_SLAVE_ADDR=0x0B
下行
| 字节 | 0 | 1 | 2 | 3 | 4 | Len-1 |
|---|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Opt | I²C_slave_addr | Check_sum |
| 默认值 | 0x10 |
Opt:!1:读取,1:写入I²C_slave_addr: 范围[0x08, 0x77];
上行
| 字节 | 0 | 1 | 2 | 3 | 4 | Len-1 |
|---|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Status 0:成功 !0:失败 |
I²C_slave_addr | Check_sum |
举例:修改为 0x20 [5A 05 0B 01 20 8B]
5.3.10 恢复出厂设置 ID_RESTORE_DEFAULT=0x10
下行
| 字节 | 0 | 1 | 2 | Len-1 |
|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Check_sum |
上行
| 字节 | 0 | 1 | 2 | 3 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Status | Check_sum |
Status: 0:成功,非 0:失败举例:指令 [5A 04 10 6E]
5.3.11 保存用户设置 ID_SAVE_SETTINGS=0x11
下行
| 字节 | 0 | 1 | 2 | Len-1 |
|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Check_sum |
上行
| 字节 | 0 | 1 | 2 | 3 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Status | Check_sum |
Status: 0:成功,非 0:失败举例:指令 [5A 04 11 6F]
5.3.12 设置测距范围 ID_DIST_RANGE=0x3A
下行
| 字节 | 0 | 1 | 2 | 3 | 4-5 | 6-7 | Len-1 |
|---|---|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Opt | Min_dist | Max_dist | Check_sum |
| 默认值 | 0 | 65535 |
Opt:!1:读取,1:写入Min_dist:输出的最小距离值,单位 mm Max_dist:输出的最大距离值,单位 mm上行
| 字节 | 0 | 1 | 2 | 3 | 4-5 | 6-7 | Len-1 |
|---|---|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Status | Dist_min | Dist_max | Check_sum |
Status: 0:成功,非 0:失败举例:最小输出距离 200mm,最大输出距离 5000mm [5A 09 3A 01 C8 00 88 13 01]
注意请勿发送上述没有的指令。
附录 I²C 寄存器列表
| Address | R/W | Name | Initial Value | Description |
|---|---|---|---|---|
| 0x00 | R | DIST_LOW | -- | cm 为单位输出测距值 |
| 0x01 | R | DIST_HIGH | -- | |
| 0x3C | R | DIST_LOW | -- | mm 为单位输出测距值 |
| 0x3D | R | DIST_HIGH | -- | |
| 0x02 | R | PEAK_LOW | -- | |
| 0x03 | R | PEAK _HIGH | -- | |
| 0x04 | R | TEMP_LOW | -- | 0.01 摄氏度 |
| 0x05 | R | TEMP_HIGH | -- | |
| 0x0A | R | VERSION_REVISION | -- | 修订版本 |
| 0x0B | R | VERSION_MINOR | -- | 次版本 |
| 0x0C | R | VERSION_MAJOR | -- | 主版本 |
| 0x10-0x1D | R | SN | -- | 生产编码,ASCII 码,14 字节, 0x10 存放第一个字节 |
| 0x1E | W/R | IF_PROTOCOL | 0x00 | 0x00: 串口模式 0x01: I2C 模式保存重启后生效 |
| 0x20 | W | SAVE | -- | 写 0x01: 保存当前寄存器值 |
| 0x21 | W | SHUTDOWN/REBOOT | -- | 写 0x02: 重启 |
| 0x22 | W/R | SLAVE_ADDR | 0x10 | 范围: [0x08, 0x77] |

