第11章 STC单片机SPI原理及实现_第1页
第11章 STC单片机SPI原理及实现_第2页
第11章 STC单片机SPI原理及实现_第3页
第11章 STC单片机SPI原理及实现_第4页
第11章 STC单片机SPI原理及实现_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第十一章,STC单片机SPI的原理与实现,何斌2015.02,STCSPI模块结构与功能SPI模块寄存器组SPI模块配置与时序SPI模块设计示例,本章主要内容,利用SPI进行数据传输,不仅需要活动方(发送数据的一方)提供的时钟信号。此外,需要由活动方(发送数据的一方)提供的同步信号。基于SPI的通信模式是一种典型的高速同步双向数据传输模式。这种通信方式在工业中被广泛使用。一般来说,串行接口主要用于EEPROM、FLASH、实时时钟、模数转换器、数字信号处理器和数字信号解码器之间的数据传输。STC系列单片机提供了另一种高速串行通信接口SPI接口。SPI接口为数据传输提供主机模式和从机模式。在主模

2、式下,支持高达3兆位/秒的数据传输速率。如果单片机的主频率为2036兆赫,工作频率为12兆赫,它可以提供更高的工作速度。在从机模式下,速度有限,STC建议数据传输速率在SYSclk/4以内。此外,SPI接口提供完成标志和写冲突标志的保护。STCSPI模块结构和功能- STC单片机SPI模块功能,在SPI接口中,提供四个信号用于高速同步数据传输。包括MOSI主设备输出和从设备输入信号,实现从主设备(发送数据)到从设备(接收数据)的数据传输。当STC的SPI接口作为主设备传输数据时,信号方向输出并指向从设备;当单片机的串行接口作为从机接收数据时,输入信号方向,从机指向单片机的串行接口。STCSPI

3、模块结构和功能SPI接口信号、MISO主设备输入和从设备输出信号,实现从设备(发送数据)到主设备(接收数据)的数据传输。当单片机的SPI接口作为主机传输数据时,输入信号方向,从机指向单片机的SPI接口;当STC的SPI接口作为从设备接收数据时,信号方向被输出并指向从设备。注:无论单片机的SPI接口是作为主机还是从机,MOSI和味噌的传输方向都是相反的。STCSPI模块结构和功能SPI接口信号、SCLK串行时钟信号,由主设备发送并指向从设备。在串行时钟的控制下,它用于同步主设备和从设备之间的MISO和MOSI信号线上的数据传输过程。当主设备开始数据传输过程时,它会自动向从设备生成8个SCLK信号

4、。当SCLK信号的上升沿或下降沿到来时,一位数据被移出。一次可以传输一个字节的数据。注:(1)在某些应用中,多个器件的SPI接口的SCLK、MOSI和味噌信号连接在一起。数据通过MOSI信号从主设备发送到从设备。(2)如果SPCTL寄存器中的SPEN位设置为0(复位值为0),则禁用SPI接口,分配给这些信号的引脚可用作普通输入/输出引脚。STCSPI模块结构和功能SPI接口信号、SS从设备选择信号。利用该信号,主器件用于选择从模式下的SPI器件。在主模式和从模式下,SS信号的使用方式不同。在主机模式下,SPI接口只能有一个主机设备,选择主机没有问题。在这种模式下,该位不是必需的。在主模式下,通

5、过10K电阻将主设备的SS引脚拉高。每个从设备的SS信号与主设备的SS信号连接,并且主设备控制电平,使得主设备可以选择从设备。在从机模式下,无论信号是接收还是发送,都必须有效。因此,在数据传输开始之前,必须将SS信号拉低。STCSPI模块结构和功能- SPI接口信号,通过SS信号,SPI从设备确认其是否被选中。如果满足以下条件之一,忽略此信号:如果SPI接口被禁用。在SPI主机的情况下,SPCTL寄存器的MSTR位置被设置为1,并且P1.2/SS被配置为输出。如果SPCTL寄存器的SSIG位为高,则该引脚用作正常的输入/输出功能。注:即使STC单片机的SPI接口配置为主设备,也可以通过拉下SS

6、引脚将其配置为从设备。该特性通过设置寄存器中的相应位来使能。STCSPI模块结构和功能SPI接口信号,三种数据通信方式由STC15系列单片机的SPI接口提供。单主设备和单从设备模式,STCSPI模块结构和功能SPI接口数据通信模式。在此通信配置模式下,从设备的SSIG位设置为0,SS用于选择从设备。SPI主机可以使用任何引脚(包括1.2/SS引脚)来驱动SS信号。主器件的串行接口和从器件串行接口的8位移位寄存器构成一个环形16位移位寄存器。在这种模式下,主设备不仅可以向从设备发送数据,还可以读取从设备发送的数据。STCSPI模块结构和功能-SPI接口数据通信模式,双器件模式器件可以是主器件和从

