0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

实战经验 | 如何使用 S2LP 的 sniff 模式同时满足通讯和低功耗要求

STM32单片机 来源:未知 2023-12-16 15:55 次阅读


关键词:S2LP, Sniff 模式,低功耗


目录预览

1、引言

2、预设应用场景

3、LDC/Sniff 模式简介

4、解决方案

5、小结


01

引言


某些客户在其 S2LP 的设计方案中,发送端设备常供电,可以不考虑低功耗;而接收端设备一般用电池功能,对低功耗的要求比较高。发送和接收端的通讯是异步的,也就是说发送端在满足某些检测条件的情况下,可以在任意时刻发送数据包;而要求接收端设备在满足其低功耗要求的情况下,及时接收到数据包,保证响应的实时性。针对以上的应用场景,一般推荐客户使用 S2LP 的 sniff 模式。


02

预设应用场景


发送端设备(如烟感设备等)可能随时收到警报信息,在任意时刻收到警报信息后将连续发送数据包,连续发包时长 10 秒钟。


数据包结构如图 1。2-FSK 调制方式,Data rate=38.4Ksps, 中心频点=868MHz。


图1.数据包格式


根据图 1 数据包格式,可知前导码占 576 个 bit,同步字 4 字节,用户数据占 25 个字节,采用 1 字节 CRC 校验字段。

• 数据包中每个 bit 发送的时间= 1/38.4Ksps≈26us。

• 前导码时长=576/38.4Ksps=15ms。

• 前导码+同步字时长= (576+32)/38.4Ksps=15.83ms。

• 完整数据包发送时长=(576+32+200+8)/38.4Ksps = 21.25ms。

接收端设备要求每 8 秒钟唤醒一次,连续检测 100ms,并确保不会漏掉这 100ms 时间窗口中内的有效数据包。并在 100ms 以后进入低功耗模式。


03

LDC/Sniff 模式简介


S2LP 支持 LDC (Low Duty Cycle) 和 Sniff 这两种模式,这两种模式都可以实现低功耗。区别在于 LDC 模式实现发送、接收端的同步通信;而 Sniff 模式是基于 LDC 模式,在兼顾低功耗的要求的同时支持异步通信。


如图 2,LDC 模式示意图。发送端和接收端设备按照约定的唤醒周期同步进入发送、接收状态和进入低功耗模式。接收端为了保证不丢包,会在约定的唤醒时间点之前唤醒并提前进入接收状态。


图2.LDC 模式


如图 3 所示,Sniff 模式示意图。Sniff 模式下的 S2LP,按照唤醒定时器 (Wakeup Timer) 设定的唤醒时间有规律地从睡眠状态唤醒,并开启一个非常短的称为 FastRX 的接收窗口。在这个 FastRX 接收窗口中检测信号强度 (RSSI 值) 。如信号强度低于设定的阈值,则认为外部没有发送数据包,接收端在 FastRX 窗口结束后快速进入睡眠状态;如检测的信号强度值高于阈值,说明检测到有效数据包在发送,则启动接收超时定时器(RX Timeout),接收端继续保持接收状态,如在超时时间内检测到有效的同步字字段,则停止接收超时定时器,并继续保持接收状态直到接收到完整的数据包后进入低功耗模式;如在超时时间内没有检测到有效的同步字则在接收超时后立刻进入低功耗模式。


图3.Sniff 模式


04

解决方案


基于 ST 官方提供的 S2LP 的 SDK 软件包中的 SDK_Sniff_B 项目实现上述预设应用场景中接收端的功能。代码更改量不多,但基本可以实现预设应用场景中的要求。


基于原始代码,更改函数 SysTickUserAction(图 4),借助于 lSystickCounter 计数变量,实现 8 秒钟和 8 秒窗口开始边界后 100ms 的计时。具体更改内容请参考附件“SDK_Sniff_B.c”


图4.函数 SysTickUserAction 更改内容


在 8 秒窗口开始时间点通过调用函数“S2LPTimerLdcrMode(S_ENABLE);”使能 Sniff模式;在 100ms 时间窗口结束时通过调用函数“S2LPTimerLdcrMode(S_DISABLE);”关闭 Sniff 模式。并调用函数 “S2LPCmdStrobeSleep();”进入低功耗。


需要注意的关键点:

• 为了不错过发送端的前导码,需要将接收端的唤醒定时器设定的时长设定为小于数据包格式中前导码的发送时长。

• 接收端的接收超时时间(RX Timeout)的时长≥前导码时间+同步字时间,但在满足条件的情况下尽量使用小的设定值,有助于降低功耗。

