第4章+SPI数据传输汇编.docVIP

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 SPI数据传输 本章主要内容包括: SPI的原理 SPI模块的组成部分 SPI模块的使用方法 片上SPI的功能 SPI传输的实现 本章全面介绍SPI总线技术的原理和使用方法。读者在学习本章之后能够全面了解SPI的原理和模块的组成部分。本章最后是SPI传输程序代码,读者只需要稍微修改就可以应用的其他程序。 4.1 SPI模块概述 串行外围设备接口SPI(Serial Parallel Interface)总线技术是Motorola公司推出的一种同步串行接口。SPI总线是一种三线同步总线,由于其硬件能力很强,与SPI有关的软件相当简单,使CPU有更多的时间来处理其他事务,因此得到了广泛应用。 SPI传输是三总线结构,而且能够工作在主从模式下,图4.1是SPI总线模块结构图,从图中看出,SPI总线模块包含有如下几部分:输入和输出部分,SPI模块控制部分及波特率产生和控制部分。下面将分别介绍各个部分及其功能。 4.1.1 SPI模块输入和输出 SPI模块的输入和输出是SPI模块与其它SPI模块或元件的接口,时钟信号决定着传输的速度。在进行SPI传输时,数据先保存在SPI内部的数据寄存器,在SPI时钟的作用下,数据通过移位寄存器依次出现在输出线上,或从输入线上接收数据。因此,输入输出部分包含了输入输出引脚和对应的数据寄存器。 1.SPI输入输出引脚 SPI模块可以工作在主模式或从模式下,如图4.2所示,主模式和从模式的输入引脚和输出引脚上不同的,而且主从模式的选择是通过选择的。 MOSI(主机输出从机输入引脚):在主模式下,该引脚输出数据到从机;在从模式下,从机通过该引脚接收主机发送到数据。 MISO(主机输入从机输出引脚):该引脚与MOSI引脚功能相反。在主模式下,主机通过该引脚接收从机发送到数据;在从模式下,该引脚输出数据到主机。 SCK(串行时钟):该引脚为串行数据传输提供时钟信号,主模式下,该引脚向从机提供设置信号,从模式下,该引脚接收主机输出的时钟信号。 (从机选择引脚):在主模式下,该引脚置高电平;在从模式下,若该引脚置低电平,则说明主机选择了该从机。 图4.2为SPI通信连接示意图,该图中,由于只有一个从机,故从机引脚接地,主机引脚未用,接高电平。 2.SPI移位寄存器和SPI数据寄存器(SPIDR) SPI移位寄存器实现并行数据和串行数据的相互转换,它是一个8位的寄存器,从图4.2中可以看出,主机和从机的SPIDR通过MISO和MOSI串联在一块,形成了一个16位的移位寄存器,传输数据时,发生方移位寄存器中的8位数据串行移入接收方的移位寄存器中。 SPIDR是在SPI传输中暂存输入或输出数据的寄存器,它的作用类似于单片机串口中的SBUF缓存器。SPIDR的状态可以通过读取SPI状态寄存器的SPIF位和SPTEF位获得。接收数据时,当数据从移位寄存器移入SPIDR时SPIF置位;发送数据时,当SPIDR空时,SPTEF置位。可以在任意时刻读取该寄存器,通常情况下,当SPIF置位时进行读取数据。 注意:当SPIF标志置位但数据未被读取,且后续字节已接收到移位寄存器时,该字节将一直保存到移位寄存器中,该字节不影响SPIDR中的字节。但是,在该字节变为无效之前,SPIF中断必须被相应,即必须读取SPIDR中的数据,否则,该字节将被忽略。 4.1.2 SPI控制模块 SPI控制模块是SPI传输系统的控制核心,它控制着SPI传输过程,SPI中断,SPI时钟选择以及SPI的传输波特率。该模块包含三个控制寄存器和一个状态寄存器。 1. SPI控制寄存器1(SPICR1) SPICR1是SPI模块中第一个控制寄存器,它控制着SPI传输过程的禁止和有效,SPI模块是否产生中断,同时控制着SCK时钟信号的相位和时钟选择,控制着移位过程中是先移LSB还是先移MSB。复位后该寄存器的值图4.3是该寄存器各位的描述。 SPIE:SPI中断允许控制位。 SPIE=1:允许SPI中断;SPIE=0:禁止SPI中断。 SPE:SPI使能控制位。SPE=1表:许SPI传输,SPI传输的任何操作都必须使该位置位;SPE=0:禁止SPI(SPI进入低功耗状态)。 SPTIE:SPI传输中断允许控制位。该位允许在SPTEF置位时产生中断。 SPTIE=1:允许SPITEF中断;SPTIE=0表:禁止SPITEF中断。 MSTR:SPI主模式/从模式选择位。MSTR=1:SPI工作在主模式;MSTR=0:SPI工作在从模式。 CPOL:SPI时钟极性控制位。该位选择SPI时钟的极性。在SPI传输时,传输双方必须设置同样的CPOL值。主机在传输中,该位若发生变化则会中止正在进行的传输。CPOL

文档评论(0)

知识宝库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档