Serial port 通过多点总线与串行设备通信

Serial port 通过多点总线与串行设备通信,serial-port,multidrop-bus,Serial Port,Multidrop Bus,我不熟悉串行通信。对于一个项目,我必须为自动售货机开发软件。自动售货机基本上由主机(windows xp机器)和各种外围设备组成。其中一个外围设备是硬币接收器。根据自动售货机的文档,主机使用串行端口与硬币接受器通信。我拥有的唯一文档是名为“多点总线/内部通信协议”的文档(我的版本可以在这里找到:) 根据文档,我似乎必须使用9600的波特率、1个起始位、1个停止位、1个模式位和8个数据位创建串行端口连接(链接文档第29页)。自动售货机文件表明硬币接受器位于COM端口6上。我尝试使用超级终端和Put

我不熟悉串行通信。对于一个项目,我必须为自动售货机开发软件。自动售货机基本上由主机(windows xp机器)和各种外围设备组成。其中一个外围设备是硬币接收器。根据自动售货机的文档,主机使用串行端口与硬币接受器通信。我拥有的唯一文档是名为“多点总线/内部通信协议”的文档(我的版本可以在这里找到:)

根据文档,我似乎必须使用9600的波特率、1个起始位、1个停止位、1个模式位和8个数据位创建串行端口连接(链接文档第29页)。自动售货机文件表明硬币接受器位于COM端口6上。我尝试使用超级终端和Putty创建这样的连接。我的第一个问题是:

  • 如何正确创建与支持此MDB“协议”的设备的连接?Putty和超级终端不允许我设置“模式位”。我在文档中没有找到任何关于流控制和奇偶校验位的内容。这可以用油灰或超级终端来完成吗?或者我需要其他工具通过MDB进行通信吗
  • 我的第二个问题是关于如何向设备发送命令。我查看了命令,看到了一个重置命令。根据该文件,在收到重置命令后,设备应自行重置并以ACK响应。根据文件第33页和第63页,如果我想向硬币接收器发送重置命令,我可以通过串行线发送十六进制值08H。第33页指出,硬币换币机在08H到10H之间监听发送到地址的命令(如果我正确地解释了文档)。第63页说明重置命令为08H,无数据字节。所以我可以在Putty中键入“08H”并点击“回车”将此命令发送到设备吗?或者,我如何通过串行线向设备发送此命令?这是正确的方法,还是我看的地方完全错了?自动售货机文档仅包含硬币接受者的此文档。谢谢你的帮助

    问候


    克里斯

    这是一个邪恶的协议,故意给你一段艰难的时光。而硬件供应商则是一个市场机会。获得第9模式位很难。唯一的办法就是使用奇偶校验位。这确实需要实时重新编程UART芯片,以便在标记奇偶校验和空间奇偶校验之间切换。如果你使用微控制器是可行的,在PC上很难做到,因为中间有一个驱动程序。可能有人做了一个,当然只在他的硬件上工作。联系供应商协会以获取购物建议。请参阅支持9位数据字符的串行端口。16950(或16C950)UART是您想要的9位数据芯片。嘘,听起来像是一场噩梦。谢谢你的帮助@cbbcloud“嘘,听起来像噩梦”——你应该忽略第一条评论。有了9位UART,实现这个协议对我来说似乎并不难。“那么我可以在Putty中键入“08H”吗”--不可以。您需要了解
    符号与
    代码值与(原始)二进制/十六进制值之间的区别。