USB的NRZI编码与时钟恢复

描述

USB2.0支持3中传输模式:

低速模式(1.5Mb/s)

全速模式(12Mb/s)

高速模式(480Mb/s)

由于协议开销,实际速率要低一些。

USB使用的是NRZI编码方式,其编码核心是:

当数据为0时,电平翻转,

当数据为1时,电平不翻转。

数据包

USB数据包的开头有同步域(SYNC),其值为00000001,在经过NRZI编码后,就是一串方波,接收方通过方波计算出时钟频率来采样后续数据。

采样数据过程中,每当遇到数据0时就有电平翻转,那么接收方采样数据的同时,可通过翻转的信号来调整接收时钟的频率。

那么数据一直不翻转,时钟怎么恢复?

因此,bit-stuffing出现了!与serdes异曲同工之妙。

如下图:当传输的数据中有 6个连续的 1,编码前就在第 6 个 1 后插入一个 0,从而强制出现翻转,从而保证接收者可以调整对齐时钟同步,接收者需要删除 6 个连续 1 之后的 0即可恢复原始数据。由于插入了0,这也是开销降低带宽的原因之一。

数据包

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分