串行通信接口_第1页
串行通信接口_第2页
串行通信接口_第3页
串行通信接口_第4页
串行通信接口_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

第8章

串行通信接口本章内容:8.1SCI模块概述8.2SCI模块的结构8.3SCI的寄存器

24xDSP的通信接口包括异步串行通信接口(SCI)、串行外设接口(SPI)、控制器局域网络(CAN)接口等。18.1SCI模块概述

24xDSP的SCI(SerialCommunicationInterface)串行通信接口模块是一个标准的异步串行口(UART)。可以和RS232/485设备接口。可以半双工或全双工操作。可以通过波特率选择寄存器设置波特率。

数据格式:一个起始位、1~8位数据位、可选择奇/偶/无校验位、一个或两个停止位。2SCI的特性:(1)两个I/O引脚:SCIRXD与SCITXD(2)一个16位的波特率选择寄存器可编程,可得到65536种的不同速率。(3)1~8位的可编程数据位。(4)长度为1位或2位的可编程停止位。(5)内部产生的串行时钟。(6)四个错误的检测标志: 奇偶性错误、超限错误、帧错误、间断检测(7)两种唤醒多处理器模式:空闲线唤醒、位寻址唤醒(8)半双工或全双工通信。(9)双缓冲接收和发送功能。(10)发送和接收操作均可通过中断或查询进行。(11)非归零格式(NRZ)。3注意:SCI模块内的所有寄存器为8位,但它与16位的外设总线相连。因此当访问这些寄存器时,寄存器的数据在低字节(0~7位),高字节(8~15位)读出为0,对高字节的写操作无效。4SCI模块的结构8.2SCI模块的结构5模块主要包括以下部件:(1)发送器-TXSCITXBUF-发送数据缓冲寄存器,存发送数据。TXSHF-发送移位寄存器,每次1位送到SCITXD引脚。(2)接收器-RXRXSHF-接收移位寄存器,每次1位将SCIRXD引脚上的数据移入。SCIRXBUF-接收数据缓冲寄存器,存RXSHF接收到数据。(3)一个可编程的波特率发生器。(4)控制和状态寄存器(映射在数据存储器区)。6SCI模块的寄存器地址 寄存器 名称7050h SCICCR SCI通信控制寄存器7051h SCICTL1 SCI控制寄存器17052h SCIHBAUD 波特率选择寄存器高8位7053h SCILBAUD 波特率选择寄存器低8位7054h SCICTL2 SCI控制寄存器27055h SCIRXST SCI接收器状态寄存器7056h SCIRXEMU SCI仿真数据缓冲寄存器7057h SCIRXBUF SCI接收器数据缓冲寄存器7059h SCITXBUF SCI发送数据缓冲寄存器705Fh SCIPRI SCI优先级控制寄存器71.串行通信接口的信号分类信号名称说明外部信号SCIRXDSCI异步串行接口接收数据SCITXDSCI异步串行接口发送数据控制信号波特率时钟LSPCLK预分频时钟中断信号TXINT发送中断RXINT接收中断82.多处理器和异步通信模式3.串行通信接口可编程数据格式

串行通信接口SCI有两个多处理器协议:空闲线多处理器模式和地址位多处理器模式。数据的基本单位为字符,它的长度是1~8位。数据的每个字符包括一个起始位、一个或者两个停止位、一个可选的奇偶校验位和一个地址位。94.SCI多处理器通信

多处理器通信格式允许一个处理器在同一串行线上与其他的处理器进行有效的数据块传输。在一个串行线上,在同一时刻只允许存在一个发送器。地址字节:发送的数据包的第一个字节包括一个地址字节,它被所有的听众读取,只有地址相符的听众才能接收跟在地址字节后的数据,地址不相符的等待接收下一个地址。SLEEP:串行连接的所有处理器将其串行通信接口的SLEEP位(SCICTL1.2)置成1,使得它们在检测到地址字节时才被中断,当地址相符时用户需清除SLEEP位来保证在收到每个数据字节时产生一个中断。SCI数据帧格式10处理器根据多处理器的模式来识别地址字节:

