前些天,有位网友谈到经过FPGA来完成SPI通讯。经过帖子的回复发现很多网友对SPI通讯还有些疑问,所以今日就带着咱们从SPI的规范协议,SPI在STM32单片机上的装备及在74HC595逻辑芯片通讯的实例来全方面认识一下这个既杂乱又简略的通讯协议。
SPI 是Serial Peripheral Interface的缩写,直译为串行外围设备接口,SPI是Motorola公司推出的一种同步串行通讯方法,是一种四线同步总线,因其硬件功用很强,与SPI有关的软件就适当简略,使MCU有更多的时刻处理其他业务。这儿要阐明一下,专利在电子职业仍是很要害的,因而,部分其它厂商将SPI通讯协议更名以躲避昂扬的专利费,但其硬件处理方法是相同的,仅仅换了一个称号罢了,例如德仪单片机里的SSI通讯。
常用的SPI通讯方法是规范四线制,如下图电路示意图所示:
MISO:主设备输入/从设备输出引脚。该引脚在从形式下发送数据,在主形式下接纳数据。
MOSI:主设备输出/从设备输入引脚。该引脚在主形式下发送数据,在从形式下接纳数据。
SCK:串口时钟,作为主设备的输出,从设备的输入
NSS:从设备挑选。这是一个可选的引脚,用来挑选主/从设备。
MOSI脚相互衔接,MISO脚相互衔接。这样,数据在主和从之间串行地传输(MSB位在前)。通讯总是由主设备建议。主设备经过MOSI脚把数据发送给从设备,从设备经过MISO引脚回传数据。这意味全双工通讯的数据输出和数据输入是用同一个时钟信号同步的;时钟信号由主设备经过SCK脚供给。
比较杂乱的是这个从挑选(NSS)脚。其有两种形式:软件NSS形式与硬件NSS形式。
软件NSS形式下:在该形式下说得简略一些便是此引脚当作一般的GPIO来运用。其输入/输出的功用与操作GPIO是相同的。咱们经过STM32来操作片外设备时多选用此形式。
硬件NSS形式下:此形式又下分两种状况:状况一、NSS输出被使能:当STM32作业为主SPI,而且NSS输出现已使能,这时NSS引脚被拉低,一切NSS引脚与这个主SPI的NSS引脚相连并装备为硬件NSS的SPI设备,将主动变成从SPI设备;状况二、NSS输出被封闭:答应操作于多主环境。
硬件的衔接咱们说完了,下面我再来介绍时钟线与信号线。
在学习数字逻辑电路时,咱们都听教师讲过数据的锁存方法,例如上升沿锁存等。咱们的SPI通讯方法在硬件上十分灵敏的处理数据锁存方法,经过两个参数的装备供给了四种不同的数据传输形式,如下图所示: