第十章-串行通信接口SCI

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第十章串行通信接口SCITMS320LF240x内部有一个串行通信(SCI)接口模块,来实现与其它外设之间的串行数据通信。波特率可编程。SCI的发送器与接收器都是双缓冲的。各自有工作使能和中断控制。可工作于全双工模式波特率可编程。10.1串行通信接口的结构10.1.1串行通信接口的物理描述(1)两个I/O引脚:SCIRXD与SCITXD(2)通过对一个16位的波特率选择寄存器编程,可得到65000种的不同速率。第十章串行通信接口SCI(3)1-8位的可编程数据位。(4)长度为1位或2位的可编程停止位。(5)内部产生的串行时钟。(6)四个错误的检测标志:奇偶性错误、超限错误、帧错误、间断检测(7)两种唤醒多处理器模式:空闲线唤醒、位寻址唤醒(8)半双工或全双工。(9)双缓冲接收和发送功能。(10)发送和接收操作均可通过中断或查询操作进行(11)非归零格式(NRZ)第十章串行通信接口SCI10.1.2SCI模块的结构模块主要包括以下部件:(1)发送器-TX:SCITXBUF-发送数据缓冲寄存器,存发送数据。TXSHF-发送移位寄存器,每次1位送到SCITXD引脚(2)接收器-RX:RXSHF-接收移位寄存器,每次1位将SCITXD引脚上的数据移入。SCIRXBUF-接收数据缓冲寄存器,存RXSHF接收到数据(3)一个可编程的波特率发生器。(4)控制和状态寄存器(映射在数据存储器区)第十章串行通信接口SCI10.1.3SCI模块的寄存器地址7050hSCICCRSCI控制寄存器7051hSCICTRL1SCI控制寄存器17052hSCIBAUD波特率选择寄存器高8位7053hSCIBAUD波特率选择寄存器低8位7054hSCICTRL2SCI控制寄存器27055hSCIRXSTSCI接收器状态寄存器7056hSCIRXEMUSCI仿真数据缓冲寄存器7057hSCIRXBUFSCI接收器数据缓冲寄存器7059hSCITXBUFSCI发送数据缓冲寄存器第十章串行通信接口SCI10.1.4多机异步通信模式SCI有两种多处理器协议,即空闲线路多处理器模式和地址位多处理器模式,这些协议允许在多个处理器之间进行有效的数据传输。SCI提供了与许多流行的外围设备接口的通用异步接收器发送器(UART)通信模式。异步模式需要两条钱与标准设备接口,如使用RS-232C格式的终端和打印机等。数据发送的字符包括:•一个起始位•1-8个数据位•一个奇偶校验位或无奇偶校验位•1-2个数据位10.2可编程的数据格式串行通信接口可的数据无论是接收还是发送都采用NRZ(非归零)格式,NRZ包括以下组成部分:•一个起始位•1-8个数据位.•一个奇偶校验位或无奇偶校验位•1-2个停止位•一个从数据中识别地址的附加位(仅用于地址模式)。第十章串行通信接口SCI第十章串行通信接口SCI数据的基本单位被称作一个字符,为1-8位的字长。数据的每个字符格式化为1个起始位,1-2个停止位和可选的奇偶校验位和地址位,如图8-2所示。注意:带有格式化信息数据的一个字符称为一个帧。第十章串行通信接口SCI第十章串行通信接口SCI8.3SCI多处理器通信多处理器通信即一条串行线上只能有一个信息源。地址字节:信息源发送的数据块的第一个字节包括一个地址字节,它被所有的接收器读取,但只有地址正确的接收器才能被紧随地址字节后面的数据字节中断,地址不正确的接收器不被中断,直到下一个地址字节。SLEEP位:串行线路上的所有处理器将它们的串行通信接口的SLEEP位(SClCTL1.2)设置为1,这样当仅在检测到地址字节时才被中断。第十章串行通信接口SCI当一个处理器读取到的一个数据块地址与软件设置的CPU器件地址相一致时,用户程序必须清除SLEEP位来确保串行通信接口在收到每个数据字节时产生一个中断。尽管当SLEEP位为1时,接收器仍能工作,但它不会使RXRDY、RXINT或任何接收错误状态位设置为1,除非检测到地址字节,且接收到的帧的地址位是1。SCI不会改变SLEEP位,必须由用户软件改变。识别地址字节处理器根据多处理器的模式来识别一个地址字节,例如:•空闲线模式在地址字节前留有一段静空间。该模式没有一个附加的地址/数据位,在处理包含多于10个字节的数据块的情况下,其效率比地址位模式更高。空闲线模式应用于典型的非多处理器的SCI通信。第十章串行通信接口SCI第十章串行通信接口SCI•地址位模式为每个字节增加一个附加位(地址位)来从数据中识别地址。该模式在处理多个小数据块时更有效。与空闲线模式不一样,因为它在数据块之间不需要等待。当处于高速传送时,空闲模式的程序速率不足以避免传送中的一个10位空闲位。第十章串行通信接口SCI控制SCITx和Rx特性多处理器的模式可通过ADDR/IDLEMODE位(SCICCR.3)来设置。两种模式都使用TXWAKE(发送唤醒标志)位(SCICTL1.3),RXWAKE(接收唤醒标志)位(SCIRXST.1)和SLEEP标志位(SCICTL1.3)来控制串行通信接口发送器和接收器的工作状态。接收顺序:在两种多处理器模式中,接收顺序如下:(1)在接收一个地址块时,串行通信接口唤醒并请求一个中断(RX/BKINTENA-SCICTL2.1必须被使能以请求中断)。它读取地址块的第一帧数据,其中包括目的地址.第十章串行通信接口SCI(2)通过中断和检查程序引入的地址进入一个软件服务程序,并且该地址字节与保存在内存中的器件地址再次进行校对。(3)如果检查表明此块是DSP控制器的地址,则CPU清除SLEEP位并读块的其余部分,如果不是,则退出软件子程序,SLEEP位设置为1,并在下一个块开始之前不接收中断。第十章串行通信接口SCI10.3.1空闲线多处理器模式第十章串行通信接口SCI10.3.2地址位多处理器模式第十章串行通信接口SCI10.3.2地址位多处理器模式第十章串行通信接口SCI10.4SCI通信模式第十章串行通信接口SCI10.4.1通信模式中的接收器信号第十章串行通信接口SCI10.4.2通信模式中的发送器信号第十章串行通信接口SCI10.5串行通信中断10.6SCI波特率计算10.7SCI模块寄存器如后图第十章串行通信接口SCI10.7.1SCICommunicationControlRegister(SCICCR)Bit7STOPBITS.SCInumberofstopbits.0-Onestopbit1-TwostopbitsBit6PARITY.SCIparityodd/evenselection.0-Oddparity1-EvenparityBit5PARITYENABLE.SCIparityenable.0-Paritydisabled1-Parityisenabled第十章串行通信接口SCIBit4LOOPBACKENA.LoopBacktestmodeenable.0-LoopBacktestmodedisabled1-LoopBacktestmodeenabledBit3ADDR/IDLEMODE.SCImultiprocessormodecontrolbit.0-Idle-linemodeprotocolselected1-Address-bitmodeprotocolselectedBits2–0SCICHAR2–0.Character-lengthcontrolbits2–0.第十章串行通信接口SCI10.7.2SCIControlRegister1(SCICTL1)SCICTL1controlsthereceiver/transmitterenable,TXWAKEandSLEEPfunctions,andtheSCIsoftwarereset.第十章串行通信接口SCI10.7.3Baud-SelectRegisters(SCIHBAUD,SCILBAUD)ThevaluesinSCIHBAUDandSCILBAUDspecifythebaudratefortheSCI.第十章串行通信接口SCI第十章串行通信接口SCI10.7.4SCIControlRegister2(SCICTL2)SCICTL2enablesthereceive-ready,break-detect,andtransmit-readyinterruptsaswellastransmitter-readyand-emptyflags.第十章串行通信接口SCIBit7TXRDY.Transmitterbufferregisterreadyflag.0-SCITXBUFisfull1-SCITXBUFisreadytoreceivethenextcharacter第十章串行通信接口SCIBit6TXEMPTY.Transmitteremptyflag.0-Transmitterbufferorshiftregisterorbothareloadedwithdata1-TransmitterbufferandshiftregistersarebothemptyBits5–2Reserved.Bit1RX/BKINTENA.Receiver-buffer/breakinterruptenable.0-DisableRXRDY/BRKDTinterrupt1-EnableRXRDY/BRKDTinterruptBit0TXINTENA.SCITXBUF-registerinterruptenable.0-DisableTXRDYinterrupt1-EnableTXRDYinterrupt10.7.5ReceiverStatusRegister(SCIRXST)第十章串行通信接口SCIBit7RXERROR.SCIreceiver-errorflag.0-Noerrorflagsset1-Errorflag(s)setBit6RXRDY.SCIreceiver-readyflag.0-NonewcharacterinSCIRXBUF1-CharacterreadytobereadfromSCIRXBUF第十章串行通信接口SCIBit5BRKDT.SCIbreak-detectflag.0-Nobreakcondition1-BreakconditionoccurredBit4FE.SCIframing-errorflag.0-Noframingerrordetected1-FramingerrordetectedBit3OE.SCIoverrun-errorflag.0-Nooverrunerrordetected1-Overrunerrordetected第十章串行通信接口SCIBit2PE.SCIparity-errorflag.0-Noparityerrororparityis1-ParityerrorisdetectedBit1RXWAKE.Receiverwakeup-detectflag.Bit0Reserved.Readsreturnzero;writeshavenoeffect.第十章串行通信接口SCI10.7.6ReceiverDataBufferRegisters(SCIRXEMU,SCIRXBUF)10.7.6.1EmulationDataBufferThisistheregisterwhichshouldbeusedinanemulatorwatchwindowtoviewthecontentsofSCIRXBUFregister.SCIRXEMUisnotphysicallyimplemented,itisjustadifferentaddresslocationtoaccesstheSCIRXBUFregisterwithoutclearingtheRXRDYflag.第十章串行通信接口SCI10.7.6.2ReceiverDataBuffer(SCIRXBUF)10.7.7TransmitDataBufferRegister(SCITXB

1 / 39
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功