查看: 1181|回复: 0

[技术交流] 利尔达模组常用芯片SX1212和SX1208的曼切斯特编码和数据白化

[复制链接]

67

主题

100

帖子

570

积分

利尔达员工

Rank: 9Rank: 9Rank: 9

积分
570
发表于 2021-2-25 18:51:00 | 显示全部楼层 |阅读模式
  SX1212SX1208这两款FSK通信芯片是利尔达FSK平台通信模组的常用芯片两款芯片都有两个特殊的数据处理技术:曼切斯特编码技术和数据白化技术

  那么这两个技术的作用是什么呢?

      我们先来看一下利尔达研发工程师现实通信实操过程中经常碰到的一个现象。

  有那么一种情况,当通信的数据出现了连续相同的数据,且数据量很大时,即使非常近的距离也会发现接收端接收到的数据出错了。显然,这种错误并不是信号强度的问题,因为距离并不远。而问题就出在数据本身上:通信传输过程中,出现了过长的连续0或者1的位流模式。基带处理器需要从接收到的模拟数据信号中判别0和1,但是如果出现过长的0或者1就会容易出现问题。通信过程中的信号均为模拟信号,信号是连续的,并没有明确的参考点,处理器往往需要利用变化信号来进行同步校正,而任何连续的0或1长序列位流串都有可能导致这种校正失败,从而引起的数据错误。

  那么现在找到产生这个问题的原因,就可以根据这个原因来解决这个问题。既然是连续相同的数据容易导致错误,那么只要保证数据的不连续相同即可。但是数据是实际需要的,不能直接改变有效数据,那么可以引入特殊的数据处理技术来规避数据的连续相同。

  曼彻斯特编码(Manchester)又称裂相码、同步码、相位编码,是一种用电平跳变来表示1或0的编码方法,其变化规则很简单,即每个码元均用两个不同相位的电平信号表示,也就是一个周期的方波,但0码和1码的相位正好相反。
图:来源利尔达FSK平台通信模组类常用芯片SX1212和SX1208相关资料

  简单点来说,就是用01来表示1,10来表示0,或者反过来。针对SX1212和SX1208来说,他们用10代替1,01代替0。但对于芯片来说,他的每一个bit数据传输的时间是固定的,因此采用了曼切斯特编码技术后,会令传输效率下降50%。
图:来源利尔达FSK平台通信模组类常用芯片SX1212和SX1208相关资料

  而另一种技术是数据白化,或者叫数据加噪。这种技术相比曼切斯特编码来说,并不会降低传输效率。
图:来源利尔达FSK平台通信模组类常用芯片SX1212和SX1208相关资料

  一个9位的LSFR被用于生成一个随机序列。负载和CRC校验值都会与这个序列进行异或得到白化的数据,接收端则会用一个同样的序列来进行去白。通过白化,可以大大降低出现连续长序列0或1的可能性,从而避免这个问题的出现。

  因此,在实际应用中,可以配置相关的寄存器来开启曼切斯特编码或者白化,需要注意的是,该功能需要通信双方同时开启才能保证正常通信,且两种模式不能同时启用。

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

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