PCBSPI分析示例
- 格式:ppt
- 大小:2.74 MB
- 文档页数:34


1 14 竭诚为您提供优质文档/双击可除
spi通信规范
篇一:spi通讯协议介绍
spi通讯协议介绍
spiinterface
spi接口介绍
spi是由美国摩托罗拉公司推出的一种同步串行传输规范,常作为单片机外设芯片串行扩展接口。spi有4个引脚:ss(从器件选择线)、sdo(串行数据输出线)、sdi(串行数据输入线)和sck(同步串行时钟线)。spi可以用全双工通信方式同时发送和接收8(16)位数据,过程如下:主机启动发送过程,送出时钟脉冲信号,主移位寄存器的数据通过sdo移入到从移位寄存器,同时从移位寄存器中的数据通过sdi移人到主移位寄存器中。8(16)个时钟脉冲过后,时钟停顿,主移位寄存器中的8(16)位数据全部移人到从移位寄存器中,随即又被自动装入从接收缓冲器中,从机接收缓冲器满标志位(bF)和中断标志位(sspiF)置“1”。同理,从移位寄存器
2 14 中的8位数据全部移入到主寄存器中,随即又被自动装入到主接收缓冲器中.主接收缓冲器满标志位(bF)和中断标志位(sspiF)置“1”。主cpu检测到主接收缓冲器的满标志位或者中断标志位置1后,就可以读取接收缓冲器中的数据。同样,从cpu检测到从接收缓冲器满标志位或中断标志位置1后,就可以读取接收缓冲器中的数据,这样就完成了一次相互通信过程。这里设置dspic30F6014为主控制器,isd4002为从器件,通过spi口完成通信控制的过程。
spi总线协议
spi是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换。
假设下面的8位寄存器装的是待发送的数据10101010,上升沿发送、下降沿接收、高位先发送。那么第一个上升沿来的时候数据将会是sdo=1;寄存器=0101010x。下降沿到来的时候,sdi上的电平将所存到寄存器中去,那么这时寄存器=0101010sdi,这样在8个时钟脉冲以后,两个寄存器的内容互相交换一次。这样就完成里一个spi时序。
SPI接口是一种同步串行总线(Serial Peripheral Interface)。
四线SPI接口连线图:
CS为片选脚,用于选中从机。
SCLK为时钟脚,用于数据传输时提供时钟信号。
MOSI为主output,从input,即主机发送脚。对应从机的引脚为SDI。
MISO为主input,从output,机主机接收脚。对应从机的引脚为SDO。
上述SPI为标准SPI协议(Standard SPI)或单线SPI协议(Single SPI),其中的单线是指该SPI协议中使用单根数据线 MOSI 进行发送数据,单根数据线 MISO 进行接收数据。为了适应更高速率的通讯需求,半导体厂商扩展SPI协议,主要发展出了 Dual/Quad/Octal SPI协议,加上标准SPI协议(Single SPI),这四种协议的主要区别是数据线的数量及通讯方式,见下表:
除了上述接法,SPI还支持半双工1bit模式:
SCLK:时钟线。 I/O:数据线,同一时刻要么主机发送,要么主机接收。
SS:片选脚。
Dual SPI的2bit模式:
由于是半双工,同一时刻要么主机使用MOSI、MISO线,要么从机使用MOSI、MISO线。
Quad SPI(4线)模式
与Dual SPI类似,也是针对SPI Flash,也是半双工,Quad SPI Flash增加了两根I/O线(SIO2,SIO3),目的是SCLK一次触发传输4bit数据。
以AC63芯片SPI接口为例,进行代码分析:
根据SPI接口的时序要求,SPI接口可以通过软件实现,也可以通过硬件实现。这里仅分析硬件实现方式。
查看数据手册可知,芯片最多支持三个SPI接口,SPI接口支持DMA发送、接收功能。
每个SPI接口引脚可以映射到不同的引脚,分别为不同的组,即组A、组B、组C、组D。
SPI硬件包含控制寄存器、波特率寄存器、buf缓冲区寄存器、DMA地址寄存器、DMA计数寄存器。
SPI应⽤
第九章通⽤SPI的⼀般应⽤9.1 SPI简介
在⼤容量产品上,SPI接⼝可以配置为⽀持SPI协议或者⽀持I2S⾳频协议。SPI接⼝默认⼯作在SPI协议下,可以通过软件把功能从SPI模式切换到I2S模式。在⼩容量和中容量产品上,不⽀持I2S⾳频协议。
串⾏外设接⼝(SPI)允许芯⽚与外部设备以半/全双⼯、同步、串⾏⽅式通信。此接⼝可以被配置成主模式,并为外部从设备提供通信时钟(SCK)。接⼝还能以多主配置⽅式⼯作。它可⽤于多种⽤途,包括使⽤⼀条双向数据线的双线单⼯同步传输,还可使⽤CRC校验的可靠通信。
I2S也是⼀种3管脚的同步串⾏接⼝通讯协议。它⽀持四种⾳频标准,包括飞利浦I2S标准,MSB和LSB对齐标准,以及PCM标准。它在半双⼯通讯中,可以⼯作在主和从2种模式下。当它作为主设备时,通过接⼝向外部的从设备提供时钟信号。
警告:由于SPI3/I2S3 的部分管脚与JTAG 管脚共享(SPI3_NSS/I2S3_WS 与JTDI ,SPI3_SCK/I2S3_CK与JTDO),因此这些管脚不受IO控制器控制,他们(在每次复位后)
被默认保留为JTAG⽤途。如果⽤户想把管脚配置给SPI3/I2S3,必须(在DEBUG时)关
闭JTAG并切换⾄SWD接⼝,或者(在标准应⽤时)同时关闭JTAG和SWD接⼝。9.1.1 SPI特征
3线全双⼯同步传输;
带或不带第三根双向数据线的双线单⼯同步传输;8或16位传输帧格式选择;
主或从操作;
⽀持多主模式;8个主模式波特率预分频系数(最⼤为fPCLK/2) ;
从模式频率(最⼤为fPCLK/2) ;
主模式和从模式的快速通信:最⼤SPI速度达到18MHz ;
主模式和从模式下均可以由软件或硬件进⾏NSS管理:主/从操作模式的动态改变;
可编程的时钟极性和相位;
可编程的数据顺序,MSB在前或LSB在前;
可触发中断的专⽤发送和接收标志;SPI总线忙状态标志;
⽀持可靠通信的硬件CRC ;
SPI通信协议详解(四)
1.SPI协议简介
板卡内不同芯⽚间通讯最常⽤的三种串⾏协议:UART、I2C、SPI,之前写过串⼝协议及其FPGA实现,今天我们来介绍SPI协议,SPI是SerialPerripheral Interface的简称,是由Motorola公司推出的⼀种⾼速、全双⼯的总线协议。
与IIC类似,SPI也是采⽤主从⽅式⼯作,主机通常为FPGA、MCU或DSP等可编程控制器,从机通常为EPROM、Flash,AD/DA,⾳视频处理芯⽚
等设备。⼀般由SCLK、CS、MOSI,MISO四根线组成,有的地⽅可能是:SCK、SS、SDI、SDO等名称,都是⼀样的含义,当有多个从机存在
时,通过CS来选择要控制的从机设备。和标准SPI类似的协议,还有TI的SSP协议,区别主要在⽚选信号的时序上。
2.4线还是3线?
当我们谈到SPI时,默认情况下都是指标准的4线制Motorola SPI协议,即SCLK,MOSI,MISO和CS共4根数据线,标准4线制的好处是可以实现数
据的全双⼯传输。当只有⼀个主机和⼀个从机设备时,只需要⼀个CS,多个从机需要多个CS,各数据线的介绍:SCLK,时钟信号,时钟频率即SPI速率,和SPI模式有关
MOSI,主机输出,从机输⼊
MISO,主机输⼊,从机输出
CS,从机设备选择,低电平有效
3线制SPI,根据不同的应⽤场景,主要有以下2种类型:
只有3根线:SCLK,CS和DI或DO,适⽤于单⼯通讯,主机只发送或接收数据。
只有3根线:SCLK,SDIO和CS,这⾥的SDIO作为双向端⼝,适⽤于半双⼯通讯,⽐如ADI的多款ADC芯⽚都⽀持双向传输。在使⽤FPGA操作双
向端⼝时,作为输⼊时要设置为⾼阻态z。
还有标准SPI协议的升级版,Dual SPI、Quad SPI和QPI等,这些协议不在本⼩节3线/4线制讨论的范围内,⽂章后⾯会提到。
3.4种⼯作模式既然是进⾏数据传输,双⽅就要明确从机在什么时刻去采样主机发出的数据,主机在什么时刻去读取从机发来的数据。对于STM32等MCU⾃带的硬