新闻中心

EEPW首页 > 测试测量 > 设计应用 > 基于Android的POS机刷卡器阅读芯片驱动研究

基于Android的POS机刷卡器阅读芯片驱动研究

作者:时间:2013-10-23来源:网络收藏

摘要:由于现行的的系统界面简陋,软件资源匮乏,不利于的功能扩展。刷卡器阅读芯片是主要功能的承担者,对其Andr oid的研究,有助于POS机在平台上的发展。MagTek刷卡器阅读芯片21006450应用广泛,对于它的研究将有助于刷卡器阅读芯片在实际中的应用。这里所研究的系统架构、芯片工作原理及接口调用是刷卡器阅读芯片设计的理论基础,对驱动程序的实现做指导。
关键字:;POS机;;驱动程序

0 引言
Google公司在2007年11月5日推出了开源的Androld操作系统,它是基于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所示。

本文引用地址:http://www.eepw.com.cn/article/192744.htm

a.JPG


在应用程序层中包含了Android系统的基础应用程序,所有的应用程序都是用Java编写的。
应用框架层是开发人员从事Android应用程序开发的基础,该层简化了组件重用,可以直接使用系统提供的组件快速的进行应用程序开发,主要包括Activity Manager,Content Provider,View System等。
在系统运行库层中包括了两个部分:程序库和运行时库,主要由Dalvik Java虚拟机和基础的Jaya类库组成,为应用程序提供服务和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(高电平)。

linux相关文章:linux教程


pos机相关文章:pos机原理



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