如何接收Virtual Box中串行端口上发送的“原始字节”?

如何接收Virtual Box中串行端口上发送的“原始字节”?

我已经在 Virtual Box 中启用了串行端口,并将输出重定向到文件D:\1.bin

在此处输入图片描述

我在 Virtual Box 中的 Windows XP 中的 cmd 中使用以下命令发送了一些数据:

echo Hello > COM1

此外,我还将相同的数据发送到 Virtual Box 中的 Ubuntu 9.04 中的串行端口:

echo Hello > /dev/ttyS0

但保存的结果D:\1.bin只有字符串“Hello”,没有奇偶校验和停止位等额外数据。

有没有办法能够接收串行端口发送的“原始字节”?

答案1

奇偶校验和停止位将不会包含在此文件中。

这 ”原始数据“ 指的是有效载荷...奇偶校验和停止位与帧的成帧和验证有关”原始数据“在物理介质上。


还值得一提的是,UART 通常可以在 7 位(仅文本)和 8 位(二进制)模式下运行。

8N1您所看到的典型指的是:

  • 1 个隐式起始位
  • 8位数据
  • 无奇偶校验
  • 1 个停止位

这将达到每 8 位数据 10 位,而这在每字节存储 8 位的文件中无论如何都无法正常工作 - 添加奇偶校验或另一个停止位,会使情况进一步恶化。

此外,一旦你对框架感兴趣,你应该还会对时间信息感兴趣,例如波特率和帧间距 - 您的命令甚至无法配置这些信息。

相关内容