SPI协议及通信方式

上传人:博****1 文档编号:445336533 上传时间:2023-02-21 格式:DOCX 页数:5 大小:37.47KB
返回 下载 相关 举报
SPI协议及通信方式_第1页
第1页 / 共5页
SPI协议及通信方式_第2页
第2页 / 共5页
SPI协议及通信方式_第3页
第3页 / 共5页
SPI协议及通信方式_第4页
第4页 / 共5页
SPI协议及通信方式_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《SPI协议及通信方式》由会员分享,可在线阅读,更多相关《SPI协议及通信方式(5页珍藏版)》请在金锄头文库上搜索。

1、SPI 協議及通信方式SPI:高速同步串行口SPI:高速同步串行。是一种标准的 四线同步双向串行总线。SPI ,是英语 Serial Peripheral interface 的 缩写,顾名思义就是 串行外围设备接 。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接主要应用在 EEPROM ,FLASH ,实时时钟, AD 转换器,还有数字信号处理器和 数字信号解码器 之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚 上只占用 四根线,节约 了芯片的管脚,同时为 PCB 的布局上节 省空间,提供方便,正是出于 这种简单易用 的特性,现在越来越多的芯片集

2、成了这 种通信协议,比如 AT91RM920 0.SPI总线系统是一种同步串行外设接,它可以使 MCU与各种外围设备以串行 方式进行通信 以交换信息。外围设置 FLASHRAM 、网络控制器、 LCD 显示驱动器、 A/D 转换器和 MCU 等。 SPI 总线系统 可直接与各个厂家生产的多种标 准外围器件直 接接,该接般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线 MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线 SS(有的SPI接 芯片带有中断信号线INT、有的SPI接芯片没有主机输出/从机输入数据线MOSI)。SPI 的通信原理 很简单,它以主从方式 工作,

3、这种模式通常有 个主设备和个 或多个从设备,需要至少 4 根线,事实上 3 根也可以(用于单向传输时,也就是半双 工方式)。也是所有基于SPI的设备共有的,它们是SDI (数据输入),SDO (数据 输出),SCK (时钟),CS (片选)。(1)SDO -主设备数据输出,从设备数据输入(2)SDI -主设备数据输入,从设备数据输出(3)SCLK -时钟信号,由主设备产生(4)CS -从设备使能信号,由主设备 控制其中 CS 是控制芯片是否被选中的 ,也就是说只有片选信号为预 先规定的使能信 号时(高电 位或低电位),对此芯片的 操作才有效。这就允许在同 总线上连接多个 SPI 设备成为可能。

4、接下来就 负责通讯的 3 根线了。通讯是通过数据交换 完成的,这里先要知道 SPI 是串行通讯协 议,也就是说数据是位位的 传输的。这就是 SCK 时钟线存在的原 因,由 SCK 提供时钟脉冲, SDI, SDO 则基于此脉冲完成数据 传输。数据输出通过 SDO 线,数据在时钟上升沿 或下降沿时改变,在紧接着的下 降沿或上升沿被读取。 完成位数据 传输,输入也使用同样原理。这样,在至少 8 次时钟信号的改变(上沿 和下沿为次 ),就可以完成 8 位数据的传输。要注意的 是, SCK 信号线只由主设备控制 ,从设备不能控制信号线。同 样,在 个基于SPI的设备中,至少有一个主控设备。这样传输的特

5、点:这样的传输方式有 一个优点 ,与普通的串行通讯 不同,普通的串 行通讯一次连续传送至少 8 位数据,而 SPI 允许数据位 位的传送,甚至允许暂停,因为 SCK 时钟线由主控设备控制, 当没有时钟跳 变时,从设备不采集或传送数据 。也就是说,主设备通过对 SCK 时钟 线的控制可以 完成对通讯的控制 。 SPI 还是个数据交换协议 :因为 SPI 的数据输入 和输出线独立 ,所以允许同时完成 数据的输入和输出。不同的 SPI 设备的实现方式不 尽相同 ,主要是数据改变和采集的 时间不同,在时钟 信号上沿或下沿采集有不同定义 , 具体请参考相 关器件的文档。在点对点 的通信中, SPI 接口

6、不 需要进行寻址操作 ,且为全双工通信 ,显得简单 高效。在多个从设备的系统中 ,每个从设备需 要独立的使能信号 ,硬件上比 I2C 系统 要稍微复杂 些。2.2、接口包括以下 四种信号:(1) MOSI -主器件数据输出,从器件数据输入(2) MISO -主器件数据输入,从器件数据输出(3) SCLK -时钟信号,由主器件产生(4) /SS -从器件使能信号,由主器件控制在点对点 的通信中 ,SPI 接口不需要进行寻址操作 ,且为全双工通信 ,显得简单高效2.3、接口的硬件连 接示意图在多个从器件的系统中,每个从器件需要独立的使能信号,硬件上比I2C系统要稍 微复杂些。SPI 接口在内部 硬

7、件实际上是两个简单的移位寄 存器,传输的数据为 8 位,在主器 件产生的从器 件使能信号和移位脉冲下 ,按位传输,高位在前,低位在后。 如下图所示 , 在 SCLK 的下 降沿上数据改变 ,同时位数据被存入 移位寄存器。2.4、性能特点AT91RM9200 的 SPI 接口主要由 4 个引脚构成: SPICLK、MOSI、MISO 及 /S S,其中SPICLK是整个SPI总线的公用时钟,MOSI、MISO作为主机,从机的输入 输出的标志, MOSI 是主机的输 出,从机的输入, MISO 是主机的输 入,从机的输出。 /SS 是从机的标志管 脚,在互相通信的两个 SPI 总线的器件, /SS

