MSP430_ICCARD
- 格式:pdf
- 大小:165.56 KB
- 文档页数:7
MSP430单片机与CPU卡接口函数设计北京工商大学信息工程学院 吴叶兰北京握奇智能科技有限公司 陈红军利尔达电子中国有限公司 季燕飞
摘要CPU卡以其良好的安全性和规范性被日益广泛的应用于各种嵌入式系统本文介绍了用MSP430单片机来开发CPU卡的读写操作分析了其硬件和软件的设计关键词CPU卡MSP430单片机ETU
一引言
IC卡是把具有存储加密及数据处理能力的芯片镶嵌在塑料基片中它既有智能性又
便于携带已作为一种安全方便快捷的支付工具和个人资料库在现代社会中得到了广泛的应用IC卡按其工作方式分为接触式IC卡和非接触式IC卡两大类在接触式IC卡中按其工作原理一般可分为存储IC卡和智能卡即CPU卡两类存储卡内部不含CPU只能由硬件逻辑完成密码校验具有一定的安全性但其密码容易在线路中被跟踪破译一般在安全性要求不高的情况下使用CPU卡由于内部带有微处理器在性能上比存储卡有很大提高主要表现为安全性CPU卡采用密钥管理机制认证过程通过加密算法运算动态进行在实际应用中被破译和攻击的可能性很小兼容性CPU卡信息传输方式遵循ISO7816-3国际标准这样芯片升级时不需要对系统内的微控制器程序进行改动这是存储卡和逻辑加密卡所不能作到的可扩展性由于CPU卡采用文件方式对数据进行存储并且可以对不同应用的数据文件进行目录管理这样很容易实现一卡多用的方案规范性采用CPU卡的COS 操作系统一般都满足金融卡规范如TIMECOS符合中国人民银行PBOC金融卡规范这样就可以很方便地实现收费管理与金融系统的接轨CPU卡的这些优势使其在智能卡表通信设备交通收费网络安全金融设备等领域得到越来越广泛的应用
二CPU卡的电气特性CPU卡是将集成电路芯片封装在卡片上形成的按照ISO7816标准CPU卡封装引脚如
下图1 CPU卡的引脚结构CPU卡的工作电源电压根据需要可以选择5V电压范围4.5V—5.5V和3V电压范围2.7V—5.5V两种其工作频率范围在5V条件下可以在1MHz—5MHZ之间进行选择电压频率降低时工作频率会相应降低数据传递通过I/O口进行采用串行异步半双工方式进行
三对CPU卡进行读写的硬件设计在CPU卡式水气热表的设计中由于采用电池方式供电对单片机的低电压和低
功耗比较注重美国TI公司的MSP430系列的单片机在这方面由独特的优势并且可以满足CPU卡的较高速率的通讯
1 MSP430F413概述MSP430F413是美国TI公司最新推出的超低功耗Flash型16位RISC指令集单片机具有丰富的片内外围是一款性价比极高的单片机
图2 MSP430F413内部结构上图是MSP430F413的内部结构它采用了FLASH存储器具有以下一些特点
超低功耗MSP430F413运行在2.2V1MHZ时钟条件下其工作电流根据工作模式的不同在0.1uA~300uA之间其工作电压范围为1.8V~3.6V 处理能力强大采用RISC指令集核心指令27条并具有丰富的寻址方式源操作数7种目的操作数4种片内寄存器数量多有高效的查表处理方法以保证程序编制的高效性中断源较多可以实现中断嵌套使用时灵活方便
触点号 分配 触点号 分配 C1 电源电压 (VCC) C5 地 (GND) C2 复位 (RST) C6 空 (NC) C3 时钟 (CLK) C7 输入/输出 (I/O) C4 空 (NC) C8 空 (NC)
8kbflash 片上外围模块丰富MSP430F413具有FLL+频率锁相环时钟系统看门狗带有三个捕获/比较寄存器的16位定时器Timer_A片内比较器96段LCD驱动器48个通用I/O引脚并且端口P1和P2具有中断能力每一引脚都可以单独选择中断触沿单独允许中断 开发方式简便高效MSP430F413具有JTAG接口可以方便的通过JTAG控制器实现程序的下载和调试正是由于MSP430F413的这些优势在选择对CPU卡的开发时我们选用了该款芯片
2 硬件设计实现CPU卡读写的硬件电路总体框图如下
图3 硬件电路框图本硬件电路包括IC卡接口电路实现对IC卡的读写ESAM卡接口电路实现密钥认
证和数据存储晶振电路为整个系统提供时钟源JTAG接口实现程序的下载LCD电路作为系统的显示模块下面仅就IC卡接口电路进行讨论
图4 CPU卡接口电路CPU卡的外部引脚有8根实际用到的有5根即VCCRSTCLKGND和I/O卡座上还有一引脚ICKEY用来判断IC卡是否插入卡座MSP430是64脚QFP封装有48根通用I/O引脚这里采用P1端口的部分口线作为I/O线和CPU卡通信从安全性和降低功耗方面进行考虑IC卡的电源和时钟是受单片机控制的在CPU卡未插入卡座时应不给卡座供电同时不输出时钟信号在电路中用两个三极管来实现这一点单片机P1.2口控制给CPU卡上电以及内部时钟输出平时为高电平当CPU卡插
MSP430F413晶振电路
IC卡接口ESAM接口
JTAG接口LCD 电路入后为低电平单片机的P1.1口用来提供CPU卡和内部ESAM模块工作的时钟由于MSP430F413单片机独特的性能可以利用P1.1口输出单片机的工作时钟利用此时钟可以很好地实现单片机和CPU卡的通讯时钟同步并且MSP430F413单片机可以根据需要用程序来灵活设置单片机的工作频率在不需要外围附件工作时可以关掉此时钟信号以降低功耗单片机的P1.3口用来控制CPU卡的复位CPU卡采用的是低电平复位方式P1.3口平时为低电平CPU卡工作时为高电平单片机的P1.6口用来实现单片机和CPU卡的双向数据通信由于CPU卡的I/O口采用的是集电极开路方式使用时要在口线上外接上拉电阻
四对CPU卡进行读写的软件设计CPU卡在数据传输的方式上与存储卡是不同的它采用的是串行异步半双工方式所以
在对CPU卡进行读写设计时首先应计算出在I/O线上数据的位宽以保证通信的正确其次由于采用的是MSP430F143型单片机它采用了DCO技术其向系统提供的时钟频率是可调的故应根据系统要求的时钟频率对基础时钟模块进行设置以得到准确的时钟信号在设计读写程序时一定要按照ISO7816标准规定的流程进行编程其编制成功的标志是能正确的接收复位信号能发送命令并根据每条命令的格式接收到正确的返回数据或状态标志下面就这几方面的内容进行讨论1 ETU的计算由于CPU卡是采用串行异步半双工方式和终端通信由终端向CPU卡提供时钟信号并以此来控制交易的时序所以在程序设计前应先计算出准确的ETU基本时间单位ETU即I/O线上所用的数位宽度其计算公式为ETU=372/ff为系统频率ETU的计算可采用延时子程序的方式可根据MSP430的寻址方式的不同算出每条指令的时钟周期从而得到精确的ETU2 对MCLK的软件设置本系统中终端和CPU卡的时钟都是由MCLK 提供MCLK的时钟源来自DCO数字控制震荡器MSP430F413的DCO震荡器被集成在FLL+时钟模块中它产生的时钟信号fDCOCLK
可作为MCLK或SMCLK它有两种计算公式
fDCOCLK=fcrystal*D*N+1fDCOCLK=fcrystal*N+1其中D由寄存器SCFI0设定分别取值为0248当D=0时fDCOCLK由公式得到其它三种情况fDCOCLK由公式得到N是由寄存器SCFQCTL设定其默认值为31最大值为127可根据MCLK的需求进行设定fcrystal是晶振频率当XTS_FLL=0时其值为32768HZMCLK就是由以上的三个参数来设定的在我们设计的电路中CPU卡和终端的时钟信号是由MCLK提供的外接晶体的频率为32768HZMCLK的频率设置为4.196MHZ以充分利用MSP430和CPU卡的高速性能另外要想使MCLK信号能够输出还须将P1.1口设为MCLK输出方式这样CPU卡的CLK端才能得到正确的时钟信号
3 CPU卡的上电复位在对CPU卡读写操作前必须对它进行正确的复位CPU卡的复位操作是严格按照ISO-7816的时序要求进行设计的其上电复位时序如下图图5 CPU卡的复位时序具体的复位过程是先加上VCC在200个时钟周期内加上CLK时钟信号之后I/O线路应在时钟信号加于CLK的200个时钟周期内被卡置于接收状态时钟加于CLK后保持RST为状态L至少400时钟周期之后卡复位RST被置于状态HI/O上的应答应在RST上信号的上升沿之后的400~40000个时钟周期内开始在进行具体的程序设计时一定要遵循上面的时序要求特别要注意当加上CLK后RST的低电平保持时间至少为400个时钟周期当RST为高后要延迟400个周期后开始接收应答信号否则不能收到正确的复位应答字节
4 CPU卡的下电CPU卡在正确的复位后就能进行各种交易在交易结束后要对卡执行下电操作以正确的释放各触点其下电时序如下
图6 CPU卡的下电时序在下电过程中首先将RST置低其次将CLK置低然后将I/O置低最后VCC被置低
5 接收字节程序设计按照ISO7816的标准CPU卡的字符桢格式为1个启始位8个数据位1个偶校验和1个停止位其中启始位为低电平在接收字符时应注意在收到校验位后应把该校验位与终端计算的校验位相比较一致则继续接收字符否则转为发送态要求重发字符错误次数不超过3次其程序流程如下