澳门太阳城最新网址干货 | 一文了解SPI总线工作原理

澳门太阳城最新网址 www.cerahs.com.cn SPI是什么


SPI(Serial Peripheral Interface),即串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM、FLASH、实时时钟、AD转换器,还有数字信号处理器和数字信号解码器之间。

SPI,是一种高速、全双工、同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便。正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。

 

SPI的特点

足球比分网址: 01、-从模式(Master-Slave) 的控制方式 

SPI 规定两个 SPI 设备之间通信必须由主设备 (Master) 来控制从设备 (Slave)。一个 Master 设备可以通过提供 Clock 以及对 Slave 设备进行片选 (Slave Select) 来控制多个 Slave 设备。

SPI 协议还规定 Slave 设备的 Clock 由 Master 设备通过 SCK 管脚提供给 Slave 设备, Slave 设备本身不能产生或控制 Clock, 没有 Clock 则 Slave 设备不能正常工作。

02、同步方式(Synchronous)传输数据 

Master 设备会根据将要交换的数据来产生相应的时钟脉冲(Clock Pulse),时钟脉冲组成了时钟信号(Clock Signal) ,时钟信号通过时钟极性 (CPOL) 和时钟相位 (CPHA) 控制着两个 SPI 设备间何时数据交换以及何时对接收到的数据进行采样,来保证数据在两个设备之间是同步传输的。

 

03、数据交换(Data Exchanges)

SPI 设备间的数据传输之所以又被称为数据交换,是因为 SPI 协议规定一个 SPI 设备不能在数据通信过程中仅仅只充当一个 "发送者(Transmitter)" 或者 "接收者(Receiver)"。在每个 Clock 周期内,SPI 设备都会发送并接收一个 bit 大小的数据,相当于该设备有一个 bit 大小的数据被交换了。

1个 Slave 设备要想能够接收到 Master 发过来的控制信号,必须在此之前能够被 Master 设备进行访问 (Access),所以 Master 设备必须先通过 SS/CS pin 对 Slave 设备进行片选,把想要访问的 Slave 设备选上。

在数据传输的过程中,每次接收到的数据必须在下一次数据传输之前被采样。如果之前接收到的数据没有被读取,那么这些已经接收完成的数据将有可能会被丢弃,导致 SPI 物理??樽钪帐?。

因此,在程序中一般都会在 SPI 传输完数据后,去读取 SPI 设备里的数据,即使这些数据(Dummy Data)在我们的程序里是无用的。

 04、四种传输模式

§  CPOL用来决定SCLK空闲时的电平

CPOL=0,空闲时为低电平;

CPOL=1,空闲时为高电平。

§  CPHA用来决定采样时刻:

CPHA=0,每个周期的第一个时钟沿采样;

CPHA=1,每个周期的第二个时钟沿采样。

 

05、只有主模式和从模式之分

没有读和写的说法,因为实质上每次SPI是主从设备在交换数据。也就是说,你发一个数据必然会收到一个数据;你要收一个数据必须也要先发一个数据。

 06、SPI极性和相位的设置 

SPI分主设备和从设备,两者通过SPI协议通讯。而设置SPI的模式,是从设备的模式,决定了主设备的模式。所以要先去搞懂从设备SPI是何种模式,然后再将主设备SPI的模式设置成和从设备相同的模式,即可正常通讯。

两种从设备SPI的模式:

(1)固定的,由SPI从设备硬件决定

SPI从设备,具体是什么模式,相关的datasheet中会有描述,需要自己去datasheet中找到相关的描述。

关于SPI从设备在空闲的时候,是高电平还是低电平,决定了CPOL是0还是1;然后再确定设备是在上升沿采样数据还是下降沿采样数据,这样就可以在定了CPOL值的前提下,对应着推算出CPHA是0还是1了。

(2)可配置的,由软件自己设定

从设备也是一个SPI控制器,4种模式都支持,此时只要自己设置为某种模式即可。知道了从设备的模式后,再去将SPI主设备的模式设置为和从设备模式一样的即可。

对于如何配置SPI的CPOL和CPHA,这里不多细说,多数都是直接去写对应的SPI控制器中对应寄存器中的CPOL和CPHA那两位,写0或写1即可。

 

SPI示例

 

对于我们的FIT_CAN_II_2515??槔此?,其主芯片使用的是MCP2515。根据芯片手册,该芯片可以工作在SPI的MODE 0和MODE 3模式:

 

 

 

但芯片硬件并没有相应的配置引脚

 

 

在咨询软件工程师后,确定是软件设置为MODE 0:

 

 

关于SPI总线工作原理先介绍到这里,希望能帮助到你,后续会分享更多有关SPI的干货,敬请关注我们【澳门太阳城最新网址】公众号。

 

END



Baidu
Baidu