首页 > 代码库 > silabs 大话si4463两种数据传输模式

silabs 大话si4463两种数据传输模式

si4463工作在TDD模式,也就是通常所说的时分复用模式下,大家知道TDD模式下,多个模块同时收发,如果大家又在同一个频率点上,大家都在发数据,那么就会
造成干扰,就像一个教室里面,所有的人都在同时说话,那大家肯定就听不清楚了,为了能听清楚对方的说话,有几种方式,一种就是大家轮流来说话,一个人说话
的时候其他人只是倾听,这种方式就叫时分复用。 还有就是如果教室里面有中国人有美国人,那么就可以有1个中国人,一个美国人,两个人同时说话,中国人说的话
就中国人能听懂,美国人说话的话,就美国人听懂,这就叫频分复用。


si4463的通讯模式有2种,一种是包接收发送,一种是直接接收方式,包接收发送最方便,最简单。跟网络中的UDP方式很像,你丢n个字节给si4463的发送缓存区。
他帮你发送出去后,对方芯片接收到数据后,会自动放入芯片内部的接收缓冲区(FIFO)。可以保证发送和接收到的长度是一样的。




si4463内部有有两个包收发器。一个负责接收,一个负责发送,SI4463每个包的长度最大是64字节。也就是说你每次最多只能发64字节的数据
但是除去一些协议的损耗,可能就只有4,50个字节了


用户数据丢给si4463内部的包发送缓冲后,剩下的事就由si4663自己去干了,它还需要给用户数据加上一些附加数据。


分别是前导码,同步字、用户数据区、用户数据区的CRC校验码。其中除用户数据区的数据外,其他数据都是由si4463自动帮你加上的。


下面我们来聊聊为什么需要加上前导码、同步字、以及CRC校验码。


两个无线模块通讯就跟两个人喊话一样,在说话之前,要先通知对方一声,比如叫你妈妈吃饭之前,你要喊“喂......,小明,吃饭了",前面那个喂,就
好像前导码,就是让对方注意到你,有个接收的准备,这个前导码的长度范围是1-255字节,可以选择,同步字就是告诉对方,从哪里开始才是有效的数据。不然光听到喂了,同步字之后才是


真正有用的数据,同步字的长度是1-4字节,一般情况设置2个字节就好了。有点像软件中的协议头部,用来区分数据从哪里开始的。最后对你要发送的数据,做一个CRC校验。这里的校验方式
有很多种可供选择,一般选择CRC16方式。