使用mark / space parity和parity none之间有什么区别?

时间:2012-12-19 13:05:46

标签: serial-port bit parity

创建三种奇偶校验位的目的是什么,这些奇偶校验位都定义了一个奇偶校验位未被精确使用的状态?

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

4 个答案:

答案 0 :(得分:14)

有一个非常简单和非常有用的理由让标记或空格奇偶校验似乎在这里省略:节点地址标记。

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

这些小型设备不希望浪费电力或处理时间来查看通过串行端口传入的每个字符。大多数时候,这不是他们感兴趣的东西。

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

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

所以...如果你有一个PC级系统尝试与这些微型设备进行对话,你需要能够设置/清除该奇偶校验位。因此,在传输节点地址时设置MARK奇偶校验,在其他地方设置SPACE奇偶校验。

答案 1 :(得分:5)

所以有五个的可能性,而不是三个:没有奇偶校验,标记,空格,奇数和偶数。如果没有奇偶校验,则在帧中省略额外的位,通常在协议已经使用校验和或CRC检查错误时选择,或者数据损坏不被认为是可能的或关键的。

没有人选择标记或空间,这只是浪费带宽。 Modulo有些奇怪的标准,比如9位数据协议,硬件供应商喜欢强迫你购买他们的硬件,因为你没有实时重新编程UART而没有编写驱动程序。

答案 2 :(得分:0)

非常明确和有用的答案和评论。 对于那些发现概念不正常的人,请放松;这个术语是语义问题,而不是信息理论或工程问题,这是使用“平价”一词所带来的困难。

“Mark”和“space”位在这些应用中不是奇偶校验位,并且该术语源于它们占据在其他上下文中可能预期奇偶校验位的位位置的事实。实际上它们与奇偶校验无关,但是用于需要恒定位值的任何相关目的,例如标记字节或其他信号的开始,或作为延迟,或指示状态。信号作为数据或地址等。

因此,它们有时在逻辑上被称为“棒(奇偶校验)位”,被卡在“开”或“关”状态。有时他们真的“不在乎”。

答案 3 :(得分:0)

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