STM32F101xx 和 STM32F103xx 中的智能卡接口
AN2598
应用笔记
STM32F101xx 和 STM32F103xx 中的智能卡接口
简介
本文档描述了基于 STM32F10xxx USART 外围模块的固件和硬件智能卡接口解决方案。该固件和
硬件包的目的是提供相应的资源,使用户在智能卡模式下使用 USART 外围模块的应用程序的开发变
得更加便捷。
这个固件接口包括支持 ISO 7816-3/4 规格的库文件。同时提供应用程序示例。
本文档及其相关的固件可以从ST的网站下载:www。st。com
©2007 MXCHIP Corporation. All rights reserved.
www.mxchip.com 021-52655026/025
STM32F101xx 和 STM32F103xx 中的智能卡接口
目录
AN2598 ........................................................................................................................................................... 1
应用笔记 ........................................................................................................................................................... 1
STM32F101xx和STM32F103xx中的智能卡接口 ...................................................................................... 1
1
智能卡接口表述 ................................................................................................................................ 5
1.1
1.2
1.3
1.4
3.1
3.2
2
3
简介 ........................................................................................................................................ 5
外部接口 ................................................................................................................................ 5
协议 ........................................................................................................................................ 6
智能卡时钟发生器 ................................................................................................................ 7
智能卡阅读器硬件连接 .................................................................................................................... 7
ISO 7816:协议概述 ........................................................................................................................ 8
简介 ........................................................................................................................................ 9
ISO 7816-2 – 引脚分布 ........................................................................................................ 9
4
ISO 7816 – 3 – 电信号和传输协议 ............................................................................................... 10
4.1
4.2
4.3
智能卡上电启动和重置 ...................................................................................................... 11
数据传输 .............................................................................................................................. 12
回复重置信号(ATR) ...................................................................................................... 14
5
ISO 7816 – 4 – 智能卡命令 ........................................................................................................... 16
5.1
5.2
5.2.1
5.2.2
T0 协议 ............................................................................................................................... 16
应用层协议 .......................................................................................................................... 19
ISO 7816-4 APDU ....................................................................................................... 20
文件系统API ............................................................................................................... 21
©2007 MXCHIP Corporation. All rights reserved.
www.mxchip.com 021-52655026/025
STM32F101xx 和 STM32F103xx 中的智能卡接口
5.2.3
ISO 7816-4 函数 ......................................................................................................... 23
5.2.4
安全API ....................................................................................................................... 25
6
智能卡接口库:描述 ...................................................................................................................... 27
6.1
6.2
文件组织 .............................................................................................................................. 27
智能卡接口库函数 .............................................................................................................. 27
6.2.1
6.2.2
6.2.3
6.2.4
SC_Handler function .................................................................................................... 28
SC_PowerCmd ............................................................................................................. 32
SC_Reset ...................................................................................................................... 33
SC_PTSConfig ............................................................................................................. 34
6.3
怎样发送APDU命令给智能卡 ........................................................................................... 35
6.3.1
6.3.2
6.3.3
6.3.4
6.3.5
6.3.6
6.3.7
SC_GET_A2R ............................................................................................................. 35
SELECT_FILE............................................................................................................. 36
SC_GET_RESPONSE ................................................................................................. 36
SC_READ_BINARY ................................................................................................... 37
SC_CREATE_FILE ..................................................................................................... 38
SC_UPDATE_BINARY .............................................................................................. 38
SC_VERIFY ................................................................................................................ 39
6.4
奇偶错误管理 ...................................................................................................................... 40
6.4.1
数据由卡发送到阅读器 .............................................................................................. 40
6.4.2
数据由阅读器发送到卡 .............................................................................................. 40
7
智能卡接口示例 .............................................................................................................................. 40
7.1
固件包描述 .......................................................................................................................... 41
7.1.1
FWLib文件夹 .............................................................................................................. 41
7.1.2
Smartcard_AN文件夹 ................................................................................................. 41
7.2
固件描述 .............................................................................................................................. 42
7.2.1
智能卡启动:重置应答(A2R) .............................................................................. 42
7.2.2
按指定路径读一个文件 .............................................................................................. 43
©2007 MXCHIP Corporation. All rights reserved.
www.mxchip.com 021-52655026/025
STM32F101xx 和 STM32F103xx 中的智能卡接口
7.2.3
使能/禁止PIN1(CHV1)编码 .................................................................................. 44
7.2.4
校验PIN1(CHV1)编码 ........................................................................................... 44
8
9
结束语.............................................................................................................................................. 45
版本历史 .......................................................................................................................................... 45
10
版权声明: ...................................................................................................................................... 45
©2007 MXCHIP Corporation. All rights reserved.
www.mxchip.com 021-52655026/025
STM32F101xx 和 STM32F103xx 中的智能卡接口
1 智能卡接口表述
1.1 简介
智能卡接口是在 USART 智能卡模式下开发的。关于 USART 寄存器的描述,请参阅 STM32F10xxx
用户参考手册。USART 智能卡模式支持 ISO 7816-3 标准中定义的异步协议智能卡。
在智能卡模式使能的情况下,USART 必须配置如下:
8 位数据位加上奇偶校验
0。5 或 1。5 位停止位
●
●
一个 5 位的预分频器和智能卡时钟生成器为智能卡提供时钟。
与软件协力工作的 GPIO 引脚用来提供与智能卡交互的其他功能。
软件中不处理 ISO 7816-3 中定义的反向信号传输约定,反转数据和最高有效位优先。
1.2 外部接口
Table 1 智能卡引脚
STM32F10xxx 引脚
智能卡引脚
功能
USART CK
USART CK
Any GPIO
CLK
IO
RST
智能卡时钟
IO 串行数据:漏极开路输出
重置智能卡
©2007 MXCHIP Corporation. All rights reserved.
www.mxchip.com 021-52655026/025
STM32F101xx 和 STM32F103xx 中的智能卡接口
Any GPIO
Any GPIO
VCC
VPP
提供电压
编程电压
Smartcard_RST (智能卡重置)、 Smartcard_3/5V (3 V 或 5 V)、Smartcard_CMDVCC (管理 V cc)以
及 Smartcard_OFF 信号 (智能卡检测信号) 由软件控制下 I/O 端口的 GPIO 位提供。把端口的 GPIO 位
编程为漏极开路转换功能输出模式,会使 USART_TX 数据信号以正确的驱动连接到智能卡 IO 引脚,使时钟
产生器连接到配置为转换功能推挽输出模式的 Smartcard_CLK 引脚。
1.3 协议
ISO 7816-3 标准以时间单位的形式,为异步协议定义了称作 ETUs (elementary time units)的位时间,
它与智能卡的时间频率输入相联系。一个 ETU 的长度是一个位时间。USART 接收器和发送器在内部
通过 Rx_SW 相连接。将数据从 STM32F10xxx 传输到智能卡,USART 必须被设置成智能卡模式。
©2007 MXCHIP Corporation. All rights reserved.
www.mxchip.com 021-52655026/025
STM32F101xx 和 STM32F103xx 中的智能卡接口
图 1
ISO 7816-3 异步协议
1.4 智能卡时钟发生器
智能卡时钟发生器为已连接的智能卡提供时钟信号。智能卡使用这个时钟产生在智能卡与另一个
USART 之间进行串行通信的波特率。如果卡上有 CPU,该时钟同样为被 CPU 使用。
当卡上的 CPU 在运行代码时,波特率可以改变,或者智能卡的性能可以被提升,这就要求对智
能卡接口进行操作时,时钟速率可以做出调整。协商时钟速率和改变时钟速率的协议,在 ISO7816-3 标
准中有详细描述。
这个时钟被用作智能卡的 CPU 时钟,所以更新微控制器时钟频率必须和智能卡时钟同步,使得
时钟高或低脉冲宽度不小于新值或旧值中的一个。
2 智能卡阅读器硬件连接
与智能卡进行交互,需要使用 ST8024 设备。ST8024 是一个针对于异步 3V、5V 智能卡的完善的
低成本模拟接口。它连接在智能卡和 STM32F10xxx 之间,并且只需要很少的外部部件来实现保护和
控制功能。
Table 2 STM32F10xxx 和智能卡连接
©2007 MXCHIP Corporation. All rights reserved.
www.mxchip.com 021-52655026/025
ST
TM32F10xxx
x引
智
智 能 卡
功能
STM32F101
1xx 和 STM32F
F103xx 中的智
能卡接口
脚
引脚
US
SART3
C
CK:
C3
3: CLK
PB12
US
SART3_TX:
C7
7: IO
PB10
智能卡时钟
钟:alternate
e function pus
sh-pull
IO 串行数
数据:alternate
e function op
pen drain
PB
B。11
PE
E。07
PE
E。14
PD
D。11
C2
2: RST
C1
1: VCC
OF
FF
3/5
5V
重置智能卡
出
卡:推挽输出
提供电压
:推挽输出
智能卡检测
入
测:悬浮输入
3V 或 5V
:推挽输出
图 2
智能卡接
接
接口硬件连接
3 ISO
O 781
6:协
述
协议概述
©20
www.mxc
07 MXCHIP
chip.com 0
P Corporation
021-5265502
n. All rights
26/025
reserved.