新闻中心

EEPW首页>设计应用> 手机磁条卡读卡器参考设计应用报告

手机磁条卡读卡器参考设计应用报告

作者: 时间:2015-01-13 来源:网络 收藏

  2.3.4 数据及编码格式

本文引用地址://m.amcfsurvey.com/article/268085.htm

  从前面描述可知,在磁条上面可以有3个磁道,每个磁道都由一系列“0”和“1”构成。ISO-7811规定下,这些“0”和“1”组成了一个个字符。不同磁条的编码方式不同,本文只针对磁条2和磁道3,这两个磁条的编码格式相同如图5所示。从表中可以看出,该编码方式下只有16个可能的字符,即仅仅能表示数字和一些特定的控制字符如开始字符和结束字符等。该编码用5个bit组成一个字符,最高位是奇校验位,剩下4个位是字符本身。

  图5.字符编码格式

  有了字符编码,我们就可以在知道在磁条上面到底存放了什么信息。ISO-7811对于磁条的高层应用格式也做了规定如图6.一个磁道的数据以字符“SF”(即“;”)开始,以“EF”字符(即“?”)结束。最后一个字符“LRC”是校验码,也由5个bit组成。该校验码的每一个bit都是由前述所有字符的相应bit的奇校验得到,所以磁条上的数据是进行了双重奇校验。

  图6.磁条数据格式

  2.4 通讯接口

  当我们完成了卡片的读取后,需要将加密处理后的卡片信息发送到上层软件进一步处理,本文中的上层软件就是智能手机系统如Android/iOS中的应用程序。由于手机的通信接口有限,目前大都是使用耳机插孔做为接口,这是每台智能手机一定会具备的基本硬件。由于历史原因,带有话筒功能的耳机插孔的信号排布并未被标准化,造成了所谓的“正向”和“反向”接口之分。如图7,左右是两个不同型号手机配备的耳机信号定义,主要区别是话筒和地线的互换了位置。至于哪个是“正”哪个是“反”,是没有定义的也是无所谓的。

  图7.耳机接口定义:正向和反向

  2.4.1 手机发送信息给终端

  当手机内的应用软件运行后,会通过耳机发送音频信号给终端,可以通过左声道或者右声道,信号由终端接收并解码。

  2.4.2 终端发送信息给手机

  当终端有信息需要与手机通信时,由于手机的耳机是手机的输出设备,只能利用手机的话筒进行。该通信过程是通过话筒发送音频信号给手机应用软件,并由软件接收解码。

  软件系统

  本设计软件部分包括单片机中的固件以及运行在智能手机操作系统中的应用软件,通过自定的通信协议进行通信及应答,以实现从刷卡到卡片信息传递的任务。

  3 固件框图

  图8.软件架构

  4 固件设计目标

  本应用面向微型低功耗,对于功耗非常敏感,故必须尽可能降低主自身的功耗。降低功耗既要充分利用MSP430F系列单片机所具备的低功耗特质,如多种工作模式,智能外设等,有关这方面的应用数不胜数,这里不在赘述;更重要的另一方面,也要从降低解码时的主频入手,尽量减少正常工作时的能量的损耗。

  对于刷卡器而言,要求能够稳定的读取卡片内容,适应不同的刷卡速度,同时也要能够同时读出两个磁道(磁道2和磁道3)的内容。

  5 磁头信号的软解码

  为了读取中的内容并转换成协议规定的字符,我们需要对磁头信号进行调理放大,然后通过MSP430F5310 单片机的ADC单元进行实时转换分析,并最终得到相应的数据流。

  首先,我们要了解磁头信号是什么样子的。图-9是一段真实的信号,这个经放大后的磁头感应信号拥有与磁条磁场类似的波形。从前面对ISO-7811的介绍中我们知道,这些交变的信号就隐藏着我们需要的信息。

  图 9. 调理放大后的磁条信号

  利用ADC,我们可以对这些波形进行实时采样,并计算分析这些电流脉冲之间的时间。而这些时间间隔的长短就成了我们判断“0”或者“1”的依据。一旦能够确定这些“0”“1”组合,根据图5中的表格,我们可以最终知道在一张上到底隐藏了什么内容。

  6 与手机软件通信

  最终我们需要将中的内容发送给上位机,这里就是发送给手机端的软件,通过耳机插孔。当然在传送这些账户信息之前,很可能我们需要对这些信息进行加密处理,可以使用包括RSA,3DES等各种方法,本设计并未实现此功能。

  6.1.1 通信格式

  通信格式由设计者定义,以下为本应用笔记自定义的格式。

  如图-10所示,通信过程中,使用不同的脉宽表示数位的“0”和“1”。其频率分别是2.2KHz(“0”)及 1.1KHz(”1”),占空比固定为100%。终端和手机应用软件均使用相同的格式。

  图10.通信的位格式

  有了位格式定义,终端和应用软件之间的高层命令帧格式也可以制定。本参考设计使用如图-11中所示数据帧格式:首字节为命令,且以“1”开始,高位在前。第二个字节为后续数据中包含的字符(4bit)长度。

  图11.命令帧格式

  在真正的产品设计中,由于所有的数据需要加密后才能发送给上层应用软件,所以实际的数据/命令帧格式一定会有所区别。此外,为了确保通信正确,也可以附加校验码如CRC16等。


上一页 1 2 下一页

关键词:磁卡读卡器MCU

评论


相关推荐

技术专区

关闭