第五章+片内外设_同步串行口.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3. 同步串行口的复位 (SSPCR的第4和第5位) 通过设XRST=0和RRST=0使串行口复位,然后再设置XRST=1和RRST=1使串行口脱离复位状态。 XRST和RXST可被分别设置,也就是说,可分别使发送器和接收器复位。当向其中一位写入0时,串行口的相应部分被复位。 4. 发送和接收中断(SSPCR的第8-6位) 为使用查询方式确定FIFO缓冲器何时需要服务,则需要通过屏蔽中断屏蔽寄存器(IMR)来禁止中断。 同步串行口具有两种中断,它们可管理FIFO缓冲器的读/写操作。 处理器通过以下两种方式确定FIFO缓冲器何时需要服务: 通过查询SSPCR寄存器(RFNE和TCOMP位) 通过设置XINT和/或RINT中断 用中断管理串行口的传输,则需要执行以下三个步骤: 创建XINTs和RINTs的中断服务程序,并在相应的中断矢量地址为每个中断服务程序设置一条转移指令: RINT矢量从0008h地址提取 XINT矢量从000Ah地址提取 选择在何时发生中断,并相应地设置FR0,FRl,FT0和FT1位。可在FIFO缓冲器空时或在FIFO缓冲器具有1-2字或具有3-4字、或全满时设置缓冲器以产生中断。 通过解除中断屏蔽寄存器(IMR)中的中断屏蔽来允许中断。 注意: 为了避免来自SSP的双重中断,则在相应的中断服务程序返回之前清除IFR位(XNT或RINT)。 1 2 3 5.7.4 FIFO缓冲器内容的管理 当发送FIFO缓冲器已满时,向SDTR的额外写无效。因此,除非发送FIFO缓冲器至少还有一个字的空间为空,都不应该向FIFO入一个字。 SDTR是一个读/写寄存器(I/O地址为FFF0h)。它用于向发送FIFO缓冲器传送数据以及从接收FIFO缓冲器提取数据。 如果仅当发送缓冲器为空时,程序才向缓冲器写入数据,则可使用发送完成(TCOMP)位;当缓冲器空时,TCOMP=0。 通过OUT指令可向SDTR写入一个字。 可利用缓冲器内容设置一个发送中断(XINT) (使用SSPCR的FT1和FT0位)。 接收FIFO缓冲器保存数据时,通过SDTR (使用IN指令)读取接收FIFO缓冲器所接收的数据。 通过使用SSPCR的FR1和FR0位设置一个基于接收FIFO缓冲器状态的接收中断(RINT)。 通过读取SSPCR中接收FIFO缓冲器的末空位(RFNE)可以检查接收缓冲器的状态。 5.7.5 发送操作 发送操作因不同的操作模式(连续和突发)而有所不同。 另外,使用内部或外部帧同步时,发送操作也有所不同。 具有内部帧同步的突发发送模式 (FSM=l,TXM=1) 使用一个内部帧同步发生器时,采用具有内部帧同步的突发发送模式可以以低于最大分组频率的速率传送短信息包。 通过设FSM位和TXM位置1,可以将发送置为具有内部帧同步的突发模式。 具有内部帧同步的突发模式 这种操作模式具有以下性能: 在每次发送开始时,内部产生具有一个时钟周期的帧同步脉冲。 如果在XINT中断服务程序中更新SDTR,则可以被转换为连续发送。 一次外部事件(如,一个外部中断)或一个接收中断(RINT)可以启动传输。 通常,发送时钟和接收时钟使用同一个时钟源。这就允许在时钟信号的上升沿由另一器件发送数据,紧接着在时钟信号的下降沿由C2XX接收数据。 FIFO缓冲器最多只能接收4个字。 在采用具有内部帧同步的突发发送模式时,遵循下列步骤: 通过向SDTR写入数据启动发送。 一个帧同步脉冲在CLKX的下一个上升沿产生。帧同步脉冲在一个时钟周期内保持高电平。 在FSX为高电平之后,在CLKX的下一个上升沿上,SXR装载FIFO缓冲器最底端的值,并且帧同步脉冲为低电平。此外,在DX引脚上第一个数据位(首先是MSB位)被驱动。如果此时FIFO缓冲器已空,则产生XINT中断以请求下一个数据。 后面的数据位被移出,在CLKX的每个上升沿每个新数据位被发送。 如果FIFO缓冲器仍有一个或多个字等待发送,则在发送LSB的同时产生帧同步脉冲,并且从第3步开始继续执行发送操作; 如果FIFO已空,则发送完成; 如果SDTR在发送FIFO缓冲器已满时装载一个新字,则该新字丢失。 串行口或C2XX器件的复位可以中断突发模式(从而转变为连续模式)。 在发送数据时,改变FSM位或暂停操作不会导致发送模式的转变。 具有外部帧同步的突发发送模

文档评论(0)

海川电子书城 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档