EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
SPI总线SPI总线是同步、双向、全双工的4线式串行接口总线,最早由Motorola公司提出。SPI是由“单个主设备+多个从设备”构成的系统。需要说明的是:在系统中,只要任意时刻只有一个主设备是处于激活状态的,就可以存在多个SPI主设备。为了实现通信,SPI共有4条信号线,分别是: (1)主设备出、从设备入(Master Out Slave In,MOSI):由主设备向从设备传输数据的信号线,也称为从设备输入(Slave Input/Slave Data In,SI/SDI)。 (2)主设备入、从设备出(Master In Slave Out,MISO):由从设备向主设备传输数据的信号线,也称为从设备输出(Slave Output/Slave Data Out,SO/SDO)。 (3)串行时钟(Serial Clock,SCLK):传输时钟信号的信号线。 (4)从设备选择(Slave Select,SS):用于选择从设备的信号线,低电平有效。 图2-27显示了SPI总线上主设备和从设备的连接关系图。 主设备负责产生时钟信号,并通过将相应从设备的从设备选择信号拉低为低电平,选通所需的从设备。在没有选通的时候,所有从设备的数据输出线MISO都悬空处于高阻态。 SPI总线上的串行数据传输是用户可配置的。SPI设备包含特定的寄存器组,可以保存所需的配置。串行外围设备的控制寄存器用于保存各种配置参数,比如器件的主/从选择、通信波特率的选择、时钟信号控制等。状态寄存器则用于保存各种通信条件的状态,实现所需的数据传输和数据接收。 SPI的工作是基于移位寄存器的;为了实现数据传输或数据接收,主设备和从设备包含了专用移位寄存器。移位寄存器的长度取决于具体设备,通常是8的整数倍。数据在从主设备传输到从设备的过程中,主设备移位寄存器中的数据从MOSI管脚移出,然后通过从设备的MOSI管脚,输入到从设备的移位寄存器中。与此同时,由从设备移位寄存器移位出来的数据,通过MISO管脚,输入到主设备的移位寄存器中。也就是说,主设备和从设备的移位寄存器构成了一个循环缓冲区。对于特定类型的器件,可以通过配置寄存器(比如,对于Motorola公司生产的68HC12型控制器,需要配置SPI控制寄存器的LSBF位),决定最先发送的数据位是最高位还是最低位。 与I2C总线相比,SPI总线更适于数据流传输。SPI的不足之处在于,SPI不支持数据确认机制。 5 w4 A+ r) _; q; m+ X/ o
|