空闲线模式在地址前留有一个固定空间,该模式没有附加的地址/数据位,它在处理包含多于10个字节的数据块时比地址位模式更有效。地址位模式在每个字节中加入一个额外位(地址位)来区分地址和数据,它在处理多个小数据块时更有效。在两种多处理器模式中,接收步骤:

接收地址块时,串行通信接口唤醒并请求中断即使能RX/BKINTENA位(SCICTL2.1)以请求中断;它读取地址块的第一帧数据,其中包括目的处理器的地址。通过中断和校对程序得到的地址进入软件子程序,并且该地址字节与存在内存中的器件地址再次进行校对。若地址相符,则CPU就清除SLEEP位并读取块中剩余的数据,否则,退出子程序并且SLEEP位依旧置位,直到下一个地址块的开始才接收中断。115.空闲线多处理器模式

数据块与数据块之间通过较长的空闲时间分开,而且这个空闲时间比数据块内部帧与帧之间的空闲时间长得多。空闲线协议通过在某一帧之后使用10位或更多的空闲时间来指示一个新数据块的开始。有两种方法可传送块的开始信号:在前一块最后一帧的数据传送与新块的地址帧传送之间特意留出10位或更多位的空闲时间来延时;在写入到SCITXBUF寄存器之前,串行通信接口首先将发送唤醒位(TXWAKE)置1,传送11位的空闲时间,用这种方法串行通信线只空闲必要的一些位。与发送唤醒位(TXWAKE)相关的是唤醒暂存标志位(WUT),这是一个内部标志,与TXWAKE构成双缓冲。当发送器的移位寄存器(TXSHF)从串行通信接口发送数据缓冲寄存器(SCITXBUF)装载数据时,WUT从发送唤醒标志位(TXWAKE)中装入数据,然后TXWAKE位被清零。12在发送期间,一帧时间的块开始信号:设置发送唤醒位TXWAKE为1;将一个数字(内容不重要)写到SCITXBUF寄存器来作为传送一个块的开始信号。当移位寄存器TXSHF再次空闲时,发送数据缓冲寄存器SCITXBUF的内容被传送到TXSHF中,TXWAKE位被移入到WUT,然后TXWAKE位被清零(因TXWAKE为1,启动位、数据位和奇偶位被在上一帧最后停止位后的11位空闲位所取代);将新的地址写入SCITXBUF寄存器。这个无关数据字必须首先被写到SCITXBUF,从而TXWAKE的值可以移入到WUT中。在无关数据被移入TXSHF中后,因TXSHF和WUT都是两级缓冲,因而SCITXBUF寄存器可重新写入新的值。136.地址位多处理器模式

在该模式中,帧信息的最后一个数据位后紧跟着一个称之为地址位的附加位。在数据块中,第一个帧的地址位设为1,其他帧的地址位都要设成0。发送一个地址的步骤:

设置TXWAKE为1并且将一个合适的地址写入到SCITXBUF中,当该地址被移入TXSHF寄存器中且又被移出时,它的地址位被置1,这就向串行线上的其他处理器发标志位使其读取地址;因TXSHF和WUT都是双缓冲的,故SCITXBUF和TXWAKE可在TXSHF和WUT装入后,立即写入新值;在发送块中的无地址帧(数据帧)时,应将TXWAKE位置0。147.SCI通信格式SCI异步通信格式

每一帧都由一个起始位、1至8个数据位、一个可选的奇偶校验位和1~2个停止位组成。每个数据位有8个SCICLK周期。处理器通过对每个位的中间3次采样值来确定该位的值。这些采样分别出现在第4个、第5个和第6个时钟周期,而且根据多数表决(3取2)原则确定该位的值。

158.串行通信接口中断

SCI接收器和发送器都能产生中断。SCICTL2寄存器中包含有一个标志位(TXRDY),它用于指示当前中断的状态,同时SCIRXST寄存器也包含两个中断标志位(RXRDY和BRKDT)和一个RXERROR中断标志(由FE、OE和PE等条件进行逻辑或产生)。发送器和接收器分别拥有各自的中断使能位。

