<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > 基于A(yíng)ndroid的POS機刷卡器閱讀芯片驅動(dòng)研究

基于A(yíng)ndroid的POS機刷卡器閱讀芯片驅動(dòng)研究

作者: 時(shí)間:2013-10-23 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:由于現行的的系統界面簡(jiǎn)陋,軟件資源匱乏,不利于的功能擴展。刷卡器閱讀芯片是主要功能的承擔者,對其Andr oid的研究,有助于POS機在平臺上的發(fā)展。MagTek刷卡器閱讀芯片21006450應用廣泛,對于它的研究將有助于刷卡器閱讀芯片在實(shí)際中的應用。這里所研究的系統架構、芯片工作原理及接口調用是刷卡器閱讀芯片設計的理論基礎,對驅動(dòng)程序的實(shí)現做指導。
關(guān)鍵字:;POS機;;驅動(dòng)程序

0 引言
Google公司在2007年11月5日推出了開(kāi)源的Androld操作系統,它是基于Linux內核的開(kāi)源手機操作系統。目前,Android應用商店Android market已經(jīng)擁有超過(guò)70萬(wàn)個(gè)應用程序,有超過(guò)10萬(wàn)名軟件開(kāi)發(fā)人員為Android開(kāi)發(fā)應用程序,Android系統已經(jīng)廣泛運用于便攜式移動(dòng)設備。
移動(dòng)POS機又稱(chēng)無(wú)線(xiàn)POS,是一種RF-SIM卡終端閱讀器,通過(guò)CDMA,GPRS,TCP/IP等與數據服務(wù)器相連進(jìn)行工作。移動(dòng)POS機具有移動(dòng)性強,平均交易時(shí)間段,易于攜帶等特性在各大行業(yè)都已經(jīng)廣泛使用。將Android系統移植到POS機上,將為POS機提供更加豐富的應用和功能擴展。
刷卡器作為POS機主要功能承擔者,其驅動(dòng)程序的研究和優(yōu)化也直接影響到Android系統在POS機領(lǐng)域的發(fā)展。

1 Android系統架構
Android是以L(fǎng)inux為內核的開(kāi)放式的手機操作系統,采用了整合的策略思想,包括底層Linux操作系統、中間層的中間件和上層的Java應用程序。Android系統是由應用程序層、應用程序框架層、系統運行庫層、Linux內核層組成的,系統架構如圖1所示。

本文引用地址:http://dyxdggzs.com/article/192744.htm

a.JPG


在應用程序層中包含了Android系統的基礎應用程序,所有的應用程序都是用Java編寫(xiě)的。
應用框架層是開(kāi)發(fā)人員從事Android應用程序開(kāi)發(fā)的基礎,該層簡(jiǎn)化了組件重用,可以直接使用系統提供的組件快速的進(jìn)行應用程序開(kāi)發(fā),主要包括Activity Manager,Content Provider,View System等。
在系統運行庫層中包括了兩個(gè)部分:程序庫和運行時(shí)庫,主要由Dalvik Java虛擬機和基礎的Jaya類(lèi)庫組成,為應用程序提供服務(wù)和Java編程語(yǔ)言核心庫。Android的核心系統服務(wù)依賴(lài)于Linux 2.6內核,如安全性、內存管理、進(jìn)程管理、網(wǎng)絡(luò )協(xié)議和驅動(dòng)模型。Linux內核也同時(shí)作為硬件和軟件堆棧之間的硬件抽象層。

2 刷卡器工作原理
MagTek公司的磁卡閱讀器芯片21006450是一款高性能、低功耗的三軌磁條解碼芯片。在對磁卡閱讀芯片復位時(shí),如果STRBOE沒(méi)有置高,就需要將其置高,并將DATA拉低,然后再將STROBE置低。在復位之后仍需要將DATA強制置低,在釋放DATA之前需要將STROBE置高,然后再置低。在完成上述過(guò)程后,仍需要再完成一次STROBE的置高、置底,這樣才能完成復位序列。
當讀卡器芯片處在準備讀卡狀態(tài)時(shí),一旦檢測到三個(gè)磁通翻轉,ASIC就會(huì )通過(guò)將DATA拉低來(lái)表明此時(shí)處于卡在線(xiàn)狀態(tài)。然后就開(kāi)始將磁條卡上的數據讀取并存儲到緩存中。對應于這種卡在線(xiàn)狀態(tài),控制器應當將STROBE置高。對應于STROBE的上升沿,ASIC會(huì )將DATA置高,并清除卡在線(xiàn)信號??刂破鲿?huì )將STROBE置低,然后等待DATA的下降沿,以此來(lái)表明處在緩存器就緒狀態(tài)。從內存中讀取或提取數據,需要用脈沖信號將STROBE輸入置高再置低來(lái)驅使數據指針將數據指向DATA的管腳。在數據讀取期間,當STROBE的輸入為低時(shí),DATA上的一個(gè)低電平代表1,而高電平代表0。需要說(shuō)明的是,DATA進(jìn)入緩存器就緒狀態(tài)后,在復位之前,ASIC不會(huì )對再一次刷卡做出反應。在片上緩存(內存)中,為磁條卡的三個(gè)磁道中的每一個(gè)分配了704 b的空間,總共有2 112 b。對每條磁道而言,只有在卡上檢測到1的時(shí)候才開(kāi)始存儲數據,在這個(gè)1之前的所有的0都不會(huì )存儲進(jìn)緩存。當檢測到第一個(gè)1之后,每個(gè)磁道存儲704 b的數據,而一旦數據超過(guò)這個(gè)長(cháng)度,將會(huì )丟失超出的數據。但這并不意味著(zhù)芯片的存儲空間太小,確切來(lái)說(shuō),這么大的空間已經(jīng)能夠充分的滿(mǎn)足符號ISO編碼標準的磁條卡的需求。
在提取數據時(shí),STROBE是根據磁道A,磁道B,然后磁道C的順序進(jìn)行接收的。當數據指針到達3個(gè)磁道共2112位的最后位置時(shí),它將從反方向再次循環(huán)數據。需要說(shuō)明的是,數據的移出的首選順序是磁道A、磁道B然后磁道C。ASIC并不決定刷卡的方向,只是簡(jiǎn)單的將接收的數據表示出來(lái)。然后,反方向刷卡數據的移出時(shí)是以磁道C、磁道B、磁道A的順序進(jìn)行的,這就像將一盤(pán)磁帶或錄音帶翻帶。
在復位時(shí),會(huì )清除ASIC上的所有數據,將所有的數據位都置為0(高電平)。

linux相關(guān)文章:linux教程


pos機相關(guān)文章:pos機原理



上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>