我正试图在Arduino Mega的帮助下,使用MDB协议与一台供应商机器进行通信,我在这方面取得了一定的成功。
我正在使用的电路附在这里

而电路图如下所示

Arduino Mega通过串行1与笔记本电脑通信,自动售货机通过Arduino Mega的串行2进行通信。
USART正被用于通信。
我面临的奇怪问题是,只有当棕色电线A和B最初没有连接时(连接Arduino TX到vending ),与自动售货机的通信才会开始发送数据。一旦我看到数据来自供货机,我短线A和B和Arduino开始发送数据到自动售货机也。
但是,如果A和B线在自动售货机启动时连接,自动售货机不会向Arduino发送任何数据,因此不会进行通信。我想让它工作,不需要手动连接线A和B每次。
我试过用PC817C取代光耦合器
我试着用
我试着在电线A和B之间放置一个机械继电器,然后是固态继电器,并尝试通过外部输入连接它们,但什么也没有发生。
我厌倦了在电线A和B之间添加一个光耦合器,并尝试通过固件控制它。
我甚至尝试用十六进制缓冲HCF4050BE和一个非门替代十六进制逆变器,但是不管上述组件的任何组合,问题仍然是一样的,只有当电线A和B最初没有连接,然后一旦数据从自动售货机开始短路,它才能工作。
我正在使用马特-巴勒代码。
我想自动化这个手动过程,并需要一个简单的解决方案。
发布于 2020-01-29 05:40:54
解析
这个问题是由于漏掉了状态机元素造成的。我的设备是一级MDB设备,我使用的自动售货机要求从设备(无论是在级别-1还是级别-2)甚至响应二级设置投票,这在MDB规范文档中不是标准情况。
:当TX线脱附时,它为什么工作?
当TX线被移除时,我的逻辑分析器显示了一些随机的十六进制值,这些随机的东西导致了设备的工作。
通过对我的自动售货机的额外设置配置轮询的响应,我能够使它顺利地工作。
下面的图片显示了由VMC发送的配置数据,这些数据被我的设备丢弃,使其行为怪异。

发布于 2020-02-03 22:02:40
不久前,我遇到了PIC18F452和使用MDB协议的自动售货机之间的通信问题。
在这段时间里,我发现由于PIC对机器的沟通是消极的,因为机器对PIC。这是因为电子进入自动售货机,接收数据,有一个光学超声电路,反转信号。
我记得,当我阅读MDB协议文档时,看到的部分是电子图VMC。
我建议检查那个部分,这可以解释为什么当你连接A和B线作业时,因为你是倒转两次信号。
https://stackoverflow.com/questions/59260726
复制相似问题