手機磁條卡讀卡器參考設計應用報告

發(fā)布時(shí)間:2015-11-19 09:40    發(fā)布者:designapp
關(guān)鍵詞: 磁卡 , 讀卡器 , MCU
  簡(jiǎn)介
  在現實(shí)生活中,磁卡是最常見(jiàn)的用來(lái)識別用戶(hù)的卡片,無(wú)論是國際標準化組織還是中國國標均對這種使用磁介質(zhì)的存儲技術(shù)制定了相關(guān)標準。磁卡技術(shù)廣泛被商業(yè),政府,醫療等機構所采用,但最大規模使用還是銀行發(fā)行的各種信用卡,借記卡等卡片。國際標準化組織ISO發(fā)布了ISO 7811系列磁卡的國際標準,從1995年發(fā)布第一版標準后持續再修訂和增加內容,涵蓋了從機械結構到存儲方式以及數據格式等一系列的內容。
  以前的銀行系統中,讀取卡片的工作主要交給收銀機或者ATM以及銷(xiāo)售終端來(lái)完成,這些設備都是由商家提供的,維護成本較高。這一切隨2009年出現在美國的方形支付(square)而出現改變,方形支付使用非常廉價(jià)的小型終端,這些終端非常小巧,售價(jià)低廉甚至免費提供給客戶(hù),利用客戶(hù)的智能手機進(jìn)行銀行交易。僅僅2年時(shí)間,這一新的商業(yè)形式得到大規模發(fā)展,并且在國內出現了多家類(lèi)似生產(chǎn)廠(chǎng)商且已經(jīng)成功推出一系列產(chǎn)品。因為這種商業(yè)模式中重頭還是在網(wǎng)銀平臺支持,本參考設計僅關(guān)注終端本身的設計。
  硬件系統
  


  1 硬件框圖
  本設計包含硬件和軟件部分,其中軟件部分包括MCU側的固件以及智能手機側的應用(安卓平臺)。如圖1,系統硬件由MCU,供電電路,磁頭信號調理電路,加密電路以及通訊電路構成。
  


  圖1.硬件框圖
  2 硬件設計
  2.1 MCU
  MCU采用MSP430F5310,供電范圍較寬(1.8V~3.6V),且運行功耗以及待機功耗均非常低。其運行在8MHz@3V 時(shí)功耗僅為195uA/MHz。具有多種工作模式,待機時(shí)僅1.1uA@3V(RAM保持),在此模式下可以實(shí)現快速啟動(dòng)。另外該器件具有較大的RAM以及豐富的外設,定時(shí)器資源較豐富。這些特點(diǎn)非常適合本應用的特點(diǎn)即要求絕對的低功耗。
  2.2 供電電路
  供電電路的選擇比較多,如圖1中所示:可以利用智能手機的耳機接口獲得運行所需的電力,但是這種方式的限制是手機的硬件各不相同,耳機電路輸出功率從幾毫瓦到數十毫瓦不等。為了能夠讓設備工作,需要20毫瓦左右甚至更多的功率輸出,但是相當多的手機的耳機電路無(wú)法輸出足夠的功率供本設備使用。為了兼容盡可能多的手機,較實(shí)際的做法是在設備內置小型鋰電池或者紐扣電池,以相近的成本提供了較高的兼容性。當設備整體功耗降低到幾毫瓦數量級時(shí),使用一顆小型紐扣電池可以支持足夠的使用次數。本文的方案為通過(guò)耳機獲得電力和使用小型鋰電池兩種場(chǎng)合設計了相應的電路,可以按照性能和成本需求選擇。
  2.3 磁頭及磁卡介紹
  2.3.1 磁頭
  讀卡設備的核心部件就是磁頭,磁頭是將磁信號轉換為電信號的關(guān)鍵器件,只有將磁卡上的磁信號轉換成電信號,上面存儲的信息才能夠被讀取使用。磁頭主要由磁性材料以及盤(pán)繞在其上的線(xiàn)圈構成,如圖2所示,當有磁場(chǎng)的磁條通過(guò)磁頭時(shí),因為磁頭磁性材料的磁阻較小,磁條磁場(chǎng)的磁力線(xiàn)會(huì )從磁頭磁性材料中通過(guò),從而在磁頭線(xiàn)圈中感應出電信號,這個(gè)信號被進(jìn)一步放大以后就可以進(jìn)行處理。
  


  圖2.磁卡讀取示意圖
  2.3.2 磁卡
  磁卡的讀取與以前廣泛使用的磁帶機相似,磁卡和磁帶都是使用磁場(chǎng)來(lái)保存變化的信號,也都是通過(guò)磁道與磁頭的相對運動(dòng)以實(shí)現磁場(chǎng)到電場(chǎng)的轉換。如圖3,按照標準規定,磁卡上最多可以有三個(gè)磁道,這三個(gè)磁道中一和二磁道是只讀磁道,第三個(gè)磁道是讀寫(xiě)磁道。磁道中存儲的信息由標準決定,使用哪些磁道受實(shí)際應用需求決定。在國內來(lái)說(shuō),銀行磁卡主要是信用卡和借記卡,除了一二磁道外,很多信用卡并未使用第三磁道,而大部分借記卡都會(huì )使用第三磁道。
  


  圖3.磁道分布示意圖
  2.3.3 磁道
  在磁道上覆蓋有磁性材料,當需要寫(xiě)入數據時(shí),將磁頭線(xiàn)圈通電,電流按照信號變化,由電流產(chǎn)生的磁場(chǎng)將磁道磁化即可,是讀取的反向操作。本文只涉及的讀取操作,對寫(xiě)入過(guò)程不做介紹。對于銀行卡來(lái)說(shuō),上面存儲的都是數字信號即“0”和“1”,數字信號是利用磁場(chǎng)的方向的變化和頻率的變化來(lái)表示的。
  


  圖4.磁條磁場(chǎng)分布示意圖
  如圖4,是ISO-7811中對于磁條信號的規定。左邊是磁條表面實(shí)際磁場(chǎng)強度的分布情況,可以看到磁條上的磁場(chǎng)的方向始終在交替變化,即每一個(gè)數據位(bit)之間反向都是相反的。此外,為了表示“0”和“1”,標準還規定在單位時(shí)間內磁場(chǎng)方向變化一次為“0”,而在相同時(shí)間內磁場(chǎng)方向變化兩次則為“1”。所以,ISO-7811 規定的信號編碼實(shí)際是基于頻率變化的,如圖4中的右側圖所示,每個(gè)位都攜帶了時(shí)鐘信息,不會(huì )產(chǎn)生累積誤差。
                               
                                                               
                               
                  2.3.4 數據及編碼格式
  從前面描述可知,在磁條上面可以有3個(gè)磁道,每個(gè)磁道都由一系列“0”和“1”構成。ISO-7811規定下,這些“0”和“1”組成了一個(gè)個(gè)字符。不同磁條的編碼方式不同,本文只針對磁條2和磁道3,這兩個(gè)磁條的編碼格式相同如圖5所示。從表中可以看出,該編碼方式下只有16個(gè)可能的字符,即僅僅能表示數字和一些特定的控制字符如開(kāi)始字符和結束字符等。該編碼用5個(gè)bit組成一個(gè)字符,最高位是奇校驗位,剩下4個(gè)位是字符本身。
  


  圖5.字符編碼格式
  有了字符編碼,我們就可以在知道在磁條上面到底存放了什么信息。ISO-7811對于磁條的高層應用格式也做了規定如圖6.一個(gè)磁道的數據以字符“SF”(即“;”)開(kāi)始,以“EF”字符(即“?”)結束。最后一個(gè)字符“LRC”是校驗碼,也由5個(gè)bit組成。該校驗碼的每一個(gè)bit都是由前述所有字符的相應bit的奇校驗得到,所以磁條上的數據是進(jìn)行了雙重奇校驗。
  


  圖6.磁條數據格式
  2.4 通訊接口
  當我們完成了卡片的讀取后,需要將加密處理后的卡片信息發(fā)送到上層軟件進(jìn)一步處理,本文中的上層軟件就是智能手機系統如Android/iOS中的應用程序。由于手機的通信接口有限,目前大都是使用耳機插孔做為接口,這是每臺智能手機一定會(huì )具備的基本硬件。由于歷史原因,帶有話(huà)筒功能的耳機插孔的信號排布并未被標準化,造成了所謂的“正向”和“反向”接口之分。如圖7,左右是兩個(gè)不同型號手機配備的耳機信號定義,主要區別是話(huà)筒和地線(xiàn)的互換了位置。至于哪個(gè)是“正”哪個(gè)是“反”,是沒(méi)有定義的也是無(wú)所謂的。
  


  圖7.耳機接口定義:正向和反向
  2.4.1 手機發(fā)送信息給終端
  當手機內的應用軟件運行后,會(huì )通過(guò)耳機發(fā)送音頻信號給終端,可以通過(guò)左聲道或者右聲道,信號由終端接收并解碼。
  2.4.2 終端發(fā)送信息給手機
  當終端有信息需要與手機通信時(shí),由于手機的耳機是手機的輸出設備,只能利用手機的話(huà)筒進(jìn)行。該通信過(guò)程是通過(guò)話(huà)筒發(fā)送音頻信號給手機應用軟件,并由軟件接收解碼。
  軟件系統
  本設計軟件部分包括單片機中的固件以及運行在智能手機操作系統中的應用軟件,通過(guò)自定的通信協(xié)議進(jìn)行通信及應答,以實(shí)現從刷卡到卡片信息傳遞的任務(wù)。
  3 固件框圖
  


  圖8.軟件架構
  4 固件設計目標
  本應用面向微型低功耗讀卡器,對于功耗非常敏感,故必須盡可能降低主MCU自身的功耗。降低MCU功耗既要充分利用MSP430F系列單片機所具備的低功耗特質(zhì),如多種工作模式,智能外設等,有關(guān)這方面的應用數不勝數,這里不在贅述;更重要的另一方面,也要從降低解碼時(shí)的主頻入手,盡量減少正常工作時(shí)的能量的損耗。
  對于刷卡器而言,要求能夠穩定的讀取卡片內容,適應不同的刷卡速度,同時(shí)也要能夠同時(shí)讀出兩個(gè)磁道(磁道2和磁道3)的內容。
  5 磁頭信號的軟解碼
  為了讀取磁卡中的內容并轉換成協(xié)議規定的字符,我們需要對磁頭信號進(jìn)行調理放大,然后通過(guò)MSP430F5310 單片機的ADC單元進(jìn)行實(shí)時(shí)轉換分析,并最終得到相應的數據流。
  首先,我們要了解磁頭信號是什么樣子的。圖-9是一段真實(shí)的信號,這個(gè)經(jīng)放大后的磁頭感應信號擁有與磁條磁場(chǎng)類(lèi)似的波形。從前面對ISO-7811的介紹中我們知道,這些交變的信號就隱藏著(zhù)我們需要的信息。
  


  圖 9. 調理放大后的磁條信號
  利用ADC,我們可以對這些波形進(jìn)行實(shí)時(shí)采樣,并計算分析這些電流脈沖之間的時(shí)間。而這些時(shí)間間隔的長(cháng)短就成了我們判斷“0”或者“1”的依據。一旦能夠確定這些“0”“1”組合,根據圖5中的表格,我們可以最終知道在一張磁卡上到底隱藏了什么內容。
  6 與手機軟件通信
  最終我們需要將磁卡中的內容發(fā)送給上位機,這里就是發(fā)送給手機端的軟件,通過(guò)耳機插孔。當然在傳送這些賬戶(hù)信息之前,很可能我們需要對這些信息進(jìn)行加密處理,可以使用包括RSA,3DES等各種方法,本設計并未實(shí)現此功能。
  6.1.1 通信格式
  通信格式由設計者定義,以下為本應用筆記自定義的格式。
  如圖-10所示,通信過(guò)程中,使用不同的脈寬表示數位的“0”和“1”。其頻率分別是2.2KHz(“0”)及 1.1KHz(”1”),占空比固定為100%。終端和手機應用軟件均使用相同的格式。
  


  圖10.通信的位格式
  有了位格式定義,終端和應用軟件之間的高層命令幀格式也可以制定。本參考設計使用如圖-11中所示數據幀格式:首字節為命令,且以“1”開(kāi)始,高位在前。第二個(gè)字節為后續數據中包含的字符(4bit)長(cháng)度。
  


  圖11.命令幀格式
  在真正的產(chǎn)品設計中,由于所有的數據需要加密后才能發(fā)送給上層應用軟件,所以實(shí)際的數據/命令幀格式一定會(huì )有所區別。此外,為了確保通信正確,也可以附加校驗碼如CRC16等。
                               
                                                               
                               
               
本文地址:http://selenalain.com/thread-156968-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页