快捷搜索:

Android收银机如何直接驱动钱箱?我们来详细分析硬件RJ11接口

 

  钱箱的英文是Cash Drawer,就是通常放在收银机下用来放现金的箱子。虽然现在很多支付采用网络支付,但是零售业很多时候要保留一个钱箱来保存收到现金

  传统流程是通过小票打印机的RJ11接口来驱动钱箱,但这样带来的问题收银机各种设备零零散散一大堆,不但不美观,而且容易出问题。

现代的收银机设备,几乎是完全集成的,通常是Android双屏设备,里面把扫码,刷脸支付,小票打印,以及称重完全集成一起,如果这时还要驱动钱箱,就需要Android自己通过钱箱RJ11来驱动了。这个时候我们就要分析钱箱的控制接口了。

钱箱内部结构

我们打开一个钱箱内部可以看到,钱箱平时的常闭锁住的,要不通过前面钥匙解锁,要让线圈(黄色部分)通上电吸住右侧铁芯,产生跟钥匙一样效果就是解开挂钩,这样弹簧也能弹出钱箱。打印机的RJ11接口就是用这个原理,输出一段时间的5v-12v电压的电流,就能让软件弹出钱箱。钱箱的关闭相当于是用人力推回来,又让弹簧压缩并挂上挂钩。

这个控件线圈的数据线的接口是RJ11,样子跟我们常见的RJ45以太网线接口有一点像,只不过RJ11是6根线,而RJ45是8根线。

RJ11线序没有标准,只不过小票打印机兼容EPSON的制定的规范,所以RJ11线箱的线序也会按它的定义来对接。

按RJ11的卡口向下的角度来看,线序从左到右分别是序号1-6, 1,6号脚地线,2,5号是打印机电流输出线,3号是钱箱输入信号线,4号是24V电源。

24V是过去的规范,实现现在线箱5V到12V都能弹开。我们实现在2,5号任意一个脚输出一定时间电流,都能弹开钱箱.

EPOS 钱箱指令

Epson在EPOS打印指令集就有一个专门开钱箱的指令,格式如下

ESC p m t1 t2

其中esc是打印指令固定开头,就是ascii码为27的ESC的键值.

字母p表示开钱箱指令,m表示向哪一个脚输出电流,m=0(ascii 48),表示向2号脚输出,m=1(ascii 49向5号脚输出.

t1表示电流输出时间,单位是毫秒,t2表示两次信号之间最小间隔时间。

我们举个例子,指令 27,112,48,255,255

即 ESC p 0 (255) (255)

用2号脚弹开钱箱,电流持续255ms,间隔为255ms

Android如何驱动钱箱

假设收银机把小票打印模块集成了,这样只能自己驱动RJ11的来弹钱箱了,我们买了一个usb转RJ11的开箱器,测试发现可以打开钱箱,打开SDK的一看就是通过usb串口发送的一个ESC P的开钱箱指令。

于是我们拆开看了一个电路。主要是三个芯片

其中最大个是PL-2303HX的usb转串口芯片

另外两个较小的分别是 NE555及MC34063a

MC34063A 是TI的一个工作温度范围为 0°C 至 70°C 的 1.5A 升压、降压、反相开关稳压器,结合边上那个大电容,它的作用是把输入usb 3.3v升压到能弹开线箱的电压,即输出到4号脚去。

而NE555就TI的电路的瑞士军刀,它是一种模拟和数字功能相结合的中规模集成器件,这种芯片具有多种功能,可以用作定时器,震荡器及脉冲产生电路。

这时是由用向钱箱的2,5号脚产生一个指定时间的开箱电流。

考虑到收银机往往有串口和12V的供电,因为如果Android弹钱箱关键在于软件能产生一个5V以上电流,所以用在硬件上要加装一个NE555或者DAC芯片,(PWM电压输出不够)。这是我想到方案,不知道哪位嵌入式大牛能想到其它在RK3288上产生5V的方法?

#头条创作挑战赛#

[注:本文部分图片来自互联网!未经授权,不得转载!每天跟着我们读更多的书]


互推传媒文章转载自第三方或本站原创生产,如需转载,请联系版权方授权,如有内容如侵犯了你的权益,请联系我们进行删除!

如若转载,请注明出处:http://www.hfwlcm.com/info/102107.html