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

使用 STM32F101xx 和 STM32F103xx 的 智能卡接口

[复制链接]
STMCU小助手 发布时间:2022-7-21 14:22
简介
  O+ P% L) [# s% K. H7 b/ z本文叙述了如何使用STM32F10xxx的USART模块实现智能卡接口解决方案,包括固件和硬件接口的实现。该固件和硬件包的目的是提供相应的资源,使用户使用USART模块的智能卡模式,更加便捷地开发应用程序。
2 i7 h  p* A3 K) f' d这个固件接口包括支持ISO 7816-3/4规范的库文件,同时提供基于ST的STM3210B-EVAL和STM3210E-EVAL评估板的应用程序示例。/ o. J( [; C; E6 {- D6 e# R+ m+ T

. @# Y  e1 B* [6 ]* O- ]6 Q术语表
' ?# X- O' U; \6 G小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。6 ]8 X$ l3 o$ P  r% z
中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。在ST的STM3210B-EVAL评估板上集成的即为中容量产品。, E! I- |/ A5 p2 w9 J4 G
大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控制器。在ST的STM3210E-EVAL评估板上集成的即为大容量产品。
* l3 ?) Y1 _1 E$ \4 Q. _. j/ @6 a2 B' j4 H
1 智能卡接口
& C- Z: G% V: S1.1 简介; _: I) ^) @" z9 V
智能卡接口是在USART模块的智能卡模式下开发的。关于USART寄存器的描述,请参阅STM32F10xxx参考手册。USART智能卡模式支持ISO 7816-3标准中定义的异步智能卡协议。! b1 B* A2 d; d) r: a
在使能智能卡模式的情况下,必须如下配置USART模块:
- J! r* Y2 U" b) F● 8位数据位加上奇偶校验  a, w, Y' m1 ^  P
● 0.5或1.5位停止位# N' c0 T% K5 ~, p0 y6 M
一个5位的预分频器和智能卡时钟发生器为智能卡提供时钟。智能卡接口的其他功能则由软件配合GPIO口实现。9 Y& B9 G- O0 ]  l0 r( t5 P
软件中不处理ISO 7816-3中定义的反向信号传输约定,反转数据和最高有效位优先的情况。
* v0 D8 p+ W9 r0 c2 A0 t9 G
1.2 外部接口7 p  t3 C6 D  x+ ?+ H0 ~2 f. X
2 a- D3 z: k# K' f7 n
SMSXLLOOS6UI3WPO`7$H[YK.png
1 M: k6 l# K( ~2 d/ z8 R, z
4 g% n5 a' R0 j) ~1 X+ TSmartcard_RST(智能卡复位)、Smartcard_3/5V(3V或5V)、Smartcard_CMDVCC (管理VCC)以 及Smartcard_OFF信号(智能卡检测信号)由软件控制GPIO的端口实现。为了使数据信号以正确的驱动连接到智能卡IO引脚,应当把USART_TX端口的GPIO位编程为复用开漏输出模式,为把时钟发生器连接到Smartcard_CLK的引脚,USART_CK端口的GPIO位应配置为复用推挽输出模式。% r+ ^- \7 y+ ?1 t

' l0 }  q0 Q; x+ l, L
1.3 协议
/ S8 q2 S6 g6 U6 ?7 `ISO 7816-3标准为异步协议定义了时间基准单位,称作ETU(elementary time units),它与输入至智能卡的时钟频率有关。一个ETU的长度是一个位时间。USART接收器和发送器在内部通过Rx_SW信号相连接。必须USART模块设置为智能卡模式,才能实现从STM32F10xxx向智能卡传输数据。
8 _$ W1 Z, {0 o" b9 I, v; M! O1 S3 O  x' P
! u7 Y* y! m5 N. g! `" J+ ~8 I9 m
EV@U[E1SY_LHOQ50EUD[$K6.png - H/ n' C" e( d# e& q4 ~3 Z0 {

# \0 d& u8 _8 n% E( {2 o3 D

* o7 h, I8 m# j+ P2 t% Z+ E1.4 智能卡时钟发生器
% @# z6 u  B9 `1 \智能卡时钟发生器为与之相连的智能卡提供时钟信号。智能卡使用这个时钟产生在智能卡与USART模块之间进行串行通信的波特率时钟。如果智能卡上有CPU,该时钟将同时提供给CPU使用。/ B, }& A; q) }; V& r# Q; H
智能卡接口操作要求,在卡上的CPU运行代码时可以调整时钟速率,这样可以改变通讯的波特率,或者可以提升智能卡的性能。在ISO7816-3标准中详细描述了,协商时钟速率和改变时钟速率的协议。
- d8 G2 v" S4 x4 i8 r( B& M这个时钟被用作智能卡内CPU的时钟,因此更新微控制器输出的时钟频率必须和智能卡时钟同步,应注意保证没有比短周期的40%更短的脉冲。2 b. f& I0 Z3 p, M2 f3 E+ v

2 J' d* n3 i) ^5 D6 _2 智能卡读卡器的硬件连接 9 @2 `8 T) w; S9 {: E: X( E2 h) |
ST8024接口芯片用于与智能卡相连。ST8024是一个针对异步3V、5V智能卡的,完善的低成本模拟接口,它位于智能卡和STM32F10xxx之间,只需要很少的外部部件来实现电源保护和控制功能。
. j# j  N7 }( c1 ^/ q2 Q
5 ]4 V9 O: P2 @! w5 y# K0 q

- q% V+ v; y4 x6 S9 u! H2 i {[(YZ}MIJKVI9I]Q`SPVK.png
) R5 g5 y, f: U- \0 J! c' J. E9 C( ?. L8 q4 h9 ~
图2 智能卡接口硬件连接
/ @3 _7 w5 a0 W; d9 N& \
/ A: X" x% T. A: a3 K" S, H 4)M@B`]C~HLP63OM`HWOB3K.png
! M3 V7 ~! f/ f0 ^/ {) n7 E
# a8 W& r# R$ A3 {1 B; S7 G; {5 I, @; p0 q
完整版请查看:附件
- \; M' l& [+ K6 q; f; s( x* o. E; w2 y- b, s
; x; y4 K- D3 q# H2 N1 o/ z2 R, @. q

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 手机版