我是串行通信的新手。对于一个项目,我必须为自动售货机开发软件。自动售货机基本上由一台主机(一台windows xp机器)和各种外围设备组成。其中一个外围设备是硬币接收器。根据自动售货机的文档,主机通过串口与投币器进行通信。我唯一的文档是这个名为“Multi-Drop Bus / Internal Communication Protocol”的文档(我的版本可以在这里找到:http: //www.coin-acceptor.com.cn/Upload/EditorFiles/technicalfile/Mdb_version_4 -2.pdf )。
根据文档,我似乎必须使用 9600 的波特率、1 个起始位、1 个停止位、1 个模式位和 8 个数据位(链接文档中的第 29 页)创建一个串行端口连接。自动售货机文档声明硬币接收器在 COM 端口 6 上。我尝试使用 HyperTerminal 和 Putty 创建这样的连接。我的第一个问题是:
- 如何正确创建与支持此 MDB“协议”的设备的连接?Putty 和 HyperTerminal 不允许我设置“模式位”。我在文档中没有找到任何关于流控制和奇偶校验位的信息。这可以使用 Putty 或 HyperTerminal 完成吗?或者我是否需要一些其他工具来通过 MDB 进行通信?
我的第二个问题是关于如何向设备发送命令。我查看了命令并看到了一个 RESET 命令。根据该文档,在收到 RESET 命令后,设备应自行复位并以 ACK 响应。根据文档的第 33 和 63 页,如果我想向硬币接收器发送 RESET 命令,我可以通过串行线发送 HEX 值 08H。第 33 页指出,硬币兑换商会在 10H 之前监听发送到地址 08H 的命令(如果我正确地解释了文档,那就是)。第 63 页说明 RESET 命令是 08H,没有数据字节。那么我可以在 Putty 中输入“08H”并点击“enter”吗 将此命令发送到设备?或者如何通过串行线将此命令发送到设备?这甚至是正确的方法还是我在寻找完全错误的地方?自动售货机文档仅包含硬币接收器的此文档。感谢您的帮助!
亲切的问候
克里斯