SPI协议简介

转载 2012年03月30日 00:53:42

SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如P89LPC900.

SPI,是一种高速的,全双工,同步的通信总线,其工作模式有两种:主模式和从模式,无论那种模式,都支持3Mbit/s的速率,并且还具有传输完成标志和写冲突保护标志。到目前为止,我使用过的具有SPI总线的器件,就是存储芯片Eprom:at25128,在使用过程中,发现的确是有这种总线的优点。下面以P89LPC900单片机的SPI总线来解释SPI总线的通用使用规则。    

LPC900单片机的SPI接口主要由4个引脚构成:SPICLK、MOSI、MISO及/SS,其中SPICLK是整个SPI总线的公用时钟,MOSI、MISO作为主机,从机的输入输出的标志,MOSI是主机的输出,从机的输入,MISO是主机的输入,从机的输出。/SS是从机的标志管脚,在互相通信的两个SPI总线的器件,/SS管脚的电平低的是从机,相反/SS管脚的电平高的是主机。在一个SPI通信系统中,必须有主机。

SPI总线可以配置成单主单从,单主多从,互为主从。今以互为主从模式作为讲解:

要进行SPI互为主从操作,必须遵照以下步骤: 

1 对A、B进行初始化,均设为主机(需要进行以下操作)。

  a) SPI端口初始化为准双向。

  b) SPCTL配置为0x50,SSIG=0,SPEN=1,MSTR=1。

  c) 清除SPSTAT中的SPIF及WCOL标志位为0。

  d) 如果需要使用SPI中断,可使能相应中断位。

2 将A上一个引脚连接到B的/SS引脚上,然后拉低/SS,可将B强行置为从机模式,同时B机会发生以下变化:

  a) B机的MSTR位自动清0。

  b) B机的MOSI及SPICLK强行变为输入模式,MISO则变为输出模式。

  c) B机SPIF位置位。

  d) 如果SPI中断使能,B机将执行SPI中断服务程序。

3 B机可设置为查询接收或中断接收方式,以时刻准备接收由A机发送过来的数据,要使B机恢复为主机,必须完整执行步骤1。 本示例中,通过两块DP932 实验板构成了SPI互为主从测试系统。  

程序中应注意的问题:

1 程序中应注意对首次拉低SS引脚进行处理:当A机首次通过B_SS将B机设置为从机后,从机的SBIF位会置位(会被认为完成一次传输),如果这之前,使能了SPI中断,则从机则会执行相应的中断服务程序(本示例程序中,当B机的SS引脚被拉为低电平,B机的SBIF首次置位进行处理)。

2 关于从机恢复为主机的问题:互为主从模式中,当B机被A机设置为从机后,CPCTL寄存器中MSTR位被清除为0,且SPIF被置1,MOSI和SPICLK强制变为输入模式,MISO强制变为输出模式。要想恢复为主机,必须执行以下操作:

  a) 将MSTR位置1,SPIF位清0。

  b) 将MOSI,SPICLK,MISO及SS重新恢复为准双向口。

  c) 在a)、b)之前,需要注意将B_SS拉高,如果其一直为低电平,即使完成a)、b)操作,也会将B机重新设置为从机。

3 在SPI总线的使用过程中,可以通过DORD(SPI数据顺序选择位),CPOL(SPI时钟极性选择位),CPHA( SPI时钟相位选择位)控制主/从机传输格式。对于本实验,可以忽略这些位的影响,但是在使用一些其他SPI器件时,必须根据从器件数据手册的要求,对SPI数据的传输顺序,SPI的时钟极性,及SPI的时钟相位进行正确的设置。

4 一些SPI的应用系统,由于硬件的设计并不是很合理,所以有时SPI通信不正常(传输数据出错,或其他情况),你可以试着降低SPI总线的传输速率,或者调节一些SPI时钟极性及相位,以使传输稳定。

SPI协议原理简介及分析

一、概述. **SPI**, Serial Perripheral Interface, 串行外围设备接口, 是 Motorola 公司推出的一种同步串行接口技术. SPI 总线在物理上是通过接在外围...

SPI协议简介

SPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM,FLAS...

SPI协议简介

一 SPI协议概括 SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。S...

嵌入式系统的通讯协议:I2C通讯、SPI通讯、USB通讯、SDIO 通讯、I2S通讯、PCI通讯简介

本文简单的描述了在实际应用中会碰到的一些总线协议,让各位读者对实际系统中的总线有个概念上的理解。 一、I2C          I2C(Inter-Integrated Circuit)总线是一...

SPI协议简介

一 SPI协议概括 SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口...

SPI协议简介

SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚...

SPI协议简介

一 SPI协议概括SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要...
  • Augusdi
  • Augusdi
  • 2011年04月02日 20:42
  • 1214

SPI协议简介

一 SPI协议概括 SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI...

SPI协议简介

SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片 ...
  • zhjuan
  • zhjuan
  • 2011年02月15日 11:03
  • 311

SPI通讯协议简介

SPI传输协议 SPI简介:    SPI:高速同步串行口。是一种标准的四线同步双向串行总线。     PI,是英语Serial Peripheral interface的缩写,顾名思义就是串行...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SPI协议简介
举报原因:
原因补充:

(最多只允许输入30个字)