手機刷卡器分析

    做支付的都知道Square,一個偉大的支付公司,2009年成立,前幾天估值已達到50億美元 。手機刷卡器就是從Square開始的。儘管中國地區對支付行業有很多的限制,還是有很多的中國特色的“Square”出現,例如,比較早的樂刷、盒子支付,包括我們的刷卡器產品,晚一些的拉卡拉、銀聯等等。這裏不討論他的業務模式,分析一下刷卡器與手機怎樣實現數據通信的。

    刷卡器與手機通信是走的音頻通道,手機上需要安裝特定的應用來解析數據。一個完整的刷卡流程包含APP、傳輸、刷卡器三部分組成。刷卡器的功能是捕捉,編碼,併發送傳感器數據;傳輸線即耳機口的公頭和母頭,負責數據的傳輸;APP的功能是接受數據,解碼。圖一是Square宣傳圖的一部分,Square的刷卡器是簡單的刷卡設備,他是單向通訊。國內多數設備是雙向通訊,所以接送數據的同時也發送數據。單向設備便宜;雙向設備價格更貴一些,更安全些。在老美的國度,信用卡盜刷擔責方是銀行,單向設備是滿足要求的。



圖一

    Square是一個單向通信設備,只有刷卡器向APP傳輸數據,APP並不給刷卡器傳輸數據。這篇文章我們也只介紹單向數據傳輸,雙向傳輸數據請讀者自行理會,因爲雙向和單向流程是一樣的。

一、傳輸部分

    三部分中最簡單的傳輸部分,手機中使用的多是3.5mm四芯五線插頭。插頭包含四部分,左聲道、右聲道、mic、接地,不同的標準Mic和接地位置不同,iPhone中接地在第三階,Mic在第四階;Android中則相反,Motorola中是這樣做的,而小米或一部分三星手機是使用的iPhone標準上面介紹的是公頭,母頭與其對應。

    刷卡設備中使用左聲道或右聲道做輸出,Mic做輸入。


圖二


二、刷卡器

刷卡器實現三個功能(單向):

1、信息編碼(例如ASCII或摩爾斯電碼) 

2、編碼信息轉換成音頻信號[D➜A] 

3、發送音頻信號


信息編碼是把卡信息轉變成ASCII的過程。需要刷卡器識別卡磁道信息。

    [D➜A] 的過程是數字調製,指的是用數字數據調製模擬信號(D>A),主要有三種形式:移幅鍵控法ASK、移頻鍵控法FSK、移相鍵控法PSK。這裏一般使用FSK。具體的算法根據自己的條件設計,信用卡的磁道內容使用20個字符就能包含,即ASCII的45-64部分,頻率可使用5000-14000部分(信號應該在0到22,050 Hz範圍內)。


圖三


三、APP

APP的功能同樣有三部分組成(單向):

1、接收音頻信號

2、解析過濾音頻信號,將音頻信號轉換成數字信號[A➜D]

3、轉換成卡數據


    接收音頻信號時應該使用44100Hz採樣率,爲什麼使用44100Hz呢,首先441000是多數手機都支持,再就是根據奈奎斯特 - 香農採樣定理(採樣頻率應至少兩次包含在信號中的最高頻率),在採樣板中的採樣頻率已達到14000。

    手機上接收到的數據是MIC採樣的一大堆數據,如何在這麼一大堆看似雜亂無章的數據裏解析過濾出我們的需要的數據呢,這裏就應用到了DSP(數字信號處理技術)。


    國內的很多刷卡設備(包括我們的設備)都是雙向的,也就是說刷卡器和APP都做調製、解調的動作,雙向手機刷卡器數據交互流程如圖四,【6】。圖四是圖一的流程細分圖。


圖四




/**
* @author 張興業
*  http://blog.csdn.net/xyz_lmn
*  android開發進階羣:281537853
*  iOS入門羣:83702688
*  我的新浪微博:@張興業TBOW
*/


參考:

【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)]



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章