您好,欢迎访问三七文档
2019/8/15山东大学控制学院张东亮1第7章串行通信接口本章内容:7.1SCI模块概述7.2SCI模块的结构7.3SCI的寄存器7.4SCI应用实例7.5串行外设接口SPI7.6增强型CAN总线eCAN7.7多通道缓冲串行口McBSP28xDSP的通信接口包括异步串行通信接口(SCI)、串行外设接口(SPI)、控制器局域网络(CAN)接口、多通道缓冲串口(McBSP)、芯片间总线(I2C)接口等。中继台山东大学控制学院张东亮27.1SCI模块概述28xDSP的SCI(SerialCommunicationInterface)串行通信接口模块是一个标准的异步串行口(UART)。可以和RS232/485设备接口。可以半双工或全双工操作。可以通过波特率选择寄存器设置波特率。数据格式:一个起始位、1~8位数据位、可选择奇/偶/无校验位、一个或两个停止位。2019/8/15山东大学控制学院张东亮3SCI-UART(2modulesaboard)Twowakeupmultiprocessormodesidle-lineandaddressbitHalforfullduplexoperation16-leveltransmit/receiveFIFObufferAuto-baud-detectHardwareLogicSCITXDSCIRXDSystemControlBlockSCIAENCLKPeripheralBusSCITXINTSCIRXINTSCIRegistersLowSpeedPrescalerLSPCLKCPUSYSCLKOUTInterruptHandlingModuleGPIOMUXSCI/CPUInterfaceCommunicationPeripheralsCommunicationPeripheralsSCI(UART)2019/8/15山东大学控制学院张东亮4SCI模块与CPU接口框图2019/8/15山东大学控制学院张东亮5SCI模块的结构框图7.2SCI模块的结构2019/8/15山东大学控制学院张东亮6串行通信接口SCI的结构:发送器(TX)及其寄存器接收器(RX)及其寄存器可编程波特率发生器控制和状态寄存器1.串行通信接口的信号分类信号名称说明外部信号RXDSCI异步串行接口接收数据TXDSCI异步串行接口发送数据控制信号波特率时钟LSPCLK预分频时钟中断信号TXINT发送中断RXINT接收中断2019/8/15山东大学控制学院张东亮72.多处理器和异步通信模式3.串行通信接口可编程数据格式4.SCI多处理器通信串行通信接口SCI有两个多处理器协议:空闲线多处理器模式和地址位多处理器模式。数据的基本单位为字符,它的长度是1~8位。数据的每个字符包括一个起始位、一个或者两个停止位、一个可选的奇偶校验位和一个地址位。多处理器通信格式允许一个处理器在同一串行线上与其他的处理器进行有效的数据块传输。在一个串行线上,在同一时刻只允许存在一个发送器。2019/8/15山东大学控制学院张东亮85.空闲线多处理器模式空闲线多处理器模式的数据格式数据块与数据块之间通过较长的空闲时间分开,而且这个空闲时间比数据块内部帧与帧之间的空闲时间长得多。空闲线协议通过在某一帧之后使用10位或更多的空闲时间来指示一个新数据块的开始。2019/8/15山东大学控制学院张东亮96.地址位多处理器模式地址位多处理器模式的数据格式在该模式中,帧信息的最后一个数据位后紧跟着一个称之为地址位的附加位。在数据块中,第一个帧的地址位设为1,其他帧的地址位都要设成0。2019/8/15山东大学控制学院张东亮107.SCI通信格式SCI异步通信格式每一帧都由一个起始位、1至8个数据位、一个可选的奇偶校验位和1~2个停止位组成。每个数据位有8个SCICLK周期。处理器通过对每个位的中间3次采样值来确定该位的值。这些采样分别出现在第4个、第5个和第6个时钟周期,而且根据多数表决(3取2)原则确定该位的值。2019/8/15山东大学控制学院张东亮11通信模式中SCIRX信号时序图通信模式中SCITX信号时序图2019/8/15山东大学控制学院张东亮128.串行通信接口中断SCI接收器和发送器都能产生中断。SCICTL2寄存器中包含有一个标志位(TXRDY),它用于指示当前中断的状态,同时SCIRXST寄存器也包含两个中断标志位(RXRDY和BRKDT)和一个RXERROR中断标志(由FE、OE和PE等条件进行逻辑或产生)。发送器和接收器分别拥有各自的中断使能位。SCI接收器和发送器都有各自的中断向量。中断申请既可设置为高优先级也可以设置为低优先级,这由SCI模块向PIE控制器送出的优先级标志位决定。当RX和TX中断都分配在同一个优先级时,为了减小发生接收溢出的概率,接收器中断总是比发送器中断的优先级高。2019/8/15山东大学控制学院张东亮139.SCI波特率计算SCI模块的波特率(1≤BRR≤65535)81)(BRRLSPCLKBAUD波特率选择寄存器(SCIHBAUD,SCILBAUD)的值BRR18BAUDLSPCLKBRRBRR=0时16LSPCLKBAUD2019/8/15山东大学控制学院张东亮147.3SCI的寄存器•SCI通信控制寄存器:SCICCR•SCI控制寄存器1:SCICTL1•波特率选择寄存器:SCIHBAUD,SCILBAUD•SCI控制寄存器2:SCICTL2•SCI接收状态寄存器:SCIRXST•SCI接收数据缓冲寄存器:SCIRXBUF•SCI发送数据缓冲寄存器:SCITXBUF•SCI优先级控制寄存器:SCIPRI2019/8/15山东大学控制学院张东亮15SCI通信控制寄存器(SCICCR)SCI通信控制寄存器(SCICommunicationControlRegister,SCICCR)定义了字符格式、协议和通信模式。位7STOPBITS:设置SCI停止位的个数。1/0:2/1个停止位。位6EVEN/ODDPARITY:SCI奇偶校验选择位。1:偶校验。位5PARITYENABLE:SCI奇偶校验使能位。1:使能。位4LOOPBACKENA:自测模式使能位。1:使能。位3ADDR/IDLEMODE:SCI多处理器模式选择位。1:选择地址位模式。0:选择空闲线模式。位2~0SCICHAR2~0:字符长度选择位。2019/8/15山东大学控制学院张东亮16字符的长度选择SCICHAR2SCICHAR1SCICHAR0字符长度/位数000100120103011410051016110711182019/8/15山东大学控制学院张东亮17SCI控制寄存器1(SCICTL1)SCI控制寄存器1(SCIControlRegister1,SCICTL1)控制接收/发送的使能,TXWAKE和SLEEP功能,以及SCI软件重启动。位6RXERRINTENA:SCI接收错误中断使能位。1:使能位5SWRESET:SCI软件复位位(低电平有效)。位3TXWAKE:SCI发送器唤醒方法选择位。位2SLEEP:SCI休眠位。1:休眠模式。检测地址字节。位1TXENA:SCI发送使能位。1:使能发送。位0RXENA:SCI接收使能位。1:使能接收。2019/8/15山东大学控制学院张东亮18波特率选择寄存器(SCIHBAUD,SCILBAUD)81)(BRRLSPCLKBAUD18BAUDLSPCLKBRR16LSPCLKBAUDSCI模块的波特率按下式计算(1≤BRR≤65535)16位波特率选择寄存器中的值BRR为如果BRR=0,则包括波特率选择高字节寄存器SCIHBAUD和低字节寄存器SCILBAUD。二者内确定了SCI的波特率。2019/8/15山东大学控制学院张东亮19SCI控制寄存器2(SCIControlRegister2,SCICTL2)位7TXRDY:发送缓冲寄存器准备就绪标志位。1:准备接收数据。位6TXEMPTY:发送器空标志位。位1RX/BKINTENA:接收缓冲器/间断中断使能位。1:使能。位0TXINTENA:发送缓冲寄存器(SCITXBUF)中断使能位。2019/8/15山东大学控制学院张东亮20SCI接收状态寄存器:SCIRXSTSCI接收状态寄存器(SCIReceiverStatusRegister,SCIRXST)包含了7位接收器的状态标志(其中两个可以产生中断请求)。位7RXERROR:SCI接收器错误标志位。位6RXRDY:SCI接收器准备就绪标志位。位5BRKDT:SCI间断检测标志位。位4FE:SCI帧错误(FrameError)标志位。位3OE:SCI溢出错误标志位。位2PE:SCI奇/偶校验错误标志位。位lRXWAKE:SCI接收器唤醒检测标志位。2019/8/15山东大学控制学院张东亮21SCI接收数据缓冲寄存器(SCIRXEMU,SCIRXBUF)接收数据缓冲寄存器(SCIRXEMU,SCIRXBUF)用于接收数据,将数据从寄存器RXSHF转移到SCIRXEMU和SCIRXBUF中。仿真数据缓冲器寄存器SCIRXEMU主要是由仿真器(EMU)使用。2019/8/15山东大学控制学院张东亮22SCI发送数据缓冲寄存器(SCITXBUF)SCI优先级控制寄存器(SCIPriorityControlRegister,SCIPRI)位4~3SCISOFT和SCIFREE:当一个仿真悬挂事件产生时,这两位决定其后如何操作。00:一旦仿真悬挂,立即停止。10:一旦仿真悬挂,在完成当前的接收/发送操作后停止。x1:SCI操作不受仿真挂起影响。2019/8/15山东大学控制学院张东亮237.4SCI应用实例例,DSP通过RS-232与PC机串行通信。包括硬件接口电路与通信软件。+C1+C5+C3+C4+C2Vcc162738495DB9C1+1C1-3C2-5GND15V-6V+2Vcc16TIOUT14R1IN13R1OUT12T1IN11C2+4MAX3232RXDTXD1μF1μF1μF1μF1μFDSPPCPC机采用串口调试工具软件,将PC机键盘的输入发送给DSP,DSP收到PC机发来的数据后,回送同一数据给PC机,并在PC机屏幕上显示出来。DSP通过MAX3232电平转换电路与PC机串行通信2019/8/15山东大学控制学院张东亮24//采用查询方式编写的DSP通信程序。SCIA将接收到的数据字节后回送#includeDSP281x_Device.hunsignedintRecieveChar;voidScia_init()//SCIA初始化程序{EALLOW;GpioMuxRegs.GPFMUX.all=0x0030;//设置GPIOF4,5为通信端口EDIS;SciaRegs.SCICTL2.all=0x0000;//禁止接收和发送中断SciaRegs.SCILBAUD=0x00E7;//波特率=9600SciaRegs.SCIHBAUD=0x0001;SciaRegs.SCICCR.all=0x0007;//1个停止位,禁止校验,8位字符//禁止自测试,异步空闲线协议SciaRegs.SCICTL1.all=0x0023;//脱离复位状态,使能接收发送}2019/8/15山东大学控制学院张东亮25voidmain(void){InitSysCtrl();//系统初始化DINT;//禁止和清除所有的CPU中断IER=0x0000;IFR=0x0000;Scia_init();//SCIA初始化while(1){while(SciaRegs.SCIRXST.bit.RXRDY!=1){}//XRDY=1表示接收到数据RecieveChar=SciaRegs.SCIRXBUF.all;SciaRegs.SCITXBUF=RecieveChar+1;//接收到的字符Re
本文标题:第7章串行通信接口
链接地址:https://www.777doc.com/doc-319402 .html