c - 如何在 PC 上访问我的 9 位数据串口?

标签 c serial-port cygwin

我开发了一个嵌入式解决方案,它通过 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/

相关文章:

linux - 如何使用 cygwin 在 Windows 上运行 .sh 文件?

c - 数据结构 : Request Counting Task

c - strcmp(字符串比较)到底在做什么?

windows - 如何在 Windows 命令提示符下通过串口发送文件

git 错误 : ssh: Could not resolve hostname?

linux - cygwin 二进制 exec 格式错误

c - 如何重新加载 C 程序?

c - 如何纠正我的 C 程序中的段错误

php - Arduino 没有收到串行消息

linux - 在不等待换行的情况下在 Linux 上记录 RS232