查看: 1362|回复: 0

[技术交流] SX1208通信模式区别介绍:packet mode & continue mode

[复制链接]

67

主题

100

帖子

570

积分

利尔达员工

Rank: 9Rank: 9Rank: 9

积分
570
发表于 2019-12-13 10:47:34 | 显示全部楼层 |阅读模式
SX1208的通信模式有两种,一种是packet mode,另一种是continue mode,其中我们较为常用的模式为packet mode。
从字面上去理解,packet为包模式,数据以一包一包的形式传输通信,continue为连续模式,数据是连续不断的进行传输。


Packetmode通信方式是将通信的数据存放进FIFO中,切换到发射模式,发射模组便自动发射前导码、同步字和数据(和CRC校验),
接收模组在进入接收模式后,便自动检测前导码和同步字,当前导码和同步字验证正确后(可配置一定的容错率)便会
将后续的数据存放进FIFO


而continue mode与packet mode在数据的处理上不同,continue mode 不会经过FIFO这个环节,发射端,模组会直接读取
data引脚上的数据,然后按照时钟节拍将数据调制后发射出去,与packet不同的是,continue是实时一位一位数据发射,
而packet这是整包数据先存放再一位一位发射;接收端continue mode下,数据不会存放进FIFO中,但接收到的数据会按
照时钟节拍表现在data引脚上,packet则是完整的接受完后,用户可从FIFO中读取,continue则需要跟着时钟节拍一位一
位去data引脚读取。



packet mode通信流程:
     

       发射模式                          接收模式

packet mode 只需要在切换至发送模式之前将数据填入FIFO,然后切换至发送模式后便会自动发送,接受也同样的会自动
接收,当接受完成后会产生相应的中断后,便可从FIFO中读取数据。


continue mode 通信流程:

   

                    发射模式                                                                 接收模式

DCLK为continue mode的时钟节拍,每一次上升沿,模组便会将data引脚上的数据(0或1)调制发射出去,因此需要在
时钟的下降沿中断产生时,变更data引脚的数据,由于该模式是一位一位实时发射,所以用户需要将数据按位一位一位
的在下降沿中断输出到data引脚上去直至全部数据都输出完毕。需要注意的是,该模式没有像packet一样有发射完成的
标准,所以数据完成后,若不退出发射模式,模组会继续按照节拍将data上的数据发射出去。同样的道理,进入接收模
式后,模组会自动解调信号并映射到data引脚上,在DCLK的时钟下降沿时会更新数据,因此用户需要再时钟上升沿中断
产生时去读取data引脚的数据。整个通信的数据内容皆由用户自行决定,因此发射端不会像packet一样会自动发送前导
码和同步字等信息,用户可自定义同步条件,若不采用前导码和同步字的配置,在接收端需要时刻去读取data引脚的数
据并对比是否正确。但若发射端发射的数据前将前导码信息和同步字信息(要与接收端寄存器配置一直)先发射再发射
数据,接收端能够产生前导码中断和接收中断,之后再进行data引脚的数据采样,这样便可以避免高频率的进中断读取
data引脚进行数据同步。


从二者的操作复杂度看,packet模式明显要简单的多,因此实际使用中,更推荐使用packet模式,continue模式有更好的
自定义通信状态的选择,但是需要严格的同步才能保证数据的准确性。用户可以根据需要选择相应的模式。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表