Serial port 使用标记/空格奇偶校验和无奇偶校验有什么区别?

Serial port 使用标记/空格奇偶校验和无奇偶校验有什么区别?,serial-port,bit,parity,Serial Port,Bit,Parity,创建三种类型的奇偶校验位的目的是什么,它们都定义了一种不使用奇偶校验位的状态 “如果奇偶校验位存在但未使用,则可将其称为标记奇偶校验(当奇偶校验位始终为1)或空间奇偶校验(位始终为0)”-因此有五种可能性,而不是三种:无奇偶校验、标记、空间、奇偶校验和偶偶校验。在没有奇偶校验的情况下,额外的位只是在帧中省略,通常在协议已经使用校验和或CRC检查错误时选择,或者认为数据损坏不太可能或不严重 从来没有人选择标记或空格,这只是在浪费带宽。模块化一些奇怪的标准,如9位数据协议,硬件供应商喜欢强迫您购买他

创建三种类型的奇偶校验位的目的是什么,它们都定义了一种不使用奇偶校验位的状态

“如果奇偶校验位存在但未使用,则可将其称为标记奇偶校验(当奇偶校验位始终为1)或空间奇偶校验(位始终为0)”-

因此有五种可能性,而不是三种:无奇偶校验、标记、空间、奇偶校验和偶偶校验。在没有奇偶校验的情况下,额外的位只是在帧中省略,通常在协议已经使用校验和或CRC检查错误时选择,或者认为数据损坏不太可能或不严重


从来没有人选择标记或空格,这只是在浪费带宽。模块化一些奇怪的标准,如9位数据协议,硬件供应商喜欢强迫您购买他们的硬件,因为您没有真正的机会在不编写驱动程序的情况下动态重新编程UART。

如果要生成数据发送到需要奇偶校验位的硬件,设置标记或空间奇偶校验非常有用(可能是因为它在电子设备中内置了硬编码字长),但并不关心它的值是什么。

有一个非常简单且非常有用的理由让标记或空间奇偶校验被忽略在这里:节点地址标记

非常低功耗和/或小型嵌入式系统有时使用工业串行总线,如RS485或RS422。可能许多非常微小的处理器连接到同一总线

这些微型设备不想浪费电源或处理时间来查看通过串行端口输入的每个字符。大多数情况下,这不是他们感兴趣的事情

因此,您设计了一个总线协议,它可能使用9位…8位数据位和一个标记/空间奇偶校验位。每个数据包只包含一个字节或字(节点地址)设置了标记奇偶校验位。其他一切都是空间奇偶校验。然后,这些小型设备可以简单地等待奇偶校验错误中断。一旦它得到了中断,它就会检查那个字节。这是我的地址吗?不,回到睡眠状态

这是一个非常节能的系统…而且在带宽上只有10%的浪费。在许多环境中,这是一个非常好的权衡


因此……如果你有一个PC级系统试图与这些微型设备通信,你需要能够设置/清除奇偶校验位。因此,你可以在传输节点地址时设置标记奇偶校验,并在其他任何地方设置空间奇偶校验。

非常清楚和有用的答案和备注。 对于那些认为这个概念有悖常理的人来说,放松点;这个术语是语义学的问题,而不是信息理论或工程学的问题,因为使用“对等”一词会带来困难

“标记”和“空间”在这些应用程序中,位不是奇偶校验位,这个术语是因为它们占据了在其他上下文中可能需要奇偶校验位的位位置。实际上,它们与奇偶校验无关,而是用于需要恒定位值的任何相关用途,例如标记字节或其他符号的开头al,或作为延迟,或作为数据或地址等指示信号的状态


因此,它们有时在逻辑上被称为“固定(奇偶校验)位”,被固定在“开”或“关”状态。有时它们真的是“不在乎”。如上所述,RS485需要9位传输。RS485广泛应用于工业应用中,无论受控设备的“大小”(例如,有许多空调或冰箱提供RS485接口,而不是真正的“小”东西).RS485允许高达10Mbs的吞吐量或高达4000英尺的距离。使用奇偶校验位来区分地址/数据字节简化了硬件实现,只有当线路上的地址字节与节点的地址匹配时,网络的每个节点才可以拥有自己的硬件来生成中断。

要求奇偶校验位而不使用奇偶校验位非常奇怪关心它的价值!不一定-也许接收器是为只能发送奇偶校验位的发射器而设计的?现实生活中的任何示例系统?你的意思是这就像使用一个主UART的多个从微型设备一样吗?嗯,许多有多个小节点的系统都会这样做。我听说有一台自动售货机使用它来处理各种c与主处理器通信的组件(我假设是货币接收器、分配组件、剩余数量传感器等),这可能是我能想到的最通用的例子。