• 初始化结束后通过函数“S2LPTimerLdcrMode”可以直接打开、关闭 sniff 模式。并结合函数“S2LPCmdStrobeSleep();”控制 S2LP 的低功耗模式。


4.1.验证方法和结果


4.1.1. 接收端功能测试平台


使用一套“NUCLEO-L053R8+X-NUCLEO-S2868A1”测试平台运行更改后的SDK_Sniff_B 项目程序。使用 ST 官方提供的 X-NUCLEO-LPM01A 功耗测试板,通过 XNUCLEO-S2868A1 板上的 JP1 测试 S2LP 的工作状态, 通过抓取 S2LP 的实时功耗确认预设场景中 8 秒时间窗口和 100ms 接收窗口的定时是否正确?以及 S2LP 是否能正确进入低功耗模式?测试平台如图 5 所示


图5.测试平台


测试结果如图 6 所示,上电初始化后,由于已经使能了 sniff 模式,但第一个 8 秒窗口计时还没有溢出,所以一直保持sniff工作模式(客户也可以更改代码使其在初始化后立刻进入低功耗模式)。第二个 8 秒窗口开始后的 100ms 还处于 sniff 工作状态。当第二个 8 秒窗口中的 100ms 接收窗口结束后,S2LP 进入低功耗模式。后续的 8 秒窗口以此类推。从图6 中还可以看到每个 100ms 中有 7 个 FastRX 窗口,这是因为原始代码中把唤醒时间设定为差不多 12.9ms(必须小于前导码时间 15ms),那么在 100ms 的接收窗口里正好可以容纳7 个 FastRX 快速接收窗口。


图6.S2LP 功能测试结果


根据图 6 测试结果,证明更改后的 SDK_Sniff_B 代码运行结果符合预设应用场景的要求。


4.1.2. 验证数据包发送接收


发送接收测试平台如图 7, 使用两套 NUCLEO-L053R8+X-NUCLEO-S2868A1 测试平台:

• DevB 作为接收端,运行前面的 SDK_Sniff_B 程序。


图7.发送接收测试平台说明


• DevA 模拟应用场景中的发送端设备,烧录 SDK 中默认的 S2LP_CLI_Project 程序,通过 USB 线连接 PC 段的 GUI 工具(如图 8) 。按照预设场景分别设定调制方式为 2-FSK,前导码,用户数据(Payload)。保证连续发送的数据包数量和发送间隔的设置值使发送端的连续发送时间维持 10 秒钟。


图8.S2LP GUI 工具界面及参数设定


验证结果,S2LP GUI 工具每次点击“START”按键,在其连续过程中接收端设备必然可以收到一个数据包,则实验结果成功。


图9.数据包接收状态


05

小结


S2LP 支持的 LDC 模式和 sniff 模式都是低功耗模式,LDC 模式支持同步通讯的场景,Sniff 模式支持异步通讯模式。客户基于自己的应用场景,可以选择合适的模式。另外通过附加的定时控制 S2LP 在 sniff 模式下的工作时长可以进一步降低 S2LP 的功耗。

完整内容请点击“阅读原文”下载原文档。


原文标题:实战经验 | 如何使用 S2LP 的 sniff 模式同时满足通讯和低功耗要求

文章出处:【微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6043

    文章

    44617

    浏览量

    637990
  • STM32
    +关注

    关注

    2272

    文章

    10923

    浏览量

    357288

