# TFS20-L 用户手册

## Benewake北醒

## TFS20-L 用户手册

![TFS20-L 用户手册 — 原文第 1 页图示 1](https://ai.benewake.com/uploads/images/1cf0e709-462f-4d7a-87f2-57c06af86ffc.png)

## 前言

本用户手册包含TFS20-L激光雷达的介绍、使用和维护等内容。正式使用前请仔细阅读本手册， 使用过程请严格按照手册所述步骤执行，以避免产品损坏、财产损失、人身损害或/和违反产品保修条款。

如在使用过程中遇到无法解决的问题，请联系北醒工作人员协助解决。

联系方式官网地址：www.benewake.com 联系电话：400-880-9610

咨询技术问题，请联系：support@benewake.com 咨询销售事宜或索取介绍资料，请联系：bw@benewake.com

公司总部地址北醒（北京）光子科技有限公司北京市海淀区上地街道海国嘉业科技园3层

## 版权声明

本文档版权归©北醒所有，未经北醒的官方书面许可，请勿对本文档内容进行修改、删减或翻译。

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

## 1产品概述

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

### 1.1工作原理

TFS20-L是一款微型化单点激光雷达模组，基于直接测量飞行时间法（dToF）进行距离测量。

发射端的激光器经过发射透镜准直发射出脉冲激光信号，经被测物体的反射，回波信号进入接收透镜，被接收端的高灵敏度SPAD探测器检测到，可计算出发射与回波信号的时间差，根据光速即可计算被测物体与LiDAR之间的距离。

### 1.2规格参数

表1规格参数

| 性能参数 | 性能参数 |
| --- | --- |
| 测量范围 | 0.2-20m@90%反射率@0Klux，0.2-15m@90%反射率@100Klux 0.2-12m@10%反射率@0Klux，0.2-9m@10%反射率@100Klux |
| 准确度① | ±6cm（0.2~6m），1%（≥6m） |
| 测距精度② | 2cm（0.2~6m）@1σ |
| 帧率 | 0/20/50/100（默认）/250Hz |
| 抗环境光能力 | 100Klux |
| 光学性能 | 光学性能 |
| 光源 | VCSEL |
| 中心波长 | 905nm |
| 视场角 | <2° |
| 激光安全等级 | Class 1 Eye-safe 【EN60825】 |
| 机械电气参数 | 机械电气参数 |
| 平均功耗 | ≤0.43W |
| 峰值电流③ | 130mA@3.3V |
| 供电电压 | DC 3.3±9%V |
| 通信电平④ | LVTTL（3.3V） |
| 工作温度 | -20°C~+60°C |
| 存储温度 | -40°C~+85°C |

| 尺寸 | 21 × 15 × 7.87 mm³ |
| --- | --- |
| 重量 | 1.35g |
| 硬件接口 | 0.8mm-6P（型号：WF08006-01207） |
| 防护等级 | 无 |

## 备注：

①该准确度为室内25°C、90%反射率背景板下测得，条件变化可能会引起测

## 量结果变化。

②该精度为室内25°C条件下测得，条件变化可能会引起测量结果变化。

③峰值电流为室温环境下测得。

④LVTTL电平不能超过3.3V

### 1.3结构外观

![TFS20-L 用户手册 — 原文第 5 页图示 1](https://ai.benewake.com/uploads/images/c4c145da-a8a6-4528-b14b-1ad4902beabe.png)

## 2硬件接口及协议

### 2.1线序说明

连接器端子型号为WF08006-01207，端子间距0.8mm

![TFS20-L 用户手册 — 原文第 6 页图示 1](https://ai.benewake.com/uploads/images/9978c8c2-782a-4c31-bac4-2342887bc408.png)

图2TFS20-L线序

| 编号 | 功能 | 说明 |
| --- | --- | --- |
| 1 | 3V3 LASER | 激光器供电 |
| 2 | 3V3 | 电源正极 |
| 3 | UART_TX/I2C_SDA | 接收/数据 |
| 4 | UART_RX/I2C SCL | 发送/时钟 |
| 5 | GPIO | 通信片选 |
| 6 | GND | 电源地 |

模组支持UART、IIC两种通讯方式，但上电时，只能选择其中一种接口运行。如下图： 12C

| UART | I²C |
| --- | --- |
|  ![TFS20-L 用户手册 — 原文第 6 页图示 2](https://ai.benewake.com/uploads/images/c3372b39-37e2-4249-afea-ad4e60307a71.png) |  ![TFS20-L 用户手册 — 原文第 6 页图示 3](https://ai.benewake.com/uploads/images/ec8eadc1-4060-475e-aec8-bcbb66f9032d.png) |
| 上电时将 INT 管脚接地 | 上电时 INT 管脚需要上拉一个 4.7K 的电阻或者直接悬空 |

### 2.2 串口数据通信

表2UART通信协议

| 接口参数 | 默认值 | 是否可配置 |
| --- | --- | --- |
| 波特率 | 115200 | 可配置 |
| 数据位 | 8 | 不可配置 |
| 停止位 | 1 | 不可配置 |
| 奇偶校验 | 无 | 不可配置 |

## 备注：

波特率可以设置为9600、19200、38400、57600、115200、230400、

## 460800、921600。TFS20-L的默认波特率为115200。配置错误波特率时，

重置为115200。

### 2.3串口输出格式

每个数据帧由9个字节的十六进制数组成，详见下表： 表3数据帧

| Byte0-1 | Byte2 | Byte3 | Byte4 | Byte5 | Byte6 | Byte7 | Byte8 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 0x59 59 | Dist_L | Dist_H | Strength_L | Strength_H | Temp_L | Temp_H | Checksum |
| 数据编码解释 | 数据编码解释 | 数据编码解释 | 数据编码解释 | 数据编码解释 | 数据编码解释 | 数据编码解释 | 数据编码解释 |
| Byte0 | 0x59，帧头，每一帧都相同 | 0x59，帧头，每一帧都相同 | 0x59，帧头，每一帧都相同 | 0x59，帧头，每一帧都相同 | 0x59，帧头，每一帧都相同 | 0x59，帧头，每一帧都相同 | 0x59，帧头，每一帧都相同 |
| Byte1 | 0x59，帧头，每一帧都相同 | 0x59，帧头，每一帧都相同 | 0x59，帧头，每一帧都相同 | 0x59，帧头，每一帧都相同 | 0x59，帧头，每一帧都相同 | 0x59，帧头，每一帧都相同 | 0x59，帧头，每一帧都相同 |
| Byte2 | Dist_L距离值低八位 | Dist_L距离值低八位 | Dist_L距离值低八位 | Dist_L距离值低八位 | Dist_L距离值低八位 | Dist_L距离值低八位 | Dist_L距离值低八位 |
| Byte3 | Dist_H距离值高八位 | Dist_H距离值高八位 | Dist_H距离值高八位 | Dist_H距离值高八位 | Dist_H距离值高八位 | Dist_H距离值高八位 | Dist_H距离值高八位 |
| Byte4 | Strength_L低八位 | Strength_L低八位 | Strength_L低八位 | Strength_L低八位 | Strength_L低八位 | Strength_L低八位 | Strength_L低八位 |
| Byte5 | Strength_H高八位 | Strength_H高八位 | Strength_H高八位 | Strength_H高八位 | Strength_H高八位 | Strength_H高八位 | Strength_H高八位 |
| Byte6 | Temp_L低八位 | Temp_L低八位 | Temp_L低八位 | Temp_L低八位 | Temp_L低八位 | Temp_L低八位 | Temp_L低八位 |
| Byte7 | Temp_H高八位 | Temp_H高八位 | Temp_H高八位 | Temp_H高八位 | Temp_H高八位 | Temp_H高八位 | Temp_H高八位 |
| Byte8 | Checksum为前8字节数据的累加和，取累加和的低8位 | Checksum为前8字节数据的累加和，取累加和的低8位 | Checksum为前8字节数据的累加和，取累加和的低8位 | Checksum为前8字节数据的累加和，取累加和的低8位 | Checksum为前8字节数据的累加和，取累加和的低8位 | Checksum为前8字节数据的累加和，取累加和的低8位 | Checksum为前8字节数据的累加和，取累加和的低8位 |

### 2.4I2C通信

引脚5上拉一个4.7K的电阻或直接悬空时，TFS20-L启动为I2C通信模式，引脚3为数据线 SDA，引脚4为时钟线SCL，TFS20-L做为I2C 从机，默认从机地址为 0x10，支持最高 400kbps的时钟频率。I2C寄存器列表见附录I2C寄存器列表。

注意： 1.固件版本V1.4.6及以上的版本支持I2C通信，若固件版本低于V1.4.6或出现无法通信的情况，请升级固件或联系技术支持人员。

2. 本文档中的I2C从机地址是7-bit 的数值，可用范围是［0x08，0x77］，十进制［8， 119］。I2C开始信号后发送的第一个字节，需要先将7-bit 的地址左移一位（乘以2），再补充最低位的读写标志。如 TF-Luna 的默认从机地址为0x10，写操作地址为0x20，读操作地址为0x21。通过I2C写寄存器后，TFS20-L需要一段时间进行处理才能生效，如果用户需要读回寄存器值进行验证，建议在写操作之后等待100ms在进行读操作。

写寄存器时序：

![TFS20-L 用户手册 — 原文第 8 页图示 1](https://ai.benewake.com/uploads/images/059b5ef7-d99d-4f0b-b2c3-575f44f5b4b4.png)

写寄存器：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。

## 3 自定义配置

### 3.1帧定义

TFS20-L中的一些参数客户可以进行自定义配置，例如数据帧格式、帧率等，可以通过发送特定指令进行更改，所有参数在配置成功后均会保存在Flash中，重新上电时无须再次配置。

配置参数时请遵循特定格式和规则，避免发送随机的指令。

注意：所有配置指令均为16进制数（HEX）发送。

表4TFS20-L指令格式

| Byte0 | Byte1 | Byte2 | Byte3~ByteN-2 | ByteN-1 |
| --- | --- | --- | --- | --- |
| Head | Len | ID | Payload | Checksum |
| 指令编码解释 | 指令编码解释 | 指令编码解释 | 指令编码解释 | 指令编码解释 |
| Byte0 | Head：指令帧的帧头（固定值，0x5A） | Head：指令帧的帧头（固定值，0x5A） | Head：指令帧的帧头（固定值，0x5A） | Head：指令帧的帧头（固定值，0x5A） |
| Byte1 | Len：指令帧总长度（包含Head和Checksum，单位为字节） | Len：指令帧总长度（包含Head和Checksum，单位为字节） | Len：指令帧总长度（包含Head和Checksum，单位为字节） | Len：指令帧总长度（包含Head和Checksum，单位为字节） |
| Byte2 | ID：代表不同功能指令的解析方式 | ID：代表不同功能指令的解析方式 | ID：代表不同功能指令的解析方式 | ID：代表不同功能指令的解析方式 |
| Byte3-N-2 | Data：数据段，根据ID进行解析，数据为小端格式 | Data：数据段，根据ID进行解析，数据为小端格式 | Data：数据段，根据ID进行解析，数据为小端格式 | Data：数据段，根据ID进行解析，数据为小端格式 |
| ByteN-1 | Checksum：对从Head到Payload的所有字节进行求和计算，取低8位 | Checksum：对从Head到Payload的所有字节进行求和计算，取低8位 | Checksum：对从Head到Payload的所有字节进行求和计算，取低8位 | Checksum：对从Head到Payload的所有字节进行求和计算，取低8位 |

### 3.2一般参数配置及说明

设置TFS20-L的相关参数，请先将TFS20-L与PC建立连接，连接方式参考4.2，通过TF上位

## 机或者其他串口调试软件，给产品发送相关配置指令；客户也可以通过自己的串口工具发送相

关指令。

在发送完参数配置指令后，默认掉电保存。

表5常用的配置指令

| 可配置项 | 下行指令 | 上行指令 | 说明 | 出厂配置 |
| --- | --- | --- | --- | --- |
| 获取固件版本 | 5A 04 01 5F | 5A 07 01 V1 V2 V3 SU④ | 版本号V3.V2.V1 | / |

| 输出帧率① | 5A 06 03 LL HH SU④ | 5A 06 03 LL HH SU | 仅支持 0/20/50/100/250Hz | 100Hz |
| --- | --- | --- | --- | --- |
| 单次触发指令 | 5A 04 04 62 | 数据帧 | 将输出帧率设置为 0 后，可通过本指令触发测试 | / |
| 输出模式 | 5A 05 05 01 65 | 5A 05 05 01 65 | 标准 9 字节（cm） | / |
| 输出模式 | 5A 05 05 06 6A | 5A 05 05 06 6A | 标准 9 字节（mm） | / |
| 波特率② | 5A 08 06 H1 H2 H3 H4 SU | 5A 08 06 H1 H2 H3 H4 SU | 设置波特率②例：256000(DEC)=3E800(HEX)，H1=00,H2=E8,H3=03,H4=00 | 115200 |
| 输出开关③ | 5A 05 07 00 66 | 5A 05 07 00 66 | 关闭数据输出 | / |
| 输出开关③ | 5A 05 07 01 67 | 5A 05 07 01 67 | 使能数据输出 | / |
| 校验和开关 | 5A 05 08 01 68 | 5A 05 08 01 68 | 使能校验和 | / |
| 校验和开关 | 5A 05 08 00 67 | 5A 05 08 00 67 | 不使能校验和 | / |
| 信号强度低阈值和低阈值输出值 | 5A 07 22 XX LL HH 00 | 5A 07 22 XX LL HH SU | 修改示例：Strength≤100 后，Dist 输出值修改为 1200。XX=100/10=10(DEC)=0A(HEX)；1200(DEC)=4B0(HEX)；LL=B0，HH=04 | Strength<300 后，Dist 输出值为 500 |

## 备注：

①配置项主要用于调整产品的输出频率。输出频率默认值为100Hz，支持自定义配置，支持频率为0、20、50、100、250Hz。

②波特率可以设置为9600、19200、38400、57600、115200、230400、 460800、921600。TFS20-L的默认波特率为115200。配置错误波特率时， 重置为115200。

③每次上电需发送使能开关指令。

④ ‘SU’ 代表校验和将低 8 位放入指令中例如，将波特率修改为460800，首先将460800 更改为 HEX （0x00 0708 00），然后计算校验和为0x77，可以得到如下指令-5A 08 06 00 08 07 00

77 ⑤不需要发送保存指令，发送特定配置指令后即刻生效并保存。

## 4 快速测试步骤

### 4.1 产品测试所需工具

|  ![TFS20-L 用户手册 — 原文第 12 页图示 2](https://ai.benewake.com/uploads/images/fde78fc2-8d74-45a0-b65a-ede027258b3f.png) |  ![TFS20-L 用户手册 — 原文第 12 页图示 3](https://ai.benewake.com/uploads/images/c3da64c7-a5c1-4379-ac51-e6bcc7bbb2f1.png) |  ![TFS20-L 用户手册 — 原文第 12 页图示 4](https://ai.benewake.com/uploads/images/0ccf80cd-e33b-48a3-9bd7-a7b0f48f0811.png) |  ![TFS20-L 用户手册 — 原文第 12 页图示 5](https://ai.benewake.com/uploads/images/be95a9c9-7017-4b51-ac0f-f08776b3dea4.png) |  ![TFS20-L 用户手册 — 原文第 12 页图示 6](https://ai.benewake.com/uploads/images/b8bb7691-258a-40c0-a85d-72d94fabd60f.png) |
| --- | --- | --- | --- | --- |
| TFS20-L | TTL-USB板 | USB-TypeC线 | 电脑 | 上位机软件 |

### 4.2测试步骤

（1）上位机测试软件下载请到北醒官网（http://www.benewake.com/download）下载TFS20-L上位机软件。

注意：解压上位机软件前请关闭杀毒软件，避免上位机软件中的文件被当成病毒删除，上位机目前仅支持在Windows系统上运行。

（2）设备连接

![TFS20-L 用户手册 — 原文第 12 页图示 1](https://ai.benewake.com/uploads/images/b6245399-4ab8-4d2f-a14e-ee7d48991cab.png)

如上图所示，连接「TFmini/TFmini-SJ、ITTL-USB转接板！和「USB线』，确保无松动， 再将『「USB线』与『电脑』连接。

（3）上位机连接与读数如图5，打开TF上位机，选择『①TFmini/TFmini-S」，并选择自动识别的占用串口（这里是 『②COM57」）。

然后，点击『CONNECT」进行上位机连接。连接成功后，右侧『④TIMELINECHART」区域会出现连续输出的数据图像，下方『⑥REALTIMEDATAJ区实时显示当前测试距离（Dist）、 每秒有效数据量（EffectivePoints）和信号强度（Strength）。

![TFS20-L 用户手册 — 原文第 13 页图示 1](https://ai.benewake.com/uploads/images/f28e0f9e-04f0-4362-bcc7-986bd5dd8550.png)

说明： 如果「④TIMELINECHART』区没有数据，请检查连接和线序，TFS20-L上电成功，正面看发射透镜内会有微弱的红光。

距离输出 Dist 值，跟据输出单位不同会有所区别，默认单位为cm。如果通过指令修改TFS20- L的距离单位为mm，上位机并不能区分，I④）TIMELINECHART』单位仍为cm。例如， TFS20-L实际测量距离为1m，以mm为单位则输出1000，通过该上位机读取的数值为1000， 但上位机上的单位不会变化，仍显示cm。

## 5 FAQ

1．雷达连接上位机后，无数据输出。

原因①：目前上位机仅支持Windows操作系统，其他系统暂不支持。

处理措施：更换为Windows操作系统的PC。

原因②：TTL-USB板连接不良。

处理措施：检查TTL-USB板与TFS20-L和PC的连接是否正确可靠。

原因③：串口驱动未正确安装。

处理措施：重新插拔USB连接线，尝试重新安装驱动，或去网上直接搜索驱动程序下载安装。

如果仍不能正常使用上位机，请联系我司技术支持。

2.TFS20-L工作一段时间后会发热这是产品正常工作状态。芯片与电路板持续工作后，轻微发热属于正常现象

3.TFS20-L没有数据输出。

原因①：V1.4.0版本上电默认不输出数据，需要发送使能输出的指令。

处理措施：上电后发送使能输出指令5A 05 07 01 67。

原因②：产品出厂前会经过严格的审检，以保证出厂的产品都可正常使用。因此可能是运输或者使用过程中的意外情况导致工作异常。

处理措施：检查供电是否正常，电压是否在额定电压范围内。如供电正常，TFS20-L发射镜头内会有微弱红光。

检查TFS20-L接线顺序是否正确，连接是否可靠。

检查数据解析是否正确，请按照说明书说明的数据格式进行解析。

如仍未解决问题，请联系技术支持。

4.TFS20-L是否支持超低功耗模式？ 不支持，目前待机功耗约145mW。平均功耗约430mW，若使用10000mAh电池供电，可维持约6天。

## 附录I2C寄存器列表

| Address | R/W | Name | Initial Value | Description |
| --- | --- | --- | --- | --- |
| 0x00 | R | DIST_LOW | -- | cm |
| 0x01 | R | DIST_HIGH | -- |  |
| 0x02 | R | AMP_LOW | -- |  |
| 0x03 | R | AMP_HIGH | -- |  |
| 0x04 | R | TEMP_LOW | -- | 0.01 摄氏度 |
| 0x05 | R | TEMP_HIGH | -- |  |
| 0x06 | R | TICK_LOW | -- | 时间戳 |
| 0x07 | R | TICK_HIGH | -- |  |
| 0x08-0x09 |  |  |  | 保留 |
| 0x0A | R | VERSION_REVISION | -- | 修订版本 |
| 0x0B | R | VERSION_MINOR | -- | 次版本 |
| 0x0C | R | VERSION_MAJOR | -- | 主版本 |
| 0x0D-0x0F |  |  |  | 保留 |
| 0x10-0x1D | R | SN | -- | 生产编码，ASCII 码，14 字节，0x10 存放第一个字节 |
| 0x1E-0x1F |  |  |  | 保留 |
| 0x20 | W | SAVE | -- | 写 0x01：保存当前寄存器值 |
| 0x21 | W | SHUTDOWN/REBOOT | -- | 写 0x02：重启 |
| 0x22 | W/R | SLAVE_ADDR | 0x10 | 范围：[0x08, 0x77] |
| 0x23 | W/R | MODE | 0x00 | 0x00：连续工作模式；0x01：指令触发模式 |
| 0x24 | W | TRIG_ONE_SHOT | -- | 0x01：触发一次测距，仅指令触发模式下有效 |
| 0x25 | W/R | ENABLE | 0x01 | 0x00：雷达关闭；0x01：雷达开启 |
| 0x26 | W/R | FPS_LOW | 0x64 | 帧率 |
| 0x27 | W/R | FPS_HIGH | 0x00 |  |
| 0x28 |  |  |  | 保留 |
| 0x29 | W | RESTORE_FACTORY_DEFAULTS | -- | 写 0x01：恢复出厂寄存器值 |
| 0x2A | W/R | AMP_THR_LOW | 0x2C | AMP 阈值，AMP 低于阈值后，距离固定为 DUMMY_DIST |
| 0x2B | W/R | AMP_THR_HIGH | 0x01 |  |
| 0x2C | W/R | DUMMY_DIST_LOW | 0xFF | 当 AMP 低于 AMP_THR 输出的距离值，cm |
| 0x2D | W/R | DUMMY_DIST_HIGH | 0xFF |  |
| 0x2E | W/R | MIN_DIST_LOW | 0x00 | 最小距离值，mm，DUMMY_DIST 不受该限制 |
| 0x2F | W/R | MIN_DIST_HIGH | 0x00 |  |
| 0x30 | W/R | MAX_DIST_LOW | 0xFF | 最大距离值，mm，DUMMY_DIST 不受该限制 |
| 0x31 | W/R | MAX_DIST_HIGH | 0xFF |  |
| 0x3A-0x3F | R | SIGNATURE | -- | ‘TFS20-L’ |
