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

使用 STM32F101xx 和 STM32F103xx 的 智能卡接口

[复制链接]
STMCU小助手 发布时间:2022-7-21 14:22
简介
4 \  R% ?" Z& s+ x: S本文叙述了如何使用STM32F10xxx的USART模块实现智能卡接口解决方案,包括固件和硬件接口的实现。该固件和硬件包的目的是提供相应的资源,使用户使用USART模块的智能卡模式,更加便捷地开发应用程序。
7 s9 H5 F% P+ E/ ^, Y这个固件接口包括支持ISO 7816-3/4规范的库文件,同时提供基于ST的STM3210B-EVAL和STM3210E-EVAL评估板的应用程序示例。
. v, R) ^' _; m7 B! [$ n  g
! [# Y. o' P1 P: G; `0 j) I术语表
5 `/ j: S- C( {4 d. ^小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。" S, ], s& n- f/ p9 A
中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。在ST的STM3210B-EVAL评估板上集成的即为中容量产品。
8 _. N; P5 p( n( \6 t& ?大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控制器。在ST的STM3210E-EVAL评估板上集成的即为大容量产品。  \9 ?* u0 }/ k# o0 ~
) u. f; C* s$ V: j5 [
1 智能卡接口
# c4 x- t- y; H+ H4 c1.1 简介0 d. G* s% L9 I/ p6 Y! p
智能卡接口是在USART模块的智能卡模式下开发的。关于USART寄存器的描述,请参阅STM32F10xxx参考手册。USART智能卡模式支持ISO 7816-3标准中定义的异步智能卡协议。, ^" ~2 z+ c% ]$ L
在使能智能卡模式的情况下,必须如下配置USART模块:. @; V! ?, P2 o8 o7 p) U3 q
● 8位数据位加上奇偶校验
2 q  v. L4 J0 U* ?● 0.5或1.5位停止位
, d* ], z, {  J" S0 h& Q+ c一个5位的预分频器和智能卡时钟发生器为智能卡提供时钟。智能卡接口的其他功能则由软件配合GPIO口实现。# l3 t: i  t* @6 O- `& t9 n4 @
软件中不处理ISO 7816-3中定义的反向信号传输约定,反转数据和最高有效位优先的情况。5 {9 E% V: b$ ~( Z- T7 k0 t- f' `
1.2 外部接口
6 Q3 }( m* ?- _5 \* p7 O; C/ l
7 S! N9 G6 j& G% r+ o& Z SMSXLLOOS6UI3WPO`7$H[YK.png
: Q4 m( \6 ~& ], n8 F' l8 K' w% L8 V  c) x) v
Smartcard_RST(智能卡复位)、Smartcard_3/5V(3V或5V)、Smartcard_CMDVCC (管理VCC)以 及Smartcard_OFF信号(智能卡检测信号)由软件控制GPIO的端口实现。为了使数据信号以正确的驱动连接到智能卡IO引脚,应当把USART_TX端口的GPIO位编程为复用开漏输出模式,为把时钟发生器连接到Smartcard_CLK的引脚,USART_CK端口的GPIO位应配置为复用推挽输出模式。
5 v3 A! A/ k/ Y7 }, d% y; ?/ O0 [
, s2 y, U1 H, W4 A" W
1.3 协议- L* K8 X9 z7 C( h% e( ?- L& y$ z
ISO 7816-3标准为异步协议定义了时间基准单位,称作ETU(elementary time units),它与输入至智能卡的时钟频率有关。一个ETU的长度是一个位时间。USART接收器和发送器在内部通过Rx_SW信号相连接。必须USART模块设置为智能卡模式,才能实现从STM32F10xxx向智能卡传输数据。
2 J$ J" t! v3 D8 f& J# B3 X3 x0 m
$ W0 w- Z" p+ h9 q: Z

  n0 u7 A3 U" C; V' l2 F EV@U[E1SY_LHOQ50EUD[$K6.png : s/ X% g% K* R& G( ?! m

* b1 ^/ {: x, O2 J

' z. T+ }3 P, X% y1.4 智能卡时钟发生器1 L8 k' K1 b; k0 L
智能卡时钟发生器为与之相连的智能卡提供时钟信号。智能卡使用这个时钟产生在智能卡与USART模块之间进行串行通信的波特率时钟。如果智能卡上有CPU,该时钟将同时提供给CPU使用。
4 x4 p+ S2 @: W) \4 `* K: c9 S智能卡接口操作要求,在卡上的CPU运行代码时可以调整时钟速率,这样可以改变通讯的波特率,或者可以提升智能卡的性能。在ISO7816-3标准中详细描述了,协商时钟速率和改变时钟速率的协议。
! o; v; O3 w' F; Z8 N这个时钟被用作智能卡内CPU的时钟,因此更新微控制器输出的时钟频率必须和智能卡时钟同步,应注意保证没有比短周期的40%更短的脉冲。, b' q/ y: g  W4 J

$ {; L! b; W6 H( r# F$ E/ D1 e" X0 |, T2 智能卡读卡器的硬件连接
' Q3 [8 V) }4 X; G$ r; NST8024接口芯片用于与智能卡相连。ST8024是一个针对异步3V、5V智能卡的,完善的低成本模拟接口,它位于智能卡和STM32F10xxx之间,只需要很少的外部部件来实现电源保护和控制功能。
6 J8 f% m5 ?6 Y: j+ _- O7 }1 g1 b# A2 K5 J' Q
6 B) x1 ?8 n* O- |" Z/ h! M
{[(YZ}MIJKVI9I]Q`SPVK.png
/ p7 O: c$ T' x, c: a( j# j1 j: x9 X* f. U3 i9 _5 }! ?/ w$ a
图2 智能卡接口硬件连接
0 t: U9 I1 |( |1 o
& W" h% [, ?9 V' V9 C9 x8 ? 4)M@B`]C~HLP63OM`HWOB3K.png 1 E* I* x1 }) P; x3 a
4 S( F0 x7 s" G1 A/ P

: W" t3 J3 w* w1 {* j完整版请查看:附件
4 Q0 C( `$ ?4 v4 @6 R1 g! L/ u! S" |- |. E5 q* K, D

! T" m( j' |' z* T, ~# I

CD00166510_ZHV2.pdf

下载

715.5 KB, 下载次数: 22

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

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版