版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第8章 串行外围接口SPI原理及应用第1节 SPI及模式第2节 SPI管脚及相关寄存器第3节 SPI用于多机通讯第4节 SPI在系统扩展中的应用第1节 SPI及模式SPI串行外设接口总线 SPI(Serial Peripheral Interface串行外设接口)总线是Motorola公司推出的一种同步串行外设接口,它用于MCU与各种外围设备以串行方式进行通信(8位数据同时同步地被发送和接收),系统可配置为主或从操作模式。外围设备包括简单的TTL移位寄存器(用作并行输入或输出口)至复杂的LCD显示驱动器或A/D转换器等。 SPI系统可直接与各个厂家生产的多种标准外围器件直接接口,它只需4条线:
2、 串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线CS(SS)。 在SPI接口中,数据的传输只需要1个时钟信号和2条数据线。 由于SPI系统总线只需34位数据线和控制线即可扩展具有SPI的各种I/O器件,而并行总线扩展方法需8根数据线、816位地址线、23位控制线,因而SPI总线的使用可以简化电路设计,省掉了很多常规电路中的接口器件,提高了设计的可靠性。1. SPI总线系统的组成 图8-1是SPI总线系统典型结构示意图。图8-1 SPI外围扩展示意图 单片机与外围扩展器件在时钟线SCK、数据线MOSI和MISO上都是同名端相连。带
3、SPI接口的外围器件都有片选端CS。 在扩展多个SPI外围器件(如图8-1所示)时,单片机应分别通过I/O口线来分时选通外围器件。 当SPI接口上有多个SPI接口的单片机时,应区别其主从地位,在某一时刻只能由一个单片机为主器件。 图8-1中MCU(主)为主器件,MCU(从)为从器件。 SPI有较高的数据传送速度,主机方式最高速率可达1.05 Mb/s,目前不少外围器件都带有SPI接口。 在大多数应用场合中,使用1个MCU作为主机,控制数据向1个或多个从外围器件的传送。 从器件只能在主机发命令时,才能接收或向主机传送数据。 其数据的传输格式大多是高位(MSB)在前,低位(LSB)在后。 当SPI
4、工作时,在移位寄存器中的数据逐位从输出引脚(MOSI)输出(高位在前),同时从输入引脚(MISO)接收的数据逐位移到移位寄存器(高位在前)。 发送一字节后,从另一个外围器件接收的字节数据进入移位寄存器中。 主SPI的时钟信号(SCK)使传输同步。 SPI总线有以下主要特性: 全双工、3线同步传输;主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。其典型时序图如图8-2所示。图8-2 SPI串行总线典型时序图单片机管脚模拟SPI接口的方法以便深入理解SPI时序1) 用一般I/O口线模拟SPI操作 对于没有SPI接口的单片机来说,可使用软件来模拟SPI的操作,包括串
5、行时钟、数据输入和输出。 对于不同的串行接口外围芯片,它们的时钟时序是不同的。 对于在SCK的上升沿输入(接收)数据和在下降沿输出(发送)数据的器件(slave) 图8-3为MCU与MCM2814(E2PROM)的硬件连接图。图8-3 SPI总线接口原理图PTBD2PTBD0PTBD3PTBD1QG8管脚模拟SPI输入一字节-C语言#define PTBD0 SCK;定义输出#define PTBD1MISO;定义输入#define PTBD2MOSI;定义输出unsigned char SPI_IN(void)unsigned char i, data; data = 0;SCK = 1;时
6、钟输出为1for(i=0;i8;i+)SCK = 0 /时钟输出为0,产生下降沿下降沿输入数据下降沿输入数据_asm nop;等待数据稳定等待数据稳定_asm nop;SCK = 1 /使时钟输出为1if(MISO) data += (1(7-i);/实际编程时需注意?时间不能超过1.05Mbps或更低return data;第2节 SPI管脚及相关寄存器很多单片机都有专门的SPI控制器,以及专门的管脚,不过这些管脚一般是功能复用,需要进行设置。有了专用的控制器后,不需要进行时序的模拟,数据的通信变得相对简单很多,剩下的只是操作相应的配置、状态、控制、数据寄存器而已。编程就是玩寄存器。QG8的
7、SPI管脚 一种同步串行通信模式,3线或4线系统连接QG8的SPI特点1、主从模式可选2、全双工或单线模式可选3、可编程波特率4、收发双缓冲5、时钟相位与极性可选6、从机片选输出7、高或低位在前传送模式可选。波特率计算速度由Master决定,但要了解Slave的性能:支持的模式与速度寄存器 SPI Control Register 1 (SPIC1)7-SPIESPI中断(针对SPRF和MODF标志)允许该位为“1”允许中断。SPRFSPI receive buffer full,接收满标志;MODFmode fault events,模式故障标志;6-SPESPI模块允许模块允许 如果该位设
8、置为“0”,将禁止SPI模块,导致正在进行中的数据传输终止、清除数据缓冲区、复位内部状态机、清除SPRF标志、置位SPTEF标志以指示发送缓冲区空。5-SPTIESPI发送中断允许发送中断允许针对”发送缓冲区空标志” SPTEF,“1”允许中断。4-MSTR主从模式选择主从模式选择Master/Slave Mode Select,“0”选择slave。3-CPOLClock Polarity 时钟极性时钟极性“0” 选择时钟空闲时为低电平;“1”时钟空闲高。2-CPHAClock Phase时钟相位时钟相位 “0”时,时钟的第一个“沿”位于第一数据位的中间,第一个沿就采样数据;“1”时,时钟的
9、第一个“沿”位于第一数据位的开头,第二个沿才采样数据;1-SSOESlave Select Output Enable 该位与MSTR以及SPIC2寄存器的 (MODFEN) 位共同决定SS管脚的行为;0-LSBFELSB First (Shifter Direction)“1”时低位在前;“0”时高位在前;时钟模式时钟模式SS的用法总线冲突检测功能:总线冲突检测功能:当管脚 SS 作为总线冲突指示用时(此时MSTR = 1, MODFEN = 1且SSOE = 0).当一个主器件的SS管脚变为低时,意味着还有其它Master器件试图将该主器件作为Slave来控制,此时产生总线冲突事件, 标志
10、位MODF被置“1”(读SPIS然后写然后写SPIC1清除该位),且被控制器件将更改模式为Slave(MSTR位被清除),用户程序必须保证总线冲突解除才能重新恢复器件为主模式。对于Slave模式,SS管脚一定作为片选输入用;对于Master模式,SS管脚是否被SPI控制,取决于MODFEN,当该位为“1”表示SS被SPI使用,但其功能由SSOE决定,SSOE为“1”时,SS作为片选输出;SSOE为“0”时SS作为总线冲突指示输入。寄存器 SPI Control Register 2 (SPIC2)4-MODFENMaster Mode-Fault Function Enable,总线冲突检测使
11、能,对于Slave模式该位无意义,只有在Master模式下,该位决定SS管脚是否起作用;参见前面。3-BIDIROEBidirectional Mode Output Enable 只有单线双向传输模式启用只有单线双向传输模式启用SPC0 = 1时,时,该位才有意义。在单线模式下该位才有意义。在单线模式下BIDIROE位决定模块的输出驱动是否启用。 0-输出驱动禁止,对应管脚作为输入使用。1-对应管脚作为输出。“对应管脚” 是指主模式的MOSI (MOMI)或者从模式的MISO(SISO)管脚。1-SPISWAISPI Stop in Wait Mode:0-wait模式下时钟继续运行,1-当
12、MCU进入等待模式时时钟停止。0-SPC0SPI Pin Control 0 SPC0位选择单线双向传输模式。对于从模式(位选择单线双向传输模式。对于从模式(MSTR = 0),),模块使用模块使用MISO (SISO)用于单线传输.对于主模式,模块使用MOSI (MOMI)进行单线传输。当SPC0 = 1时,BIDIROE 用于启动单线模式的输出驱动。0-模块使用独立的管脚进行数据传输;1-启用单线模式。寄存器SPI Baud Rate Register (SPIBR)寄存器SPI Status Register (SPIS)7-SPRFSPI Read Buffer Full FlagSP
13、RF用于指示一次数据传输完成,可以从用于指示一次数据传输完成,可以从SPID读取输入的数据了。读SPIS然后读取SPID可清除该标志位。0-接收缓存区无可用数据;1-接收缓冲区收到新的数据。5-SPTEFSPI Transmit Buffer Empty Flag发送数据缓冲区空标志,读发送数据缓冲区空标志,读SPIS然后写然后写SPID可可清除该标志位。清除该标志位。SPTEF=1之后必须先读SPIS,然后采用写SPID,否则写入失败。在SPTIE允许时,该位可以产生中断。在SPI空闲时,对SPID写入的数据会很快(2个bus cycles)倒入移位寄存器,允许立刻写入第二个要发送的数据给SPID.0- SPI发送缓冲区不空;1- SPI发送缓冲区空。4-MODFMaster Mode Fault Flag 当当SPI被配置成主模式时,从模式选择(被配置成主模式时,从模式选择(slave select input)管脚变低,导致)管脚变低,导致MODF被置位。该位作为总线冲突指示,只有在被置位。该位作为总线冲突指示,只有在MSTR = 1, MODFEN = 1, a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 解读三网融合方案
- 满足不同需求的教学方法计划
- 施工现场人员变更申请模板-建筑实操
- 幼儿园班级教学工作安排计划
- 工作总结与反思计划
- 流程优化与成本降低培训
- 健康教育与科学饮食指导计划
- 医疗机构保安服务标准化计划
- 年度计划的执行力提升路径
- 注重员工培训与发展的年度计划
- 激光焊接机工艺培训讲解
- 事故应急资源调查报告(机械加工厂)
- 新人教版高中英语必修一至必修五完整课文译文
- 葫芦丝演奏技巧
- 2023年蜀道集团开展高层次人才引进招聘笔试题库及答案解析
- 胆囊癌和胆管癌2021NCCN患者指南中文版
- JMP-常用工具整理课件
- 产业结构调整指导目录(2013修正)
- 学业考试质量分析课件
- 红外热成像技术房屋缺陷检测的应用课件
- 癌症疼痛诊疗规范
评论
0/150
提交评论