射频MCU CW32W031提前中断应用功能介绍

cathy的头像
cathy 发布于:周二, 11/07/2023 - 09:24 ,关键词:

一、功能介绍 

CW32W031 提前中断功能是在芯片读取一帧数据的过程中,查看已经解出来的数据,判断是不是自己想要的, 再决定继续读取还是放弃这帧数据。 

流程图如下所示: 

1.png

图 1-1 提前中断流程图

二、软件设计参考 

2.1 软件设计流程 

1. 芯片初始化;

2. 将芯片配置为提前中断模式; 

3. 通过寄存器设置包头长度,或者称为计数器门限值。提前中断功能需要设置确定从第几个字节开始检查, 以及检查多少个字节的数据(只支持 8 字节或 16 字节,分别使用 PLHD_LEN8/PLHD_LEN16 表示); 

4. 芯片进入接收模式; 

5. 芯片接收数据,内部计数器开始计数,收到一个字节加 1,直至计数器达到包头长度之后,芯片会产生 提前中断信号,供软件读取; 

6. 软件判断是否为自己想要的数据,如果是,则继续往下读取,如果不是,则停止读取

2.2 软件设计验证 

2.2.1 验证步骤 

1. 发送模组周期性发送 100 字节数据包,前 30 字节数据为

2.png

2. 接收模组配置提前中断模式,并设置从第 5 字节开始,共检查 16 字节数据;

3.png

3. 当产生提前中断信号时,将提前中断得到的数据打印出来;

4. 继续往下接收,将本帧数据全部打印出来;

5. 通过串口助手查看打印结果。

2.2.2 SDK 示例

main.c 参考代码:

4.png

示例代码配置了提前中断模式,并设置从第 5 字节开始,共检查 16 字节数据。接收到提前中断信号后,主 函数中选择将提前中断接收到的内容打印出来,并继续接收;随后模组会再产生一个接收中断信号,主函数 中再将完整接收到的数据内容打印出来。 

如果需要提前中止接收,只需要在接收到提前中断信号后执行“PAN3028_rst();”,即:

5.png

2.2.3 验证结果 

串口助手显示结果为:

6.png

根据结果显示,接收模组发生了提前中断,获取到了指定的数据,并继续执行接收,接收到完整数据包。

2.3 逻辑分析仪抓取 

2.3.1 验证步骤 

1. 发送模组周期性发送数据包; 

2. 接收模组分别使用提前中断接收模式和正常接收模式进行接收 

3. 使用逻辑分析仪 Channel1 抓取提前中断信号,Channel1 抓取正常接收端信号

2.3.2 验证结果 

抓取结果如下图所示:

7.png

图 2-1 逻辑分析仪抓取结果

由结果可以看出,提前中断接收模式在 1.35ms 时就产生了提前中断,供用户判断。正常接收模式需要在 57.39ms 才产生完整的接收中断。

2.4 注意事项 

提前中断功能只支持读取两种数据长度,即 8 字节 /16 字节,分别 PLHD_LEN8/PLHD_LEN16 表示。不可以使用自定义参数。 

提前中断功能获取数据时,使用 PAN3028_plhd_receive() 接口函数,与普通数据包 PAN3028_recv_packet() 接口函数不同,其内部 FIFO 地址不同。

来源:武汉芯源半导体

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 19