我开发了一种通过多拖线总线进行通信的嵌入式解决方案,现在我想开发一种基于PC的应用程序来监视总线上的通信量。
MDB supports true 9 data bits (plus start/stop/parity - and *no fudging* by using the parity bit as a 9th data bit)而标准Windows和Linux库提供最多8个数据位。
我有一个支持9位数据的StarTech PCI2S950 PC串行端口卡,但我不知道如何编写我的监控应用程序,并且搜索了很多并没有太大用处。
我宁愿用C(或Delphi或C ++)编码。 我对Cygwn略有偏好,但愿意使用简单的Windows或Linux。
只需通过PC串行端口卡读/写9个数据位即可。
谁能帮忙?
I have developed an embedded solution which communicates over a Multi Drop Bus and now I would like to develop a PC based application which monitors traffic on the bus.
MDB supports true 9 data bits (plus start/stop/parity - and *no fudging* by using the parity bit as a 9th data bit) whereas standard Windows and Linux libraries offer a maximum of 8 data bits.
I have a StarTech PCI2S950 PC serial port card which supports 9-data bits, but am not sure how to code my monitoring app & have googled a lot to no great avail.
I would prefer to code in C (or Delphi, or C++). I have a slight preference for Cygwn, but am willing to use straightforward Windows or Linux.
Just anything to read/write 9 data bits over that PC serial port card.
Can anyone help?
最满意答案
http://www.semiconductorstore.com/pdf/newsite/oxford/ox16c950b.pdf上的文档介绍了各种UART之间的区别。 虽然StarTech主板包括支持RS-485(和9位)的16C950,但它可以在RS-232兼容(550)模式下使用,类似于IBM-PC时代的16550/8250,并支持最大8位数据。
您需要一块具有相同芯片(16C950)的电路板,但需要提供符合规格的支持9位数据的RS-485兼容950模式。 任何声称支持这种支持的电路板都必须带有用于Windows的自定义驱动程序,因为微软只有8位。
还有其他几个芯片可以在这里提到9位RS-485 ,但是再次发现Windows驱动程序的支持将会非常棘手。 当然,许多电路板使用16C950,但仅限于8位和/或RS-232模式,并且没有适当的驱动程序。
在回答你关于超级用户的相关问题时 , 锯末建议Sealevel 7205e ,它看起来像一个不错的选择,具有Windows驱动程序支持。 这是昂贵的,但他们特别提到9位,RS-485支持和Windows驱动程序。 这可能是你最好的选择。
The document at http://www.semiconductorstore.com/pdf/newsite/oxford/ox16c950b.pdf describes the differences between various UARTs. While your StarTech board includes the 16C950, which is RS-485 (and 9-bit) capable, it uses it in RS-232 compatible (550) mode, similar to 16550/8250 from IBM-PC days, and supports max 8 bit data.
You need a board with the same chip (16C950) but that exposes the RS-485 compatible 950 mode that supports 9 bit data as per the spec. And any board claiming such support would have to come with custom drivers for Windows, since Microsoft's is 8 bit only.
There are several other chips that can do 9-bit RS-485 mentioned here but again finding Windows driver support will be tricky. And, of course, many boards use 16C950 but only in 8-bit and/or RS-232 only mode, and without appropriate drivers.
In answer to your related question on Superuser, sawdust suggested the Sealevel 7205e, which looks like a good choice, with Windows driver support. It is pricey but they specifically mention 9-bit, RS-485 support, and Windows drivers. It may well be your best option.
更多推荐
发布评论