通过具有不同奇偶校验的串行链路发送数据

时间:2011-12-28 19:58:53

标签: serial-port serial-communication

我试图测试no,even和odd奇偶校验之间的区别 - 总是8个数据位,1个停止位

所以我有两台用串行电缆连接的PC都运行RealTerm或任何其他终端。

我不明白的是,无论我在发送机器上选择哪个奇偶校验,接收器总能获得我发送的数据。我甚至可以在接收器终端上更改奇偶校验,但我总是得到与发送完全相同的数据。

我想如果我发送偶数奇偶校验的0x03,它会在接收器上显示0x83(如果设置为无奇偶校验)和0x03(如果设置为偶校验)但是这不会发生。

我是否对平价有误解或可能是什么原因?

非常感谢!

2 个答案:

答案 0 :(得分:0)

奇偶校验位是第9位,因此它不会显示在您的数据中。它可能会被忽略,因为在更现代的通信中,还有其他方法可以检测通信错误和重新传输(如块中的CRC校验)。

问题在于,在单个字节级别的串行通信中,如果发生奇偶校验失败,则无法重新传输,它只能表明出现了问题。

答案 1 :(得分:0)

仅为数据选择了8位,奇偶校验位是第9位,就像您的示例中一样:无奇偶校验0x03(十六进制)0000 0011(binari)             偶数奇偶校验0x103(十六进制)1 0000 0011(binari)这就是要发送的内容。

如果您在“显示为”选项卡中使用realTerm选择二进制文件并且不要设置奇偶校验,您将看到奇偶校验位,或者使用示波器(如果有),并且还在realtTerm上有一些标志在“状态”选项卡上观察它们(BREAK,错误)