7、器件,STCSPI模块结构和功能-SPI接口数据通信模式,在这种配置模式下,当没有SPI数据传输时,两个器件都可以充当主器件,清零SSIG并在准双向模式下配置P1.2/SS引脚。当其中一个设备开始传输时,它将1.2/SS配置为输出,并将其驱动至低电平,从而将另一个设备变为从设备。初始化时,双方都将自己配置为忽略SS引脚的从机模式。当一方想要主动发送数据时,首先检查SS引脚的电平。如果SS引脚为高电平,设置自己忽略SS引脚的主模式。正常情况下,通信双方都将自己配置为没有选定的从机模式。在这种模式下,味噌、MOSI和SCLK信号都是输入。在这种模式下,当多个单片机的串行接口并行连接时,不会发生总线

8、冲突。STCSPI模块结构和功能- SPI接口数据通信模式、单主设备和多从设备模式在该配置中,从设备的SSIG位置为0,通过SS信号选择相应的从设备。主设备的SPI接口可以使用任何端口来驱动SS引脚。STCSPI模块结构和功能SPI接口数据通信模式,SPI模块核心是一个8位移位寄存器和数据缓冲器,可以同时接收和发送数据。在数据传输过程中,接收和发送的数据存储在数据缓冲区中。STCSPI模块结构和函数- SPI模块内部结构,对于主模式,如果要发送一个字节的数据,只需将数据写入SPDAT寄存器。在这种模式下,扩频信号是不必要的;在从机模式下,只有在SS信号变得有效并且接收到合适的时钟信号后,才能开

9、始数据传输。在从机模式下,如果一个字节的数据传输完成,SS信号变为高电平,该字节立即被硬件逻辑标记为接收完成。随后,SPI接口准备接收下一个数据。STCSPI模块结构和功能SPI模块内部结构SPI控制寄存器SPCTL,它位于STC单片机专用功能寄存器的地址0 xCE。复位后,该寄存器的值为“00000100”。SSIGSS引脚忽略控制位。当该位为1时,MSTR位决定微控制器是主设备还是从设备。当该位为0时,SS引脚用于确定微控制器是主设备还是从设备。SS引脚可用作正常输入/输出、SPI模块寄存器组- SPI控制寄存器,即SPI控制寄存器SPCTL的每一位、SPENSPI使能控制位。当该位为1时

10、,SPI接口使能。当该位为0时,SPI接口禁用,所有SPI接口的信号引脚可用作普通输入/输出。DORD设置SPI数据发送和接收的位顺序。当该位为1时,首先传输数据字的最低有效位(LSB)。当该位为0时,首先传输数据字的最高有效位(MSB)。MSTR主从模式选择位。当该位为1时,主模式;当该位为0时,从机模式。SPI模块寄存器集-SPI控制寄存器,SPI模块寄存器集-SPI控制寄存器,CPOL:SPI时钟极性选择位。当该位为1时,SCLK处于高空闲状态。SCLK的前一个时钟沿是下降沿,而下一个时钟沿是上升沿。当该位为0时,SCLK处于低电平空闲状态。SCLK的前一个时钟沿是上升沿,而下一个时钟沿

11、是下降沿。CPHA:SPI时钟相位选择位。当该位为1时,数据在SCLK的前时钟沿驱动,并在后时钟沿采样。当该位为0时,它在SS为低电平时驱动数据,在SCLK的后时钟边沿改变数据,并在前时钟边沿采样。SPR1和SPR0时钟速率选择位、SPI模块寄存器集- SPI控制寄存器集、SPR1和SPR0位的含义、SPI状态寄存器SPSTAT该寄存器位于STC单片机专用功能寄存器的地址0 xCD。复位时,该寄存器的值为“00”xxxxx十.SPI模块寄存器设置- SPI状态寄存器,表示SPI状态寄存器SPSTAT、SPIFSPI传输完成标志的每一位。当SPI数据传输完成时,硬件将该位设为1。此时,如果允许S

12、PI中断,就会产生一个中断。当SPI处于主机模式且SSIG为0时,如果SS引脚被输入并驱动至低电平,硬件也会将该标志置1,这意味着更改模式WCOLSPI写冲突标志。在数据传输过程中,如果写入了SPI数据寄存器SPDAT,硬件会将该标志设置为1。串行接口模块寄存器组串行接口状态寄存器、串行接口数据寄存器SPDAT,位于单片机专用功能寄存器的地址0 xCF。复位时,该寄存器的值为“0000000”。SPI模块寄存器组- SPI数据寄存器,SPI数据寄存器SPDAT位含义,中断优先级寄存器2该寄存器位于STC单片机特殊功能寄存器的地址0 xB5。复位时,该寄存器的值为“xxx00000”。PSPIS

