你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【中文文档】AN2598_使用STM32F101xx和STM32F103xx的智能卡接口

[复制链接]
STMCU-管管 发布时间:2019-4-24 10:33
使用 STM32F101xx 和 STM32F103xx 的智能卡接口
/ l( S  w4 v' K/ e1 j4 W1 h
2 {) ?* ~/ l0 w9 ~! C0 p
简介 ( s& d  q0 I. C7 A3 D! }/ i

3 a  w! x  ?1 H' F1 z+ [! ~( T本文叙述了如何使用STM32F10xxx的USART模块实现智能卡接口解决方案,包括固件和硬件接口的实现。该固件和硬件包的目的是提供相应的资源,使用户使用USART模块的智能卡模式,更加便捷地开发应用程序。
, G8 G* E5 ]. V3 w) s4 o; R
5 t* {, p" h' H9 U. ^这个固件接口包括支持ISO 7816-3/4规范的库文件,同时提供基于ST的STM3210B-EVAL和STM3210E-EVAL评估板的应用程序示例。
; l' l( w6 i. D+ |* w
$ o& J% A' N5 o# b* v$ n7 D
本文档及其相关的固件可以从ST的网站下载:www.st.com
2 \& O5 D0 k4 B& d  l
) n5 ~+ r, c, W' o术语表 $ G6 r6 z' M% M

7 O1 ~4 [" V6 @& @小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。
& _3 ?4 {' z! b$ P7 R0 W  T; \9 R- c  {& I
中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。在ST的STM3210B-EVAL评估板上集成的即为中容量产品。 7 ]. _- Z2 z6 m3 Z: o; l
7 N" b* g$ s: p! X8 c
大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控制器。在ST的STM3210E-EVAL评估板上集成的即为大容量产品。
7 Q7 E9 R2 h/ {

+ B8 i1 ^$ L7 {2 |$ R9 M1 智能卡接口
* g: h$ ?- i3 J  n& t9 K' Q8 ]+ E1 k
1.1 简介 " |! i2 n7 S; W6 G1 U1 \9 z% ^: B
% I0 s& M  |" b* k
智能卡接口是在USART模块的智能卡模式下开发的。关于USART寄存器的描述,请参阅STM32F10xxx参考手册。USART智能卡模式支持ISO 7816-3标准中定义的异步智能卡协议。
. c, J. H  x3 G7 z: B2 F
" {9 I! K0 V- b
在使能智能卡模式的情况下,必须如下配置USART模块:3 R" `' U7 g9 m. d
● 8位数据位加上奇偶校验
% A% K( {! F! G ● 0.5或1.5位停止位 5 k8 [# _7 b- T4 w( Y: e6 G
1 ?0 G0 J+ G% l. H( _# E6 V
一个5位的预分频器和智能卡时钟发生器为智能卡提供时钟。智能卡接口的其他功能则由软件配合GPIO口实现。 : S3 T- `. T0 G

' v0 _' X% c8 S# K" t软件中不处理ISO 7816-3中定义的反向信号传输约定,反转数据和最高有效位优先的情况。
- o. m, S4 a: V$ M6 }/ O& u, ?
0 g9 ^( m% d8 d7 |5 _+ R" t/ Y
1.2 外部接口 - |1 S6 x' v5 j# B
" {- F! P& M5 w7 u
表1 智能卡引脚* }" e8 h* W) t- i4 n
1.png
7 b' x' ]8 I" J
Smartcard_RST(智能卡复位)、Smartcard_3/5V(3V或5V)、Smartcard_CMDVCC (管理VCC)以及Smartcard_OFF信号(智能卡检测信号)由软件控制GPIO的端口实现。为了使数据信号以正确的驱动连接到智能卡IO引脚,应当把USART_TX端口的GPIO位编程为复用开漏输出模式,为把时钟发生器连接到Smartcard_CLK的引脚,USART_CK端口的GPIO位应配置为复用推挽输出模式。' B* X+ N: i/ u* ]5 K9 c, y
9 b7 K9 @. f2 h* F9 l
1.3 协议 6 U4 b5 I% B( X. s8 x
ISO 7816-3标准为异步协议定义了时间基准单位,称作ETU(elementary time units),它与输入至智能卡的时钟频率有关。一个ETU的长度是一个位时间。USART接收器和发送器在内部通过Rx_SW信号相连接。必须将USART模块设置为智能卡模式,才能实现从STM32F10xxx向智能卡传输数据。
' d. O* ?1 u" ]

$ G3 r+ O1 L- N$ n2 ~/ u* t& \$ _' s2 W图1 ISO 7816-3异步协议+ E8 a$ g9 X5 K, }* Q* O

$ x' G5 C- @$ s; i/ r% s- E
1.png
1.4 智能卡时钟发生器
$ X# u! _' Q/ Y6 @' d! j7 a8 f; u
智能卡时钟发生器为与之相连的智能卡提供时钟信号。智能卡使用这个时钟产生在智能卡与USART模块之间进行串行通信的波特率时钟。如果智能卡上有CPU,该时钟将同时提供给CPU使用。
  Q& e2 X: X' y% U0 M
智能卡接口操作要求,在卡上的CPU运行代码时可以调整时钟速率,这样可以改变通讯的波特率,或者可以提升智能卡的性能。在ISO7816-3标准中详细描述了,协商时钟速率和改变时钟速率的协议。
6 D" R% O. f% [1 ~0 I% \
这个时钟被用作智能卡内CPU的时钟,因此更新微控制器输出的时钟频率必须和智能卡时钟同步,应注意保证没有比短周期的40%更短的脉冲。

2 q7 |0 S2 M( `1 [
.........

9 r! J$ e8 v! g/ H" E- \* e1 A  K
想了解更多,请下载原文阅读
$ N& ?; m4 W( n

: p, ~% G0 r& s$ o" z/ p2 d. F8 z
收藏 1 评论2 发布时间:2019-4-24 10:33

举报

2个回答
Kevin_G 回答时间:2019-4-24 23:36:21
收藏
访客1989 回答时间:2019-4-29 09:26:03
收藏收藏
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版