色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在Android架構的基礎上實現POS機刷卡器讀芯片驅動的設計

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2018-12-04 09:01 ? 次閱讀

引言

Google公司在2007年11月5日推出了開源的An-droid操作系統,它是基于Linux內核的開源手機操作系統。目前,Android應用商店Android market已經擁有超過70 萬個應用程序,有超過10 萬名軟件開發人員為Android開發應用程序,Android系統已經廣泛運用于便攜式移動設備。

移動POS機又稱無線POS,是一種RF-SIM卡終端閱讀器,通過CDMA,GPRS,TCP/IP等與數據服務器相連進行工作。移動POS機具有移動性強,平均交易時間段,易于攜帶等特性在各大行業都已經廣泛使用。將Android系統移植到POS機上,將為POS機提供更加豐富的應用和功能擴展。

刷卡器作為POS機主要功能承擔者,其驅動程序的研究和優化也直接影響到Android系統在POS機領域的發展。

1 Android 系統架構

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

在應用程序層中包含了Android系統的基礎應用程序,所有的應用程序都是用Java編寫的。

應用框架層是開發人員從事Android應用程序開發的基礎,該層簡化了組件重用,可以直接使用系統提供的組件快速的進行應用程序開發,主要包括ActivityManager,Content Provider,View System等。

在系統運行庫層中包括了兩個部分:程序庫和運行時庫,主要由Dalvik Java 虛擬機和基礎的Java 類庫組成 ,為應用程序提供服務和Java 編程語言核心庫。

Android的核心系統服務依賴于Linux 2.6內核,如安全性、內存管理、進程管理、網絡協議和驅動模型。Linux內核也同時作為硬件和軟件堆棧之間的硬件抽象層。

2 刷卡器工作原理

MagTek公司的磁卡閱讀器芯片21006450是一款高性能、低功耗的三軌磁條解碼芯片。在對磁卡閱讀芯片復位時,如果STRBOE沒有置高,就需要將其置高,并將DATA拉低,然后再將STROBE置低。在復位之后仍需要將DATA 強制置低,在釋放DATA 之前需要將STROBE置高,然后再置低。在完成上述過程后,仍需要再完成一次STROBE的置高、置底,這樣才能完成復位序列。

當讀卡器芯片處在準備讀卡狀態時,一旦檢測到三個磁通翻轉,ASIC就會通過將DATA拉低來表明此時處于卡在線狀態。然后就開始將磁條卡上的數據讀取并存儲到緩存中。對應于這種卡在線狀態,控制器應當將STROBE置高。對應于STROBE的上升沿,ASIC會將DATA置高,并清除卡在線信號。控制器會將STROBE置低,然后等待DATA的下降沿,以此來表明處在緩存器就緒狀態。從內存中讀取或提取數據,需要用脈沖信號將STROBE輸入置高再置低來驅使數據指針將數據指向DATA的管腳。在數據讀取期間,當STROBE的輸入為低時,DATA 上的一個低電平代表1,而高電平代表0.需要說明的是,DATA 進入緩存器就緒狀態后,在復位之前,ASIC不會對再一次刷卡做出反應。在片上緩存(內存)中,為磁條卡的三個磁道中的每一個分配了704 b的空間,總共有2 112 b.對每條磁道而言,只有在卡上檢測到1的時候才開始存儲數據,在這個1之前的所有的0都不會存儲進緩存。當檢測到第一個1之后,每個磁道存儲704 b的數據,而一旦數據超過這個長度,將會丟失超出的數據。但這并不意味著芯片的存儲空間太小,確切來說,這么大的空間已經能夠充分的滿足符號ISO編碼標準的磁條卡的需求。

在提取數據時,STROBE是根據磁道A,磁道B,然后磁道C的順序進行接收的。當數據指針到達3個磁道共2112位的最后位置時,它將從反方向再次循環數據。需要說明的是,數據的移出的首選順序是磁道A、磁道B然后磁道C.ASIC并不決定刷卡的方向,只是簡單的將接收的數據表示出來。然后,反方向刷卡數據的移出時是以磁道C、磁道B、磁道A的順序進行的,這就像將一盤磁帶或錄音帶翻帶。

