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

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

[复制链接]
STMCU-管管 发布时间:2019-4-24 10:33
使用 STM32F101xx 和 STM32F103xx 的智能卡接口& ?1 i* c- n; U9 e9 F" Y4 G# e

1 s8 g! {2 t0 ~) g  T简介
- I& Z6 f$ d* ]  J3 X! D

6 Q  a$ F, c" i/ P+ X/ s7 N本文叙述了如何使用STM32F10xxx的USART模块实现智能卡接口解决方案,包括固件和硬件接口的实现。该固件和硬件包的目的是提供相应的资源,使用户使用USART模块的智能卡模式,更加便捷地开发应用程序。
& u3 B7 j* E, O( i7 c. V, p8 D0 `- e( m( P# i: T
这个固件接口包括支持ISO 7816-3/4规范的库文件,同时提供基于ST的STM3210B-EVAL和STM3210E-EVAL评估板的应用程序示例。
9 Z1 N; z  ]) Z9 ]" V3 ~0 v. u

. ?: r, [  @* P& C本文档及其相关的固件可以从ST的网站下载:www.st.com
8 S/ S$ z% I0 J/ O( X/ Y) N
  ]4 C1 S3 s0 B/ A术语表 % ^% W' F5 e6 k1 ?9 e, ]

0 S" x& ~! }$ l小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。
) X! D0 e+ F: \: }! o" O* z2 ?- ]4 p9 b# e, c0 x
中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。在ST的STM3210B-EVAL评估板上集成的即为中容量产品。
4 \0 x( @9 ?. f( @& }
/ B$ F; a( B+ V/ k$ B" e
大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控制器。在ST的STM3210E-EVAL评估板上集成的即为大容量产品。
/ a* O- y% L9 A  C' Q5 R. }+ W
) M# h3 v. ^, V% \8 h
1 智能卡接口
  k& K( I- z3 M5 [, u" l
% i; z5 E4 U+ |& z$ _1.1 简介 * D0 _* z3 Y. x1 |( v, O

2 o; e& O# w* |: o! P! ~* F智能卡接口是在USART模块的智能卡模式下开发的。关于USART寄存器的描述,请参阅STM32F10xxx参考手册。USART智能卡模式支持ISO 7816-3标准中定义的异步智能卡协议。
; o, P1 l% A3 [! Z% i4 v+ ?5 }- T  o

# r% S3 w1 V# `! Z9 ~% z. w1 Q在使能智能卡模式的情况下,必须如下配置USART模块:# y  }) {) p3 h9 ]& {
● 8位数据位加上奇偶校验8 ^7 r& ]6 {  _- {" W5 C
● 0.5或1.5位停止位
1 G' P' T9 O! y( I& c; _& x" C4 O: z$ ?- e7 S
一个5位的预分频器和智能卡时钟发生器为智能卡提供时钟。智能卡接口的其他功能则由软件配合GPIO口实现。
7 ?* k* t5 k2 m8 V9 y. b  q
1 W1 k  y4 e3 {4 c! f* t( h
软件中不处理ISO 7816-3中定义的反向信号传输约定,反转数据和最高有效位优先的情况。
6 T3 ~/ Q" s; j; Y& G
1 `, h7 k( Z% |: R$ G9 @# `% E
1.2 外部接口
4 K2 a5 O/ v# m9 Z! Z; l# \+ L5 n
/ R7 o& Z' s1 v表1 智能卡引脚
# n2 h) F7 ^- B+ ]2 z* }# u
1.png
* Z5 a2 ^8 m3 X  W5 ]. F; h
Smartcard_RST(智能卡复位)、Smartcard_3/5V(3V或5V)、Smartcard_CMDVCC (管理VCC)以及Smartcard_OFF信号(智能卡检测信号)由软件控制GPIO的端口实现。为了使数据信号以正确的驱动连接到智能卡IO引脚,应当把USART_TX端口的GPIO位编程为复用开漏输出模式,为把时钟发生器连接到Smartcard_CLK的引脚,USART_CK端口的GPIO位应配置为复用推挽输出模式。& F& m4 s. p% m  j
: m. a3 t  ^- n8 W# Y
1.3 协议
( F4 ?. z. M8 {( `ISO 7816-3标准为异步协议定义了时间基准单位,称作ETU(elementary time units),它与输入至智能卡的时钟频率有关。一个ETU的长度是一个位时间。USART接收器和发送器在内部通过Rx_SW信号相连接。必须将USART模块设置为智能卡模式,才能实现从STM32F10xxx向智能卡传输数据。
- N' _! b0 \: L; }4 T2 c6 ]' c' x
. V* B$ c7 M9 ~4 w* p% p8 A
图1 ISO 7816-3异步协议
- q  F1 w+ j* L8 M9 T- G4 l1 f& a4 a
1.png
1.4 智能卡时钟发生器

# c" C  v8 T- ~7 j/ r
智能卡时钟发生器为与之相连的智能卡提供时钟信号。智能卡使用这个时钟产生在智能卡与USART模块之间进行串行通信的波特率时钟。如果智能卡上有CPU,该时钟将同时提供给CPU使用。
$ ]2 k3 J9 E8 l% _5 P2 ^
智能卡接口操作要求,在卡上的CPU运行代码时可以调整时钟速率,这样可以改变通讯的波特率,或者可以提升智能卡的性能。在ISO7816-3标准中详细描述了,协商时钟速率和改变时钟速率的协议。

" o4 J& b1 q: u
这个时钟被用作智能卡内CPU的时钟,因此更新微控制器输出的时钟频率必须和智能卡时钟同步,应注意保证没有比短周期的40%更短的脉冲。
0 u! t/ h+ Z* D' P$ `3 C
.........
7 N: `2 \$ D8 S  z( _+ z/ s
想了解更多,请下载原文阅读

' e+ M$ @: |) r0 L. Q% j4 L# l/ `" X- [3 |5 l$ d( }
赞 收藏 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管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版