首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

STM32单片机的PSAM卡驱动模块设计(1)

STM32单片机的PSAM卡驱动模块设计(1)

 刷卡消费随着人们生活水平的提高已经成为常用的支付方式之一。为了保证刷卡消费的安全性,将PSAM卡内嵌于各种终端刷卡设备中。 PSAM(Purchase SecureAccess Module,销售点终端安全存取模块),由IC卡发行主管部门或者应用主管机构发行,是可以用于对IC卡进行脱机消费交易认证的安全认证卡,主要应用于商用POS、网点终端、直连终端等设备上,支持多级发卡机制,适用于多应用的环境,符合识别卡、带触点的集成电路卡标准、ISO/IEC 7816—1/2/3/4以及《中国人民银行PSAM卡规范》。
  1. PSAM卡简介
  PSAM 卡是接触式CPU卡的一种。CPU卡也称智能卡,卡内集成电路带有微处理CPU,存储单元(包括随机存储器RAM、电可擦除存储器EEP ROM、程序存储器ROM)及芯片操作系统(Chip Operating System,COS)。装有COS的CPU卡不仅具有数据存储功能,同时具有命令处理和数据安全保护等功能。CPU卡芯片相当于芯片内装置了一个微处理器,其功能大致与一台微型计算机相同。在生活中,人们常使用的集成电路卡(IC卡)上的金属片就是CPU芯片。由于CPU卡具有存储空间大、处理能力强、信息存储安全、支持一卡多用以及读取速度快等优点,已经被广泛用于金融、交警、保险和政府行业等领域,并通过国家密码委和中国人民银行的认证。
  就外型而言,CPU卡与普通IC卡、射频卡相比无明显差别,但是使用性能、安全性却有巨大提升,这主要源于CPU卡内含有随机数发生器、3DES加码算法、硬件DES和3DES加密算法等,配合操作系统就可以达到金融级别的安全等级。减值密钥一般存储在PSAM卡中,通过PSAM卡对IC卡进行减值操作,实现安全扣款。在非接触逻辑加密卡的系统中,PSAM卡主要使用卡片认证密钥和各扇区的KEYA、KEYB密钥来产生非接触逻辑加密卡操作所需要的各扇区的 KEYA和KEYB认证码,交易信息不直接参与运算。而在非接触CPU卡系统中,PSAM卡通常用来计算和校验消费交易过程中出现的MAC码,同时在计算的过程中,交易时间、交易金额、交易类型等交易信息也都参与运算,使得交易更安全可靠。某些情况下,非接触CPU卡系统中的PSAM卡还可以用来支持安全报文更新数据时MAC的计算,以及交易TAC的验证。
  卡片内部逻辑结构如图1所示。


  其中CPU及加密逻辑保证EEPROM中数据的安全,使外界不能使用非法手段获得EEPROM中的数据。RAM是在COS 工作时存放命令参数、返回结果、安全状态以及临时工作密钥的区域。ROM用于存放COS程序。EEPROM中存放用户应用数据区域,COS将用户数据以文件的形式保存在EEP ROM中,当安全条件满足规定时,可以读/写文件。
  2. 硬件设计
  2.1 PSAM卡电路设计
  2.1.1 PSAM卡电源切换模块
  ISO7816 协议里规定2种使用较多的,PSAM卡的类别(A类、B类),A类需要提供5 V电压,B类需要提供3V电压,为了保证对于两种类别卡的兼容性,要求设计的读写器,可以提供选择5V或者3 V的电压。于是本论文设计了如图2所示的电源切换模块。其工作原理是:PSAM POW为高时,P沟道的MOS管导通,提供5 V电压给PSAM_VDD,PSAM_POW为低时,P沟道的MOS管不导通,提供3.3 V电压,再经过二极管的压降,提供3 V电压。


  2.1.2 PSAM卡复位信号
  同样考虑到PSAM卡的两种类别,尤其是当PSAM卡为A类的时候,主要考虑MCU的I/O口电压是3.3V,而PSAM卡需要的是5 V,防止复位电平不够,将PSAM_RST1信号通过三极管与SAM_RST1相连,以增强驱动能力。其中PSAM_RST1与MCU相连,SAM_RST1与PSAM卡相连。具体电路如图3所示。


  2.1.3 PSAM卡数据口电平转换电路
  为了保证MCU接收到的信号是3.3 V,设计了PSAM卡数据口电平转换电路,具体电路如图4所示,当PSAM卡是A类的时候,需要将5 V电压转换为3.3 V,这时在图4电路中,只需要焊接上两个三极管(Q1、Q2),不需要焊接电阻R,当PSAM卡是B类的时候,只需要焊接上电阻R,不需要焊接两个三极管 (Q1、Q2)。
  2.1.4 PSAM卡卡槽电路接口
  PSAM 卡卡槽电路接口如图5所示。由于是低电平复位,在RST端口需要接上PSAM VDD信号,在正常工作的时候将电平拉高。数据脚(DATA)正常情况下也需要上拉,这是为了防止电平幅度不够,尤其在5 V的时候,通过电平切换的信号是3.3 V,必须上拉到5 V才行。
  2.2 主控模块设计
  图 6为主控模块以及相关的外围电路的原理图。主控模块选用的是STM32F103C8T6芯片。OSC32_IN、OSC32_OUT两个引脚外接 32.768 kHz的低速外部晶振,可以用其驱动实时时钟RTC。OSC_IN、OSC_OUT两个引脚外接8 MHz晶振,通过设置STM32的相关寄存器经过PLL倍频之后产生72 MHz的STM32系统时钟(SYSCLK)。C1、C2作为晶体的匹配电容。为了使晶振更加容易启振,在晶振旁边并联1 MΩ电阻(R)。主控模块低电平复位,电阻上接高电平,电容在下接地,中间位RST。具体工作原理是在上电时给电容充电,电容给RST一个短暂的低电平,此低电平随着VCC给电容充电的过程中变高。

继承事业,薪火相传
返回列表