




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第19章 串行外围设备接口(SPI)19.1 概述串行外围设备接口(SPI serial peripheral interface)允许MPC8349E与其他PowerQUICC系列芯片、MC68360、M68HC11和M68HC05微控制器系列以及其他系列设备交换数据。可以将SPI用于与外围设备的通信,例如EEPROM、实时时钟、A/D转换器和ISDN设备等。SPI是一个全双工、同步、面向字符的通道,支持四线接口(接收、发送、时钟和从选择)。SPI部件由发送器和接收器单元、一个独立的波特率发生器和一个控制单元组成。发送器和接收器单元使用相同的时钟。这个时钟在主模式下源自SPI波特率发生器,在从模式下由外部提供。在SPI传输过程中,同时发送和接收数据。SPI接收器和发送器都是双缓冲的,如图19-1所示,有效FIFO尺寸(等待时间)为两字符。首先移出SPI的MSB/LSB。当SPI模式寄存器禁止SPI时(SPMODEEN=0),它的功耗非常小。19.2 绪论SPI的结构图如图19-1所示。19-1 SPI结构图19.2.1 特征SPI的主要特征如下所示:l 四信号接口(SPIMOSI,SPIMISO,SPICLK和/SPISEL)l 全双工操作l 使用32位的数据字符或4位到16位的数据字符l 支持连续字符发送和接收l 支持8/16/32字符长度的反向数据模式l 支持主SPI模式l 支持多主环境l 最大时钟频率在主模式下为(系统时钟频率/4),在从模式下为(系统时钟频率/2)l 独立的可编程波特率发生器l 用于测试的本地回送能力l 漏极开路输出支持多主配置19.2.2 SPI发送和接收过程由于SPI是面向字符通信单元,因此由核负责是打包和解包接收和发送的帧。一帧包含一个完整的SPI传输会话中发送或接收的所有字符,从写入SPITD寄存器的第一个字符开始到设置SPCOMLST之后发送的最后一个字符为止。更多的信息参看19.4.1.4节“SPI命令寄存器(SPCOM)”。核通过读SPI接收数据保持寄存器(SPIRD)接收数据,然后SPI清除非空的SPIENE以释放SPIRD寄存器,为下一次接收操作做准备。核通过将数据写入SPI发送数据保持寄存器(SPITD)以发送数据,然后SPI清除SPI事件寄存器(SPIE)的非满位(NF),指示SPITD寄存器包含待发送的字符。当待发送的下一个字符为当前帧中最后一个字符时,核置位SPCOMLST,然后将最后一个字符写入SPITD。SPI核握手协议可以通过轮询或中断来实现。当采用轮询方式时,核按照预定义的频率读SPIE,并且根据SPIE位的值进行操作。轮询频率取决于SPI串行信道的频率。当采用中断机制时,置位SPIE的非满(NF)或非空(NE)位引起到e300核的中断。然后核读SPIE,并根据SPIE位的值进行操作。三个基本的发送和接收模式为主、从和多主模式。注意当非满(NF)和非空(NE)位均被置位时,e300核应在发送新数据前读取接收的数据。SPMODELEN确定硬件发送的字符的长度。核负责位处理,将数据打包或者解包成合适的字符长度。更多信息参看表19-4中SPMODELEN的说明。19.2.3 操作模式可以把SPI设定在在单主设备或多主设备环境下工作。本节介绍单主设备配置时的SPI主和从操作。同时也讨论了多主设备环境下SPI的操作。下面几节总结了SPI支持的主要操作模式。19.2.3.1 作为主设备的SPI在主设备模式下,SPI发送消息到从外设,从外设同时发回应答。带有多个从设备的单主设备可以使用通用并行I/O信号有选择地启用从设备,如图19-2所示。为了消除单主设备环境下的多主设备的错误,应通过外部上拉强制主设备的输入无效。图19-2 单主设备/多从设备的配置为了开始交换数据。e300将待发送数据写入SPITD寄存器。然后SPI为每一个字符在SPICLK产生可编程时钟脉冲。将Tx数据在SPI主出从入(SPIMOSI)移出,同时将Rx数据在SPI主入从出(SPIMISO)移入。在发送过程中,无论何时SPI发出请求,核都负责提供数据,从而保证操作的顺畅。在最后一个数据(LST命令和紧接其后的数据)发送完毕后,写入SPITD的第一个字符作为SPI的开始命令。SPI连续地发送和接收字符,直到SPCOMLST被置位或者有错误发生。只要发送缓冲区不满,SPI就置位SPIENF向中断控制器发送可屏蔽中断。在发送完最后一个字之后,SPI也置位NF。作为回应,核应读取与最后一个字相关的异常标志。只要接收缓冲区填充了数据,SPI就置位SPIENE,向中断控制器发送可屏蔽中断。19.2.3.2 作为从设备的SPI在从模式下,SPI设备接收来自SPI主设备的信息并且同时发送回答。从设备的必须在识别出Rx时钟之前有效。一旦信号有效,SPICLK就成为从主设备到从设备的输入。SPICLK可以为从DC到系统时钟/2之间的任意频率。核心将待发送数据送入SPITD寄存器,为数据传输做准备。一旦有效,从设备将数据从SPIMISO移出,从SPIMOSI移入。SPI置位SPI寄存器的NF位,当满缓冲完成发送和接收时或者在出现错误之后,发出可屏蔽中断。SPI连续接收,直到信号无效。发送连续进行,直到没有更多的数据可用或者无效。一旦重新有效,并且SPICLK开始翻转,就继续发送。缓冲区中的字符都发送了之后,只要保持有效,SPI就发送1。19.2.3.3 多主设备环境下操作的SPI SPI可以工作在多主设备环境中,此时所有的SPI设备都被连接到同一个总线上。在这种配置中,所有SPI设备共享SPIMOSI、SPIMISO和SPICLK信号,但是输入是独立连接的,如图19-3所示。某一时刻仅有一个SPI设备可以作为主设备其他所有的SPI设备必须为从设备。当把一个SPI配置成主设备时,如果它的输入有效,将产生多主设备错误,因为有多个SPI设备成为总线主设备。SPI置位SPI事件寄存器中的SPIEMME并且向核发出可屏蔽中断。它还禁止SPI操作和SPI信号的输出驱动器。在重新使用SPI之前,核心必须清除SPMODEEN,纠正错误,并清除SPIEMME。注意:1所有信号都是漏极开路的。2对于两个以上主设备的多主设备配置,和SPIEMME不能检测到所有可能的冲突。3由软件负责SPI总线的仲裁(例如使用如令牌传递)。4信号用软件使用通用I/O信号实现。图19-3 多主设备配置SPI支持的最大稳定数据速率为系统(csb)时钟/50。但是SPI可以高得多的速率传输单个字符在主机模式下为系统时钟/4,在从机模式下为系统时钟/2。在多个字符之间应插入间隔,以保证不超过最大稳定数据速率。19.3 外部信号说明SPI的四线接口包括发送、接收、时钟和从选择。19.3.1 概述表19-1列出了信号的属性。表19-1 信号属性名字功能复位上拉SPIMISO主设备入从设备出在漏极开路模式下需要SPIMOSI主设备出从设备入在漏极开路模式下需要SPICLK连接到其他SPICLK的输入/输出串行时钟在漏极开路模式下需要SPI从设备选择在漏极开路模式下需要19.3.2 详细信号说明表19-2详细说明了信号。表19-2 详细信号说明信号I/O说明SPIMISOI/O主设备入从设备出状态含义有效SPI发送/接收的数据为高(取决于是主设备还是从设备)无效SPI发送/接收的数据为低(取决于是主设备还是从设备)时序有效根据SPICLK有效/无效/在相位中间(由SPMODE决定)无效根据SPICLK有效/无效/在相位中间 (由SPMODE决定)SPIMOSII/O主设备出从设备入状态含义有效SPI发送/接收的数据为高(取决于是主设备还是从设备)无效SPI发送/接收的数据为低(取决于是主设备还是从设备)时序有效根据SPICLK有效/无效/在相位中间(由SPMODE决定)无效根据SPICLK有效/无效/在相位中间 (由SPMODE决定)SPICLKI/O串行时钟入或串行时钟出,分别用于从或主模式状态含义有效/无效根据SPMODEPM, DIV16寄存器的速率的配置。时序有效/无效在帧接收/发送过程中ISPI从设备选择状态含义有效从模式下声明为被到达的帧选中为从设备。在主模式下有效导致MME多主设备错误。无效在从模式下意味着还未选中特定的SPI。在主模式下,为进行正常操作应将其置为无效。时序有效在从模式下和来自从设备的数据一起。无效在从模式下和帧尾一起(依照SPMODELEN)。在主模式下,在数据第一次写入SPITD之前并保持不变。在单主设备或者多主设备环境模式下,可以把SPI配置成从设备或者主设备。主SPI利用SPI波特率发生器(BRG)生成传输时钟SPICLK。SPI BRG从时钟合成器产生的系统时钟中获取输入。SPICLK是一个门控时钟,仅在数据传输时有效。SPICLK相位和极性的四种组合可以由时钟反向(SPMODECI)和时钟相位(SPMODECP)寄存器位配置。还可以把SPI配置为漏极开路,以支持多主设备配置,此时共享的SPI信号由SPI设备或外部SPI设备驱动。SPI 主设备入从设备出SPIMISO信号作为主设备的输入和从设备的输出。反之,主设备出从设备入SPIMOSI信号作为主设备的输出和从设备的输入。这些信号的双重功能允许多主设备环境下的SPI之间使用相同的硬件配置进行通信。l 当SPI为主设备时,SPICLK是时钟输出信号,它从SPIMISO移入接收到的数据,将发送的数据移出到SPIMOSI。SPI主设备必须输出一个从设备选择信号,通过使用独立的通用I/O信号使能SPI从设备。当把SPI设备配置成主设备时,使有效则导致错误。l 当SPI为从设备时,SPICLK是时钟输入信号,它从SPIMOSI移入接收到的数据,将发送的数据通过SPIMISO移出。是到SPI从设备的使能输入信号。在多主设备环境下,(始终作为输入)还用来检测有多个主设备操作这样的错误。19.4 内存映射/寄存器定义表19-3包含SPI的映射到内存空间的寄存器。表中所列的地址为到SPI基址的偏移量,同第二章“内存映射”中定义的那样。表19-3 SPI寄存器汇总偏移量寄存器访问复位值节/页0x0000x01F保留0x020SPI模式寄存器(SPMODE)R/W0x0000_000019.4.1.1/19-90x024SPI 事件寄存器 (SPIE)R/W0x0000_000019.4.1.2/19-130x028SPI 屏蔽寄存器 (SPIM)R/W0x0000_000019.4.1.2/19-130x02CSPI命令寄存器(SPCOM)R/W0x0000_000019.4.1.4/19-150x030SPI发送寄存器(SPITD)R/W0x0000_000019.4.1.5/19-150x034SPI 接收寄存器 (SPIRD)R0xFFFF_FFFF19.4.1.6/19-160x0380xFFF保留19.4.1 寄存器说明19.4.1.1 SPI模式寄存器(SPMODE)SPMODE控制SPI操作的模式和时钟源,如图19-4所示。图19-4 SPMODE-SPI模式寄存器表19-4说明了SPMODE的字段。表19-4 SPMODE字段说明位名字说明0保留,应清除。1LOOP回送模式。允许本地回送操作。0 正常操作1 回送模式。用于测试SPI控制器内部功能。发送器输出在内部连接到接收器输入。接收器和发送器正常工作,只是忽略收到的数据。2CI时钟反向。将SPI时钟的极性反向。更多信息参看图19-5和19-6。0 SPICLK为低时无效1 SPICLK为高时无效3CP时钟相位。选择传输格式。更多信息参看图19-5和19-6。0 SPICLK在数据传输中间的开始翻转1 SPICLK在数据传输的开始处开始翻转4DIV16除以16。当把SPI配置成主设备模式时,为SPI波特率发生器(SPI BRG)选择时钟源;在从模式下,SPICLK就是时钟源。0 系统时钟为SPI BRG的输入1 系统时钟/16为SPI BRG的输入在从模式下,必须清除该位。5REV反向数据模式,仅用于8/16/32位字符长度。0 首先发送/接收LSB(对于数据长度32,数据位于低半字LSB)1 首先发送/接收MSB 6M/S主/从。选择主模式还是从模式0 SPI为从设备1 SPI为主设备7 EN启用SPI。当EN置位时,一定不能修改SPMODE中的其他位。0 禁用SPI。SPI处于空闲状态,功耗最低。SPI BRG不起作用,并且禁止输入时钟。1 启用SPI。注意:SPI控制器要求在禁用SPI和重新启用SPI之间至少有10个系统时钟的时间间隔。这个最小时间间隔保证在清除SPMODEEN时清除SPMODEPM和SPMODEDIV16。811LEN每个字符的位长度。LEN可以为32或4到16位,如下所示:0000 32位字符0001-0010 保留,导致不可预测的行为0011 4位字符1111 16位字符TX和RX寄存器(SPITD,SPIRD)一次能容纳32位。32位长的字符填满TX和RX寄存器;因此这些寄存器中的所有位都有效。当LEN选择的字符长度等于或者小于16位时,有效位占据发送和接收寄存器的低半字。例如,如果将字符长度设置为16位,有效位将为16-31,如果将字符长度设置为5位,有效位将为16-20。注意,不管字符长度为多长,每个发送和接收寄存器仅容纳一个字符。1215PM预分频模数选择。指定SPI时钟发生器中的预分频器的分频比率。SPI波特率发生器时钟源(系统时钟或系统时钟/16,取决于DIV16位)被4*(PM+1)分频,其范围为4到64。时钟有50%的占空期。例如,如果将预分频模数设置为PM=0011并且DIV16置1,那么系统/SPICLK时钟比率将为16*(4*(0011-1)=256。在从模式下,必须清除该位。1618保留,应清除。19OD漏极开路模式0 将所有输出引脚配置为正常模式1 将所有输出引脚配置为漏极开路模式2031保留,应清除。图19-5显示了SPI的传输格式,其中SPICLK在传输的中间开始翻转(SPMODECP=0)。图19-5 SSPMODECP=0时的SPI传输格式图19-6显示了SPI的传输格式,其中SPICLK在传输的开始处开始翻转(SPMODECP=1)。图19-6 SPMODECP=1时的SPI传输格式19.4.1.2 SPI 事件寄存器(SPIE)SPI事件寄存器(SPIE)产生中断并报告SPI所识别的事件。当识别了某个事件时,SPI置位对应的SPIE位。SPIE位通过写入1清除,写入0没有作用。置位SPI屏蔽寄存器(SPIM)中的位允许对应的中断,清除一位则屏蔽对应的中断。必须在核清除内部中断请求之前清除清除未屏蔽的SPIE位。图19-7显示了SPI事件寄存器。图19-7 SPIESPI事件寄存器表19-5说明了SPIE的字段。表19-5 SPIE字段说明位名字说明016保留,应清除。17LT发送了最后一个字符。发送最后一个字符,可以把新数据写入SPID以便发送。18DNR数据未就绪。在从模式下,仅当信号在SPI中的数据就绪前有效时,才在线路上发送IDLE,并让UN有效,宣告应禁用SPI,重新启动操作。19OV从/主过载。指示在接收过程中出现了过载。当过载时,SPI继续发送/接收处理,同时报告丢失字符出现过载。20UN从欠载。指示SPI发送器是否未及时取得要发送数据,以及是否在线路上发送了IDLE。仅在从设备模式下有效(SPMODEM/S=0)。在主设备模式下(SPMODEM/S=1),如果SPI发送器没有有效数据发送,SPICLK就停止翻转并停止发送/接收操作(不报告欠载),当把数据写入SPITD时,恢复发送。21MME多主设备错误。当SPI在主设备模式时,如果外部宣告/SPISEL有效就置位。注意,可以在回送模式中出现MME错误。22NE非空。置位时指示SPIRD包含已经接收的字符。0 接收器空1 接收器有正确的接收数据以及关于LST(命令寄存器)和OV(SPIE)的指示。核可以读取接收器的内容。如果有更多数据可用,读接收器SPIRD清除NE位。23NF非满。指示是否未使用SPITD,核是否向它写入新字符。0 发送器满。1 发送器未满。核可以写发送器。必须清除NF以允许传输其它字符(写发送器清除NF)。2431保留,应清除。19.4.1.3 SPI屏蔽寄存器(SPIM)SPI屏蔽寄存器(SPIM)如图19-8所示,它允许/屏蔽被SPI识别的事件的中断。当识别了一个事件时,SPI置位对应SPI位。置位SPIM位允许对应的中断,清除SPIM位则屏蔽对应的中断。必须在核清除内部中断请求之前清除清除未屏蔽的SPIE位。图19-8 SPIM-SPI屏蔽寄存器表19-6说明了SPIM的字段。表19-6 SPIM字段说明。位名字说明016保留,应清除。17LT发送了最后一个字符。0 LT事件不会引起SPI中断1 LT事件引起SPI中断18DNR从模式下数据未就绪。0 从DNR事件不会引起SPI中断1 从DNR事件引起SPI中断19OV从/主过载中断屏蔽0 从/主过载事件不会引起SPI中断1 从/主过载事件引起SPI中断20UN从欠载中断屏蔽0 从欠载事件不会引起SPI中断1 从欠载事件引起SPI中断21MME多主设备错误中断屏蔽。0 多主设备错误事件不会引起SPI中断1 多主设备错误事件引起SPI中断22NE非空中断屏蔽0 非空事件不会引起SPI中断1 非空事件引起SPI中断23NF非满中断屏蔽0 非满事件不会引起SPI中断1 非满事件引起SPI中断2431保留,应清除。19.4.1.4 SPI命令寄存器(SPCOM)SPI命令寄存器(SPCOM)用于结束SPI操作,如图19-9所示。图19-9 SPI命令寄存器(SPCOM)表19-7说明了SPCOM的字段。表19-7 SPCOM字段说明位名字说明08保留,应清除。9LST此位代表最后一个字符。在把最后一个字符写入SPITD之前必须置位。当字符全部传送完毕时它导致SPIELT置位,进而指示帧全部传送完毕。0 此字符不是帧的最后一个字符1 此字符是帧的最后一个字符10-31DNR保留,应清除。19.4.1.5 SPI发送数据保持寄存器(SPITD)SPITD保持待发送的数据。SPMODELEN定义每个字符的位数。每次SPIEEN置位时,如果SPIE中不报错,核就可以向SPITD写入另一个数据字符。在帧的末尾,核应置位SPCOMLST并准备好数据的最后一个字符。图19-10显示了SPI发送数据保持寄存器。图19-10 SPI发送数据保持寄存器。表19-8给出了SPI发送数据保持寄存器的字段说明。表19-8 SPI发送数据保持寄存器位名字说明031DA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民办高职院校课堂沉默现象的生成机理与干预措施探析
- 2025医学血友病防治指南考试题目及答案
- 2025医学外科学神经外科考试题目及答案
- 创新型校园文化培育体系建构与实证研究
- 2025成年人英语商务谈判语言技巧考试题目及答案
- 2025至2030异亮氨酸(Ile)行业市场深度研究及发展前景投资可行性分析报告
- 2025至2030工艺油行业市场深度研究及发展前景投资可行性分析报告
- 车务段业务知识培训内容课件
- 物流相关知识培训课件
- 全国滇人版初中信息技术七年级下册第二单元第4课《认识多媒体》说课稿
- 《中式面点技艺(第二版)》教案(高教版)
- (完整)托管班托管协议
- ICU 危重患者CVC 及PICC 导管的留置选择及护理研究新进展
- 宝钢国际集团胜任能力模型
- 二年级四宫格六宫格数独练习
- LS/T 3243-2015DHA藻油
- GB/T 2423.7-1995电工电子产品环境试验第2部分:试验方法试验Ec和导则:倾跌与翻倒(主要用于设备型样品)
- 医院进修生结业鉴定表
- 西师版四年级数学上册第一单元测试题(A)
- 花甲水库库底清理实施方案(修订稿)
- 鞘内镇痛泵置入术全程图解课件
评论
0/150
提交评论