我有一个使用MDB(多点总线)的自动贩卖机(VDM)项目。

VDM具有MDB-RS232。

我不确定是否可以转换9位-8位(MDB-UART)。

如何从计算机中的VDM读取数据?

谢谢大家

最佳答案

MDB(多点总线)为9位,因为在标准的8个数据位(如在标准RS232 UART通信中)之后,存在第9位,称为“模式”。

Wikipedia on MDB:“模式位区分ADDRESS和DATA字节。”)

但是,即使使用常规的8位RS232接口,例如用于PC的普通标准USB到RS232设备。

方法如下:


使用9600波特,8个数据位,1个停止位,但RS232奇偶校验设置为“空格”。即使出现奇偶错误指示,也请确保接收到原始字符值。您的VDM中的任何MDB地址字节都会收到奇偶校验错误(但仍会正确显示)。任何数据字节都将正确显示。
要使用标准的8位RS232端口发送MDB ADDRESS和DATA字节,可以应用临时奇偶校验更改:在发送地址字节之前将奇偶校验设置更改为“ Mark”,然后在发送数据字节之前更改回“ Space”。


在Windows上,您可以使用我们的Docklight软件(参见Docklight and MDB)完成这些技巧。它是基本测试免费的,还有一个相关的9-bit example project

在Linux / Raspberry Pi上,其他用户也成功实现了奇偶校验技巧,请参见此stackexchange post about a MDB + Pi

但是,即使使用RealTerm,Teraterm,Termite,Bray,YAT或任何其他RS232应用程序,只要数据能够正确处理“空格”或“标记”奇偶校验设置,您也应该能够读取数据。

关于serial-port - 多站总线到rs232转换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45807652/

10-15 20:31