|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
弄懂SPI接口 9 J1 ?* C- a: k
* g; s" |# ?/ P* }PI(Serial Peripheral InteRFace,串行外设接口)是Motorola公司提出的一种同步串行数据传输标准,在很多器件中被广泛应用。; d8 D% i1 P6 N) C: T" L/ t& N
7 c7 i* l) U& {$ }, z& v' ]& k! W) I1. 接口
/ e' m/ C! [, c. x
! \# s8 R8 D% h e- ^8 {. p9 pSPI接口经常被称为4线串行总线,以主/从方式工作,数据传输过程由主机初始化。如图1所示,其使用的4条信号线分别为:' e! |, B# q4 S3 m4 |
5 ~5 s% A/ q, D2 E" I: y5 R
1) SCLK:串行时钟,用来同步数据传输,由主机输出;
) t- [4 b1 c. r% b& I
% Z; Z4 }( z. o( S* T- U9 B I1 k2 ?2) MOSI:主机输出从机输入数据线;
% X3 R5 ~ w3 A! M7 ^! j7 e) O; f2 Z
3) MISO:主机输入从机输出数据线;, x% }# Z" @/ |5 W5 F' b
, d5 e+ n' \* x* V1 ~$ `2 k
4) SS:片选线,低电平有效,由主机输出。
; s; Q' Z% s9 O( w+ ?- o8 O6 Q: J. v$ G+ T9 k" z8 W) B
在SPI总线上,某一时刻可以出现多个从机,但只能存在一个主机,主机通过片选线来确定要通信的从机。这就要求从机的MISO口具有三态特性,使得该口线在器件未被选通时表现为高阻抗。
+ z0 ^; i# k) l
4 f9 y# |5 ?) o9 {% p' U9 o工程师博客:弄懂SPI接口(电子工程专辑)9 i7 `9 C" K# A. V$ m4 w n
/ Z& _+ ]8 p U8 u6 w
2. 数据传输
% l6 E9 i X8 H3 a$ l1 t; k
) \/ y# w* D- ]: t( I2 E6 z; P在一个SPI时钟周期内,会完成如下操作:# P3 X+ o$ v1 [- [- g
- N, \" v7 }# f: ^4 U' E0 t* j1) 主机通过MOSI线发送1位数据,从机通过该线读取这1位数据;- ^1 r6 k7 {/ M0 h w7 X5 E
& {6 j# G) @7 r2) 从机通过MISO线发送1位数据,主机通过该线读取这1位数据。
0 t2 l' @+ g' S$ K! j- u$ K( v" v' i8 _( l" i- C( E# c/ ]2 J* Q
这是通过移位寄存器来实现的。如图2所示,主机和从机各有一个移位寄存器,且二者连接成环。随着时钟脉冲,数据按照从高位到低位的方式依次移出主机寄存器和从机寄存器,并且依次移入从机寄存器和主机寄存器。当寄存器中的内容全部移出时,相当于完成了两个寄存器内容的交换。
' k; |3 ?. K) D* Y( _* R
% r9 J! E2 R- r9 ]# u. G! o工程师博客:弄懂SPI接口(电子工程专辑)+ c% M( s1 P5 B- R
/ ]% s W+ n% r) v) s3. 时钟极性和时钟相位3 M [+ ]* I1 c2 {
: q" Y9 V( u' y* M. W5 e- g. Q在SPI操作中,最重要的两项设置就是时钟极性(CPOL或UCCKPL)和时钟相位(CPHA或UCCKPH)。时钟极性设置时钟空闲时的电平,时钟相位设置读取数据和发送数据的时钟沿。0 b, W# l' W; o3 I" d
* u8 B0 t* O& R. d# I主机和从机的发送数据是同时完成的,两者的接收数据也是同时完成的。所以为了保证主从机正确通信,应使得它们的SPI具有相同的时钟极性和时钟相位。
; Z9 V4 d' M( J- o1 H2 K9 c
. w4 w* g5 m9 w, _! F0 }" V+ W举例来说,分别选取MSP430控制器和OLED驱动SH1101A为主从机,图3和图4为它们的SPI时序。由图4可知,SH1101A的SPI时钟空闲时为高电平,并且在后时钟沿接收数据,则MSP430控制器SPI的设置应与此保持一致。从图3中可以看出,要使得时钟在空闲时为高电平,应将UCCKPL置1;要使得在后时钟沿接收数据,应将UCCKPH清零。
/ ?/ l. p& `; T5 \7 U: e/ T( v2 m* S, e
工程师博客:弄懂SPI接口(电子工程专辑)
: Y5 X" J7 \, P" \% s/ u0 C" G8 A/ F7 W
工程师博客:弄懂SPI接口(电子工程专辑)4 ^0 H, ]' D+ V O, s6 J# e+ ^
6 S4 i: N o5 ^% M, T6 A- f4 X5 X4. 优缺点
/ t* W' i" T* r8 {3 t
# o) B( E) }% f% ^+ r/ T7 L# DSPI接口具有如下优点:1 h4 m6 V3 U3 D( t& @7 G9 L: L9 n; H% [
$ b5 ~" i" [1 ^* h) @. h1) 支持全双工操作;
2 X% C0 \1 z1 u# S. b' V& ^# G4 e& _2 D- D/ C) b) t
2) 操作简单;/ i# d/ j' \8 }
. b; W- ~" A q( }3) 数据传输速率较高。
% q+ r% y3 s. o8 G/ {
! \/ i( J+ k) L: V- W2 Y同时,它也具有如下缺点:( Q6 p, [1 I# G, a- ], j7 n5 U0 _
& }! |6 {9 g9 S
1) 需要占用主机较多的口线(每个从机都需要一根片选线);
$ X, M( V8 x i% r
/ f0 e/ G, r( o ]) Q' i2) 只支持单个主机。 | . ]% M8 P4 i2 W0 R
|
|