# TF-UW500 用户手册

![TF-UW500 产品外观](https://ai.benewake.com/uploads/images/f7cbc5a5-6b34-4a68-bf3b-6f44edb780fa.png)

## 前言

本用户手册包含 TF-UW500 激光雷达的介绍、使用和维护等内容。正式使用前请仔细阅读本手册，使用过程请严格按照手册所述步骤执行，以避免产品损坏、财产损失、人身损害或/和违反产品保修条款。如在使用过程中遇到无法解决的问题，请联系北醒工作人员协助解决。

联系方式官网地址：www.benewake.com

联系电话：400-880-9610咨询技术问题，请联系：support@benewake.com咨询销售事宜或索取介绍资料，请联系：bw@benewake.com公司总部地址北醒（北京）光子科技有限公司北京市海淀区上地街道海国嘉业科技园 3 层版权声明本文档版权归©北醒所有，未经北醒的官方书面许可，请勿对本文档内容进行修改、删减或翻译。

免责声明TF-UW500 产品不断改进中，其规格参数会发生迭代变化，请以官网最新版本为准。

## 1 激光安全信息

![TF-UW500 激光安全标签](https://ai.benewake.com/uploads/images/429d842a-57bd-4674-ac43-5ac881817602.png)

该激光雷达包含红色可见激光点。

根据 IEC 60825-1:2014 / EN 60825-1:2014+A11:2021，该激光产品满足激光级别 1。

注意!

如使用此处所列以外的操作设备或校准设备或采取其他操作方式，可能带来辐射危险。

## 2 安装与维护

注意！该产品被归类为 1 类激光产品。当测距功能被激活时，激光雷达模块的激光发射器可能会发出激光辐射，因此激光雷达不应瞄准人类和动物，以确保安全。

本产品是为外露镜头安装而设计和校准的，如果需要在镜头前添加保护窗，则需要确保使用高透射率和有抗反射涂层的材料。

避免检测现场存在烟雾和雾气。

避免冷凝。

避免直接接触湿气和水。

请勿使用粗糙的织物或脏毛巾或腐蚀性产品来清洁激光镜片。

请勿使用高于规格要求的最大电源电压为产品供电。

用压缩空气清洁激光镜片。需要时，只用柔软、干净的超细纤维布擦拭激光镜片。

确保传感器安装稳固，以防止错误读数或损坏。

只有经过培训和合格的人员才能安装、设置和维修激光雷达激光安全信息。

## 3 产品概述

本章主要介绍 TF-UW500 的工作原理、规格参数、结构外观和视场角度。

### 3.1 工作原理

TF-UW500 是一款基于脉冲时间飞行法测距（PToF）的传感器，发射端的激光器经过发射透镜准直发射出脉冲激光信号，经被测物体的反射，回波信号进入接收透镜，被接收端的探测器检测到。内部电路可计算发射与回波信号的时间差，根据光速即可计算被测物体与 LiDAR 之间的距离。

![TF-UW500 工作原理](https://ai.benewake.com/uploads/images/9a0dbd58-933f-4dcc-b73a-83cced5c219b.png)

图 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） |
| --- |
|  ![TF-UW500 外形尺寸（mm）](https://ai.benewake.com/uploads/images/647a8284-869c-437e-ab8c-500cc10b6ec9.png) |

备注： 1. NTU< 0.5，水面照度 100KLux，30%反射率，垂直入射，雷达位于水下深度超过 1m 时测量；

2. 室内 0 Klux，25 ℃下测得，仅作参考，环境变化时参数有可能变化；

3. 重量、尺寸为典型值仅作参考，详细公差参数请咨询北醒技术人员。

### 3.3 结构外观

雷达整体外观如下：

![TF-UW500 结构外观与视场角](https://ai.benewake.com/uploads/images/867f98ae-dd0d-4aaa-8a1d-5629855093f2.png)

图 2 TF-UW500 外观示意图

### 3.4 视场角

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

![TF-UW500 结构外观与视场角](https://ai.benewake.com/uploads/images/dc92941c-3edf-49d5-8f39-7173a2ae5e6e.png)

图 3 TF-UW500 视场角示意图备注: 0.5° 是理论值。由于生产加工和安装误差，实际视场角与此理论值会存在一定偏差。

## 4 设备安装

本章主要介绍 TF-UW500 的机械安装和连接器信息。

### 4.1 机械安装

TF-UW500 有 2 个安装定位孔可供使用，如下图所示：

![TF-UW500 机械安装](https://ai.benewake.com/uploads/images/ef8ec05b-9908-4d7a-ada6-9550d2fab0fb.png)

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

![TF-UW500 机械安装](https://ai.benewake.com/uploads/images/b308ef27-410d-4503-8b0f-cbde79b9e410.png)

由于光学装配公差需要，请在圆形镜筒周围各个方向至少留出 1mm 的额外空间。

### 4.2 连接器

连接器端子为 1.0mm-4P，端子型号 HC-1.0-4PWT，引脚定义如下图所示：

![TF-UW500 连接器](https://ai.benewake.com/uploads/images/47cf82d9-dab0-45dd-b074-23cf72e4e3dc.png)

图 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] |
