如何理解MDB-RS232适配器数据通信格式解析

本文讲述了如何通过USB转串口连接MDB接口,包括上电步骤、使用DC24V供电、串口测试工具的使用以及HEX数据转换为ASCII格式以便与MDB协议对比。主要内容涉及设备自检数据和状态报告,以及PC与MDB设备的交互过程。
摘要由CSDN通过智能技术生成

  1. 连接电脑串口(如果电脑只有USB接口,就需要增加一个USB转串口的适配器)
  2. 连接DC24V供电电源(电源的最大供电电流要在3A以上)
  3. MDB接口,连接纸币器,硬币器,非现金设备等

连接MDB纸币接收器和硬币器后,然后开始用DC24V给MDB-RS232上电。(注意电源适配器选择电流大于3A的)。上电后,串口测试工具会收到一系列数据:

(以下只是举例,实际数据可能会有一些差异)

ASCII显示:

HEX显示:

4D 44 42 2D 52 53 32 33 32 20 56 34 2E 32 20 63 6F 6D 70 61 74 69 62 6C 65 0D 0A 30 38 20 30 30 0D 0A 33 30 20 30 30 0D 0A 31 30 20 46 46 0D 0A 34 30 20 46 46 0D 0A 36 30 20 46 46 0D 0A 46 46 20 0D 0A 30 38 20 30 42 0D 0A 33 30 20 30 36 20 30 39 0D 0A 33 30 20 30 39 0D 0A 33 30 20 30 39 0D 0A 33 30 20 30 39 0D 0A 33 30 20 30 39 0D 0A 33 30 20 30 39 0D 0A 33 30 20 30 39 0D 0A 30 30 20 0D 0A 30 33 20 31 31 20 35 36 20 30 35 20 30 31 20 30 30 20 30 33 20 30 31 20 30 32 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 37 36 20 0D 0A 30 31 20 30 30 20 38 36 20 30 30 20 30 41 20 30 31 20 30 30 20 43 38 20 46 46 20 46 46 20 46 46 20 30 31 20 30 35 20 30 41 20 31 34 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 37 42 20 0D 0A 30 30 20 0D 0A 33 30 20 38 31 0D 0A 30 38 20 35 31 20 30 31 0D 0A

我们需要将这些HEX数据转换成ASCII格式,可以直接方便地与MDB协议进行比较。 如果使用串口工具进行测试,串口工具一般都有一个ASCII或HEX显示方式的选择,这样很容易观察和理解数据格式。

上电后设备自检和状态报告的数据

MDB-RS232 V4.2 compatible         4D 44 42 2D 52 53 32 33 32 20 56 34 2E 32 20 63 6F 6D 70 61 74 69 62 6C 65 0D 0A

08 00                                   30 38 20 30 30 0D 0A      (硬币器已连接)

30 00                                   33 30 20 30 30 0D 0A      (纸币器已连接)

10 FF                                   31 30 20 46 46 0D 0A      (非现金支付设备1未连接)

40 FF                                   34 30 20 46 46 0D 0A      (USD设备未连接)

60 FF                                   36 30 20 46 46 0D 0A      (非现金支付设备2未连接)

FF                                        46 46 20 0D 0A

08 0B                                   30 38 20 30 42 0D 0A      (状态数据0B表示硬币器刚复位好)

                                                            (硬币器的各种状态,对照MDB协议V43的第68页)

30 06 09                              30 36 20 30 39 0D 0A      (状态数据06 表示纸币器刚复位好)

                                                               (状态数据09表示纸币器处于禁能状态)

                                                                (纸币器的各种状态,对照MDB协议V43的第96页)

30 09                                    33 30 20 30 39 0D 0A

30 09                                    33 30 20 30 39 0D 0A

30 09                                    33 30 20 30 39 0D 0A

30 09                                    33 30 20 30 39 0D 0A

30 09                                    33 30 20 30 39 0D 0A

30 09                                    33 30 20 30 39 0D 0A

(以上为设备上电后硬币器,纸币器自动报告的数据和状态,可以看出,主动报告的数据前面都有对应设备的ID号:08,30,10,60,40等,后面跟的是报告数据或者状态。当然不同的设备,不同厂家,报告的数据可能会有差异。具体需要用户对照MDB协议,进行理解)

PC发送使能,查询配置,设备会做出回复

PC Send:                                    0CFFFFFFFF              (使能硬币器)

PC Receive: 00                          30 30 20 0D 0A        (回复00)

PC Send: 09     (读取硬币器配置数据)

PC Receive:     03 11 56 05 01 00 03 01 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 76

30 33 20 31 31 20 35 36 20 30 35 20 30 31 20 30 30 20 30 33 20 30 31 20 30 32 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 37 36 20 0D 0A

PC Send: 31     (读取纸币器配置数据)

PC Receive:    01 00 86 00 0A 01 00 C8 FF FF FF 01 05 0A 14 00 00 00 00 00 00 00 00 00 00 00 00 7B

30 31 20 30 30 20 38 36 20 30 30 20 30 41 20 30 31 20 30 30 20 43 38 20 46 46 20 46 46 20 46 46 20 30 31 20 30 35 20 30 41 20 31 34 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 37 42 20 0D 0A

PC Send: 34FFFF0000      (使能纸币器)

PC Receive: 00                         30 30 20 0D 0A

收到一个付款后,设备会主动给PC报告数据

比如纸币器收到一个面额的纸币:

30 81                                           33 30 20 38 31 0D 0A

比如硬币器收到一个面额的硬币:

08 51 01                                     30 38 20 35 31 20 30 31 0D 0A

从上面的描述可以看出,为了更好的理解数据,我们需要注意几点:

1.任何到PC的数据串都以0D 0A结尾

2、PC端发送的数据为HEX格式,对应MDB协议

3、PC接收到的数据按照ASCII格式转换后对应MDB协议,例如ASCII 08对应的十六进制数据为30 38

4、MDB设备主动上报的数据或状态会以设备ID为前缀:08、30、10、60,表示数据来自硬币器、纸币器、非现金设备01或非现金设备02

5. PC发送查询命令。因为是响应方式,不会混淆,所以设备返回的数据没有前缀08、30、10、60

6、关于奇偶校验字节:

MDB 设备自动报告状态,收款数据,无奇偶校验字节,比如 08 51 01

MDB设备返回的单字节00不需要校验字节00

MDB设备回复PC命令时,如果是多字节数据,最后一个字节为和校验字节

比如 03 11 56 05 01 00 03 01 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 76

(以上ASCII数据需要十六进制求和)

03+11+56+05+01+00+03+01+02+00+00+00+00+00+00+00+00+00+00+00+00+00+00 = 76

  • 23
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值