SPI接口硬件设计介绍

接口/总线/驱动

1117人已加入

描述

SPI(Serial Peripheral interface)串行外围设备接口。是微控制器和外围IC(如传感器、 ADC、 DAC、移位寄存器、 SRAM等)之间使用最广泛的接口之一。SPI是一种同步、全双工、串行接口。来自主机或从机的数据在时钟上升沿或下降沿同步。常见的4线接口如如所示:

寄存器

SCK: 时钟

MOSI: 主机输出、从机输入。MOSI将数据从主机发送到从机, MISO将数据从从机发送到主机。

MISO: 主机输入、从机输出。MOSI将数据从主机发送到从机, MISO将数据从从机发送到主机。

SS: 片选。来自主机的片选信号用于选择从机。这通常是一个低电平有效信号,拉高时从机与SPI总线断开连接。当使用多个从机时,主机需要为每个从机提供单独的片选信号。

产生时钟信号的器件称为主机。主机和从机之间传输的数据与主机产生的时钟同步。同昨文章介绍的IIC接口相比, SPI器件支持更高的时钟频率(一般常见的达到了Mbps,要远远快于IIC)。

SPI拓扑图:

图a是常见的一个从机的硬件拓扑图,图b是当有多个从机时使用的菊花链拓扑图。由图可以看出CLK,MOSI,MISO都可以公用,CS信号需要接到不同的从机来区分不同的元器件。(这和IIC通过地址来区分不同)。

寄存器

寄存器

SPI数据传输:

SPI通信主机必须发送时钟信号,并通过使能CS信号选择从机。片选通常是低电平有效信号。因此,主机必须在该信号上发送逻辑0以选择从机。 SPI是全双工接口,主机和从机可以分别通过MOSI和MISO线路同时发送数据。在SPI通信期间,数据的发送(串行移出到MOSI/SDO总线上)和接收(采样或读入总线(MISO/SDI)上的数据)同时进行。串行时钟沿同步数据的移位和采样。SPI接口允许用户灵活选择时钟的上升沿或下降沿来采样和/或移位数据。下图是SPI数据的交换:

寄存器

SPI的时钟极性和相位:

在SPI中,主机可以选择时钟极性和时钟相位。在空闲状态期间, CPOL位设置时钟信号的极性。空闲状态是指传输开始时CS为高电平且在向低电平转变的期间,以及传输结束时CS为低电平且在向高电平转变的期间。 CPHA位选择时钟相位:。根据CPHA位的状态,使用时钟上升沿或下降沿来采样和/或移位数据。主机必须根据从机的要求选择时钟极性和时钟相位。根据CPOL和CPHA位的选择,有四种SPI模式可用。

寄存器

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分