在自定义嵌入式现金发行终端(Cash Issuing Terminals)中,实现可靠现金分发需精确电机控制与安全交易协议的紧密集成。主机控制器通过嵌入式分发协议(Embedded Dispensing Protocol)向现金分发模块(CDM)下发高层次指令,CDM 内部 MCU 负责实时电机驱动与传感器监测,避免直接暴露低层硬件细节。这种架构源于 ATM/CDM 标准实践,确保机械可靠性与交易原子性。
分发协议设计
协议采用 UART/RS-485 物理层,帧格式为:起始字节(0x02)、地址(主机 0x00/CDM0x01)、命令码、长度、负载、CRC 校验、结束字节(0x03)。核心命令包括初始化(0x01,自检固件版本)、分发(0x10,指定卡匣 ID / 钞票张数 / 面值混配)、状态查询(0x20,返回剩余张数 / 传感器位 / 错误码)、复位(0xFF)。
例如,分发命令负载:[卡匣 1:10 张 20 元,卡匣 2:5 张 50 元],总金额精确匹配授权额。响应包括 ACK/NAK、实际分发张数、拒收张数、错误码(e.g., 0xE1 = 卡纸)。MDB/ICP 协议可扩展用于售货式终端,支持 “远程售卖” 模式。引用专利 US7606767B1 所述,主机仅发 “what”,CDM 执行 “how” 并保证安全。
参数建议:
- 波特率:9600/19200bps,奇偶校验偶校验。
- 超时:命令应答 5s,分发完成 30s。
- 重试:通信失败 3 次,回滚交易。
精确电机控制
CDM 内部采用 2 相混合步进电机(1.8°/ 步,NEMA17 尺寸),搭配捏辊 / 皮带传动,光栅传感器间距匹配微步距离(1/16 微步≈0.1125°)。驱动芯片如 TMC5160,支持斩波电流调节(RMS 1.4A)、智能衰减、失步检测。
运动序列:接收分发指令→校验状态(门闭 / 无卡纸)→加速主运钞电机(梯形曲线:0-1000 步 /s,加速 0.5s)→分纸电机拾取→传感器计数(预期传感器触发步数 ±2 步)→减速停位→分发 / 拒收分流→报告计数。若超时 / 错位,逆转清道至拒收箱。
防卡纸:沿钞纸路径部署 4-6 光学传感器(IR 发射 / 接收),间距 10mm。每步后轮询,若未触发则限流检测扭矩(电流阈值 150% 额定)或逆转。闭环模式加增量编码器(1024ppr),PID 位置环(Kp=0.5, Ki=0.1, Kd=0.05)。
参数清单:
| 参数 | 值 | 说明 |
|---|---|---|
| 微步数 | 1/16 | 减振动,提高精度 |
| 最大速度 | 1500 步 /s | 运钞≈50mm/s |
| 加速度 | 500 步 /s² | 避免失步 |
| 保持电流 | 40% 额定 | 空闲省电 |
| 卡纸超时 | 2s / 传感器 | 触发警报 |
| 重试次数 | 3 | 后拒收 |
电流曲线:启动 1.2A→恒速 0.8A→停止 0.3A。电源:24V/5A,滤波电容 470uF。
安全交易集成
交易流:EMV 卡读 PAN/CVV(ISO14443),PIN 加密(DUKPT/HSM),打包 ISO8583 授权请求(TLS 至收单行)。批准后分发,CDM 报告实际张数,与授权额对账(差额 > 0.1% 触发手动审)。原子性:授权前锁状态,失败逆转(commit/reverse)。
PCI 合规:PIN 垫硬件加密,明文不露主机;HSM 密钥注入,篡改销毁。会话绑定:NFC 二次确认防误发。
监控点:
- 传感器位掩码:实时上报。
- 阈值:拒收 > 5%、剩余 < 20% 警报。
- 日志:每分发记录帧 / 计数 / 时间戳。
回滚策略:
- 通信超时:重发命令,3 次失败中止。
- 卡纸:逆转拒收,报告 E1。
- 对账失败:隔离现金,通知运维。
可靠性保障
测试:1000 次分发,卡纸率 < 1%,精度 ±1 张。监控 Prometheus/Grafana,警报 Slack。固件 OTA 更新,签名验证。
资料来源:
- CDM 通信协议:https://www.scribd.com/document/753521846/Communication-Protocol-of-CDM6240-Cash-Dispenser
- MDB/ICP 规范:https://www.namanow.org/wp-content/uploads/Multi-Drop-Bus-and-Internal-Communication-Protocol.pdf
- 步进电机控制:Perplexity 搜索 “precise stepper motor control for cash dispenser embedded systems”
- ATM 专利:US7606767B1
(字数:1256)