《串行通信接口模块.ppt》由会员分享,可在线阅读,更多相关《串行通信接口模块.ppt(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第10章:串行通信接口模块(SCI)10.1 串行通信接口概述 10.2 多处理器异步通信模式串行外设接口操作 10.3 串行通信接口控制寄存器 10.1 串行通信接口概述SCI 接口模块实现与其它外设之间的异步串行数据通信。波特率可编程。SCI 的发送器与接收器都是双缓冲的。各自有工作使能和中断控制。可工作于全双工模式。内部结构如图10.1所示 10.1 串行通信接口概述SCI 模块的特性:两个I/O 引脚:SCIRXD 与SCITXD 一个16位的波特率选择寄存器可编程,可得到65536种的不同速率 1-8 位的可编程数据位。长度为1位或2位的可编程停止位。内部产生的串行时钟。四个错误的检
2、测标志:奇偶性错误、超限错误、帧错误、间断检测 两种唤醒多处理器模式:空闲线唤醒、位寻址唤醒 半双工或全双工。双缓冲接收和发送功能。发送和接收操作均可通过中断或查询进行。非归零格式(NRZ)。10.1 串行通信接口概述SCI 模块主要部件:(1)发送器-TX SCITXBUF-发送数据缓冲寄存器,存发送数据。TXSHF 发送移位寄存器,每次1位送到SCITXD 引脚(2)接收器-RX RXSHF 接收移位寄存器,每次1位将SCIRXD 引脚上的数据移入。SCIRXBUF-接收数据缓冲寄存器,存RXSHF 接收到数据。(3)一个可编程的波特率发生器。10.1 串行通信接口概述(4)控制和状态寄存
3、器(映射在数据存储器区)地址 寄存器 名称7050h SCICCRSCI 通信控制寄存器7051h SCICTRL1SCI 控制寄存器17052h SCIBAUD波特率选择寄存器高8位7053h SCIBAUD波特率选择寄存器低8位7054h SCICTRL2SCI 控制寄存器27055h SCIRXSTSCI 接收器状态寄存器7056h SCIRXEMUSCI 仿真数据缓冲寄存器7057h SCIRXBUFSCI 接收器数据缓冲寄存器7059h SCITXBUFSCI 发送数据缓冲寄存器705Fh SCIPRISCI 优先级控制寄存器 10.2 多处理器(多机)异步通信模式SCI 提供了与许
4、多外设的UART 通信模式。异步模式需要两条线与标准设备接口,如使用RS-232C格式的终端和打印机等。SCI 有两种多处理器协议:(1)空闲线路多处理器模式。(2)地址位多处理器模式。这些协议允许在多个处理器之间进行有效的数据传输。10.2 多处理器(多机)异步通信模式 1、可编程的数据格式串行通信接口可的数据无论是接收还是发送都采用NRZ(非归零)格式,NRZ 包括以下组成部分:1个起始位 1-8 个数据位.1个或无奇偶校验位 1-2 个停止位 1个从数据中识别地址的附加位(仅用于地址模式)10.2 多处理器(多机)异步通信模式基本单位为一个字符,其长度为1-8 位。数据的每个字符格式化为
5、1个起始位,1-2 个停止位和可选的奇偶校验位和地址位,如图10.2所示。注意:带有格式化信息数据的一个字符称为一个字符帧。SCI 数据单位基本格式 10.2 多处理器(多机)异步通信模式为了对数据格式化进行编程,要使用SCI 通信控制寄存器(SCICCR)。用于对数据格式进行编程的位如下表所示。位 功能SCICCR.2-0选择字符长度(1-8 位)SCICCR.5是否选择奇偶校验功能SCICCR.6选择奇偶校验,1-偶,0-奇SCICCR.7停止位的个数,1-1 个,0-2 个 10.2 多处理器(多机)异步通信模式 2、SCI 多处理器通信多处理器通信中一条串行线上只能有一个信息源。地址字
6、节信息源发送的数据块的第一个字节为一地址字节,它被所有的接收器读取,但只有地址正确的接收器才能被紧随地址字节后面的数据字节中断,地址不正确的接收器不被中断,直到下一个地址字节。10.2 多处理器(多机)异步通信模式 SLEEP 位串行线路上的所有处理器将它们的串行通信接口的SLEEP位(SClCTL1.2)设置为1,仅在检测到地址字节时才被中断。当一个处理器读取到的一个数据块地址与本器件地址相一致时,用户程序必须清除SLEEP 位来确保串行通信接口在收到每个数据字节时产生一个中断。尽管当SLEEP 位为1时,接收器仍能工作,但它不会使RXRDY、RXINT 或任何接收错误状态位设置为1,除非检
7、测到地址字节,且接收到的帧的地址位是1。SLEEP 位必须由用户软件改变。10.2 多处理器(多机)异步通信模式 识别地址字节处理器根据多处理器的模式来识别一个地址字节,例如:空闲线模式在地址字节前留有一段静空间。该模式没有一个附加的地址数据位,在处理包含多于10个字节的数据块的情况下,其效率比地址位模式更高。地址位模式为每个字节增加一个附加位(地址位)来从数据中识别地址。该模式在处理多个小数据块时更有效。与空闲线模式不一样,因为它在数据块之间不需要等待。但在大数据块传输中效率不如空闲线模式。10.2 多处理器(多机)异步通信模式 控制SCI Tx 和Rx 特性多处理器的模式可通过ADDR I
8、DLE MODE 位(SCICCR.3)来设置。两种模式都使用TXWAKE 位(SCICTL1.3)、RXWAKE 位(SCIRXST.1)和SLEEP 标志位(SCICTL1.3)来控制串行通信接口发送器和接收器的工作状态。接收顺序:在两种多处理器模式中,接收顺序如下(1)在接收一个地址块时,串行通信接口唤醒并请求一个中断(中断必须被使能)。它读取地址块的第一帧数据,其中包括目的地址。(2)通过中断和检查程序引入的地址进入一个软件服务程序,并且该地址字节与保存在内存中的本器件地址再次进行校对。(3)如果检查表明此块是DSP 控制器的地址,则CPU 清除SLEEP 位并读块的其余部分,如果不是
9、,则退出软件子程序,SLEEP 位设置为1,直到下一个地址块开始才接收中断。10.2 多处理器(多机)异步通信模式 空闲线多处理器模式ADDR IDLE MODE 0,数据块被块间的时间间隔分开,该时间间隔比块中数据帧之间的时间间隔要长。一帧后的空闲时间(十个或更多的高电平位)表明了一个新块的开始,单个位的时间可以由波特率值算出。10.2 多处理器(多机)异步通信模式 地址位多处理器模式ADDR/IDLE MODE 位1,每帧中有一附加的地址位紧跟在最后一个数据位后。在数据块的第一帧中,地址位设为1,而在其它所有的帧中置成0。空闲周期的时间是不相连的。10.2 多处理器(多机)异步通信模式 3
10、、SCI 通信模式SCI 异步通信可使用半双工或全双工模式通信。在这种模式下,一个帧包括1个起始位、1-8 个数据位、1个可选的奇偶校验位以及1-2 个停止位。每个数据占8个SCICLK 周期。接收器在接收到一个有效的起始位后开始工作。一个有效的起始位由4个连续的内部SCICLK 周期的零位来识别。如果任何一个位都不为0,则处理器重新启动并开始寻找另一个起始位。10.2 多处理器(多机)异步通信模式对于起始位后的位,处理器通过在其中间进行三次采样来判定其位值。采样点位于第4、5、6个SCICLK 周期。如果三次采样有两次为某值,则判定为该值。10.2 多处理器(多机)异步通信模式 通信模式中的
11、接收器信号假设条件:地址位唤醒模式;每个字符6位。注意:设置RXENA 位为1来使能接收器接收数据;数据到达SCIRXD 引脚后,检测到起始位;数据从RXSHF 寄存器移到SCIRXBUF 寄存器中,产生中断请求。标志位RXRDY 变为1表示已收到一个新字符;当读SCIRXBUF 寄存器时,标志位RXRDY 自动被清除;数据的下一个字节到达SCIRXD 引脚,检测到启始位,然后清除;若RXENA 变低,则接收器被禁止。数据继续保持在RXSHF 寄存器中,但没有移入到SCIRXBUF 寄存器中。10.2 多处理器(多机)异步通信模式 通信模式中的发送器信号假设条件:地址位唤醒模式;每个字符3位。
12、注意:设置TXENA 位为1来使能接收器接收数据;SCITXBUF 寄存器被写入,发送器不为空,TXRDY 变低;SCI 接口将数据传送到TXSHF 寄存器。发送器准备传送第2个字符(TXRDY 变高),并发出发送中断请求(TXINT ENA 置1);TXRDY 变高后,程序将第2个字符传送到SCITXBUF 寄存器,写入后TXRDY 变低;发送完第1个字符后,TXEMPTY 位升高,将第2个字符传送到TXSHF 寄存器的操作开始;若TXENA 变低,则发送器被禁止。串行通信接口结束发送当前字符;发送完第2个字符后,发送器变空并准备发送新字符。10.2 多处理器(多机)异步通信模式 4、SCI
13、 中断SCI 的接收器和发送器可以由中断控制,SCICTL2 寄存器中有一个标志位(TXRDY)表示有效的中断条件,SCIRXST 寄存器有两个中断标志位(RXRDY 和BRKDT)和接收错误标志位(RX ERROR),其中RX ERROR 是FE、OE 和PE 条件的逻辑或。发送器和接收器有各自的中断使能位。当中断被屏蔽时,不会产生中断,但条件标志位仍有效,该位反映了发送和接收的状态,可用于查询方式。串行通信接口(SCl)的发送器和接收器有自己独立的外设中断向量。外设中断请求可使用高优先级或低优先级,中断优先级由SCIPRI 寄存器中相应的位来控制。当接收和发送中断都设置为相同的优先级时,接
14、收中断往往具有更高的优先级,这样可以减少接收超时错误。10.2 多处理器(多机)异步通信模式如 果RX BK INT ENA 位(SCICTL2.1)置1,则 当 发 生 以下事件之一就产生一次接收中断:(1)SCI 接收到一个完整的帧并将RXSHF 寄存器中的内容传送到SCIRXBUF 寄存器,该操作会置位RXRDY(SCIRXST.6),并初始化中断。(2)间断检测条件发生(在一个丢失的停止位之后,SCIRXD引脚保持10个周期的低电平)。该操作会设置BRKDT 标志位,并初始化中断。如果TX INT ENA 位(SCICTL2.0)置位,当SCITXBUF 寄存器中的数据传送到TXSHF
15、 寄存器时,将产生一个发送中断请求,用以表示CPU 可以写数据到SCITXBUF 寄存器中,该操作会置位TXRDY 标志-SCICTL2.7,并初始化一个中断。10.2 多处理器(多机)异步通信模式 5、SCI 波特率计算内部产生的串行时钟由系统时钟频率CLKOUT 和两个波特率选择寄存器决定。SCI 使用16位的波特率选择寄存器来选择65536种不同的串行时钟频率中的一种。SCI 波特率选择寄存器为SCIHBAUD(高字节)和SCILBAUD(低字节),连一起形成16位的波特率值BRR。10.2 多处理器(多机)异步通信模式SCI 波特率可以使用如下的公式计算:上式适用于1BRR65535
16、的情况,如果BRR 0,则波特率的计算公式如下:例:若已知系统时钟频率SYSCLK=24MHz。用波特率为9600bps 进行RS-232 通信,试确定波特率选择寄存器的值即BRR。BRR=24106/(96008)-1=312.5-1=311.5138H 波特率选择寄存器设置为SCIHBAUD=01H,SCILBAUD=38H。10.3 串行通信接口控制寄存器 SCI 通信控制寄存器(SCICCR)7050h定义了用于SCI 的字符格式、协议和通信模式。SCI 控制寄存器1(SCICTL1)7051h控制接收器和发送器的使能位、TXWAKE 和SLEEP 功能、内部时钟使能以及串行通信接口的
17、软件复位。SCI 控制寄存器2(SCICTL2)7054h反映发送准备好和发送缓冲器空,及使能间断检测和SCITXBUF 中断。SCI 波特率选择高字节寄存器(SCIHBAUD)7052h SCI 波特率选择低字节寄存器(SCILBAUD)7053h SCI 接收状态寄存器(SCIRXST)7055h包括7个接收状态标志位(2 个可产生中断请求)。每将一个完整的数据传送到接收缓冲器时,这些状态标志位都被更新。每读接收缓冲器时,标志位被清除。10.3 串行通信接口控制寄存器 SCI 接收数据缓冲寄存器(SCIRXEMU)7056h SCI 接收数据缓冲寄存器(SCIRXBUF)7057h接收的数据从RXSHF 传送到接收数据缓冲寄存器中。传送操作完成时,RXRDY 标志位置位。两个寄存器中存放相同的数据;地址分开但屋里上不分开。区别:SCIRXEMU 主要是由仿真器(EMU)使用,读SCIRXEMU 操作不清楚RXRDY 位,而读SCIRXBUF 操作会清除该标志位。SCI 发送数据缓冲寄存器(SCITXBUF)7059h发送的数据被写入发送缓冲寄存器中。数据从该寄存器传送到发送移位寄存器(TXSHF)的操作将置位TXRDY 位,表明可向SCITXBUF 写入新数据。SCI 优先级控制寄存器(SCIPRI)705Fh选择SCI 发送中断优先级、接收中断优先级和仿真挂起。
限制150内