看一下异步通信的原理就知道了:接收方在移位进入的每一位数据的中间点进行采样,对于16分频的接收时钟来说,就是采样第8个时钟开始处的数据,默认那一点的数据为正确接收值。(实际上是在7、8、9时钟采样3次,3中取2。)
那么考虑接收数据传输中的相位偏移,或者发送、接收双方时钟的偏差,接收方时钟从第9个到第16个可以允许超前/滞后7个时钟偏移(这也是接收一个字节11位最大允许时钟偏移误差。之后接收新的字节,偏差重新同步定位。)
如果没有接收时钟高于传输比特率,也就没有了这种时钟允许偏移,也就是要求接收方时钟与发送方时钟完全同步(同频或共用时钟),并且相位偏移只允许1/2个时钟(粗分)(16分频时是7个,32分频时15个,——精度细分。)当然现在的晶振频率精度是容易做到的,但是传输中造成的相位偏移就没办法克服了。
由此,产生了高级数据传输通信技术——同步传输。其中有:如若接收方是16分频,也就是说接收方接收时钟大于数据传输比特率16倍,那么在一帧数据开始接收之前(发送方发送同步比特域)接收方就有16次机会修正自己与发送方时钟同步;如若是32分频,接收方就有32次机会修正自己与发送方时钟同步。——分频越高同步越精确。
如若有心研究这类问题,找一本计算机通信技术的书看看即可,(内容要有锁相环之类的)推荐一本:
《微型计算机数据传输基础与实践》——RS232C/高级规程/远程技术
【日】宫崎诚一著 陆玉库,于翼译 人邮出版社
|