当前文档版本为 NDK-v0.7.0,您可以访问当前页面的 开发中 版本以获取最近可能的更新。

Plhd说明

1. 功能说明

  • plhd演示了Sub-1G的接收提前中断功能。此功能会在收到配置的数据长度后就提前产生一个中断,不需要等到全部收完才产生中断。在一些应用中我们可以使用这个功能去做一些头部信息检查,来过滤掉一些非预期包,提高接收效率。

2 环境准备

  • PAN3740 EVB两块

  • Type-C USB线两条(用于供电和查看串口打印Log)

  • 硬件接线:

    • 使用USB线,将PC USB与EVB Type-C USB(USB->UART)相连

  • PC软件: 串口调试助手(UartAssist)或终端工具(SecureCRT),波特率921600

  • 手机(nrf connect)

3 编译和烧录

例程位置:

..\nimble\samples\sub_1g\plhd

keil工程中包含了plhd_tx和plhd_rx两个工程,在keil project targets选项中进行选择。

使用keil分别编译烧录两个EVB板。

4. 演示说明

  • 两个evb板上电,打开手机nrf connect app,搜索广播设备b+plhd txb+plhd rx

  • 连接并使能设备,b+plhd tx设备连接使能会启动定时器,间隔1000ms发送一次,b+plhd rx设备连接使能启动接收,断开使能关闭发送接收。

  • 起始字节是指提前中断从第几个字节开始检查,包头长度是指提前中断检查多少个字节的数据(包头长度只支持 8 字节或 16 字节,分别使用 PLHD_LEN8/PLHD_LEN16表示)。

  • b+plhd rx设备默认设置为从第五个字节开始检测,检测长度为PLHD_LEN8,可以通过app修改检测包头长度。

  • b+plhd rx设备打印提前中断的和全部接收到数据,b+plhd tx设备打印发送的次数(0~255循环)

  • 串口打印:

    image

    提前中断log示例

5. 接口说明

  • void rf_set_plhd_rx_on(uint8_t addr, uint8_t len);

    接收端配置。根据addr和len从第addr个字节开始检查计数,检查len个字节的数据触发plhd中断。

6. 特别注意

  • 提 前 中 断 功 能 只 支 持 读 取 两 种 数 据 长 度 , 即 8 字 节 /16 字 节 , 分 别 使 用

    PLHD_LEN8/PLHD_LEN16 表示。不可以使用自定义参数。

  • 提前中断功能获取数据时,使用 rf_plhd_receive()接口函数,与普通数据包 rf_receive()接口函

    数不同,其内部 FIFO 地址不同

7 RAM/Flash资源使用情况

PAN107x: TX

Flash Size: 130.40k
RAM Size:  33.88 k

PAN107x: RX

Flash Size: 129.53k
RAM Size:  33.85 k