TF-Luna 用户手册
TF-Luna 用户手册,含原始资料中的参数、图示与说明。
TF- L una 用户手册

Benewake (Beijing) Co., Ltd
前言
本用户手册包括 TF-Luna 激光雷达测距模组的介绍、使用和维护等相关内容,涵盖常见情况下的使用说明及问题处理措施。请在使用前仔细阅读本手册,谨记注意事项,避免危险,并在使用过程中,严格遵守手册内所述步骤执行。
如果您在使用过程中遇到了无法解决的问题,欢迎您随时联系北醒工作人员协助解决。
联系方式官网地址:www.benewake.com 联系电话:400-880-9610 咨询技术问题,请联系:support@benewake.com 咨询销售事宜或索取介绍资料,请联系:bw@benewake.com
公司总部地址北醒(北京)光子科技有限公司北京市海淀区上地街道海国嘉业科技园 3 层
版权声明本文档版权归©北醒公司所有,未经北醒公司的官方书面许可,请勿对本文档内容进行修改、删减或翻译。
免责声明我们的产品还在不断改进和更新,因此 TF-Luna 的规格参数可能会发生变化,请以官网上的最新版本为准。
1 概览
TF-Luna 是一款基于 ToF 原理的单点测距雷达,采用 850nm 红外光源,配合独特的光学, 电学设计,可以实现稳定、精准、高灵敏的距离测量。
产品内置多种应用环境及目标的适配算法,并开放了多种可调节配置和参数。可以保证在复杂环境中具有优良的测距性能,满足客户复杂的应用场景需求。
1.1 关键特性参数
表 1-1TF-Luna参数表
| 参数名称 | 参数值 | ||
|---|---|---|---|
| 产品性能 | 测量范围 | 90%反射率 | 0.2m~8m |
| 10%反射率 | 0.2m~2.5m | ||
| 准确度① | ±6cm @(0.2m~3m);±2% @(3m~8m) | ||
| 距离分辨率① | 1cm | ||
| 帧率② | 100Hz | ||
| 抗环境光能力 | 70Klux | ||
| 工作温度 | -10℃~60℃ | ||
| 防护等级 | / | ||
| 光学参数 | 人眼安全 | Class 1 (IEC60825) | |
| 中心波长 | 850nm | ||
| 光源 | VCSEL | ||
| 视场角③ | 2° | ||
| 电学参数 | 供电电压 | DC 3.7V-5.2V | |
| 通信电平 | LVTTL(3.3V) | ||
| 平均电流 | ≤70mA | ||
| 功耗 | ≤0.35W | ||
| 峰值电流 | 150mA | ||
| 其他 | 尺寸 | 35mm*21.25mm*13.5mm(长*宽*高) | |
| 壳体材质 | ABS/PC | ||
| 存储温度 | -20℃~75℃ | ||
| 重量 | <5g | ||
| 线长 | 10cm | ||
提示 1 准确度、距离分辨率、重复精度等均在室内 25℃ 漫反射白板(90%反射率) 条件下测得。
2 最高支持 250Hz,可以设定的帧率是 500/n,n 是大于等于 2 的整数,也就是 250-167-125-100-等,出厂默认是 100Hz。
3 视场角为理论值,实际角度值存在一定偏差。
1.2 测距特性
TF-Luna 产品经过光路与算法优化,已最大程度减小外界环境对测距性能的影响。
TF-Luna 的测距盲区,为 0-20cm,该范围内的数据不可信。
对黑色(10%反射率)目标的探测能力,测量范围为 0.2-2.5m。
对白色(90%反射率)目标的探测能力,测量范围为 0.2-8m。
只有当『被测目标边长』大于等于『有效测距边长』时,数据才稳定可靠。『有效测距边长』由视场角决定(视场角一般是指接收角和发射角中的较小者),计算公式为: d = 2 ∗ D ∙ tanβ 其中,表示有效测距边长,D 表示探测距离,为 TF-Luna 的接收半角 1°,一般的有效测距边长与探测距离的对应关系,见表 1-4: 表1-4 测距距离对应的被测目标有效边长
| 探测距离 | 1m | 2m | 3m | 4m | 5m | 6m | 7m | 8m |
|---|---|---|---|---|---|---|---|---|
| 有效边长 | 3.5cm | 7cm | 10.5cm | 14cm | 17.5cm | 21cm | 24.5cm | 28cm |
当被测物体边长不满足有效测距边长时,如图 1-1 所示,TF-Luna 输出测量值(Dist)会出现异常。使用过程中如果要求精度较高,应尽量避免此类情况,减小测量误差。

2 接口定义
2.1 线序说明

