logo资料库

MSP430 单片机与CPU 卡接口函数设计.pdf

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