MDB-RS232控制硬幣器的指令說明及流程解析
MDB硬幣器的控制指令列表如下:

- 對于MDB-RS232適配器,適配器自身會進行POLL指令,分時讀取硬幣器的數據和狀態。硬幣器有接收到硬幣或者有狀態需要報告的時候,會在對應的時段把相應的數據通過MDB-RS232適配器發送給主機。因此主板開發工程師不需要考慮POLL指令和具體時序,只需要在需要的時候:發送 RESET復位指令,SETUP讀取配置,然后根據SETUP的數據通過COIN TYPE使能對應類型的硬幣。然后只要在有硬幣變化或者找零后,通過TUBE STATUS指令去查詢硬幣器數量狀態(為后續找零指令做數據準備)
- 找零指令,一般只要適用0F02指令即可,一般不適用0DH指令。具體需要用到的指令,可以參考后面的指令列表,產品具體測試的過程中,也可以和我們的工程師討論,會提供更多的技術支持。
指令 | HEX代碼 | 指令說明 |
RESET | 08H | 復位指令 |
SETUP | 09H | 讀取配置信息 |
TUBE STATUS | 0AH | 讀取錢管信息 |
POLL | 0BH | 輪詢指令(不需要發送,由MDB-RS232適配器完成) |
COIN TYPE | 0CH |
設定哪些硬幣類型可以被接收以及可以被手動取出 (這個指令根據SETUP指令讀取的硬幣類型去設置適用) |
DISPENSE | 0DH | 找零某個指定的硬幣類型 |
EXPANSION | 0FH |
擴展指令(僅列出重要指令,其余可以咨詢技術支持工程師) 0F 00 讀取設備ID信息以及可選功能信息 0F 01 使能可選功能指令 0F 02 找零指令(按金額找零) 0F 03 找零狀態查詢 0F 04 找零金額查詢 0F 05 狀態查詢 |
接下來我們簡單介紹一下硬幣器的開發指令序列及適用:
比如MDB-RS232通電后,我們會收到復位成功數據(以下測試數據為僅連接硬幣器):
MDB-RS232在上電后,會主動向硬幣器發送08H指令去復位,如果設備存在,會回復00確認。設備復位后,會報告0B。因此適用MDB-RS232控制支付設備時,我們只需要根據MDB-RS232報告的數據和狀態就可以判斷硬幣器是否正常工作。
比如上面通電后串口收到的數據:
08 00:表示硬幣器響應了復位指令,接下來收到的08 0B:表示復位成功
- 接下來,就要讀取配置
發送09H(讀取配置參數,這個字節的參數都是相當重要的,必須要理解)
回復示例:031156050100030102000000000000000000000000000076
發送0F00(讀取設備ID,這些參數和計算價格等無關,包括了設備代碼,版本,廠家型號等,我們做DEX數據報告的時候一般都會向服務器報告這些參數,便于管理)
回復示例:49435430303031323334353637383943434D362D545741204D444201000000000366
發送0F01(完整指令示例: 0F0100000001)使能0F00參數說明里的Optional Features
回復示例:00
- 運行過程中和硬幣數據發生變化時候通過0AH指令去不斷檢測錢管里數量的變化
0A
回復示例:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
前面兩個字節16個位表示哪個管子是滿的,后面16個字節表示16個管子里硬幣的數量
到這里,其實我們已經完成了基本的配置和讀取
- 接下來,我們就要根據需要接收硬幣種類(或者禁止收幣),發出對應的使能指令,比如
0CFFFFFFFF (發出這個指令后,硬幣器就可以收錢了)
回復示例:00
0C00000000 (如果正在找零中,或者機器維護中,我們就需要暫停收幣指令)
回復示例:00
下面等待MDB-RS232在有硬幣投入或者投幣狀態發生變化時報告數據即可。當然一般設計工程師還是會每隔幾秒適用一次0A指令實時讀取錢管狀態。能隨時知道錢管里硬幣的狀態,為找零提供準確的依據。
收到投幣數據: 08 51 01(示例數據,我們可以看MDB協議里0BH的回復那一段)
收到狀態變化數據: 08 01(投幣桿被按下)
08 02(找零BUSY)
如果區別是投幣數據,還是狀態數據呢?
投幣數據是兩個字節組成,第一個字節必然是大于40H的。所以我們收到數據,08開頭,就確定是硬幣器的數據,后面是51,就是投幣數據,分解為二進制數據就是 0101 0001 00000001
(按MDB協議截圖的解釋就是:01類型的硬幣,進入錢管,錢管里現在這個類型硬幣有1個)
- 接下來介紹以下找零周期
比如 0F0206 (0F02是固定的找零指令,后面的06就是要找的幣值,當然這個幣值是換算后的數值)
回復示例:00
硬幣器找零過程中,會不斷報告狀態,比如找零BUSY,出口堵幣等異常
以下列出找零時候標準的指令序列:
0A 回復:00000002000000000000000000000000000002讀取錢管狀態,判斷是否有找零數量
0C00000000 回復:00 先禁止投幣器收錢
0F0206 回復:00 開始發送找零指令
0F04 回復:0000 讀取已經找零的數量,如果還沒有找出去,就是00 00
0F04 回復:00 只回復了一個00,就表示找零已經結束
0F03 回復:00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 最后再次查詢找零個數
0CFFFFFFFF 回復:00 重新使能硬幣器
- 接下來我們介紹根據配置進行幣值計算
比如 09H指令,我們讀到的配置:031156050100030102000000000000000000000000000076
也就是計算比例是紅色的0501,幣值有0102 (0003表示最后兩個位的硬幣可以接收進錢管)
因此幣類型0值是01:幣值就是 01*5=5,然后除以10(小數點左移1位),也就是幣金額為0.5
幣類型1值是02:幣值就是 02*5=10,然后除以10(小數點左移1位),也就是幣金額為1
(這里就可以看出來,我們的硬幣器接收一個0.5元,一個1元硬幣)
找零指令 0F0206 這里的06,同樣換算 06*5=30,然后除以10,就是找零3元
更多的技術,可以在產品具體測試的時候,咨詢我們的專業技術人員
審核編輯 黃宇
-
適配器
+關注
關注
9文章
2024瀏覽量
69284 -
MDB
+關注
關注
1文章
25瀏覽量
9642
發布評論請先 登錄
自助售貨機內嵌掃描器應該要如何選用?

NV080D-S8 高品質otp語音芯片:讓漱口水售貨機更智能和人性化



評論