在復位時,會清除ASIC上的所有數據,將所有的數據位都置為0(高電平)。

3 驅動設計

驅動程序是Linux內核與硬件之間的接口,直接對硬件設備進行操作,同時對上層應用程序提供接口。

Android的設備驅動主要完成以下功能:初始化和釋放設備;讀取硬件設備數據;將內核數據寫入到硬件設備;讀取應用程序數據傳送給設備文件等。在Android系統中刷卡器驅動應包括:Linux內核驅動程序、HAL(硬件抽象層)模塊、JNI方法、application framework硬件訪問服務。刷卡器閱讀芯片與開發板的連接框圖如圖1所示。

在Android架構的基礎上實現POS機刷卡器讀芯片驅動的設計

3.1 Linux內核刷卡器閱讀芯片驅動程序

刷卡器的基本功能就是讀取磁卡中的數據進行解碼,并將得到的解碼數據傳遞給上層應用程序。An-droid為了保護一些硬件提供商的知識產權提出了HAL層的概念,避開了Linux的GPL束縛,基本的思路是把控制硬件的動作都放在Android HAL層,而Linux driver只是完成一些簡單的數據交換。這里的Linux內核刷卡器驅動程序同樣也只是一個的字符設備驅動,設備以模塊的形式存在Linux內核中,模塊的加載和卸載通過stat-ic int_init msr_init(void)和static void_exit msr_exit(void)函數實現,static int_msr_setup_dev(structmsr_Android_dev* dev)函數對設備進行初始化,函數static long msr_ioctl(struct inode *inode,struct file *filp,unsigned int cmd,unsigned long arg)實現驅動程序對刷卡器的I/O控制。設備的打開、關閉及具體的代碼實現可以參考《Linux設備驅動程序》。對內核配置編譯后就可以在Linux內核中得到設備模塊msr.o,在上層中可以通過調用這個模塊來實現對刷卡器的控制。

3.2 HAL層訪問內核驅動程序

硬件抽象層中訪問不同設備內核驅動程序的模塊是以*.so文件形式存在的,這樣可以有效的保護硬件廠商的知識產權。在runtime(JNI部分),則向HAL取得特定模塊的operations,再callback 這些操作函數。在HAL 層包括許多模塊,而runtime 只需要說明類型,即module ID,就可以取得相應模塊的operations.在HAL層中需要具體實現刷卡器的讀卡操作。首先需要查找到開始標志0x0b,然后將磁道1中的數據放到buf1中,用同樣的方法可以將磁道2,3的數據存到buf2,buf3中,磁道2最多40個字符每個5位4位數據1位奇校驗,而磁道3最多107個字符每個5位4位數據1位奇校驗。

然后將buf中的數據補齊之后放在主寄存器中。HAL層中還需要使用static int check_msr_io(void)對I/O 的狀態進行檢測,并對設備進行初始化static int msr_de-vice_init(void)。具體的實現由于篇幅限制,不在進行詳細介紹。

3.3 編寫JNI方法訪問硬件

從編程語言看,Android系統是由基于Java語言的Java層與基于C/C++語言的C/C++層組成的,為了使這兩層相互配合、共同完成任務就必須使用Java本地接口(JNI,Java Native Interface)將這兩層有機的聯系起來。

JNI提供了一系列接口,允許Java類與使用C/C++編寫的應用程序、模塊、庫進行交互操作。JNI是通過函數方法映射表static const JNINativeMethod method_table,將Java本地方法和HAL層提供的C函數接口銜接起來。

3.4 在application framework增加硬件訪問服務