图2-1 TF-Luna引脚顺序示意图表2-1 引脚功能及连接说明
| 编号 | 功能 | 说明 |
|---|---|---|
| 1 | +5V | 电源正极 |
| 2 | RXD/SDA | 接收/数据 |
| 3 | TXD/SCL | 发送/时钟 |
| 4 | GND | 电源地 |
| 5 | 接口配置输入 | 接地:启动为 I2C 模式悬空或者接 3.3V:启动为串口模式 |
| 6 | 复用输出 | 开关量模式功能:开关量输出 I2C 模式且开关量模式关闭:数据准备好指示 |
2.2 电器特性
表2-2TF-Luna主要电气参数
| 参数名称 | 参数值 |
|---|---|
| 平均电流 | ≤70mA |
| 峰值电流 | 150mA |
| 功耗 | ≤350mW |
| 通信电平 | LVTTL(3.3V) |
本产品无过压保护或者极性保护,请确保接线正常,输入电压在指定范围内。
3 数据格式与通信协议
3.1 串口通信
引脚 5 悬空或者接 3.3V 时,TF-Luna 启动为串口通信模式,引脚 2 为串口接收 RXD,引脚 3 为串口发送 TXD。串口通信硬件协议为:数据位 8bit,停止位 1bit,无奇偶校验,默认波特率 115200bps。
| 字节 | 0 | 1 | 2 | 3~Len-2 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Payload | Checksum |
串口通信软件协议数据帧格式如下: Head: 帧头,固定为 0x5A。
Len: 包含帧头到 Check_sum 的所有字节的长度,单位为字节,范围 4~255。
ID: 指示如何解析 Payload 数据。
Payload: 数据段,根据 ID 进行解析,可能没有数据段。
Checksum: 对从 Head 到 Payload 的所有字节进行求和计算,取低 8 位。
串口通信软件协议见附录二串口通信软件协议。
注意:TF-Luna 内部对下行数据帧默认没有开启校验和检查,即下行帧尾的 Checksum 可以填充任意值。从 TF-Luna 上行的数据帧包含了正确的 Checksum 值。
如果用户对通信可靠性有需求 , 可以通过附录二串口通信软件协议中的 “ 校验和开关 ID_FRAME_CHECKSUM_EN=0x08”指令开启校验和检查功能。
配置指令下发后立即生效 ,但不会被保存,如需掉电保存,需要追加发送“保存当前设置 ID_SAVE_SETTINGS=0x11”指令:5A 04 11 00。
3.2 I2C 通信
引脚 5 接地时,TF-Luna 启动为 I2C 通信模式,引脚 2 为数据线 SDA,引脚 3 为时钟线 SCL, TF-Luna 做为 I2C 从机,默认从机地址为 0x10,支持最高 400kbps 的时钟频率。I2C 寄存器列表见附录三 I2C 寄存器列表。
注意:本文档中的 I2C 从机地址是 7-bit 的数值,可用范围是[0x08, 0x77],十进制[8, 119]。I2C 开始信号后发送的第一个字节,需要先将 7-bit 的地址左移一位(乘以 2),再补充最低位的读写标志。如 TF-Luna 的默认从机地址为 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 信号。
在连续测距工作模式下,主机必须根据 TF-Luna 的引脚 6 产生的数据准备好信号做为同步信号, 在指定的时序内发起读数据操作,否则可能在数据寄存器更新期间进行读取,导致偶现数据异常的问题。多机总线模式下,建议使用指令触发模式工作。

数据更新完成时,引脚 6 切换为高电平,读寄存器操作(任意寄存器)完成时,引脚 6 切换为低电平。连续工作模式下,I2C 主机需要在读到引脚为高电平后,立即读取数据寄存器。上面时序中,第一次读取的数据不可靠,后面两次是正确的读取时机。
通过 I2C 写寄存器后,TF-Luna 需要一段时间进行处理才能生效,如果用户需要读回寄存器值进行验证,建议在写操作之后等待 100ms 再进行读操作。
3.3 数据输出
TF-Luna 主要输出以下几项数据: • 测距值(Dist):默认单位 cm。
• 信号强度(Amp):当 Amp=0xFFFF 时,表示过曝;当 Amp<100 时,信号过低。信号过曝或过低时,距离值都不可信。正常情况下 Amp 的数值不会大于 30000,当 Amp 大于 32768 时表明 TF-Luna 探测到环境光过曝,比如室外正对太阳的情况。
• 芯片温度(Temp):串口输出的温度值换算成摄氏度的算式为:Temp/8-256。注意,Temp 是芯片温度,不是环境温度,通常情况下,芯片温度比环境温度高约 20℃。
• TF-Luna 支持多种串口输出格式,请参考附录一串口输出格式,出厂默认为“9 字节 cm” 格式。用户可以通过“设置输出格式 ID_OUTPUT_FORMAT=0x05”指令修改输出格式。
3.4 连续测距模式
TF-Luna 内部以 500Hz 的频率进行测距,根据用户配置的输出频率,做多次平均后输出。如出厂默认配置的 100Hz 输出频率,TF-Luna 内部将连续 5 个测距结果进行求平均运算后输出。因此输出频率越低,平均次数越多,数据波动性越小。TF-Luna 支持的最高输出频率为 250Hz, 而且仅支持 500/n 的频率值,其中 n 的取值范围是[2,500],即用户可配置的输出频率为:250, 166,125,100,…2,1 等值。用户可以通过“设置输出频率 ID_SAMPLE_FREQ=0x03”指令修改输出频率。
3.5 指令触发模式
当通过“设置输出频率 ID_SAMPLE_FREQ=0x03”指令设置输出频率为 0 时,TF-Luna 进入指令触发模式,此时雷达不再主动测距,每收到一次“单次触发指令 ID_SAMPLE_TRIG=0x04”(5A 04 04 00),测距并输出一次。
3.6 开关量模式
当用户只关心某一距离范围内是否存在目标时 , 可以通过 “ 设置开关量输出模式 ID_ON_OFF_MODE=0x3B”指令使能 TF-Luna 的开关量模式。该模式下,探测信息由引脚 6 的高低电平表示。图 3-2 以近高远低模式为例,说明开关量模式的工作方式。

