作支付的都知道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)]