在Android Framework或應用程序開發中所需要的主要API都是以服務的形式存在的。對應用程序來說,硬件服務是運行在一個獨立的進程中的,若要調用這些服務就需要在硬件服務和應用程序之間添加通信接口。應用程序通過Interface IMsrService接口,調用硬件服務提供的Init()等函數。在刷卡器的硬件服務中是將定義的通信接口與JNI提供的接口相關聯起來。同時需要將磁卡閱讀芯片服務添加到系統服務中Service-Manager.addService(“msr”,new MsrService()),這樣應用程序就能通過Java接口調用硬件服務,實現對磁卡閱讀芯片的控制。圖2以讀取芯片數據為例,簡單介紹各層之間的調用。

在Android架構的基礎上實現POS機刷卡器讀芯片驅動的設計

4 結語

隨著系統逐漸成熟,應用程序日益豐富,Android系統與POS機的結合將為POS機的發展提供更為廣闊的空間。本文在分析了Android架構的基礎上,分析刷卡器的工作原理,研究將POS機刷卡器閱讀芯片驅動程序添加到Android系統中,為上層應用程序提供接口,實現刷卡器的功能。各層之間的接口調用銜接是整個驅動程序成功運行的基礎,在驅動設計中,每編寫一層都應進行測試,這樣能更好的定位驅動設計中存在的不足。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    456

    文章

    50886

    瀏覽量

    424181
  • Android
    +關注

    關注

    12

    文章

    3937

    瀏覽量

    127484
  • Google
    +關注

    關注

    5

    文章

    1766

    瀏覽量

    57576