当 Zone 设置为 0,目标距离小于 Dist 时引脚 6 输出高电平,目标距离大于 Dist 时引脚 6 输出低电平。如果目标距离恰好在 Dist 处,可能由于测距的波动性,导致引脚 6 电平频繁高低跳变。
可以通过设置 Zone,构成一个滞回区间,避免该问题。当 Zone 不为 0,目标距离大于 Dist+Zone 时才会触发高电平到低电平的跳变,目标距离小于 Dist 时才会触发低电平到高电平的跳变。
开关量模式支持延时设置,当 Delay1 和 Delay2 不为 0,目标距离满足跳变条件时不会立即触发触引脚 6 的电平跳变,只有持续 Delay1 或 Delay2 ms 时间始终满足跳变条件,才会真正触发引脚 6 的电平跳变。
注意,默认设置下,当信号强度小于阈值时,测距值被赋值为 0,当用户使用开关量模式时,如果远距离没有目标,信号强度小于阈值,使得距离值为 0,导致引脚 6 的电平与近距有目标一致。
此时可以参考“3.7 Amp 阈值设置”将信号强度小于阈值时的距离值,设置为大于 Dist+Zone 的数值。
3.7 Amp 阈值设置
当信号强度过小时,距离解算结果可能出错,因此 TF-Luna 出厂默认配置下,当 Amp<100 时, 距离强制被赋值为 0。当用户对 TF-Luna 的距离输出值有更低或更高的要求时,可以通过“设置 AMP 踢点阈值 ID_AMP_THRESHOLD=0x22”适当调整 Amp 阈值。注意,实际设置的 Amp 阈值为指令中数值的 10 倍。
3.8 距离限制设置
TF-Luna 出厂默认配置下,最小输出 0cm,最大输出 900cm。用户可以根据实际需求通过“设置距离限制 ID_DIST_LIMIT=0x3A”指令进行设置。
注意,超出[20cm, 800cm]的量程范围的距离值可能不可靠。
3.9 低功耗模式
TF-Luna 的功耗受两个因素决定:光源驱动电流大小、发光占空比。
TF-Luna 通过自适应调节光源驱动电流,达到适应不同距离、不同反射率目标的大动态范围的目的。返回雷达的信号强度过高时,自动切换到低档位电流工作,相反,信号强度过低时,自动切换到高档位电流工作。电流档位越高,功耗越大。
参考“3.8 连续测距模式”,连续测距模式下,TF-Luna 始终以最高占空比发光,不随输出频率而改变。因此当 TF-Luna 为连续工作模式,电流档位处于最高档时,功耗最大,5V 供电时,功耗约 350mW。
用户可以通过两种方式改变 TF-Luna 的发光占空比。第一种是使用指令触发模式,TF-Luna 在没有收到测距指令时不发光,此时功耗约 42.5mW(5V 供电),实际功耗由指令触发的频率确定。另一种方式是使能 TF-Luna 提供的低功耗模式,该模式的内部工作机制与指令触发模式相同 , 只是由 TF-Luna 内部自动产生触发信号 。 用户可以通过 “ 低功耗模式 ID_LOW_CONSUMPTION=0x35”指令设置 TF-Luna 进入低功耗模式。
为保证 TF-Luna 内部工作时序,低功耗模式最大输出频率为 10Hz。下面表格列出了 5V 供电时, 低功耗模式不同工作频率下平均功耗的参考值,实际功耗可能受环境温度或供电电压的影响,与参考值存在差异。
表3-1TF-Luna主要电气参数
| 低功耗模式工作频率 | 平均工作电流(mA) | 平均功耗(mW) |
|---|---|---|
| 1Hz | 8.85 | 44.25 |
| 2Hz | 9.2 | 46 |
| 3Hz | 9.55 | 47.75 |
| 4Hz | 9.9 | 49.5 |
| 5Hz | 10.25 | 51.25 |
| 6Hz | 10.6 | 53 |
| 7Hz | 10.95 | 54.75 |
| 8Hz | 11.3 | 56.5 |
| 9Hz | 11.65 | 58.25 |
| 10Hz | 12 | 60 |
3.10 超低功耗模式
为进一步降低功耗,TF-Luna 提供了“超低功耗模式”。该模式下,MCU 进入睡眠模式,此时 TF-Luna 的待机功耗约 1.5mW。由于 MCU 进入睡眠模式,无法像“低功耗模式”那样自动触发, 必须通过引脚 2 的电平变化唤醒。
3.10.1 串口通信超低功耗模式
(1) 进入超低功耗模式通过指令“超低功耗模式 ID_ ULTRA_LOW_POWER_MODE=0x58”使能超低功耗模式,该指令下发后 TF-Luna 停止串口输出,但并未立即进入超低功耗模式,还需要继续依次发送“保存当前设置 ID_SAVE_SETTINGS=0x11”和“系统软件复位 ID_SOFT_RESET=0x02”指令之后 , TF-Luna 才进入超低功耗模式。由于配置已经保存,再次上电后将直接进入该模式。
(2) 唤醒测距用户通过串口向 TF-Luna 发送任意一个字节数据,将唤醒 TF-Luna 进行一次测距,测距完成后通过串口发送出指定格式的测距结果,然后再次进入超低功耗模式。图 3-3 以 115200 波特率, 9 字节输出格式为例,唤醒时长约 8.5ms。

