我开发了一个嵌入式解决方案,它通过 Multi Drop Bus 进行通信现在我想开发一个基于 PC 的应用程序来监控总线上的流量。
MDB 支持真正的 9 个数据位(加上开始/停止/奇偶校验 - 并且 *no fudging* 通过将奇偶校验位用作第 9 个数据位)
而标准 Windows 和 Linux 库最多提供8 个数据位。
我有一个 StarTech PCI2S950支持 9 位数据位的 PC 串口卡,但我不确定如何编写我的监控应用程序并且搜索了很多无济于事。
我更喜欢用 C(或 Delphi 或 C++)编写代码。我稍微偏爱 Cygwn,但我愿意使用简单的 Windows 或 Linux。
只需通过该 PC 串行端口卡读取/写入 9 个数据位即可。
有人能帮忙吗?
最佳答案
文档位于 http://www.semiconductorstore.com/pdf/newsite/oxford/ox16c950b.pdf描述了各种UART之间的区别。 虽然您的 StarTech 板包含 16C950,它支持 RS-485(和 9 位),但它在 RS-232 兼容 (550) 模式下使用它,类似于 IBM-PC 时代的 16550/8250,并且最多支持 8 位数据。
您需要一 block 具有相同芯片 (16C950) 的电路板,但它会根据规范公开支持 9 位数据的 RS-485 兼容 950 模式。并且任何声称支持此类的主板都必须配备适用于 Windows 的自定义驱动程序,因为 Microsoft 的驱动程序仅为 8 位。
提到的 9 位 RS-485 还有其他几种芯片 here但再次找到 Windows 驱动程序支持将很棘手。当然,许多电路板使用 16C950,但仅在 8 位和/或 RS-232 模式下使用,并且没有适当的驱动程序。
回答您的相关question on Superuser , sawdust建议 Sealevel 7205e ,这看起来是个不错的选择,具有 Windows 驱动程序支持。它很贵,但他们特别提到了 9 位、RS-485 支持和 Windows 驱动程序。这可能是您的最佳选择。
关于c - 如何在 PC 上访问我的 9 位数据串口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14212660/