spi总线系统是motorola公司提出的一种同步串行外设接口,允许mcu与各种外围设备以同步串行方式进行通信来交换信息。spi 总线接口一般使用4根线:串行时钟线sck、主机输入/从机输出数据线miso、主机输出/从机输入数据线mosi和低电平有效的从机选择线ss,spi总线接口电路结构如图所示。由于spi系统总线只需3根公共的时钟数据线和若干位独立的从机选择线,在spi从设备较少而没有总线扩展能力的单片机系统中使用特别方便。
spi模块为了和外设进行数据交换,根据外设工作要求,其输出的串行同步时钟极性和相位可以进行配置,时钟极性(cpol)对传输协议没有重大的影响。如果cpol=0,串行同步时钟的空闲状态为低电平;如果cpol=1,串行同步时钟的空闲状态为高电平。时钟相位(cpha)能够用于选择两种不同的传输协议进行数据传输。如果cpha=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果cpha=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。spi主模块和与之通信的外设间时钟相位和极性应该一致。
由于spi系统总线一共只需3~4位数据线和控制线即可实现与具有spi总线接口功能的各种i/o器件进行连接,而扩展并行总线则需要8根数据线、8~16位地址线、2~3位控制线,因此,采用spi总线接口可以简化电路设计,节省很多常规电路中的接口器件和i/o口线,提高设计的可靠性。
由此可见,在智能仪器和工业测控系统中,对于不具有spi接口的单片机,当传输速度要求不是太高时,使用spi总线可以增加应用系统接口器件的种类,可以提高应用系统的性能。
图 spi总线接口电路结构