一、功能介绍
CW32W031 提前中断功能是在芯片读取一帧数据的过程中,查看已经解出来的数据,判断是不是自己想要的,再决定继续读取还是放弃这帧数据。
流程图如下所示:
图 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. 接收模组配置提前中断模式,并设置从第 5 字节开始,共检查 16 字节数据;
3. 当产生提前中断信号时,将提前中断得到的数据打印出来;
4. 继续往下接收,将本帧数据全部打印出来;
5. 通过串口助手查看打印结果。
2.2.2 SDK 示例
main.c 参考代码:
示例代码配置了提前中断模式,并设置从第 5 字节开始,共检查 16 字节数据。接收到提前中断信号后,主函数中选择将提前中断接收到的内容打印出来,并继续接收;随后模组会再产生一个接收中断信号,主函数中再将完整接收到的数据内容打印出来。
如果需要提前中止接收,只需要在接收到提前中断信号后执行“PAN3028_rst();”,即:
2.2.3 验证结果
串口助手显示结果为:
根据结果显示,接收模组发生了提前中断,获取到了指定的数据,并继续执行接收,接收到完整数据包。
2.3 逻辑分析仪抓取
2.3.1 验证步骤
1. 发送模组周期性发送数据包;
2. 接收模组分别使用提前中断接收模式和正常接收模式进行接收
3. 使用逻辑分析仪 Channel1 抓取提前中断信号,Channel1 抓取正常接收端信号
2.3.2 验证结果
抓取结果如下图所示:
图 2-1 逻辑分析仪抓取结果
由结果可以看出,提前中断接收模式在 1.35ms 时就产生了提前中断,供用户判断。正常接收模式需要在57.39ms 才产生完整的接收中断。
2.4 注意事项
提前中断功能只支持读取两种数据长度,即 8 字节 /16 字节,分别 PLHD_LEN8/PLHD_LEN16 表示。不可以使用自定义参数。
提前中断功能获取数据时,使用 PAN3028_plhd_receive() 接口函数,与普通数据包 PAN3028_recv_packet()接口函数不同,其内部 FIFO 地址不同。
关于武汉芯源半导体
武汉芯源半导体有限公司,于2018年8月28日成立,是上市公司武汉力源信息技术股份有限公司(股票代码:300184)全资子公司,专注芯片的设计、研发、销售及技术服务。武汉芯源半导体CW品牌源于Creative Wisdom首字母CW,传递“创芯源于智慧”的品牌理念。
武汉芯源半导体为电子行业用户提供微处理器MCU、小容量存储芯片EEPROM、功率器件SJ-MOSFET等系列产品,具有产品质量保证、技术性能可靠、供货能力稳定三大竞争优势。
在MCU领域目前已推出通用高性能CW32F003/030系列、安全低功耗CW32L083/031/052系列、无线射频CW32W031/CW32R031系列产品,广泛应用于消费电子、智能家居、物联网、工业控制、医疗电子以及汽车电子行业,未来将能够满足更多的市场需求。
武汉芯源半导体持续进行技术革新,确保稳定可靠的供应链能力,致力于成为***产业的领航者!
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !