文档详情

SPI全面介绍以及学习心得

ss****gk
实名认证
店铺
DOC
148KB
约11页
文档ID:235989658
SPI全面介绍以及学习心得_第1页
1/11

SPI基础介绍SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接 口是Motorola首先在其MC68HCXX系列处理器上定义的SPI接口主要应用在 EEPROM, FLASH,实吋吋钟,AD转换器,还有数字信号处理器和数字信号解码 器之间SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上 只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便, 正是出于这种简单易用的特性,现在越來越多的芯片集成了这种通信协议,比如 AT91RM9200.SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串 行方式进行通信以交换信息外囤设置FLASHRAM.网络控制器、LCD显示驱动 器、A/D转换器和MCU等SPI总线系统可直接与各个厂家生产的多种标准外围 器件直接接口,该接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输 出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线 SS(有的SPI接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输 出/从机输入数据线MOSI)。

SPI的通信原理很简单,它以主从方式工作,这种模式通常有一•个主设备和 一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)也是 所有基于SPI的设备共有的,它们是SDI (数据输入),SDO (数据输出),SCK (吋 钟),CS (片选)1) SDO -主设备数据输出,从设备数据输入(2) SDI -主设备数据输入,从设备数据输出(3) SCLK -吋钟信号,由主设备产生(4) CS -从设备使能信号,由主设备控制其中CS是控制芯片是否被选中的,也就是说貝有片选信号为预先规定的使 能信号时(高电位或低电位),对此芯片的操作才有效这就允许在同一总线上 连接多个SPI设备成为可能接下來就负责通讯的3根线了通讯是通过数据交换完成的,这里先要知道 SPI是申行通讯协议,也就是说数据是一位一位的传输的这就是SCK吋钟线存 在的原因,由SCK提供吋钟脉冲,SDI, SDO则基于此脉冲完成数据传输数据 输出通过SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上 升沿被读取完成一•位数据传输,输入也使用同样原理这样,在至少8次时钟 信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。

要注意的是,SCK信号线只由主设备控制,从设备不能控制信号线同样, 在一个基于SPI的设备中,至少有一个主控设备这样传输的特点:这样的传输 方式有一个优点,与普通的审行通讯不同,普通的串行通讯一次连续传送至少8 位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCK时钟线由主 控设备控制,半没有吋钟跳变吋,从设备不采集或传送数据也就是说,主设备 通过对SCK吋钟线的控制可以完成对通讯的控制SPI还是一个数据交换协议: 因为SPI的数据输入和输出线独立,所以允许同吋完成数据的输入和输出不同 的SPI设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在时钟信 号上沿或下沿采集有不同定义,具体请参考相关器件的文档在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得 简单高效在多个从设备的系统中,每个从设备需要独立的使能信号,硬件上比 I2C系统要稍微复杂一些最后,SPI接口的一•个缺点:没有指定的流控制,没有应答机制确认是否接 收到数据AT91RM9200 的 SPI 接口主要由 4 个引脚构成:SPICLK. MOSL MISO 及 /SS, 其中SPICLK是整个SPI总线的公用时钟,MOSI、MISO作为主机,从机的输入输 出的标志,MOSI是主机的输出,从机的输入,MISO是主机的输入,从机的输 出。

/SS是从机的标志管脚,在互相通信的两个SPI总线的器件,/SS管脚的电平 低的是从机,相反/SS管脚的电平高的是主机在一个SPI通信系统中,必须有 主机SPI总线可以配置成单主单从,单主多从,互为主从SPI的片选可以扩充选择16个外设,这吋PCS输出二NPCS,说NPCSO~3接4-16 译码器,这个译码器是需要外接4・16译码器,译码器的输入为NPCS0-3,输出用 于16个外设的选择SPI协议举例 SPI是一•个环形总线结构,由ss (cs)、sck、sdi、sdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位 寄存器进行数据交换假设下面的8位寄存器装的是待发送的数据10101010,上升沿发送、下降 沿接收、高位先发送那么第一个上升沿來的吋候 数据将会是sdo=l;寄存器中的10101010左移 一位,后面补入送来的一位未知数x,成了 0101010X下降沿到来的时候,sdi 上的电平将锁存到寄存器中去,那么这吋寄存器=0101010sdi,这样在8个吋钟 脉冲以后,两个寄存器的内容互相交换一次这样就完成里一个spi吋序举例:假设主机和从机初始化就绪:并且主机的sbuff=Oxaa,从机的sbuff二0x55, 下面将分步对spi的8个吋钟周期的数据情况演示一遍:假设上升沿发送数据脉冲 主机sbuff从机sbuff sdi sdo0 10101010 010101010 01 ± 0101010X 1010101x0 11 下 01010100 10101011 0 12 ± 1010100x0101011x102 下 10101001 01010110 1 03 ± 0101001X 1010110x0 13 下 01010010 10101101 0 14± 1010010x0101101x104 下 10100101 01011010 1 05 ± 0100101X 1011010x0 15 下 01001010 10110101 0 16± 1001010x0110101x106 下 1001010101101010 107± 0010101x1101010x0 17 下 00101010 11010101 0 18± 0101010X 1010101X 1 08 下 01010101 10101010 10这样就完成了两个寄存器8位的交换,上面的上表示上升沿、下表示下降沿, sdi、sdo相对于主机而言的。

