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