作支付的都知道Square,一个伟大的支付公司,2009年成立,前几天估值已达到50亿美圆 。手机刷卡器就是从Square开始的。尽管中国地区对支付行业有不少的限制,仍是有不少的中国特点的“Square”出现,例如,比较早的乐刷、盒子支付,包括咱们的刷卡器产品,晚一些的拉卡拉、银联等等。这里不讨论他的业务模式,分析一下刷卡器与手机怎样实现数据通讯的。html
刷卡器与手机通讯是走的音频通道,手机上须要安装特定的应用来解析数据。一个完整的刷卡流程包含APP、传输、刷卡器三部分组成。刷卡器的功能是捕捉,编码,并发送传感器数据;传输线即耳机口的公头和母头,负责数据的传输;APP的功能是接受数据,解码。图一是Square宣传图的一部分,Square的刷卡器是简单的刷卡设备,他是单向通信。国内多数设备是双向通信,因此接送数据的同时也发送数据。单向设备便宜;双向设备价格更贵一些,更安全些。在老美的国度,信用卡盗刷担责方是银行,单向设备是知足要求的。android
图一web
Square是一个单向通讯设备,只有刷卡器向APP传输数据,APP并不给刷卡器传输数据。这篇文章咱们也只介绍单向数据传输,双向传输数据请读者自行理会,由于双向和单向流程是同样的。算法
三部分中最简单的传输部分,手机中使用的可能是3.5mm四芯五线插头。插头包含四部分,左声道、右声道、mic、接地,不一样的标准Mic和接地位置不一样,iPhone中接地在第三阶,Mic在第四阶;Android中则相反,Motorola中是这样作的,而小米或一部分三星手机是使用的iPhone标准。上面介绍的是公头,母头与其对应。安全
刷卡设备中使用左声道或右声道作输出,Mic作输入。并发
图二post
刷卡器实现三个功能(单向):编码
一、信息编码(例如ASCII或摩尔斯电码) spa
二、编码信息转换成音频信号[D➜A] .net
三、发送音频信号
信息编码是把卡信息转变成ASCII的过程。须要刷卡器识别卡磁道信息。
[D➜A] 的过程是数字调制,指的是用数字数据调制模拟信号(D>A),主要有三种形式:移幅键控法ASK、移频键控法FSK、移相键控法PSK。这里通常使用FSK。具体的算法根据本身的条件设计,信用卡的磁道内容使用20个字符就能包含,即ASCII的45-64部分,频率可以使用5000-14000部分(信号应该在0到22,050 Hz范围内)。
图三
APP的功能一样有三部分组成(单向):
一、接收音频信号
二、解析过滤音频信号,将音频信号转换成数字信号[A➜D]
三、转换成卡数据
接收音频信号时应该使用44100Hz采样率,为何使用44100Hz呢,首先441000是多数手机都支持,再就是根据奈奎斯特 - 香农采样定理(采样频率应至少两次包含在信号中的最高频率),在采样板中的采样频率已达到14000。
手机上接收到的数据是MIC采样的一大堆数据,如何在这么一大堆看似杂乱无章的数据里解析过滤出咱们的须要的数据呢,这里就应用到了DSP(数字信号处理技术)。
国内的不少刷卡设备(包括咱们的设备)都是双向的,也就是说刷卡器和APP都作调制、解调的动做,双向手机刷卡器数据交互流程如图四,【6】。图四是图一的流程细分图。
图四
*/
参考:
【1】http://www.360doc.com/content/10/1018/14/3947093_61966283.shtml [经常使用音频接口]
【2】http://wz8311.blog.51cto.com/2212985/410850 [ask fsk psk 数字调制的三种基本形式]
【3】http://stu.jsjxy.net/tongxin/gxtx/images/chap7-5-2.htm [光纤通讯新技术]
【4】http://baike.c114.net/view.asp?id=2155-C38EC19B [FSK]
【5】http://wenku.baidu.com/view/af6a3440336c1eb91a375d19.html [2FSK调制解调及其仿真 ]
【6】http://www.cnblogs.com/heiyue/archive/2013/04/08/3008493.html [拉卡拉刷卡器]
【7】http://www.pbc.gov.cn:8080/image_public/rhwg/001801f2.html[银行卡磁条信息格式和使用规范]
【8】http://www.cyberd.co.uk/support/technotes/isocards.htm [ANSI/ISO ALPHA Data Format][1\2\3磁道]
【9】http://blog.tehinterweb.com/?p=60 [Magnetic Stripe ABA Track 2 Encoding]
【10】http://www.acmetech.com/documentation/credit_cards/magstripe_track_format.html[Track format of magnetic stripe cards (tracks 1 and 2)]