资源描述
*,uukghmb,*,Bbvbv,bn,ccx,电气工程学院,Electrical Engineering Institute of NEDU,*,uukghmb,*,Bbvbv,bn,ccx,电气工程学院,Electrical Engineering Institute of NEDU,第十二章 串行通信接口模块(,SCI,),Serial Communication Interface,2024/11/19,第十二章 串行通信接口模块(SCI)Serial Co,1,12.1,串行通信接口概述,SCI,模块支持异步通信,;,SCI,接收器和发送器是双缓冲的,各自有独立的使能位和中断标志位。可以独立工作,或全双工方式工作,;,SCI,对接收到的数据进行间断检测,奇偶校验,越限和帧出错的检查,;,数据传输速度可编程为,65535,种方式,;,八位外设接口。,2024/11/19,12.1串行通信接口概述SCI模块支持异步通信;2023/1,2,SCI,模块的特性包括:,两个外部引脚,SCIRXD,、,SCITXD,一个,16,位的波特率选择寄存器,可编程为,64K,种波特率,帧格式,:,一位启始位,18,数据位,可选的奇偶校验位,一位或两位停止位,4,种错误检测标志,:,奇偶错,越限,帧出错,间断检测,两种多处理器唤醒方式,:,空闲线或地址位唤醒,半双工或全双工操作,12.1,串行通信接口概述,2024/11/19,SCI模块的特性包括:12.1串行通信接口概述20,3,双缓冲的接收和发送功能;,发送和接收操作可利用状态位查询或中断完成;,发送器,:TXRDY,标志,(,发送缓冲器准备接收另一个来自,CPU,的字符,),TX EMPTY,标志位,(,发送移位寄存器空,),接收器,:RXRDY(,接收缓冲器准备接收另一字符,),BRKDT(,间断条件出现,),RX ERROR(,监视,4,个中断条件,(FE.OE.PE.BRKDT),不返回零格式;,12.1,串行通信接口概述,2024/11/19,双缓冲的接收和发送功能;12.1串行通信接口概述,4,全双工模式下,SCI,的主要部件,一个发送器(,TX,)及和它相关的主要寄存器;,一个接收器(,RX,)及和它相关的主要寄存器;,一个可编程的波特率发生器;,控制和状态寄存器。,12.1,串行通信接口概述,2024/11/19,全双工模式下SCI的主要部件一个发送器(TX)及和它相关的主,5,2024/11/19,2023/10/8,6,12.2,多处理器异步通信模式,两个多处理器通信协议,:,空闲线模式和地址位模式,提供了通用异步接收,/,发送,(UART),通信接口,主,机,TXD,RXD,TXD,RXD,从机,1,TXD,RXD,从机,n,2024/11/19,12.2多处理器异步通信模式两个多处理器通信协议:空闲,7,12.2.1,串行通信接口可编程的数据格式,串行通信接口的,NRZ,数据格式包括:,一个起始位;,1,8,个数据位;,一个奇,/,偶校验位或无奇,/,偶校验位;,1,2,个停止位;,一个用于区分数据和地址的额外位。,2024/11/19,12.2.1串行通信接口可编程的数据格式 串行通信接口的,8,一条串行线上某一时刻只能进行一次传送,地址字节:,发送机发送数据块,首先发送一个地址字节,它被所有的接收机读取,仅地址相符的接收机才接收地址字节后面的数据,.,SLEEP,位:,所有处理器将各自的,SLEEP,位置成,1,,在监测到地址字节时产生中断。当处理器读取到的地址与应用软件设置的本处理器地址相符时,用户须清除,SLEEP,位来确保收到每个数据字节时产生中断。,12.2.2 SCI,的多处理器通信,2024/11/19,一条串行线上某一时刻只能进行一次传送12.2.2 SC,9,地址字节的识别,空闲线模式,在地址字节前留有一定长度的空闲空间,这种模式对于大数据块传输更有效。,地址位模式,在每帧中加入额外地址,/,数据位,这种模式对于小数据块传输更有效。,12.2.2 SCI,的多处理器通信,2024/11/19,地址字节的识别12.2.2 SCI的多处理器通信20,10,在两种多处理器模式中,接收步骤如下:,接收地址块时,在,RX/BK,INT,ENA,位使能条件下,串行通信接口唤醒并请求中断,读取地址帧。,在中断服务程序中校对地址。,如果地址相符,则,CPU,就清除,SLEEP,位并读取块中的剩余的数据;否则,,SLEEP,位依旧置位,直到下一个地址块开始才接收并产生中断。,12.2.2 SCI,的多处理器通信,2024/11/19,在两种多处理器模式中,接收步骤如下:12.2.2,11,1.,空闲线多处理器模式(,ADDR/IDLE MODE=0,),数据块被块间的时间间隔分开,该时间间隔比块中的数据帧之间的时间间隔要长,一帧后的空闲时间(,10,个或更多个高电平位)表明了一个新块的开始。如下页图所示:,12.2.2 SCI,的多处理器通信,2024/11/19,1.空闲线多处理器模式(ADDR/IDLE MODE=0)数,12,12.2.2 SCI,的多处理器通信,2024/11/19,12.2.2 SCI的多处理器通信2023/10/8,13,空闲线模式接收步骤如下,:,接收到块启动信号后,SCI,唤醒;,处理器识别出下一个,SCI,中断,;,在中断服务程序中校对地址,;,如果该地址与本控制器的地址相符,则,CPU,就清除,SLEEP,位并读取块中的剩余的数据;,否则,,SLEEP,位依旧置位,直到下一个地址块的开始才接收中断。,12.2.2 SCI,的多处理器通信,2024/11/19,空闲线模式接收步骤如下:12.2.2 SCI的多处理器,14,空闲线模式下有两种方法可传送块的开始信号,在前一块的最后一帧的数据传送与新块的地址帧传送之间留出,10,位或更多位的空闲时间。,首先将发送唤醒位,TXWAKE,置,1,,然后再向,SCITXBUF,写入任意一个数据,这样可以在数据线上产生,11,位的空闲时间。,12.2.2 SCI,的多处理器通信,2024/11/19,空闲线模式下有两种方法可传送块的开始信号在前一块的最后一帧的,15,唤醒暂存标志位,Wake-UP Temporary(WUT)Flag,WUT,是一个内部标志,与,TXWAKE,构成双缓冲。,TXSHF,与,SCITXBUF,构成双缓冲,当,SCITXBUF,向,TXSHF,装载数据时,TXWAKE,值传送给,WUT,然后,TXWAKE,自动清零。,12.2.2 SCI,的多处理器通信,2024/11/19,唤醒暂存标志位 Wake-UP Temporary(WUT,16,空闲线模式下发送一个块起始信号步骤,设置发送唤醒位,TXWAKE,为,1,;,将一个数据字(内容不重要)写到,SCITXBUF,寄存器来作为传送一个块的开始信号,;,当,TXSHF,寄存器再次空闲时,,SCITXBUF,寄存器的内容被传送到,TXSHF,寄存器中,,TXWAKE,被移位到,WUT,,而后,TXWAKE,位被清,0,。因为,WUT,为,1,,则启始位、数据位和奇偶位被,11,位空闲周期所取代;,将新的地址写入,SCITXBUF,寄存器。,12.2.2 SCI,的多处理器通信,2024/11/19,空闲线模式下发送一个块起始信号步骤12.2.2 SCI的,17,地址位多处理器模式(,ADDR/IDLE MODE=1,),帧格式中有一个附加位,叫地址位,紧跟在数据位之后,在数据块的第一帧中附加位被置成,1,,在其他帧中被置成,0,,通信格式如下:,12.2.2 SCI,的多处理器通信,2024/11/19,地址位多处理器模式(ADDR/IDLE MODE=1)帧格,18,12.2.2 SCI,的多处理器通信,2024/11/19,12.2.2 SCI的多处理器通信2023/10/8,19,地址位模式下发送地址步骤,:,置,TXWAKE,为,1,并将地址写入,SCITXBUF,当,SCITXBUF,内容送到,TXSHF,移出时,TXWAKE,内容送,WUT,作为地址位移出,;,因为,TXSHF,和,WUT,是双缓冲的,因此,TXWAKE,和,SCITXBUF,可在装入,TXSHF,和,WUT,后,立即装入新值,;,发送数据帧时,应将,TXWAKE,清零。,12.2.2 SCI,的多处理器通信,2024/11/19,地址位模式下发送地址步骤:12.2.2 SCI的多处理器通,20,12.2.3 SCI,通信格式,每个数据位占用,8,个,SCICLK,周期,有效的启始位由,4,个连续的内部,SCICLK,周期的,0,位识别出来。对于启始位后的位,处理器对中间位采样,3,次来决定其位值,这些采样点出现在 第,4,、,5,、,6,个,SCICLK,周期,位值取决于多数,(,三分之二以上,),。,2024/11/19,12.2.3 SCI通信格式每个数据位占用8个SCICLK,21,12.2.3 SCI,通信格式,2024/11/19,12.2.3 SCI通信格式2023/10/8,22,通信模式中的接收器信号,12.2.3 SCI,通信格式,2024/11/19,通信模式中的接收器信号12.2.3 SCI通信格式2023/,23,例如:,地址位唤醒模式,每个字符,6,位,设置,RXENA,位为,1,来使能接收器接收数据,;,数据到达,SCIRXD,引脚后,检测到启始位,;,数据从,RXSHF,移到,SCIRXBUF,中,标志,RXRDY,置,1,表示已收到一个新字符,产生中断请求标志;,读,SCIRXBUF,时,标志位,RXRDY,自动被清除;,如,RXENA,为零,接收器被禁止,数据继续保持在,RXSHF,中,没有移入到,SCIRXBUF,中,12.2.3 SCI,通信格式,2024/11/19,例如:地址位唤醒模式,每个字符6位12.2.3 S,24,通信模式中的发送器信号,12.2.3 SCI,通信格式,2024/11/19,通信模式中的发送器信号12.2.3 SCI通信格式2023/,25,例如:地址位唤醒模式,每个字符,3,位,设置,TXENA,位为,1,使能发送器发送数据,;,SCITXBUF,被写入,,TXRDY,变低,;,SCITXBUF,数据传到,TXSHF,,发送器准备第,2,个字符,(TXRDY,变高,),,并发出中断请求,(TX INT ENA,位允许,);,程序将第,2,个字符传到,SCITXBUF,,写入后,TXRDY,又变低,,TX EMPTY,清零,发送完第,1,个字符后,,TX EMPTY,位置,1,。第,2,个字符传到,TXSHF,操作开始,;,如,TXENA,位为低,发送器被禁止,,SCI,结束发送。,发送完第,2,个字符后,发送器变空并准备发送新字符。,12.2.3 SCI,通信格式,2024/11/19,例如:地址位唤醒模式,每个字符3位12.2.3 SCI通信,26,12.2.4,串行通信接口中断,串行通信接口的接收器和发送器可由中断来控制,,标志位,TXRDY,用来指示发送中断条件,,标志位,RXRDY,和,RBKDT,用来指示接收中断条件,2024/11/19,12.2.4串行通信接口中断串行通信接口的接收器和发送器可,27,12.2.5,串行通信接口波特率计算,BRR=1,到,65535,时波特率为,:,SCI,波特率,=SYSCLK/,(,BRR+1,)*,8,BRR=0,时,:,SCI,波特率,=SYSCLK/16,例如:已知,SYSCLK=24MHz,,所需波特率为,9600bps,,进行,RS-232,通信,试确定波特率寄存器的值,BRR,BRR=24000000/,(,9600*8,),1=311.5,取,138H,所以波特率选择寄存器设置为,SCIHBUAD=01H,,,SCILBAUD=38H,2024/11/19,12.2.5串行通信接
展开阅读全文