其中ss引脚作为主机的吋候,从机可以把它拉底 被动选为从机,作为从机的是吋候,可以作为片选脚用根据以上分析,一个完 整的传送周期是16位,即两个字节,因为,首先主机要发送命令过去,然后从 机根据主机的命令准备数据,主机在下-•个8位时钟周期才把数据读回來SPI 总线是Motorola公司推出的三线同步接口,同步串行3线方式进行通信:一条吋 钟线SCK, 一条数据输入线MOSI, 一条数据输出线MISO;用于CPU与各种外围 器件进行全双工、同步串行通讯SPI主要特点有:可以同吋发出和接收串行数据; 可以卅作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护; 总线竞争保护等SPI总线工作的四种方式,其中使用的最为广泛的是SPIO和SPI3方式SPI总线四种工作方式SPI模块为了和外设进行数据交换,根据外设工作要求, 其输出串行同步吋钟极性和和位可以进行配置,吋钟极性(CPOL)对传输协议 没有重大的影响如果CPOL=0,串行同步吋钟的空闲状态为低电平;如果 CPOL=1,串行同步时钟的空闲状态为高电平时钟相位(CPHA)能够配置用于 选择两种不同的传输协议之一进行数据传输。

如果CPHA二0,在串行同步吋钟的 第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在申行同步吋钟的第 二个跳变沿(上升或下降)数据被采样SPI主模块和与之通信的外设备吋钟相 位和极性应该一致SPI总线包括1根串行同步时钟信号线以及2根数据线SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步吋 钟极性和相位可以进行配置,吋钟极性(CPOL)对传输协议没有重大的影响 如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL二1,串行同步吋钟 的空闲状态为高电平吋钟相位(CPHA)能够配置用于选择两种不同的传输协 议之一进行数据传输如果CPHA二0,在串行同步时钟的第一•个跳变沿(上升或 下降)数据被采样;如果CPHA=1,在申行同步吋钟的第二个跳变沿(上升或下 降)数据被采样SPI主模块和与之通信的外设音吋钟相位和极性应该一致SPI 接口吋序如图3、图4所示补充:上文中最后一句话:SPI主模块和与之通信的外设备吋钟相位和极性应该- 致个人理解这句话有2层意思:其一,主设备SPI时钟和极性的配置应该由外 设来决定;其二,二者的配置应该保持一致,即主设备的SDO同从设备的SDO 配置…致,主设备的SDI同从设备的SDI配置…致。

因为主从设备是在SCLK的 控制下,同吋发送和接收数据,并通过2个双向移位寄存器来交换数据工作原 理演示如下图:上升沿主机SDO发送数据2,同吋从设备SDO发送数据0;紧接着在SCLK 的下降沿的时候从设备的SDI接收到了主机发送过来的数据1,同时主机也接收 到了从设备发送过来的数据0. SPI协议心得 SPI接口吋钟配置心得:在主设备这边配置SPI接口时钟的时候一定要弄清楚从设备的时钟要求,因 为主设备这边的吋钟极性和相位都是以从设备为基准的因此在时钟极性的配置 上一定要搞清楚从设备是在时钟的上升沿还是下降沿接收数据,是在吋钟的下降 沿还是上升沿输出数据但要注意的是,由于主设备的SDO连接从设备的SDI, 从设备的SDO连接主设备的SDI,从设备SDI接收的数据是主设备的SDO发送过 来的,主设备SDI接收的数据是从设备SDO发送过来的,所以主设备这边SPI 时钟极性的配置(即SDO的配置)跟从设备的SDI接收数据的极性是相反的,跟 从设备SDO发送数据的极性是和同的若主设备在时钟的下降沿发送数据,从设备在时钟的上升沿接收数据因此 主设备这边SPI时钟极性应该配置为下降沿有效—.SPI总线简介串行外围设备接口 SPI (serial peripheral interface)总线技术是Motorola公 司推出的一种同步串行接口。

SPI用于CPU与各种外围器件进行全双工、同步串行通讯它只需四条线就 可以完成MCU与各种外围器件的通讯,这四条线是:串行吋钟线(CSK)、主机 输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)、低电平有 效从机选择线CSo半SPI工作时,在移位寄存器中的数据逐位从输出引脚(MOSI) 输出(高位在前),同时从输入引脚(MISO)接收的数据逐位移到移位寄存器(高 位在前)发送一个字节后,从另一个外围器件接收的字节数据进入移位寄存器 中即完成一个字节数据传输的实质是两个器件寄存器内容的交换主SPI的吋钟信号(SCK)使传输同步其典型系统框图如下图所示—.SPI总线主要特点•全双工;•可以当作主机或从机工作;•提供频率可编程时钟;•发送结束中断标志;•写冲突保护;•总线竞争保护等三.SPI总线工作方式SPI总线有四种工作方式,其中使用的最为广泛的是SPIO和SPI3方式(实线 表示):四种工作方式吋序分别为:吋序详解:CPOL:时钟极性选择,为0时SPI总线空闲为低电平,为1时SPI总线空闲 为高电平CPHA:吋钟相位选择,为0吋在SCK第一个跳变沿采样,为1时在SCK第 二个跳变沿采样工作方式1:当CPHA二0、CPOL=0时SPI总线工作在方式lo MISO引脚上的数据在第一个 SPSCK沿跳。

下载提示
相似文档
正为您匹配相似的精品文档