我有一个使用MDB(多点总线)的自动售货机(VDM)项目。
VDM具有MDB-RS232。
我不确定它是否转换为9位 - 8位(MDB-UART)。
如何从计算机中的VDM读取数据?
全部谢谢
答案 0 :(得分:2)
MDB(多点总线)是9位,因为在标准的8个数据位之后(如在标准RS232 UART通信中),有一个称为“模式”的第9位。
(Wikipedia on MDB:“模式位区分ADDRESS和DATA字节。”)
但即使使用常规的8位RS232接口,您也可以读取此类数据。用于PC的普通标准USB-to-RS232设备。
以下是:
使用9600波特,8个数据位,1个停止位,但 RS232奇偶校验设置“空格”。即使在奇偶校验错误指示的情况下,也要确保收到原始字符值。来自VDM的任何MDB地址字节都将收到奇偶校验错误(但仍然可以正确显示)。任何数据字节都将显示无误。
要使用标准的8位RS232端口发送MDB ADDRESS和DATA字节,可以应用临时奇偶校验更改:在发送地址字节之前将奇偶校验设置更改为“标记”,然后更改回“空格”在发送数据字节之前。
在Windows上,您可以使用我们的Docklight软件执行此类技巧(请参阅Docklight and MDB)。它可以免费进行基本测试,还有一个相关的9-bit example project。
在Linux / Raspberry Pi上,其他用户也成功实现了奇偶校验技巧,请参阅此stackexchange post about a MDB + Pi。
但是对于RealTerm,Teraterm,Termite,Bray,YAT或任何其他RS232应用程序,您应该能够读取数据,只要它正确处理“空格”或“标记”奇偶校验设置。
答案 1 :(得分:2)
您需要一个适配器,它可以即时和实时地执行所有转换操作。如果要模拟VMC(主),则需要MDB-UART master adapter。如果要模拟MDB外围设备(例如硬币兑换器,账单验证器等),则需要this。对于双向“嗅探”MDB总线,您需要组合使用这些设备。 直接连接由于严格的MDB时序,PC的RS-232到MDB将无法工作(VMC命令和外设响应之间的延迟不得超过5ms,POLL请求之间的延迟通常为50-300ms)。我的意思是可靠的功能可用于商业目的。