图3-3 串口通信超低功耗模式时序示意图 (3) 退出超低功耗模式由于处于超低功耗模式下时 TF-Luna 的串口通信模块未使能,因此不能直接退出该模式, TF-Luna 只能在被唤醒的短暂时序内可以响应串口指令。因此用户需要连续发送“超低功耗模式 ID_ ULTRA_LOW_POWER_MODE=0x58”的“不使能” 指令,直到接收到 TF-Luna 的回应。然后用户再发送“保存当前设置 ID_SAVE_SETTINGS=0x11”指令,确保将该状态保存。
(4) 功耗估计 TF-Luna 睡眠时功耗约 1.5mW,唤醒期间平均功耗约 260mW,唤醒时长约 8.5ms。根据以上计算条件,1 秒唤醒测试一次,平均功耗约 3.7mW。10 秒唤醒测试一次,平均功耗约 1.72mW。
3.10.2 I2C 通信超低功耗模式
(1) 进入超低功耗模式用户需要向 0x1F 地址开始连续写入三个字节:[0x01, 0x01, 0x02],进入并保存超低功耗模式。
(2) 唤醒测距用户可以尝试访问任意一个有效或无效的寄存器地址(将不会收到从机的 ACK),TF-Luna 检测到引脚 2 上的电平变化时即被唤醒。唤醒后执行一次测距,并在寄存器中更新测距结果。直到用户执行一次读寄存器操作后,TF-Luna 才再次进入睡眠模式。