收藏 人收藏

    評論

    相關推薦

    手機刷卡器為移動支付發展錦上添花

    每到信用卡還款日,銀行ATM前總會排起長隊。如今,一類名為手機刷卡器的產品走俏市場,讓消費者足不出戶,就可以把ATM“搬”到家中。正如廣告詞所說的:“不受時間、空間限制,只要有無線網絡的地方
    發表于 06-09 17:21

    藍牙手刷、M-POS磁卡解碼芯片首選PF52913、PF52923

    磁頭過來的信號放大、處理,再讓mcu進行解碼。相對于傳統硬解碼方案來說有很節約成本,加上PF52913體積很小(4mm*4mm)是是做藍牙刷卡器的不二之選。
    發表于 01-04 17:22

    基于RFID-RC522刷卡器的智能門禁,誰做過??

    本人的實訓課題目是基于STM32的智能門禁系統,買了RFID-RC522刷卡器模塊,繼電器模塊,可是開始寫程序時,遇到好多問題了,誰有資料,分享!!!!!
    發表于 03-10 10:24

    無線POS產生了哪些影響?

    ,經過處理的信息返回到POS,從而完成用戶的刷卡消費業務。為了實現上述數據交換過程,POS
    發表于 11-05 07:26

    串口/并口基礎上實現51內核單片的在線編程

    串口/并口基礎上實現51內核單片的在線編程摘要:詳細說明利用并口模擬I2C總線協議,實現Myson MTV230
    發表于 04-12 14:01 ?34次下載

    pos_pos是什么意思

    本內容介紹了pos是什么意思,POS的組成,了解了pos刷卡機的相關應用
    發表于 12-21 15:49 ?4.2w次閱讀

    WEINVIEW充電樁的應用

    本系統采用WEINVIEW MT8070iH人機界面,實現了與刷卡器、單片、上位的實時連接通訊。
    發表于 10-11 22:19 ?16次下載
    WEINVIEW<b class='flag-5'>在</b>充電樁<b class='flag-5'>上</b>的應用

    海科大POS刷卡這五點需要注意

      刷卡消費已經成了人們生活中不可或缺的一部分,刷卡雖然方便,但是刷卡使用的pos也存在安全隱患,下面微辰金服提醒大家使用海科大
    發表于 03-19 15:38 ?322次閱讀

    微辰金服介紹海科大POS分類

    刷卡器:類似一款外接讀卡,只要將它**智能手機音頻孔建立連接后就能使用余額查詢、轉賬匯款燈功能。手機刷卡器本身沒有支付的功能,需要有支付通道的軟件來配合才可以有支付、收單的功能  (4)、智能
    發表于 03-21 15:06 ?418次閱讀

    微辰金服告訴你海科大POS有無封頂

      POS還有沒有封頂?POS的封頂手續費是針對信用卡刷卡來說的。今天微辰金服為大家介紹海
    發表于 04-01 15:03 ?331次閱讀

    【沐渥科技】網絡刷卡器新品面世,刷新移動物聯新生活

    物聯網應用需求和身份校驗普及的影響下,沐渥科技自主研發生產了一款基于網絡協議傳輸的讀卡設備——網絡刷卡器,這是一款體積小巧,方便攜帶,即插即用,無需安裝驅動,采用USB通訊,即刻響應對接客戶的軟件
    的頭像 發表于 11-23 10:26 ?468次閱讀
    【沐渥科技】網絡<b class='flag-5'>刷卡器</b>新品面世,刷新移動物聯新生活

    一文讓你了解網絡刷卡器的特點和優勢

    網絡刷卡器一款高性能的多協議電子標簽讀寫,保持高識率的同時實現對電子標簽的快速讀寫處理,廣泛應用于物流追蹤、個人身份識別、人員管理、智能停車場、門禁考勤、公交一卡通、餐飲、金融等多
    的頭像 發表于 11-13 14:16 ?523次閱讀
    一文讓你了解網絡<b class='flag-5'>刷卡器</b>的特點和優勢

    MDB-RS232測試NAYAX的VPOS自動售貨機刷卡器注意事項

    MDB-RS232測試NAYAX的VPOS自動售貨機刷卡器注意事項以及必要的通信指令。給我們設計自動售貨機,自助咖啡的控制系統提供了必要的指令協助,幫我客戶更好的了解MDB協議。
    的頭像 發表于 05-08 22:20 ?911次閱讀
    MDB-RS232測試NAYAX的VPOS自動售貨機<b class='flag-5'>刷卡器</b>注意事項

    MDB硬幣,紙幣接收以及MDB刷卡器等MDB設備RS-232通信PC轉接盒

    電子發燒友網站提供《MDB硬幣,紙幣接收以及MDB刷卡器等MDB設備RS-232通信PC轉接盒.pdf》資料免費下載
    發表于 09-23 17:49 ?0次下載

    網絡刷卡器的功能和使用場景

    網絡刷卡器是一種連接互聯網的設備,能夠通過網絡將讀取到的各種卡片信息傳輸至服務進行處理。這類刷卡器通常支持多種類型的卡片,如銀行卡、身份證、會員卡、公交卡等,并運用現代信息技術確保數據的安全性
    的頭像 發表于 12-23 16:34 ?185次閱讀
    網絡<b class='flag-5'>刷卡器</b>的功能和使用場景
    主站蜘蛛池模板: 漂亮的保姆3中文版完整版| 国产在线亚洲精品观看不卡| 爱人 qvod| 久久精品天天中文字幕| 亚洲电影第1页| 国产美女一区二区| 特级毛片AAAAAA| 国产精品xxxav免费视频| 日本午夜精品理论片A级APP发布| J午夜精品久久久久久毛片| 末班车动漫无删减免费| 97欧美精品大香伊蕉在人线| 蜜芽在线影片| GAY2022空少被体育生暴菊| 奇米狠狠一区二区三区| 啊灬啊灬啊灬快灬深高潮啦| 欧美一区二区三区播放| 成年免费三级视频| 网红刘婷hd国产高清| 爽娇妻快高h| 国产成人免费a在线视频app| 乌克兰16~18sex| 国产精品亚洲电影久久成人影院| 午夜片无码区在线观看| 精品国产品国语在线不卡| 亚洲熟女乱色一区二区三区| 久久橹| 99爱在线观看| 青草国产超碰人人添人人碱 | 一品道门在线观看免费视频| 久久五月综合婷婷中文云霸高清| 91在线青春娱乐精品分类| 全黄H全肉细节文短篇| 国产精品…在线观看| 亚洲天堂999| 女配穿书病娇被强啪h| 高清一区二区亚洲欧美日韩| 亚洲视频在线观看| 欧美黑大炮18p| 国产人妻人伦精品久久无码| 在线视频 亚洲|