lcytms
发表于 2017-8-16 09:45:56
1023
一个帧,是串行通信的基础单元。
帧上通常会给出一个帧头。
还有帧尾。
帧头和帧尾之间当然是加载的信息。
lcytms
发表于 2017-8-16 09:47:19
1024
通常在组织帧结构的时候,像我们看的蓝牙,IEEE的协议里面,它很多的部分是定义帧结构。
lcytms
发表于 2017-8-16 09:48:18
1025
信息在这个地方,我们要解决信息的边界。
信息有可能是字节,字节组成字,字组成帧。
如果一个帧的结构是确定的,像蓝牙,像WiFi,像移动通信。
这个帧是已经被协议规定的。
我只要找到帧头的这个位置,我们又知道这个帧结构,所以说,字边界,字节边界,帧边界。
只要找到了帧边界,字节边界和字边界就迎刃而解了。
说到底就是组成一个帧结构。
这是串行通信的又一大特点,它有对齐的问题。
要把信息还原,就必须要有一个帧结构。
zhangyukun
发表于 2017-8-17 08:40:04
感谢楼主分享
lcytms
发表于 2017-8-17 09:14:58
1026
这个帧结构是事先约定的,是一种标准,是一种协议。
无论是蓝牙,还是串行通信,一定会有一个帧结构的定义。
如果有一个确定的帧头,在解决了我们刚才说的这五种时钟对齐的方案以后,帧边界得到解决。
我们要检测帧头,检测帧头有很多方法。
只要把这个帧头找到,后面的问题都迎刃而解了。
因为帧结构是确定的,这就意味着这个帧头,我们可以定义一个特定的码字,比方说8位的55AA,或者说16位的。
在接收器会顺序地过滤帧头的码字。
lcytms
发表于 2017-8-17 09:15:28
1027
在接收器这一端,要找到帧边界,这就有两种方法。
一种是帧头的编码不可能在数据区出现。
这种方案就成为乐观的帧同步结构。
lcytms
发表于 2017-8-17 09:16:27
1028
永远不会出现,我们就称为乐观的,或者是积极的。
lcytms
发表于 2017-8-18 09:17:44
1029
这个时候帧同步的检测就可以一直开着。
时时刻刻来检测是否有同步。
lcytms
发表于 2017-8-18 09:18:52
1030
8个比特做帧头检测。
做成移位寄存器。
低位优先。
然后做一个比较器。
lcytms
发表于 2017-8-18 09:21:42
1031
比较器会输出一个帧同步的信号。
找到比特流的帧边界。
比特已经对齐了,接收端恢复出比特流,找出比特流的帧边界,根据帧结构就能够把所有的字边界、字节边界找到。
这是一种乐观、积极的解决方案。