这篇文章是沟通系列:区别是什么:串行通信101
非归零(NRZ)、非归零倒置(NRZI)、归零(RZ)和曼彻斯特(Manchester)是流行的序列编码机制(见图).每一个都有不同的特点,使其在不同的应用程序中有用。那些处理UARTs的人会发现NRZ是最熟悉的。
对于许多这样的编码,也有单极和双极版本。单极有一个在零和正之间的过渡。实际测量可以是电压、电流、压力或光学等多种属性中的一种。双极系统在积极和消极之间有一个过渡。任何方法都可以采用双极编码,但逻辑上它们可能与NRZ示例相同。
图中显示了与底部时钟同步的信号。转换的类型和位置使编码机制不同。
NRZ有一个与逻辑信号匹配的电平。在这种情况下,时钟将锁存在每个时钟周期开始时发送的值,并在时钟周期中间的接收端对其进行采样。NRZ通常用于串口。接收器通常具有一个与数据传输的上升或下降边缘同步的更快的时钟。这允许更精确地确定时钟周期的中心(图1).
RZ在时钟周期开始时使用脉冲来表示1值。在双极版本中,顺序的1值在相反的方向有一个过渡。当数据中有1个值时,RZ将始终有一个转换。
曼彻斯特和NRZI编码在时钟周期的中间有转换,其类型取决于编码。曼彻斯特是NRZ编码,和时钟是“或”的。这为每个比特提供了至少一次转换。NRZI也在时钟周期中间使用一个过渡,但这只发生在值为1时。曼彻斯特让时间恢复更容易。
曼彻斯特和RZ的挑战是数据传输的频率是NRZ和NRZI的两倍。权衡取决于用于实现通信的机制。有时带宽可能是个问题。
这些编码方案只是大多数数据传输系统使用的起点。例如,通用异步接收-发送器(UART)映射一个异步的每字节序列,其中包括一个开始位和一个或多个停止位。可以包括奇偶校验位来协助错误检测。更高级别的协议经常放弃奇偶校验位和计算奇偶校验或CRC的数据包。这有助于减少错误检测的开销。
除了时钟恢复/同步方案外,同步系统通常还有一个可以识别的空闲字符。像曼彻斯特编码这样的编码方案使这更容易实现。同步支持通常使用像4B/5B和8B/10B这样的编码方案。4B/5B使用5位编码16个(4位)符号,这些符号足够独特,可以使用NRZ等编码实现时钟恢复/同步。
这些更高级别的编码方案会造成带宽损失。集合越大,开销就越低,但它们需要更严格的定时和更复杂的同步逻辑。接近尺度和64B/66B用于10gb以太网。
更多信息请参阅沟通系列:区别是什么:串行通信101