赞
踩
SPI的通信方式有一主一从与一主多从,可以从字面意思上理解,其中一主多从模式分为两种,常规模式和菊花链模式。
SPI主机的SCL,MOSI,MISO分别于从机对应的引脚相连,SS片选的个数取决于从机数,并且每个从机都与在主机上与其对应的SS相连。
其中SCL的连接方式与常规模式相同,但所有从机的片选SS是连接在一起的,信息传输是从一个从机传输到另一个从机,最后传输到主机,主机发送的信号也是经过从机传给下一个从机。
1、主设备发起信号,将CS/SS拉低,启动通信。
2、主设备通过发送时钟信号,来告诉从设备进行写数据或者读数据操作(采集时机可能是时钟信号的上升沿(从低到高)或下降沿(从高到低),因为SPI有四种模式,后面会讲到),它将立即读取数据线上的信号,这样就得到了一位数据(1bit)。
3、主机(Master)将要发送的数据写到发送数据缓存区(Menory),缓存区经过移位寄存器(缓存长度不一定,看单片机配置),串行移位寄存器通过MOSI信号线将字节一位一位的移出去传送给从机,同时MISO接口接收到的数据经过移位寄存器一位一位的移到接收缓存区。
4、从机(Slave)也将自己的串行移位寄存器(缓存长度不一定,看单片机配置)中的内容通过MISO信号线返回给主机。同时通过MOSI信号线接收主机发送的数据,这样,两个移位寄存器中的内容就被交换。
SPI总线在进行数据传送时,先传送高位,后传送低位;数据线为高电平表示逻辑“1”,低电平表示逻辑“0”;一个字节传送完成后无需应答即可开始下一个字节的传送;SPI总线采用同步方式工作,时钟线在上升沿或下降沿时发送器向数据线上发送数据,在紧接着的下降沿或上升沿时接收器从数据线上读取数据,完成一位数据传送,八个时钟周期即可完成一个字节数据的传送;所以SPI的通讯方式有四种,下面分别介绍一下这四种模式。
SPI有四种工作模式,通过串行时钟极性(CPOL)和相位(CPHA)的搭配来得到四种工作模式:
1.CPOL = 0 , CPHA = 0
此时SCK为低电平时表示空闲状态,并且在SCK产生第一个跳边沿时开始数据的采集,也就是上图紫色对号的位置,SCK第一个上升沿产生的位置开始采集数据。
2.CPOL = 0 , CPHA = 1
此时SCK为低电平时表示空闲状态,在SCK产生第二个跳边沿时开始数据采集,如上图紫色对号位置所示,从SCK的第二个跳边沿也就是图示下降沿开始处开始采集数据。
3.CPOL = 1 , CPHA = 0
此时SCK为高电平时表示空闲状态,并且SCK产生的第一个跳边沿也就是第一个下降沿时开始数据的传输,如上图所示。
4.CPOL = 1,CPHA = 1
此时SCK为高电平时表示空闲状态,SCK产生的第二个跳边沿也就是第一个上升沿时开始数据传输,如上图所示。
注意: 需要说明的是,对于一个特定的从设备来说,一般在出厂时就会将其设计为某种特定的工作模式;我们在使用该设备时就必须保证主设备的工作模式和该从设备保持一致,否则是无法进行通信的;所以一般我们需要对主设备的CPOL和CPHA进行配置;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。