嵌入式驱动之SPI接口

来源:互联网 发布:简单线切割3b编程 编辑:程序博客网 时间:2024/05/09 02:56

外围串行接口(SPI)是一种四线同步串行接口。数据通信在从器件选择或片选信号(CSB)为低时有效。数据由串行数据输入(MOSI),串行数据输出(MISO)和串行时钟信号(SCK)组成的三线接口进行传输。每个SPI系统由一个主机,一个或多个从机构成。主机是提供SPI时钟信号的微控制器,从机是接收SPI信号的任何集成电路。

 

一 下面是典型的SPI连接图

从图中可以知道下面几点:1)一个主芯片可以接多个SPI设备 2)多个SPI的SI,SO,SCK可以共用

 

二 引脚介绍 

    主机(如uP检测机等)与ASIC间使用四线串行系统实现传输。  
   MOSI  主机出从机入  uP —〉ASIC 
   MISO  主机入从机出     ASIC—〉  uP 
   SCK   串行时钟         uP —〉   ASIC 
   CSB   片选(低有效)     uP—〉    ASIC  
   每次数据传输开始于CSB信号的下降沿,结束于其上升沿。数据传输过程中,命令和数据由SCK和CSB信号控制,并遵循下列规则:
   1. 命令和数据传输时,高位在前,低位在后  
   2. 每个输出数据/状态位在SCK下降沿移出(MISO线) 
   3. SCK信号的上升沿数据输出(MOSI线)  
   4. 器件在CSB信号为低被选中,同时收到一个八比特命令。该命令指定了、将要进行的操作。  
   5. CSB信号上升沿时结束所有的数据传输,并复位内部计数器和命令字寄存器。  
   6. 如果接收到无效命令,则不会有数据写入IC,MISO将保持高阻直至CSB下降沿,并对串行通信重新初始化。  
   7. 除了表1中所列的SPI命令之外,为了能够执行其它命令,锁存器的内容须正确设置。如果其他命令输入时,锁存器的内容不正确,则数据不会传送到芯片上,并且在CSB信号下降沿到来之前,MISO线一直处于高阻态。  
   8. 发送完命令后,主机的的数据传送立即进行(在MOSI线),数据将写入ASIC的内部寄存器中。  
   9. 在SCK的上升沿,SPI命令的最后一位输入后,则在紧接的SCK的下降沿到来时,数据开始由MISO线输出。  
   10. 最高数据传输速率可超过1MHZ。  SPI命令可以是独立的指令也可以是指令与数据的组合。在指令与数据一起发送时,输入数据直接跟在指令之后,输出数据与主机的输入数据平行进行。

 

三 时序图

   

    注意:1)极性0,表示引脚默认电流为低,有用的时候会变高,而极性1,正好相反

                2)从机选择SSEL,即图1中MASTER中的SS0,SS1,SS2,SS3,会分别连接到SPI设备的CS上。默认情况下会拉高,当SPI设备可用时,对用SS会被拉低。