8、 管脚的电平低的是 从机,相反 /SS 管脚 的电平高的是主机。在个 SPI 通信系统中 ,必须有主机。 SPI 总线可以配置 成单主单从,单主多从,互为主 从。SPI 的片选可以扩充选 择 16 个外设 ,这时 PCS 输出 =NPCS, 说 NPCS03 接 4-16 译码器 ,这个译码器是需要外接 4-16 译码器 ,译码器的输入为 NPCS03 ,输出用于 1 6 个外设的选 择。SPI 接口的一个 缺点:没有指定的流控制,没有 应答机制确认是否接 收到数据 。2.5、SPI 协议举例SPI 是一个环形 总线结构,由 ss(cs)、 sck、sdi、sdo 构成, 其时序其实很简 单,

9、主要是在 sck 的控制下,两个双向移位寄 存器进行数据交换。假设下面的 8 位寄存器装的是待发送的数据 10101010 ,上升沿发送、下降沿 接 收、高位先发 送。那么第一 个上升沿来的时候 数据将会是 sdo=1 ;寄存器中的 10101010 左移一 位,后面补入送来的一位未知数 X,成了 0101010X。下降沿到来的时候,sdi上的电 平将锁存到寄 存器中去,那么这时寄存器 =0101010sdi ,这样在 8 个时钟 脉冲以 后, 两个寄存器的 内容互相交换一次。这样就完成 了一个 spi 时序。2.6、举例假设主机 和从机初始化就绪:并且主机的 sbuff=0Xaa ,从机的

10、sbuff=0X55 ,下 面将分步对 spi 的 8 个时 钟周期的数据情况演示一遍 :假设上升沿发送数据脉冲 主机 sbuff 从机 sbuff sdi sdo0 10101010 01010101 0 01上0101010X1010101X011下0101010010101011012上1010100X0101011X102下1010100101010110103上0101001X1010110X013下0101001010101101014上1010010X0101101X104下1010010101011010105上0100101X1011010X015下0100101010110

11、101016上1001010X0110101X106下1001010101101010107上0010101X1101010X017下0010101011010101018上0101010X1010101X108下010101011010101010这样就完 成了两个寄存器 8 位的交换,上面的上 表示上升沿、下表示下降沿, s di、sdo 相对于主机而 言的。其中 ss 引脚作为主机的时候,从机可以 把它拉底被动选 为从机,作 为从机的是时候,可以作为片 选脚用。根据以上分析,一 个完整的传送周 期是 16 位, 即两个字节,因为,首先主机 要发送命令过去,然后从机根据 主机的命 令准备数

12、据 ,主机在下一个 8位时钟周期才把 数据读回来。 SPI 总线是 Motorola 公 司推出的三线同步接,同步串行3线方式进行通信:一条时钟线SCK,条数据输 入线MOSI,条数据输出线MISO;用于CPU与各种外围器件进行全双工、同 步串 行通讯。 SPI 主要特 点有:可以同时发出 和接收串行数据 ;可以当作主机或从机工作 ;提 供频率可编程 时钟;发送结束 中断标志;写冲突保护 ;总线竞争保护等。 下图示出 SPI 总线工作的四种方式,其中使用的最为广泛的是 SPI0和SPI3方式(实线表示):SPI 总线四种工 作方式 SPI 模块为了和外 设进行数据交换, 根据外设工作要求 其输

13、出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有 重大的影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;如果 CPOL=1, 串行同步时钟 的空闲状态为高电平。时钟相位 (CPHA )能够配置用于选择两种不 同 的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上 升或下降)数据被采样;如果 CPHA=1 ,在串行同步时钟 的第二个跳变沿(上升或下 降)数据被采 样。 SPI 主模块和与之通信的外设备时 钟相位和极性应该致。SPI 总线包括 1 根串行同步 时钟信号线以及 2 根数据线。SPI 模块为了和 外设进行数据交换,根 据外设工

14、作要求,其输出 串行同步时钟极 性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果 CPO L=0, 串行同步时钟的空闲状态为低电 平;如果 CPOL=1 ,串行同步时钟的 空闲状态 为高电平。时钟相位(CPHA )能够配置用于选择两种不同的传输协议之一进行数 据 传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样; 如果 CPHA=1 ,在串 行同步时钟的第二个跳变沿(上升或下降)数据 被采样。 SPI 主 模块和与之通信的外设音时钟相位和极性应该 一致。SPI接时序如图3、图4所示。2.7、性能补充上文中最后一句话:SPI主模块和与之通信的外

15、 设备时钟相位和极性 应该一致。 个人理解这句 话有2层意思:其一,主设备SPI时钟和极性的配置应该 由外设来决定; 其二,二者的配置应该保持 一致,即主设备的 SDO 同从设备的 SDO 配置一致,主设 备的 SDI 同从设备的 SDI 配置一致。因为主从设备是在 SCLK 的控制下,同时发送 和接收数据, 并通过 2 个双向移位寄存器来交换数据 。工作原理演示如下图:上升沿主机SDO发送数据1同时从设备SDO发送数据0;紧接着在SCLK的 下降沿的时候从设备的SDI接收到了主机发送过来的数据1,同时主机也接收到了从 设备发送过来 的数据 0.2.8、SPI 协议心得SPI 接口时钟配 置心得:在主设备 这边配置 SPI 接口时钟的时候一定要弄清楚从 设备的时钟要求, 因为主 设备这边的时 钟极性和相位都是以从设备为基 准的。因此在时钟极性 的配置上一定要 搞清楚从设备 是在时钟的上升沿还是下降沿接 收数据,是在时钟的下 降沿还是上升沿 输出数据。但要注意的是,由于主设备的SDO连接从设备的SDI,从设备的SDO连 接主设备的SDI,从设备SDI接收的数据是主设备的SDO发送过来的,主设备SDI 接收

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号