我有一个使用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/