STM32再学习之工程师眼中的SPI
前些天,有位网友谈到通过FPGA来实现SPI通讯。通过帖子的回复发现好多网友对SPI通讯还有些疑惑,于是今天就带着大家从SPI的标准协议,SPI在STM32单片机上的配置及在74HC595逻辑芯片通讯的实例来全方面认识一下这个既复杂又简单的通讯协议。
本文引用地址:http://www.amcfsurvey.com/article/248687.htmSPI 是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通讯方式在硬件上非常灵活的处理数据锁存方式,通过两个参数的配置提供了四种不同的数据传输模式,如下图所示:
fpga相关文章:fpga是什么
数字通信相关文章:数字通信原理
评论