13、PI中断优先级控制位。当该位为0时,SPI中断为最低优先级中断(优先级为0);当该位为1时,SPI中断为最高优先级中断(优先级1)。SPI模块寄存器组-中断优先级寄存器2,中断优先级控制寄存器IP2,中断允许寄存器IE2,位于STC单片机特殊功能寄存器的地址0 xAF。复位时,该寄存器的值为“x000000”。ESPISPI中断使能位。当该位为1时,允许SPI中断;当该位为0时,SPI中断被禁用。SPI模块寄存器组-中断允许寄存器2,即中断允许寄存器IE2的每一位的含义,PCA模块引脚切换寄存器AUXR1(P_SW1),它位于STC单片机特殊功能寄存器的地址0 xA2。复位时,该寄存器的值为“

14、0000000”。SPI模块寄存器组控制SPI引脚位置寄存器、PCA模块引脚开关寄存器AUXR1(P_SW1)含义、SPI_S1和SPI_S0决定单片机上的SPI接口引脚位置、SPI模块寄存器组控制SPI引脚位置寄存器、SPI_S1和SPI_S0含义、SPI模块配置和时序SPI配置模式、工作模式、SPI模块配置和时序SPI配置模式、主从模式选择、SPI模块配置和时序SPI配置模式、主从模式选择由SPEN控制如果SPI使能并设置为主设备,主设备对SPI数据寄存器的写操作将启动SPI时钟发生器和数据传输。数据写入SPDAT后的0.51 SPI位时间,数据将出现在MOSI引脚上。发送一个字节后,停止

15、SPI时钟,将SPIF标志置1,并产生一个中断。主设备和从设备的两个移位寄存器可以被视为16位循环移位寄存器。同时,当数据从主设备转移到从设备时,数据从从设备以相反的方向转移到主设备。也就是说,主设备和从设备在一个移位周期期间彼此交换数据。主/从模式中的注意事项-主/从模式中的注意事项-主设备中的注意事项,当CPHA为0时,SSIG必须为0,不能忽略SS引脚,SS引脚必须设置为低电平,并且必须在每个连续串行字节发送后复位为高电平。当SS为低电平有效时,如果写入SPDAT寄存器,将出现写冲突错误。当CPHA为1时,SSIG可以设为1,SS引脚可以忽略。如果SSIG为0,SS引脚在连续传输之间保持

16、低电平有效。该方法适用于具有单个固定主设备和单个固定从设备驱动MISO数据线的系统。SPI模块配置和时序-通过SS修改模式。如果SPEN是1,SSIG是0,MSTR是1,SPI是主要模式。使用P2M1和P2M0寄存器(用于器件P2端口的输入/输出模式)将SS引脚配置为输入或准双向模式。在这种模式下,另一个主器件可以将该引脚驱动为低电平,从而选择该器件作为SPI从器件,并向从器件发送数据。为了避免总线冲突,SPI执行以下操作:清除MSTR并成为从机。同时,MOSI和SCLK被强制作为输入模式,而MISO被强制作为输出模式。将SPSTAT寄存器中的SPIF标志置1。如果串行接口中断已使能,则产生串

17、行接口中断。SPI模块配置和定时写冲突,发送数据时SPI处于单级缓冲模式;接收数据时,它处于双缓冲模式。如果数据在数据传输期间写入移位寄存器,WCOL位1表示数据冲突。在这种情况下,当前传输的数据继续被发送,但是新写入的数据丢失。因为主设备具有控制数据传输的能力,所以主设备很少发生写冲突。但是,写冲突可能发生在从属设备中。这是因为当主设备开始数据传输时,从设备不能控制数据传输过程。从设备接收数据时,将接收到的数据发送到并行读取数据缓冲器。这样,移位寄存器被释放以接收下一个数据。在下一个字符完全移入之前,必须从数据寄存器中读取接收到的数据。否则,以前的数据将会丢失。SPI模块配置和时序写入冲突、SPI模块配置和时序数据模式时序,允许用户通过时钟相位控制位CPHA来设置采样和改变数据的时钟边沿。此外,时钟极性位控制位CPOL允许用户设置时钟的极性。从下图可以看出,当CPOL为0时,SCLK处于低电平的空闲状态;当CPOL为1时,SCLK处于高空闲状态。SPI模块配置和时序-数据模式时序,从模式数据传输时序当CPHA为0,从模式数据传输时序当CPHA为1,主模式数据传输时序当CPHA为0,SPI模块配置和时序-数据模式时序当CPHA为1,SPI模块设计示例-系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论