问题:在串行同步通信中,发送端需要和接受端进行同步,时钟同步。这个时钟同步是什么概念?书上说是用同步码从发送端发出去,接受端接收同步码就可以同步了。这个同步怎么可能是时钟上的同步呢?比如发送端是0时刻发出去的,假设发送数据需要1ms,那接收到数据也应该是1ms的时刻了,发送端的时钟和接受端的时钟相差一个发送过程时间,怎么会是时钟同步呢?
回答:
- 接收端的时钟同步不是为了获得和发端完全相同的绝对时间,而是为了获得和接收到的数据对齐的时钟信息,以便能够从接收到的数据波形中正确恢复出数据。
- 现实中不存在绝对精确的时钟,标称值同样是1MHz,发端和接收端的时钟总会存在差异,如果接收端不进行时钟同步,而是使用自己本地的时钟,则足够长的时间后接收到的数据总会出现不可预知的重复或丢失,导致接收错误。
- 因此发端必须将与数据速率相关的时钟信号传输给接收端,时钟信号可以走单独的信号线,也可以用一定的方式隐含在数据信号中。接收端对此时钟信号进行同步,从而能够“不多也不少”地从接收的数据波形中恢复数据。
- 另外传输过程中,数据信号多少会发生一定的畸变,时钟同步的另外一个作用是保证接收端在波形畸变最少的时刻恢复数据,减少出错概率。