SCI接收器和发送器都有各自的中断向量。中断申请既可设置为高优先级也可以设置为低优先级,这由SCI模块向PIE控制器送出的优先级标志位决定。当RX和TX中断都分配在同一个优先级时,为了减小发生接收溢出的概率,接收器中断总是比发送器中断的优先级高。169.SCI波特率计算SCI模块的波特率(1≤BRR≤65535

)波特率选择寄存器(SCIHBAUD,SCILBAUD)的值BRRBRR=0时178.3SCI的寄存器SCI通信控制寄存器:SCICCRSCI控制寄存器1:SCICTL1波特率选择寄存器:SCIHBAUD,SCILBAUDSCI控制寄存器2:SCICTL2SCI接收状态寄存器:SCIRXSTSCI接收数据缓冲寄存器:SCIRXBUFSCI发送数据缓冲寄存器:SCITXBUFSCI优先级控制寄存器:SCIPRI18SCI通信控制寄存器(SCICCR)

SCI通信控制寄存器(SCICommunicationControlRegister,SCICCR)定义了字符格式、协议和通信模式。位7STOPBITS:设置SCI停止位的个数。1:2个停止位,0:1个停止位。位6EVEN/ODDPARITY:SCI奇偶校验选择位。1:偶校验,0:奇校验

位5PARITYENABLE:SCI奇偶校验使能位。1:使能,0:禁止。

位4LOOPBACKENA:自测模式使能位。1:使能自测模式,0:禁止自测模式。位3ADDR/IDLEMODE:SCI多处理器模式选择位。1:选择地址位模式。0:选择空闲线模式。位2~0SCICHAR2~0:字符长度选择位。19字符的长度选择SCICHAR2SCICHAR1SCICHAR0字符长度/位数0001001201030114100510161107111820SCI控制寄存器1(SCICTL1)

SCI控制寄存器1(SCIControlRegister1,SCICTL1)控制接收/发送的使能,TXWAKE和SLEEP功能,以及SCI软件重启动。位6RXERRINTENA:SCI接收错误中断使能位。1:使能

位5SWRESET:SCI软件复位位(低电平有效)。位3TXWAKE:SCI发送器唤醒方法选择位。0:没有选定发送特性,1:选定的发送特性取决于空闲线模式或地址位模式位2SLEEP:SCI休眠位。0:禁止休眠模式,1:休眠模式。位1TXENA:SCI发送使能位。0:禁止发送,1:使能发送。位0RXENA:SCI接收使能位。0:禁止接收,1:使能接收。

21波特率选择寄存器(SCIHBAUD,SCILBAUD)包括波特率选择高字节寄存器SCIHBAUD和低字节寄存器SCILBAUD。二者内确定了SCI的波特率。22SCI模块的波特率按下式计算(1≤BRR≤65535)波特率选择寄存器(SCIHBAUD,SCILBAUD)的值BRRBRR=0时23SCI控制寄存器2(SCIControlRegister2,SCICTL2)

位7TXRDY:发送缓冲寄存器准备就绪标志位。1:SCITXBUF空,准备接收数据,0:SCITXBUF满位6TXEMPTY:发送器空标志位。1:SCITXBUF寄存器或TXSHF寄存器空,0:SCITXBUF寄存器,TXSHF寄存器或两者都装入了数据位1RX/BKINTENA:接收缓冲器/间断中断使能位。1:使能,0:禁止位0TXINTENA:发送缓冲寄存器(SCITXBUF)中断使能位。

1:使能TXRDY中断,0:禁止TXRDY中断24SCI接收状态寄存器:SCIRXST

SCI接收状态寄存器(SCIReceiverStatusRegister,SCIRXST)包含了7位接收器的状态标志(其中两个可以产生中断请求)。位7RXERROR:SCI接收器错误标志位。0:无错误置位标志,1:有错误置位标志位6RXRDY:SCI接收器准备就绪标志位。位5BRKDT:SCI间断检测标志位。0:不满足间断条件,1:满足间断条件位4FE:SCI帧错误(FrameError)标志位。0:未检

温馨提示

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

评论

0/150

提交评论