USB没有时钟线,是如何进行同步的?
USB接口作为一种同步串行通信协议,其信号传输不存在单独的时钟线。相较含时钟信号的通信方式,这为USB提供了简化布线的优势。但是同时也带来了信号同步的问题。
针对同步问题,不同编码方式提供了不同的解决思路。比如归零编码(RZ)可将时钟同步信号编码进数据之中,实现自同步传输。但编码效率较低。非归零编码(NRZ、NRZI)效率更高,但需借助同步头来实现初始同步。
USB采用了NRZI编码方式,并在每个数据包开头加入同步域SYNC来进行时钟同步。另外,USB还通过位填充(Bit-Stuffing)技术强制向数据流中插入额外的翻转,以校正发送接收双方之间的时钟误差。
具体来说,如果出现超过6个连续的逻辑1,USB会在第6位1之后强制插入一个额外0。接收端遇到此0后进行重新同步,且在确定其为填充0后将其删除。这能够避免长数据流导致的累积时钟漂移问题。
综上所述,USB同步传输主要依赖编码机制、同步头和位填充来实现无时钟的信号同步