SPI工作原理.ppt

上传人:豆**** 文档编号:24715711 上传时间:2022-07-06 格式:PPT 页数:18 大小:781KB
返回 下载 相关 举报
SPI工作原理.ppt_第1页
第1页 / 共18页
SPI工作原理.ppt_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《SPI工作原理.ppt》由会员分享,可在线阅读,更多相关《SPI工作原理.ppt(18页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、普中STM32开发板带您进入ARM世界一. SPI 简介SPI,是Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。普中STM32开发板带您进入ARM世界二. SPI 特征 3线全双工

2、同步传输 8或16位传输帧格式选择 主或从操作,支持多主模式 8个主模式波特率预分频系数(最大为fPCLK/2) 主模式和从模式下均可以由软件或硬件进行NSS管理:主/从操作模式的动态改变 可编程的时钟极性和相位 可编程的数据顺序,MSB在前或LSB在前 可触发中断的专用发送和接收标志 SPI总线忙状态标志 支持可靠通信的硬件CRC 可触发中断的主模式故障、过载以及CRC错误标志 支持DMA功能的1字节发送和接收缓冲器:产生发送和接受请求普中STM32开发板带您进入ARM世界三. SPI 工作模式 SPI通信中可作为从机也可以作为主机,这取决于硬件设计和软件设置。 当器件作为主机时,使用一个I

3、O引脚拉低相应从机的选择引脚(NSS),传输的起始由主机发送数据来启动,时钟(SCK)信号由主机产生。通过MOSI发送数据,同时通过MISO引脚接收从机发出的数据。 当器件作为从机时,传输在从机选择引脚(NSS)被主机拉低后开始,接收主机输出的时钟信号,在读取主机数据的同时通过MISO引脚输出数据。普中STM32开发板带您进入ARM世界四. SPI 框图普中STM32开发板带您进入ARM世界通常SPI通过4个引脚与外部器件相连: MISO:主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式 下接收数据。 MOSI:主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式 下接

4、收数据。 SCK: 串口时钟,作为主设备的输出,从设备的输入。 NSS: 从设备选择。这是一个可选的引脚,用来选择主/从设备。它的功能是 用来作为“片选引脚”,让主设备可以单独地与特定从设备通讯,避免 数据线上的冲突。从设备的NSS引脚可以由主设备的一个标准I/O引脚 来驱动。普中STM32开发板带您进入ARM世界五. (NSS)输出管理 对于每个SPI的NSS可以输入,也可以输出。所谓输入,就是NSS的电平信号给自己,所谓输出,就是将NSS的电平信号发送出去,给从机。配置为输出,还是不输出,我们可以通过SPI_CR2寄存器的SSOE位。当SSOE=1时,并且SPI处于主模式控制时(MSTR=

5、1),NSS就输出低电平,也就是拉低,因此当其他SPI设备的NSS引脚与它相连,必然接收到低电平,则片选成功,都成为从设备了。普中STM32开发板带您进入ARM世界六. (NSS)输入管理 NSSNSS软件模式:软件模式: 1.SPI主机: 需要设置SPI_CR1寄存器的SSM=1和SSI=1,SSM=1是为了使能软件管理,NSS有内部和外部引脚。这时候外部引脚留作他用(可以用来作为GPIO驱动从设备的片选信号)。内部NSS引脚电平则通过SPI_CRL寄存器的SSI位来驱动。SSI=1是为了使NSS内电平为高电平。为什么主设备的内部NSS电平要为1呢? STM32手册上说,要保持MSTR=1和

6、SPE=1,也就是说要保持主机模式,只有NSS接到高电平信号时,这两位才能保持置1。2.SPI从机: NSS引脚在完成字节传输之前必须连接到一个低电平信号。在软件模式下,则需要设置SPI_CR1寄存器的SSM=1(软件管理使能)和SSI=0. NSSNSS硬件模式硬件模式: : 对于主机,我们的NSS可以直接接到高电平.对于从机,NSS接低就可以。普中STM32开发板带您进入ARM世界七. SPI 传输原理从图上可以有知道,SPI 数据的传输过程其实是通过一个移位寄存器来完成的,主机将自己的移位寄存器的数据移出,同时从机的移位寄存器数据移入,同时将自己的数据移出。简单的来理解,就像将两个寄存器

7、贴在一起,然后进行循环左移或者循环右移(SPI 的传输可以选择先发送高位还是先发送低位。),直到两个寄存器的数据交换为止。而时钟信号 SCLK 就是控制传输速率的。 普中STM32开发板带您进入ARM世界八. 时钟信号的相位和极性 SPI_CR寄存器的CPOL和CPHA位,能够组合成四种可能的时序关系。CPOL(时钟极性)位控制在没有数据传输时时钟的空闲状态电平,此位对主模式和从模式下的设备都有效。如果CPOL被清0,SCK引脚在空闲状态保持低电平;如果CPOL被置1,SCK引脚在空闲状态保持高电平。如果CPHA(时钟相位)位被置1,SCK时钟的第二个边沿(CPOL位为0时就是下降沿,CPOL

8、位为1时就是上升沿)进行数据位的采样,数据在第二个时钟边沿被锁存。如果CPHA位被清0,SCK时钟的第一边沿(CPOL位为0时就是下降沿,CPOL位为1时就是上升沿)进行数据位采样,数据在第一个时钟边沿被锁存。 CPOL时钟极性和CPHA时钟相位的组合选择数据捕捉的时钟边沿。普中STM32开发板带您进入ARM世界1.数据时钟时序图普中STM32开发板带您进入ARM世界2.数据时钟时序图普中STM32开发板带您进入ARM世界九. 数据帧格式 根据SPI_CR1寄存器中的LSBFIRST位,输出数据位时可以MSB在先也可以LSB在先。根据SPI_CR1寄存器的DFF位,每个数据帧可以是8位或是16

9、位。所选择的数据帧格式对发送和/或接收都有效。普中STM32开发板带您进入ARM世界十. SPI 主模式工作原理 配置SPI主模式的步骤如下: 设置SPI_CR1寄存器的BR2:0位,来定义串行时钟波特率。 选择CPOL和CPHA位,定义数据传输和串行时钟间的相位关系。 设置DFF位来定义8或16位数据帧格式。 配置SPI_CR1寄存器的LSBFIRST位定义帧格式。 如果NSS引脚需要工作在输入模式,硬件模式中在整个数据帧传输期间应把NSS引脚连接到高电平;在软件模式中,需设置SPI_CR1寄存器的SSM=1和SSI=1。如果NSS引脚工作在输出模式,则只需设置SSOE=1位。 设置MSTR

10、=1和SPE=1,只当NSS引脚被连到高电平,这些位才能保持置位。 普中STM32开发板带您进入ARM世界十一. SPI 从模式工作原理配置SPI从模式的步骤如下: 设置DFF位以定义数据帧格式为8位或16位。 定义数据传输和串行时钟之间的相位关系。 帧格式必须和主设备相同,MSB在前还是LSB在前取决于SPI_CR1寄存器中的LSBFIRST位。 硬件模式下,在完整的数据帧(8位或16位)发送过程中,NSS引脚必须为低电平。软件模式下,设置SPI_CR1寄存器中的SSM=1,SSI=0。 MSTR=0位,设置SPE=1,使相应引脚工作于SPI模式下。 普中STM32开发板带您进入ARM世界十二. 状态标志应用程序通过3个状态标志可以完全监控SPI总线的状态。1.1.发送缓冲器空闲标志发送缓冲器空闲标志(TXE)(TXE) 此标志为1时表明发送缓冲器为空,可以写下一个待发送的数据进入缓冲器中。当写入SPI_DR时,TXE标志被清除。2.2.接收缓冲器非空接收缓冲器非空(RXNE)(RXNE) 此标志为1时表明在接收缓冲器中包含有效的接收数据。读SPI数据寄存器可以清除此标志。3.3.忙忙(Busy)(Busy)标志标志 BSY标志由硬件设置与清除(写入此位无效果),此标志表明SPI通信层的状态。普中STM32开发板带您进入ARM世界十三. SPI 中断18 结束语结束语

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com