欢迎来到天天文库
浏览记录
ID:49408518
大小:297.00 KB
页数:4页
时间:2020-03-01
《SPI协议深入解读.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、-、关于串口的探讨图248USART椎图写操ft•<7>maKTXRXSWRXRDAOUIRDAINnRTS;nCT:PWDATA檢收»«Wfr»(RDR)发送数拯寄存»(TOR)GTPR>□SCLK搖收2S时钟7~IrDASIR编解码根块PRDATA(数据寄存⑷USARTWJjhCR24iLINEsToppaCKENCPOL「卄LBClSCLK拎制UEMwake!PC£IPSPtECH1♦▼喚fl!单元'f'f发送越控制►搖收器桂制tTXEIETCIFUSART中断控制发送器时钟CTSLDDTXETCTEREI
2、IWUSWPCLKggUSARTDIV■DIVMantissa•(DIVFraction/16)/16■/ua^nrtxv以上图形来白于STM32系列MCU的数据手册,从图上可以看出每个串口具备了一个波特率发生器用以提供发送与接收的采样频率(绿色方框),在通信时由于没有一个统一的频率控制,所以串口需要使用开始位、停止位的同定通信格式。另外还可以看出每个串口也同时具备发送与接收两个独立的移位寄存器(红色方框),两个移位寄存器相互独立的工作,分别用以接收与发送,所以串口的全双工是很明显的。二、关于SPI的探讨图209
3、SPIffiffl1114744上图来白于STM32系列MCU数据手册屮的SPI框图,与串口相同的是部有一个波特率发生器,不同的是SPI的波特率可以来白白己的波特率发生器也可以来6SCK引脚,波特率来IzlSCK引脚的是从机,波特率来白白生波特率发生器为主机。与串口不同的另外一点是它只具有一个移位寄存器,怎么实现双T的呢?请看下一个图。图210单.上和承从应用这是SPI应用屮单主单从的示例,从这个例子屮可以看出两个机器的数据通信实际表现为两个移位寄存器的数据互换。如果-个SPI设备先对自己的移位寄存器写操作,然后
4、在一个周期操作示再进行读操作,那么SPI的全双工特性就表现出来了。至于川不川该特性取决于更上层的设计了。由于SPI有一个统一的时钟作为标准,所以他不需要起始位和停止位,SPI传送的只是单纯的8位或者16位类型的数据。下面是拥冇SPI接口的FLASH芯片W25X16的“读数据”指令的时序图,从时序图屮可以看岀并无像串口一样的开始位与停止位。下血这段话摘自于该芯片的数据手册。关于更多W25X16的信€请参考hg//wenku.baidu.com/view/8ce44562()bIc59eef8c7b4ce.html1
5、1.2.7“读数据”指令(03h)(ReadData)“读数据”指令允许读出一个字节或一个以上的字节被读出。先把/CS引脚拉低,然后把03h通过DIO引脚送到芯片,之后再送入24位的地址.这些数据在CLK的上升沿被芯片采集。芯片接收完24位地址之氐就会把相应地址的数据在CLK引脚的卜降沿从DO引脚送出去,高位在前。当读完这个地址的数据之后.地址门动增加.然后通过DO引脚把卜一个地址的数据送出去,形成-个数据流。也就是说,只要时钟在工作,通过一条读指令.就可以把幣个芯片存储区的数据读出来。把/CS引脚拉高.“读数据
6、”指令结束。半芯片在执行编程、擦除和读状态寄存器指令的周期内.“读数据”指令不起作用。ICS—CLKMode30McdeO:
7、kInMruction(03h)XXXXDIO23102829W31323334353637383924BitAddess•-♦□ataOut2Highimpedance到这儿可以推测SPI协议只规定了数据传输,并未像串口一样同时规定数据采集(串口的数据采集基于两个独立的移位寄存器)。换句话说,SP1协议只管传送数据,什么时候是发送数据,什么时候是接收数据全来自于上层设计(比如像这儿的通信
8、)。同时要强调的是由于CLK与片选都是由主机控制的,所以数据通信开始于主机也会停止于丄机。下而是摘白于STM32数据手册的SPI主从模式的介绍,有兴趣的朋友可以看看。23.3.2配置SPI为从模式在从模式下,SCK引脚用于接收从主设备来的串行时钟。SPI.CRI寄存器中BR[2:0]的设置不影响数据传输速率。注:建议在主设备发送时钟之前使能SPI从设备,否则可能会发生意外的数据传输。在通信时钟的第一个边沿到来之前或正在进行的通信结束之前,从设备的数据寄存器必须就绪。在使能从设备和主设备之前,通信时钟的极性必须处于
9、稳定的数值。请按照以下步骤配置SPI为从模式:配置步骤1.设置DFF位以定义数据帧格式为8位或16位。2.选择CPOL和CPHA位来定义数据传输和串行时钟之间的相位关系(见图212)。为保证正确的数据传输,从设备和主设备的CPOL和CPHA位必须配置成相同的方式。3.帧格式(SPI.CRI寄存器中的LSBFIRST位定义的”MSB在前”还是”LSB在前”)必须与主设备相同
此文档下载收益归作者所有