STM32F05xx微控制器的智能卡接口设计
前言
本文档介绍基于 STM32F05xx USART 外设的固件和硬件智能卡接口解决方案。此固件和硬件包的主要用途是,为使用处于智能卡模式的 USART 外设(支持 T=0 和 T=1 协议)的应用开发提供资源以加速开发过程。
固件接口包含了为支持 ISO 7816-3/4 规范而开发的库源文件。还提供了一个基于意法半导体的 STM320518-EVAL 评估板(带一些附加硬件)的应用示例。
本文档及其相关的固件可以从意法半导体网站 http://www.st.com 下载。
表 1 列出了本应用笔记所涉及的微控制器和开发工具。
词汇表STM32F05xx 器件为:
● Flash 容量高达 32 KB 的 STM32F050xx 微控制器。
● Flash 容量高达 64 KB 的 STM32F051xx 微控制器。
1 智能卡接口说明
1.1 前言
智能卡接口在 USART 智能卡模式下进行开发。有关 USART 寄存器的说明,请参见STM32F05xx 参考手册 (RM0091)。USART 智能卡模式支持 ISO 7816-3(A 类)标准中定义的异步协议智能卡。更多详细信息,请参见此标准。
使能智能卡模式后,必须将 USART 配置为:
● 8 位数据位加上奇偶校验
● 0.5 或 1.5 位停止位智能卡的时钟源为一个 5 位预分频器和智能卡时钟发生器。将 GPIO 引脚与软件配合使用来提供智能卡接口所需的其它功能。
软件中不处理 ISO 7816-3 中定义的反向信号传输约定,反转数据和最高有效位优先的情况。
智能卡有三种不同的工作电压:
● 5 V(ISO7816-3 A 类)
● 3 V(ISO7816-3 B 类)
● 1.8 V(ISO7816-3 C 类)
1.2 外部接口
Smartcard_RST(智能卡复位)、Smartcard_3/5V(3 V 或 5 V)、Smartcard_CMDVCC(用于 VCC 的命令)和 Smartcard_OFF 信号(用于智能卡检测的信号)由软件控制 GPIO的端口实现。为了使数据信号以正确的驱动连接到智能卡 IO 引脚,应当把 USART_TX 端口的 GPIO 位编程为复用开漏输出模式,为把时钟发生器连接到 Smartcard_CLK 的引脚,USART_CK 端口的 GPIO 位应配置为复用推挽输出模式。
1.3 协议
ISO 7816-3 标准为异步协议定义了时间基准单位,称作 ETU (elementary time units),它与输入至智能卡的时钟频率有关。一个 ETU 的长度是一个位时间。USART 接收器和发送器在内部通过 Rx_SW 信号相连接。必须将 USART 模块设置为智能卡模式,才能实现从STM32F05xx 向智能卡传输数据。
|