利用ADC,我们可以对这些波形进行实时采样,并计算分析这些电流脉冲之间的时间。而这些时间间隔的长短就成了我们判断“0”或者“1”的依据。一旦能够确定这些“0”“1”组合,根据图5 中的表格,我们可以最终知道在一张磁卡上到底隐藏了什么内容。 6 与手机软件通信 最终我们需要将磁卡中的内容发送给上位机,这里就是发送给手机端的软件,通过耳机插孔。当然在传送这些账户信息之前,很可能我们需要对这些信息进行加密处理,可以使用包括RSA,3DES 等各种方法,本设计并未实现此功能。 6.1.1 通信格式 通信格式由设计者定义,以下为本应用笔记自定义的格式。 如图-10 所示,通信过程中,使用不同的脉宽表示数位的“0”和“1”。其频率分别是2.2KHz (“0”) 及 1.1KHz(”1”),占空比固定为100%。终端和手机应用软件均使用相同的格式。
有了位格式定义,终端和应用软件之间的高层命令帧格式也可以制定。本参考设计使用如图-11 中所示数据帧格式:首字节为命令,且以“1”开始,高位在前。第二个字节为后续数据中包含的字符(4bit)长度。
在真正的产品设计中,由于所有的数据需要加密后才能发送给上层应用软件,所以实际的数据/命令帧格式一定会有所区别。此外,为了确保通信正确,也可以附加校验码如CRC16 等。 7 智能手机人机界面(GUI)的实现 如图12 所示,为了配合评估板我们开发了针对智能手机平台的应用程序,该程序已经在基于Android 2.3 和Android 4.0 的手机上测试及完成预期功能。 图12 中左侧是刷卡界面,当软件检测到读卡器插入后,可以开始进行读卡操作。右侧图是读卡器读卡结束后返回的卡片两个磁道的信息,如果读卡失败,也会得到相应提示。
8 功耗测试 本设计的一个最重要的目标就是功耗,在能够保证刷卡性能的前提下,需要尽可能降低系统功耗。由于在待机(或休眠)模式下,MSP430 具有无可比拟的低功耗优势,这一点无需在本测试中检验。本测试只针对刷卡时的最大功耗,该功耗由三部分构成即:MCU,运放以及相应的外围电路如上下拉通信电路等。此外,减小运行功耗的最直接的方法是降低主频,但是这个做法受限于正常功能实现对MCU 的MIPS 需求。本设计要求MSP430 工作频率最低为8MHz,故本测试只针对于8MHz 主频和16MHz 主频,实际功耗数据如下:
8.1 测试环境
工作主频: 8MHz / 16MHz
主时钟源:使用内部DCO 时钟输出
工作电压:3.3V DC
ADC: 10 位模式, 100ksps/200ksps
测试对象: MSP430, 运放电路,辅助电路
8.2 测试结果
在读卡过程中,8MHz 主频和16MHz 主频时,消耗的电流分别为1.956mA 和3.482mA。其中运放部分功耗约0.3mA,辅助部分约0.02mA.所以实测MCU 在8MHz 时的功耗约为200uA/MIPS,这和数据手册中的基本一致。
如果需要更低的运行功耗和保密特性,需要使用TI 最新的MSP430RF 铁电系列产品,其运行功耗可以低至100uA/MIPS,在此配置下,本设计相关的电路消耗电流可以达到1~2mA,且安全性能更加有保障。
参考资料
1. MSP430x5xx and MSP430x6xx Family USER’S GUIDE(SLAU208K)
2. ISO/IEC 7811-2
3. MSP430F530x, MSP430F5310 DATA SHEET(SLAS677B)