(3) 退出超低功耗模式由于只有读寄存器操作才能使 TF-Luna 再次进入睡眠模式,因此唤醒后(触发后等待至少 6ms) 直接向 0x1F 地址开始连续写入三个字节:[0x00, 0x01, 0x02],即可退出超低功耗模式。
(4) 功耗估计 TF-Luna 睡眠时功耗约 1.5mW,唤醒测距期间平均功耗约 200mW,唤醒测距时长约 12ms, 等待读取期间功耗约 42.2mW,假设等待 5ms。根据以上计算条件,1 秒唤醒测试一次,平均功耗约 4.1mW。10 秒唤醒测试一次,平均功耗约 1.76mW。
3.10.3 注意事项
由于超低功耗模式待机时 MCU 处于睡眠状态,可能无法正确响应用户指令,因此在超低功耗模式下,用户不要进行任何指令配置操作,只允许进行“唤醒测距”和“退出超低功耗模式”两种操作,任何其他的配置操作都要在退出超低功耗模式后进行。
3.11 单频工作模式
TF-Luna 采用正弦波调制相位式测距原理,该原理存在“周期距离”的问题,TF-Luna 单频工作的周期距离为 15 米,当测量距离超过 15 米后,又将从 0 米开始。如 16 米处存在反射率很高的物体,TF-Luna 会将其误判为 1 米处的物体。为了扩展周期距离,TF-Luna 出厂默认使能双频工作模式,周期距离大于 65 米,远超过自身量程,可以避免“过周期”的问题。
但双频模式下,距离解算的算法对数据稳定性要求较高,当信号较小时(AMP 小于 100),数据稳定性变差,容易导致距离解算错误,最终输出的距离出现异常,误差可达数十米。当某些应用场景下,目标的反射率很低,需要使用 AMP 小于 100 的数据时,用户可以配置 TF-Luna 进入单频工作模式。单频工作模式下,当 AMP 小于 100 时,数据距离虽然稳定性变差,但不容易出现太大的异常数值。同时,用户需要考虑该场景下不会受到“过周期”问题的影响。
3.12 其他功能
获取版本号、系统软件复位、设置串口波特率等其他功能,用户可以根据“附录二串口通信软件协议”的描述使用。
4 快速测试
4.1 产品测试所需工具
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|---|---|
| TF-Luna | 数据线 | TTL - USB 板 | USB 线 | 电脑 | 上位机软件 |
4.2 测试步骤
(1) 上位机测试软件下载请到北醒官网(http://www.benewake.com/download)下载 TF-Luna 上位机软件。
注意:解压上位机软件前请关闭杀毒软件,避免上位机软件中的文件被当成病毒删除,上位机目前仅支持在 Windows 系统上运行。
(2) 设备连接

如图 4-1 所示,连接『TF-Luna』、『TTL - USB 转接板』和『USB 线』,确保无松动,再将『USB 线』与『电脑』连接。
(3) 看上位机连接与读数如图 4-2,打开 TF 上位机,选择『① TF-Luna』,并选择自动识别的占用串口(这里是『② COM9』)。
然后,点击『CONNECT』进行上位机连接。连接成功后,右侧『④ TIME LINE CHART』区域会出现连续输出的数据图像,下方『⑥ REAL TIME DATA』区实时显示当前测试距离(Dist)、每秒有效数据量(Effective Points)和信号强度(Strength)。

说明: a. 如果『④ TIME LINE CHART』区没有数据,请检查连接和线序,TF-Luna 上电成功,正面看发射透镜内会有微弱的红光。
b. 如果 TF-Luna 是 Pixhawk 格式输出,需先勾选『③ Pix Mode』,『④ TIME LINE CHART』 区才会正常输出数据图像。勾选 Pix Mode 后,距离单位变为 m。
c. 距离输出 Dist 值,跟据输出单位不同会有所区别,默认单位为 cm。如果通过指令修改 TF-Luna 的距离单位为 mm,上位机并不能区分,『④ TIME LINE CHART』单位仍为 cm。
例如,TF-Luna 实际测量距离为 1m,以 mm 为单位则输出 1000,通过该上位机读取的数值为 1000,但上位机上的单位不会变化,仍显示 cm。
5 固件更新
TF-Luna 支持固件更新,当用户产品不能满足当前的使用需求,且北醒官方有相应的固件更新后,用户可通过“TF-Luna 远程升级上位机”更新产品固件。请联系技术支持人员获取固件更新上位机。

TF-Luna 固件更新所需要的工具与快速测试步骤中描述的基本一致,同样需要 TTL-USB 转接板建立 TF-Luna 与电脑的连接。
连接好后,打开 TF-Luna 固件更新上位机,选择合适的端口,此处为『① COM8』。在『② 115200』 处输入正确的波特率,点击『③ CONNECT』,建立 TF-Luna 与上位机通信;点击『④ Open Bin』 选择需要更新的固件文件,上方文本框中会显示该固件文件地址。然后点击『⑤ Download Bin』 即可完成更新。『⑥』会显示固件更新信息。
注意,固件更新上位机和固件文件需要放在纯英文路径下。
附录一串口输出格式
1. 1.9 字节 cm
支持此协议的最低固件版本:V0.0.5。
| 字节 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|---|
| 描述 | 0x59 | 0x59 | Dist_L | Dist_H | Amp_L | Amp_H | Temp_L | Temp_H | Check_sum |
Dist:cm。
Amp:信号强度,小于 100 时测距结果不可靠,过曝时数值为 65535。
Temp:Temp / 8 – 256 = ℃。
2. PIX
支持此协议的最低固件版本:V0.0.5。
X.YZ\r\n ASCII 码格式,单位为米,保留两位小数。
3. 9 字节 mm
支持此协议的最低固件版本:V0.0.5。
| 字节 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|---|
| 描述 | 0x59 | 0x59 | Dist_L | Dist_H | Amp_L | Amp_H | Temp_L | Temp_H | Check_sum |
Dist:mm。
Amp:信号强度,小于 100 时测距结果不可靠,过曝时数值为 65535。
Temp:Temp / 8 – 256 = ℃
4. 带 32bit 时间戳
支持此协议的最低固件版本:V0.0.5。
| 字节 | 0 | 1 | 2 | 3 | 4 | 5 | 6-9 | 10 |
|---|---|---|---|---|---|---|---|---|
| 描述 | 0x59 | 0x59 | Dist_L | Dist_H | Amp_L | Amp_H | Timestamp | Check_sum |
Dist:cm。
Amp:信号强度,小于 100 时测距结果不可靠,过曝时数值为 65535。
Timestamp:时间戳,小端格式,单位 ms。
5. ID0 输出
支持此协议的最低固件版本:V0.0.5。
| 字节 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7-10 | 11 |
|---|---|---|---|---|---|---|---|---|---|
| 描述 | 0x5A | Len | 0x00 | Dist_L | Dist_H | Amp_L | Amp_H | Timestamp | Check_sum |
Dist:cm。
Amp:信号强度,小于 100 时测距结果不可靠,过曝时数值为 65535。
Timestamp:时间戳,小端格式,单位 ms
6. 8 字节 cm 输出
支持此协议的最低固件版本:V0.0.5。
| 字节 | 0 | 1 | 2 | 3 | 4-7 |
|---|---|---|---|---|---|
| 描述 | Dist_L | Dist_H | Amp_L | Amp_H | Timestamp |
Dist:cm。
Amp:信号强度,小于 100 时测距结果不可靠,过曝时数值为 65535。
Timestamp:时间戳,小端格式,单位 ms。
7. 带设备 ID 输出
支持此协议的最低固件版本:V3.0.8。
| 字节 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7-10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|
| 描述 | 0x5A | 0x0D | 0x00 | Dist_L | Dist_H | Amp_L | Amp_H | Timestamp | Dev_Id | Check_sum |
Dist:cm。
Amp:信号强度,小于 100 时测距结果不可靠,过曝时数值为 65535。
Timestamp:时间戳,小端格式,单位 ms。
Dev_Id:设备 ID,同 I2C 从机地址。
附录二串口通信软件协议
1. 获取版本号 ID_GET_VERSION=0x01
支持此协议的最低固件版本:V0.0.5。
下行:
| 字节 | 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 00]
2. 系统软件复位 ID_SOFT_RESET=0x02
支持此协议的最低固件版本:V0.0.5。
下行
| 字节 | 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 00]
3. 设置输出频率 ID_SAMPLE_FREQ=0x03
支持此协议的最低固件版本:V0.0.5。
下行
| 字节 | 0 | 1 | 2 | 3~4 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Freq | Check_sum |
| 默认值 | 100 |
Freq: 工作频率,0(指令单次触发模式),>0(设定的工作频率)。
上行
| 字节 | 0 | 1 | 2 | 3~4 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Freq | Check_sum |
Freq: 雷达实际实现的工作频率。
举例: 10Hz [5A 06 03 0A 00 00] 250Hz [5A 06 03 FA 00 00]
4. 单次触发指令 ID_SAMPLE_TRIG=0x04
支持此协议的最低固件版本:V0.0.5。
下行
| 字节 | 0 | 1 | 2 | Len-1 |
|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Check_sum |
上行数据帧举例: 指令 [5A 04 04 00]
5. 设置输出格式 ID_OUTPUT_FORMAT=0x05
支持此协议的最低固件版本:V0.0.5。
下行
| 字节 | 0 | 1 | 2 | 3 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Format | Check_sum |
| 默认值 | 0x01 |
Format: 0x01(9 字节 cm 输出),0x02(PIX 输出),0x06(9 字节 mm 输出),0x07(带 32bit 时间戳),0x08(ID0 输出),0x09(8 字节 cm 输出),0x0A(带设备 ID 输出)。
上行
| 字节 | 0 | 1 | 2 | 3 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Format | Check_sum |
Format: 雷达实际配置成的输出格式。
举例: PIX 输出 [5A 05 05 02 00]
6. 设置串口波特率 ID_BAUD_RATE=0x06
支持此协议的最低固件版本:V0.0.5。
下行
| 字节 | 0 | 1 | 2 | 3~6 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Baudrate | Check_sum |
| 默认值 | 115200 |
上行
| 字节 | 0 | 1 | 2 | 3~6 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Baudrate | Check_sum |
Baudrate: 雷达实际配置成的串口波特率。
说明:可配置的波特率范围[9600,921600]。
举例: 9600 [5A 08 06 80 25 00 00 00] 19200 [5A 08 06 00 4B 00 00 00] 38400 [5A 08 06 00 96 00 00 00] 57600 [5A 08 06 00 E1 00 00 00] 115200 [5A 08 06 00 C2 01 00 00] 230400 [5A 08 06 00 84 03 00 00] 460800 [5A 08 06 00 08 07 00 00] 921600 [5A 08 06 00 10 0E 00 00]
7. 输出开关 ID_OUTPUT_EN=0x07
支持此协议的最低固件版本:V0.0.5。
下行
| 字节 | 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 00] 关闭输出 [5A 05 07 00 00]
8. 校验和开关 ID_FRAME_CHECKSUM_EN=0x08
支持此协议的最低固件版本:V0.0.5。
下行
| 字节 | 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 00] 关闭校验和 [5A 05 08 00 67]
9. 修改 I2C 从机地址 ID_I2C_SLAVE_ADDR=0x0B
支持此协议的最低固件版本:V1.0.0。
下行
| 字节 | 0 | 1 | 2 | 3 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | I2c_slave_addr | Check_sum |
| 默认值 | 0x10 |
I2c_slave_addr: 范围[0x08, 0x77]; 上行
| 字节 | 0 | 1 | 2 | 3 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | I2c_slave_addr | Check_sum |
举例: 修改为 0x20 [5A 05 0B 20 00]
10. 恢复出厂设置 ID_RESTORE_DEFAULT=0x10
支持此协议的最低固件版本:V0.0.5。
下行
| 字节 | 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 00]
11. 保存当前设置 ID_SAVE_SETTINGS=0x11
支持此协议的最低固件版本:V0.0.5。
下行
| 字节 | 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 00]
12. 读取生产条码 ID_READ_MANU_BIN=0x12
支持此协议的最低固件版本:V0.0.5。
下行
| 字节 | 0 | 1 | 2 | Len-1 |
|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Check_sum |
上行
| 字节 | 0 | 1 | 2 | 3-16 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Bin | Check_sum |
Bin: 14 字节的生产条码。
举例: 指令 [5A 04 12 00] 反馈:U0900018010001,则第 3 到 16 字节依次为: 0x55 0x30 0x39 0x30 0x30 0x30 0x31 0x38 0x30 0x31 0x30 0x30 0x30 0x31
13. 获取完整版本号 ID_GET_FULL_VERSION=
0x14
支持此协议的最低固件版本:V0.0.5。
下行
| 字节 | 0 | 1 | 2 | Len-1 |
|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Check_sum |
上行
| 字节 | 0 | 1 | 2 | 3-10 | 11 | 12-19 | 20 | 21-22 | 23 | 24-25 | 26 | 27-28 | Len-1 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | 项目名称 ( 右对齐) |
‘.’ | 分支名称 ( 右对齐) |
‘.’ | 主版本号 | ‘.’ | 次版本号 | ‘.’ | 修正版本号 | Check_sum |
举例: 指令 [5A 04 14 00]
14. 设置 AMP 踢点阈值 ID_AMP_THRESHOLD=
0x22
支持此协议的最低固件版本:V0.0.5。
下行
| 字节 | 0 | 1 | 2 | 3 | 4-5 | Len-1 |
|---|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Amp_Threshold | Dummy_Dist | Check_sum |
| 默认值 | 10 | 0 |
Amp_Threshold : AMP 踢点阈值为 Amp_Threshold * 10 , 低于该阈值 , 距离值输出为 Dummy_Dist。
Dummy_Dist:AMP 低于踢点阈值时输出的距离值,单位 cm。
上行
| 字节 | 0 | 1 | 2 | 3 | 4-5 | Len-1 |
|---|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Amp_Threshold | Dummy_Dist | Check_sum |
举例: Amp 阈值为 300,Amp<300 时输出 500cm [5A 07 22 1E F4 01 00]
15. 单双频模式切换 ID_ DEALIAS_EN =0x29
支持此协议的最低固件版本:V0.0.5。
下行
| 字节 | 0 | 1 | 2 | 3 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Enable | Check_sum |
| 默认值 | 1 |
Enable: 1(双频模式)0(单频模式)。
上行
| 字节 | 0 | 1 | 2 | 3 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Enable | Check_sum |
举例: 双频模式 [5A 05 29 01 00] 单频模式 [5A 05 29 00 00]
16. 时间戳同步 ID_TIMESTAMP_SYNC =0x31
支持此协议的最低固件版本:V0.0.5。
下行
| 字节 | 0 | 1 | 2 | 3-6 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Std | Check_sum |
| 默认值 | 0 |
Std: 指定的当前时间戳举例: 指定当前时间为 1000ms [5A 08 31 E8 03 00 00 00]
17. 低功耗模式 ID_LOW_CONSUMPTION=0x35
支持此协议的最低固件版本:V0.0.5。
下行
| 字节 | 0 | 1 | 2 | 3-4 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Sample_rate | Check_sum |
| 默认值 | 0 |
Sample_rate:工作频率,0(不使能低功耗模式),>0(使能低功耗模式)。
上行
| 字节 | 0 | 1 | 2 | 3-4 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Sample_rate | Check_sum |
举例:低功耗模式 10Hz 输出 [5A 06 35 0A 00 00]
18. 滤波器配置 ID_FILTER_BIT_MAP=0x39
支持此协议的最低固件版本:V0.0.5。
下行
| 字节 | 0 | 1 | 2 | 3 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Filter_bit_map | Check_sum |
| 默认值 | 0x03 |
Filter_bit_map: 滤波器使能控制,1 使能,0 不使能。
Bit0 - 卡尔曼滤波 Bit1 – 中值滤波上行
| 字节 | 0 | 1 | 2 | 3 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Filter_bit_map | Check_sum |
举例: 关闭滤波器 [5A 05 39 00 00] 开启滤波器 [5A 05 39 03 00]
19. 设置距离限制 ID_DIST_LIMIT=0x3A
支持此协议的最低固件版本:V0.0.5。
下行
| 字节 | 0 | 1 | 2 | 3-4 | 5-6 | 7 | Len-1 |
|---|---|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Dist_min | Dist_max | Silence | Check_sum |
| 默认值 | 0 | 900 | 0 |
Dist_min:输出的最小距离值,单位 cm Dist_max:输出的最大距离值,单位 cm Silence: 0(超出距离限制后,输出限制端点值),1(超出距离限制后不输出) 上行
| 字节 | 0 | 1 | 2 | 3-4 | 5-6 | 7 | Len-1 |
|---|---|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Dist_min | Dist_max | Silence | Check_sum |
举例: 最小输出距离 20cm,最大输出距离 500cm,超出距离限制后,输出限制端点值 [5A 09 3A 14 00 F4 01 00 00]
20. 设置开关量输出模式 ID_ON_ OFF_MODE=
0x3B
支持此协议的最低固件版本:V1.0.0。
下行
| 字节 | 0 | 1 | 2 | 3 | 4-5 | 6-7 | 8-9 | 10-11 | Len-1 |
|---|---|---|---|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Mode | Dist | Zone | Delay1 | Delay2 | Check_sum |
| 默认值 | 0 | 0 | 0 | 0 | 0 |
Mode:0(数据输出模式),1(开关量模式,近高远低),2(开关量模式,近低远高) Dist:临界值,滞回区间的近端点值,单位 cm Zone:滞回区间大小,单位 cm。
Delay1:防抖延时时间 1,单位 ms。当距离由远变近超过近端阈值,且保持 Delay1 ms 一直小于近端阈值,才切换电平。
Delay2:防抖延时时间 2,单位 ms。当距离由近变远超过远端阈值,且保持 Delay2 ms 一直大于远端阈值,才切换电平。
举例: 近高远低,Dist=200cm,Zone=10cm,Delay1=Delay2=1000ms [5A 0D 3B 01 C8 00 0A 00 E8 03 E8 03 00]
21. 读取指定的雷达配置 ID_GET_CONFIG_PARA=
0x3F
支持此协议的最低固件版本:V0.0.5。
下行
| 字节 | 0 | 1 | 2 | 3 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Id | Check_sum |
Id: 对应此文档 ID 定义。
上行:相应 ID 指令帧的上行格式。
举例: 读取输出频率 [5A 05 3F 03 00]
22. 超低功耗模式 ID_ ULTRA_LOW_POWER_
MODE = 0x58
支持此协议的最低固件版本:V3.0.7。
下行
| 字节 | 0 | 1 | 2 | 3 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Enable | Check_sum |
Enable:1(使能),0(不使能) 上行
| 字节 | 0 | 1 | 2 | 3 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Enable | Check_sum |
举例: 进入超低功耗模式 [5A 05 58 01 00] 退出超低功耗模式 [5A 05 58 00 00],由于超低功耗模式下存在唤醒时间,退出指令需要多发送几次,如 [5A 05 58 00 00 5A 05 58 00 00 5A 05 58 00 00 5A 05 58 00 00 5A 05 58 00 00]。
23. 频率校准 ID_FREQ_CNT_CALIB=0x59
支持此协议的最低固件版本:V3.0.7。
下行
| 字节 | 0 | 1 | 2 | 3 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Cmd | Check_sum |
Cmd:1(执行频率校准,耗时约 2 秒),2(读取频率校准参数) 上行
| 字节 | 0 | 1 | 2 | 3-4 | Len-1 |
|---|---|---|---|---|---|
| 描述 | Head(0x5A) | Len | ID | Calib_freq_cnt | Check_sum |
Calib_freq_cnt:频率校准参数,非 0 值表示校准完成举例: 执行频率校准 [5A 05 59 01 00] 读取频率校准参数 [5A 05 59 02 00]
附录三 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 | R | ERROR_LOW | -- | 错误状态码 |
| 0x09 | R | ERROR_HIGH | -- | |
| 0x0A | R | VERSION_REVISION | -- | 修订版本 |
| 0x0B | R | VERSION_MINOR | -- | 次版本 |
| 0x0C | R | VERSION_MAJOR | -- | 主版本 |
| 0x0D-0x0F | -- | 保留 | ||
| 0x10-0x1D | R | SN | -- | 生产编码,ASCII 码,14 字节,0x10 存放第一个字节 |
| 0x1E | -- | 保留 | ||
| 0x1F | W | ULTRA_LOW_POWER | -- | 0x00: 标准模式 0x01: 超低功耗模式 |
| 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 | W/R | LOW_POWER | 0x00 | 0x00: 标准模式 0x01: 低功耗模式 |
| 0x29 | W | RESTORE_FACTORY_DEFAULTS | -- | 写 0x01: 恢复出厂寄存器值 |
| 0x2A | W/R | AMP_THR_LOW | 0x64 | AMP 阈值,AMP 低于阈值后,距离固定为 DUMMY_DIST |
| 0x2B | W/R | AMP_THR_HIGH | 0x00 |
| 0x2C | W/R | DUMMY_DIST_LOW | 0x00 | 当 AMP 低于 AMP_THR 输出的距离值,cm |
|---|---|---|---|---|
| 0x2D | W/R | DUMMY_DIST_HIGH | 0x00 | |
| 0x2E | W/R | MIN_DIST_LOW | 0x00 | 最小距离值,mm,DUMMY_DIST 不受该限制 |
| 0x2F | W/R | MIN_DIST_HIGH | 0x00 | |
| 0x30 | W/R | MAX_DIST_LOW | 0x20 | 最大距离值,mm,DUMMY_DIST 不受该限制 |
| 0x31 | W/R | MAX_DIST_HIGH | 0x03 | |
| 0x32-0x3B | -- | 保留 | ||
| 0x3C-0x3F | R | SIGNATURE | -- | ‘L’ ’U’ ‘N’ ‘A’ |