原文标题:实战经验 | 如何使用 S2LP 的 sniff 模式同时满足通讯和低功耗要求

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【瑞萨RA2L1入门学习】05、待机模式按键外部中断唤醒 低功耗测试

    1 前言 本次实验的目标是设置低功耗模式,并配置按键中断唤醒。为之后整个项目核心——低功耗做前期准备工作。 2 硬件部分 2.1 外部中断 ICU ICU是中断控制单元Interrup
    发表于 01-29 23:08

    提升开关电源效率的理论分析与实战经验

    在这里有电源技术干货、电源行业发展趋势分析、最新电源产品介绍、众多电源达人与您分享电源技术经验,关注我们,与中国电源行业共成长! 提升开关电源效率的理论分析与实战经验 引言 开关电源设计中,为获得
    的头像 发表于 01-09 10:04 304次阅读
    提升开关电源效率的理论分析与<b class='flag-5'>实战经验</b>

    如何实现EEPROM的低功耗模式

    内容进行擦除和重写。在许多应用中,尤其是在电池供电的设备中,低功耗模式对于延长设备的使用寿命至关重要。以下是实现EEPROM低功耗模式的一些方法: 1. 选择合适的EEPROM类型 选
    的头像 发表于 12-16 16:54 392次阅读

    安富利推出S2-LP低功耗射频收发器

    在物联网迅速普及的当下,对任何一个物联网系统来说,能否做到低功耗和长距离的稳定通信,直接决定了其在未来应用中的潜力。而在这个领域,一款名为S2-LP的超低功耗射频收发器正悄然走红,它不仅是一次技术创新,更是在物联网生态中引发了一
    的头像 发表于 11-14 11:51 428次阅读
    安富利推出<b class='flag-5'>S2-LP</b>超<b class='flag-5'>低功耗</b>射频收发器

    STM32WB0系列无线微控制器满足低功耗蓝牙应用需求

    蓝牙技术作为应用最为广泛的2.4GHz短距离通信技术,对无线微控制器芯片的集成度、功耗、性能、安全性等有较高要求。STM32WB0系列,是兼具高性价比和低功耗的无线微控制器,可充分满足
    的头像 发表于 10-12 11:03 579次阅读
    STM32WB0系列无线微控制器<b class='flag-5'>满足</b><b class='flag-5'>低功耗</b>蓝牙应用需求

    配置直接测试模式低功耗蓝牙器件应用说明

    电子发烧友网站提供《配置直接测试模式低功耗蓝牙器件应用说明.pdf》资料免费下载
    发表于 09-13 11:06 0次下载
    配置直接测试<b class='flag-5'>模式</b>的<b class='flag-5'>低功耗</b>蓝牙器件应用说明

    SD NAND SPI模式:如何实现低功耗运行

    最近,收到客户反馈,使用我们SD NAND过程中,使用SPI模式,对SD完成操作后,SD没有进入低功耗模式,未对SD进行任何操作的情况下测得的功耗仍在20mA左右。经过我们分析,发现S
    的头像 发表于 09-02 11:06 531次阅读
    SD NAND SPI<b class='flag-5'>模式</b>:如何实现<b class='flag-5'>低功耗</b>运行

    具有通用输入和输出的CDCUN1208LP 400MHz低功耗2:8扇出缓冲器数据表

    电子发烧友网站提供《具有通用输入和输出的CDCUN1208LP 400MHz低功耗2:8扇出缓冲器数据表.pdf》资料免费下载
    发表于 08-20 09:18 0次下载
    具有通用输入和输出的CDCUN1208<b class='flag-5'>LP</b> 400MHz<b class='flag-5'>低功耗</b><b class='flag-5'>2</b>:8扇出缓冲器数据表

    虹科干货 | 突破功耗限制:PCAN Router设备低功耗模式与高效唤醒

    PCAN Router系列如何在保持高效工作的同时,通过低功耗模式和智能唤醒功能,满足对能耗有严格要求的应用场景。
    的头像 发表于 06-12 13:14 359次阅读
    虹科干货 | 突破<b class='flag-5'>功耗</b>限制:PCAN Router设备<b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>与高效唤醒

    LP324、LP2902超低功耗四路运算放大器规格书

    电子发烧友网站提供《LP324、LP2902超低功耗四路运算放大器规格书.pdf》资料免费下载
    发表于 06-07 09:33 0次下载
    <b class='flag-5'>LP</b>324、<b class='flag-5'>LP</b>2902超<b class='flag-5'>低功耗</b>四路运算放大器规格书

    STM8S105如何同时使用halt和iwdg?

    接了个低功耗项目。要求低功耗外部唤醒,需要完全的停止模式同时为了防止电机干扰,提高产品稳定性需要独立看门狗。如果
    发表于 05-14 06:32

    STM8l151低功耗模式唤醒方式如何选择?

    使用STM8L151G4U6系列,需要用GPIO中断/RTC时钟/串口中断唤醒,期望功耗在uA级别,请做过低功耗的人看看可以采用哪种低功耗模式? 可用的
    发表于 04-22 06:01

    STML452低功耗模式下DMA模式ADC采集电压异常怎么解决?

    主函数一直循环进入低功耗Stop2模式低功耗定时器1s唤醒一次,使用低功耗串口触发采集ADC电
    发表于 03-28 09:57

    BlueNRG-LP有时无法进入低功耗模式的原因?

    1-调用HAL_PWR_MNGR_Request(POWER_SAVE_LEVEL_STOP_NOTIMER, wakeupIO,stopLevel)有时SOC无法进入低功耗模式,还是处于RUNNING模式,求解???
    发表于 03-28 06:50

    低功耗蓝牙技术的特点 低功耗蓝牙如何实现低功耗

    低功耗蓝牙技术是一种优化的蓝牙技术,专为满足低功耗需求而设计。它通过采用一系列节能措施和技术,实现了更低的功耗消耗,延长了设备的续航时间。
    的头像 发表于 02-07 16:49 2293次阅读