SPI系列文章主要介绍SPI接口的一些基础知识,并用DAC芯片81416的配置为例来具体说明SPI接口的具体FPGA实现。
一、SPI的基础
SPI的全称是Serial Peripheral Interface,直译过来就是串行外围接口。一般情况下,FPGA连接各种DAC和ADC,都是用的SPI接口。
SPI分为3线型和4线型。用得最多的是4线型,4线型的信号包括SCLK(同步时钟),MOSI(Master输出Slave输入),MISO(Master输入Slave输出)、SS(Slave Select,一般也叫做CS,Chip Select,片选信号),信号传输方向如图1所示。3线型就是把MISO和MOSI合并成一根线MISO/MOSI,合并后的这根线信号可以双向传输信号,Mater和Slave分时驱动这根线,一样可以通信。因此,可以看出4线型的SPI是全双工的,3线型的SPI是半双工的。
因为3线型和4线型在原理上并没有区别,所以本文仅介绍4线型,对于3线型注意在写Verilog代码时声明MISO/MOSI为inout类型信号,并且保证在FPGA不驱动它的时间它赋一个高阻值就行了。
下面两图是一般情况下我们会使用到的SPI连接方式。此外,还有一种菊花链的一对多连接方式,不太常用,有兴趣的读者可以阅读另一个博主的文章,点这里。