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

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

[复制链接]
STMCU-管管 发布时间:2019-4-24 10:33
使用 STM32F101xx 和 STM32F103xx 的智能卡接口
  a$ ^, V4 l) G0 i

9 y# Q' Z7 y) d  B3 t+ U1 y简介 . a4 P( J. E7 N8 w2 e) j

' C% s( Z+ F9 \0 @& o# G4 o$ z% t本文叙述了如何使用STM32F10xxx的USART模块实现智能卡接口解决方案,包括固件和硬件接口的实现。该固件和硬件包的目的是提供相应的资源,使用户使用USART模块的智能卡模式,更加便捷地开发应用程序。 8 z9 }" o$ J3 w' V. i! z

0 ^' Y5 \' Q) A- U8 {这个固件接口包括支持ISO 7816-3/4规范的库文件,同时提供基于ST的STM3210B-EVAL和STM3210E-EVAL评估板的应用程序示例。
, R) Y1 J" s9 _# w3 H9 V

8 ~+ h5 h: W' T* c7 e% w' k4 b本文档及其相关的固件可以从ST的网站下载:www.st.com & P# O! @( \0 |/ k& O* l

7 c3 t( }3 r! e( ?9 D6 q术语表 1 T, K% r0 a/ `8 b4 K" @2 l
5 g. F  b# k' _' G+ ?" R) G) T
小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。 ! y/ k) B/ e) y

/ H5 V' k, {5 m0 w; ?中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。在ST的STM3210B-EVAL评估板上集成的即为中容量产品。 , X; ^8 I5 j7 H) }6 j& m" }
, g; I& Y, w* G$ A+ C  U* C5 b0 _- C% L" s
大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控制器。在ST的STM3210E-EVAL评估板上集成的即为大容量产品。
1 @6 j: P8 g* {
- x2 U4 }+ [) V, }6 w/ f1 a4 @
1 智能卡接口   ]: I: A: a; f2 x1 l1 a, @& w
' P; B$ l4 E: h( X
1.1 简介
" M; \" u% D' S5 @

+ ^' S+ `! i- t7 z- o) o& z2 [智能卡接口是在USART模块的智能卡模式下开发的。关于USART寄存器的描述,请参阅STM32F10xxx参考手册。USART智能卡模式支持ISO 7816-3标准中定义的异步智能卡协议。
+ A0 J& I( Y; O9 a" w

4 B0 R/ z6 G3 y% ^# l3 n在使能智能卡模式的情况下,必须如下配置USART模块:
2 y8 W; j2 D& w! T ● 8位数据位加上奇偶校验
) d$ t+ f* R, P) o ● 0.5或1.5位停止位 3 g& `* d% w4 ?  d9 \9 k

# b  q5 O% F8 o" q) ]一个5位的预分频器和智能卡时钟发生器为智能卡提供时钟。智能卡接口的其他功能则由软件配合GPIO口实现。
! \1 b8 p5 X* F; t

) W% L  W) v2 T, d9 _软件中不处理ISO 7816-3中定义的反向信号传输约定,反转数据和最高有效位优先的情况。
, \9 D/ w4 n/ C5 x3 s

" y1 G8 C; O' h3 Y6 b- `* k# I8 f6 z% o1.2 外部接口 4 R0 V: B( V- v0 B
' f3 K4 A3 S$ b* ^: J& o* ?0 O
表1 智能卡引脚" L. w& c# A- e2 J: B+ _3 r
1.png
6 }# H2 |6 L' u; F+ {
Smartcard_RST(智能卡复位)、Smartcard_3/5V(3V或5V)、Smartcard_CMDVCC (管理VCC)以及Smartcard_OFF信号(智能卡检测信号)由软件控制GPIO的端口实现。为了使数据信号以正确的驱动连接到智能卡IO引脚,应当把USART_TX端口的GPIO位编程为复用开漏输出模式,为把时钟发生器连接到Smartcard_CLK的引脚,USART_CK端口的GPIO位应配置为复用推挽输出模式。
8 m% O3 U  }+ o+ U4 l' K
' I8 j2 N) n5 }" g0 H) t- z1.3 协议
9 H5 X' l7 g  J, o# @% F& M- a. MISO 7816-3标准为异步协议定义了时间基准单位,称作ETU(elementary time units),它与输入至智能卡的时钟频率有关。一个ETU的长度是一个位时间。USART接收器和发送器在内部通过Rx_SW信号相连接。必须将USART模块设置为智能卡模式,才能实现从STM32F10xxx向智能卡传输数据。

) ?5 M9 J9 z) K
; Y; S+ {2 S7 m2 m. o5 p9 z3 Z( @5 H
图1 ISO 7816-3异步协议& f& A/ l, R# U' `4 E* `
4 N  Y8 [& ~) z1 i" e) m, J
1.png
1.4 智能卡时钟发生器
1 k1 Z6 P) A: I: R9 v' L% Q
智能卡时钟发生器为与之相连的智能卡提供时钟信号。智能卡使用这个时钟产生在智能卡与USART模块之间进行串行通信的波特率时钟。如果智能卡上有CPU,该时钟将同时提供给CPU使用。
7 X# G" K5 w8 {% A) c+ e
智能卡接口操作要求,在卡上的CPU运行代码时可以调整时钟速率,这样可以改变通讯的波特率,或者可以提升智能卡的性能。在ISO7816-3标准中详细描述了,协商时钟速率和改变时钟速率的协议。

, I; q  q+ B4 H' x* `: Y2 m8 d3 Y
这个时钟被用作智能卡内CPU的时钟,因此更新微控制器输出的时钟频率必须和智能卡时钟同步,应注意保证没有比短周期的40%更短的脉冲。
5 z4 c4 \, U1 f! k) u6 F4 u
.........
/ ^. W9 N! I& T- V1 N( V3 j+ i
想了解更多,请下载原文阅读

: p$ _: T; p3 G
$ `5 J% \( I  {. @/ o
收藏 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 手机版