
前言 本文档介绍基于 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 向智能卡传输数据。 ![]() 1.4 智能卡时钟发生器 智能卡时钟发生器为连接的智能卡提供时钟信号。智能卡使用此时钟获得智能卡与另一USART 之间的串行 I/O 的波特率时钟。智能卡中的 CPU(如果有的话)也使用该时钟。 要操作智能卡接口,需要在智能卡中的 CPU 运行代码时调节智能卡的时钟速率,以便更改波特率或提高智能卡的性能。有关控制这些时钟速率的协商以及时钟速率的变更的协议的详细说明,请参见 ISO 7816-3 标准。 该时钟用作智能卡的 CPU 时钟,因此微控制器时钟速率的更新必须与智能卡时钟同步,即,时钟的高或低脉冲的宽度不得短于旧的或新的编程值。 2 智能卡读卡器硬件连接 请记住,STM320518-EVAL 板没有智能卡读卡器。为运行此示例,使用了外部智能卡读卡器,如表 3 中所述。 ST8024 接口芯片用于与智能卡相连。ST8024 是一个针对异步 3V、5 V 智能卡的,完善的低成本模拟接口,它位于智能卡和 STM32F05xx 之间,只需要很少的外部部件来实现电源保护和控制功能。 ![]() ![]() 完整版请查看:附件 |
DM00053351_ZHV1.pdf
下载1.57 MB, 下载次数: 6