众彩网彩票

中文 |
Si4463无线模块收发超长数据包
发表日期:2019/12/25 16:40:30   浏览次数:0

Silicon LabsEZRadioPro 系列的Si4463无线模块TX FIFO RX FIFO只有64字节。那么如何实现超过64字节的数据包收发呢?需要繁琐的去把长包拆分成小于等于64字节的小包,每个小包单独发送,然后接收端把这些小包数据拼接回原始的长包数据吗?回答是:不!因为长包的收发在Si446x 收发芯片实现是非常简单的。

 打开WDS软件或者查看API寄存器描述文档,有两个中断非常有用,就是TX_FIFO_ALMOST_EMPTY_PENDRX_FIFO_ALMOST_FULL_PEND,这个两个中断代表的意思就是TX FIFO 的数据即将发送完,或者RX FIFO即将被填充满。那么我们只需要根据这两个中断,就可以实现超长数据包收发了。

 例如,在TX_FIFO_ALMOST_EMPTY_PEND中断产生时,立刻填充数据到TX FIFO中,新填充的数据会紧跟着之前的数据发送出去,直到数据包完全发送完成,最终产生一个发送完成中断,表示这包数据发完。接收时也是类似,当收到的数据不断往RX FIFO中填充,快要填满的时候,就会产生RX_FIFO_ALMOST_FULL_PEND中断,这时立刻把RX FIFO读取出来,那么空出来的FIFO又可以继续接收新的数据,直到接收到的总数据等于整个完整的数据包长度,产生一个接收完成中断。整个过程都是连续的,根据包长度和设定的阀值,会产生多个TX_FIFO_ALMOST_EMPTY_PENDRX_FIFO_ALMOST_FULL_PEND中断,但是每包数据发送完成和接收完成中断只会有一个,和短包的收发是一样的。

WDS的设置界面如下:

设置配置TX_FIFO_ALMOST_EMPTYRX_FIFO_ALMOST_FULL 阀值

开启对应的中断

 

用户需要再代码中添加检测到TX_FIFO_ALMOST_EMPTYRX_FIFO_ALMOST_FULL两种中断时系统对应的反应。

以上是对4463发送超长数据包的一些总结,希望能对你有所帮助。


上一篇: 无线模块通信失败的原因有哪些?
下一篇: SV6500无线数传模块简介