level 7
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模式有更好的自定义通信状态的选择,但是需要严格的同步才能保证数据的准确性。用户可以根据需要选择相应的模式。



扫码关注我们
物联网开发者社区
一个移动的物联网贴心百科
2019年12月17日 01点12分
1
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模式有更好的自定义通信状态的选择,但是需要严格的同步才能保证数据的准确性。用户可以根据需要选择相应的模式。



扫码关注我们物联网开发者社区
一个移动的物联网贴心百科