这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » SPI总线小结

共1条 1/1 1 跳转至

SPI总线小结

工程师
2014-08-18 13:35:13     打赏

SPI总线小结


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


SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,地位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到几Mbps。


1、SPI总线主要特点


· 全双工;


· 可以当作主机或从机工作;


· 提供频率可编程时钟;


· 发送结束中断标志;


· 写冲突保护;


2、接口定义


该总线通信基于主-从配置。它有以下4个信号:


MOSI:Master Out Slave In主出/从入


MISO:Master In Slave Out 主入/从出


SCK:Serial Clock 串行时钟


SS:Slave Select 从属选择


芯片上“从属选择”(slave-select)的引脚数决定了可连到总线上的器件数量。


3、SPI时序分析


在SPI传输中,数据是同步进行发送和接收的。数据传输的时钟基于来自主处理器的时钟脉冲,摩托罗拉没有定义任何通用SPI的时钟规范。然而,最常用的时钟设置基于时钟极性(CPOL)和时钟相位(CPHA)两个参数,CPOL定义SPI串行时钟的活动状态,而CPHA定义相对于SO-数据位的时钟相位。 CPOL和CPHA的设置决定了数据取样的时钟沿。如图1所示,根据CPOL和CPHA的不同,有四种不同的工作模式。





图1 SPI时序分析


其中,CPOL是用来决定SCK时钟信号空闲时的电平。CPOL=0,空闲电平为低电平,CPOL=1时,空闲电平为高电平。CPHA用来决定采样时刻的,CPHA=0,在每个周期的第一个时钟沿采样。CPHA=1,在每个周期的第二个时钟沿采样。


关于时序分析,网上有几张流行的说明图表,意义是相同的。





图3 SPI时序分析





图2 SPI时序分析





图4 SPI时序分析


虽然表述的侧重点不同,但描述的意思是一致的。根据SCK无效电平和采样时刻的不同,2x2=4种时序。


4、注意事项


1)在Mcbsp的手册中,SPI的时序表述有所不同。SCK无效电平表述是相同的,但是采样时刻的表述她是通过有无delay来表达的。对比如下:


CPHA = 0表示在每个周期的第一个时钟沿采样,对应存在delay;


CPHA = 1表示在每个周期的第二个时钟沿采样,对应无delay。


2)在不同场合下,发送和接收的表述词汇可能不同。比如:


发送可表述为:transmit,output


接收可表述为receive,sample,latch


3)SPI主模块和从设备时钟相位和极性应该一致。个人理解这句话有2层意思:其一,主设备SPI时钟和极性的配置应该由外设来决定,也就是说主设备这边的时钟极性和相位都是以从设备为基准的;其二,两者的配置应该保持一致。


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]