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

使用 STM32F101xx 和 STM32F103xx 的 智能卡接口

[复制链接]
STMCU小助手 发布时间:2022-7-21 14:22
简介! M! M3 o; Z; t0 c. y* n
本文叙述了如何使用STM32F10xxx的USART模块实现智能卡接口解决方案,包括固件和硬件接口的实现。该固件和硬件包的目的是提供相应的资源,使用户使用USART模块的智能卡模式,更加便捷地开发应用程序。
( G$ J: D# |# U& V" c% B这个固件接口包括支持ISO 7816-3/4规范的库文件,同时提供基于ST的STM3210B-EVAL和STM3210E-EVAL评估板的应用程序示例。: i5 H) o& P& Z% g

" P: z" p: }- `1 {. i术语表
6 U2 w: x" _5 a& U& @. `% \' ?小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。
8 v, n+ B4 \. i% q$ ?" D2 c中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。在ST的STM3210B-EVAL评估板上集成的即为中容量产品。9 b$ {$ ~* O% U% e1 s( [. L
大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控制器。在ST的STM3210E-EVAL评估板上集成的即为大容量产品。
1 @) V( X+ C8 J" P6 }: N, I/ Z
& r9 @+ e. l6 B) B; Z1 智能卡接口* G8 H' c0 {% a# }
1.1 简介
- z3 l9 o5 c; z4 W3 D5 q/ O* v2 l+ ?智能卡接口是在USART模块的智能卡模式下开发的。关于USART寄存器的描述,请参阅STM32F10xxx参考手册。USART智能卡模式支持ISO 7816-3标准中定义的异步智能卡协议。
7 d6 U3 o# y) c) D% l在使能智能卡模式的情况下,必须如下配置USART模块:' a: A- z0 q8 t
● 8位数据位加上奇偶校验% p* F- R. G& k" x
● 0.5或1.5位停止位6 J0 i! \7 z. N8 X2 _" a4 e: ?7 a
一个5位的预分频器和智能卡时钟发生器为智能卡提供时钟。智能卡接口的其他功能则由软件配合GPIO口实现。
! t3 Z' t& R5 ^, z  |: K软件中不处理ISO 7816-3中定义的反向信号传输约定,反转数据和最高有效位优先的情况。; q9 J7 F$ o2 J' a6 H, p3 ~
1.2 外部接口
& p! t5 x8 H3 D* [0 \( R3 Q8 `' \- {. r- I- Z4 R% Q1 p
SMSXLLOOS6UI3WPO`7$H[YK.png
3 \0 y5 W8 |( ^
' g! }- o0 B) Q' r2 d6 KSmartcard_RST(智能卡复位)、Smartcard_3/5V(3V或5V)、Smartcard_CMDVCC (管理VCC)以 及Smartcard_OFF信号(智能卡检测信号)由软件控制GPIO的端口实现。为了使数据信号以正确的驱动连接到智能卡IO引脚,应当把USART_TX端口的GPIO位编程为复用开漏输出模式,为把时钟发生器连接到Smartcard_CLK的引脚,USART_CK端口的GPIO位应配置为复用推挽输出模式。
: U2 q& J8 a- X8 s; d2 f( f% _) }) K4 L6 G  Y3 M# M: j
1.3 协议' Z0 f& @" [( \3 q/ Y8 Y$ [; m, ?
ISO 7816-3标准为异步协议定义了时间基准单位,称作ETU(elementary time units),它与输入至智能卡的时钟频率有关。一个ETU的长度是一个位时间。USART接收器和发送器在内部通过Rx_SW信号相连接。必须USART模块设置为智能卡模式,才能实现从STM32F10xxx向智能卡传输数据。3 t0 i: F# U1 X, P+ x" D- p" J
* h; B7 V$ w% M! r
# T( X) V# G. X8 |  U1 L
EV@U[E1SY_LHOQ50EUD[$K6.png ( \1 U: y  c/ P1 `6 M1 }1 s
+ l) k, F# ~' m
: y5 U9 C0 e  ~) s( b
1.4 智能卡时钟发生器% V1 G8 I4 b9 u) q5 z* |4 ]* Z8 k
智能卡时钟发生器为与之相连的智能卡提供时钟信号。智能卡使用这个时钟产生在智能卡与USART模块之间进行串行通信的波特率时钟。如果智能卡上有CPU,该时钟将同时提供给CPU使用。
0 b% Z. p: L  S+ y+ L! r智能卡接口操作要求,在卡上的CPU运行代码时可以调整时钟速率,这样可以改变通讯的波特率,或者可以提升智能卡的性能。在ISO7816-3标准中详细描述了,协商时钟速率和改变时钟速率的协议。: |+ t. o- {# S* X; `4 Y
这个时钟被用作智能卡内CPU的时钟,因此更新微控制器输出的时钟频率必须和智能卡时钟同步,应注意保证没有比短周期的40%更短的脉冲。
9 v- \: \: B6 N7 {: E1 s+ E: x
! }/ D# j2 z: _/ x& O2 智能卡读卡器的硬件连接 ' _& Y0 @" K3 V6 W5 R
ST8024接口芯片用于与智能卡相连。ST8024是一个针对异步3V、5V智能卡的,完善的低成本模拟接口,它位于智能卡和STM32F10xxx之间,只需要很少的外部部件来实现电源保护和控制功能。
$ ^& ~8 J8 a$ S7 m( X' X6 D# t
* B* o1 ^& I! M4 f, W
" e) P- Y% P$ a) `' o) X8 B
{[(YZ}MIJKVI9I]Q`SPVK.png ! X& Q! S% v6 Q- u. a) z5 a6 F! ]
# k/ E; Z8 U+ L! L7 m- m" W5 @
图2 智能卡接口硬件连接% t/ {. B! S, L

, K2 Z" D8 W2 |' C, N 4)M@B`]C~HLP63OM`HWOB3K.png 7 J( c! s% ]" F/ y- w1 \

6 M+ A6 J4 F! r: n1 ?2 `( s& D2 p  O5 g* V2 r! X
完整版请查看:附件
, m% Z9 z1 g+ G) _" m8 U3 ^2 V6 e; _& y9 k: R
9 N, s, {( ]" f5 E8 t/ ]

CD00166510_ZHV2.pdf

下载

715.5 KB, 下载次数: 8

收藏 评论0 发布时间:2022-7-21 14:22

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版