SPI是一种简单的接口,允许一个芯片与一个或多个其他芯片进行通信。
让我们从一个简单的示例开始,其中只有两个芯片必须一起通信。
SPI要求在两个芯片之间使用4条线。
如您所见,这些线称为SCK,MOSI,MISO和SSEL,其中一个芯片称为SPI主设备,而另一个则称为SPI从设备。
基本: 1,它是同步的。 2,它是全双工串行。 3,它不是即插即用的。 4,有一个(只有一个)主机,一个(或多个)从机。 详细信息: 1,同步:主机产生时钟。 2,全双工串行:将数据串行化,在每个时钟周期内在每个方向上传输一位数据,因此使用了两条数据线(MOSI和MISO)。 3,不即插即用:主机和从机事先知道通信的详细信息(位顺序,交换的数据字长等)。 4,一个主机:从机无法启动通信,只有主机可以。从站监听并响应。
假设主机和从机期望8位数据传输,并且首先传输MSB。 这是单个8位数据传输的外观。
MOSI行是“主输出”,而MISO行是“从输出”。由于SPI是全双工的,因此这两条线会同时切换,不同的数据从主机到从机,从机到主机。
详细信息:
1,主机拉低SSEL向从机指示通信正在开始(SSEL为低电平有效)。 2,主机将时钟切换八次,并在其MOSI线上发送八个数据位。同时,它从MISO线上的从站接收八个数据位。 3,主机将SSEL拉高以指示传输已结束。 如果主机要发送/接收多个8位数据,则只有完成后,主机才能继续发送/接收和取消置位SSEL。
SPI主机可以通过两种方式与多个从机通信:通过并行连接大多数信号并添加SSEL线,或通过链接从机。
使用多条SSEL线技术时,一次仅激活一条SSEL线,并且未选择的从站不得驱动MISO线。
SPI可以轻松达到几Mbps(兆位/秒)。这意味着它可以用于未压缩的音频或压缩的视频。