您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > MSP430G2553串行通信UART和SPI
MSP430串行通信UART、SPI陈文根刘磊2016/6/26河南工业大学通信原理•单工、全双工、半双工–能同时收发就是全双工,比如打电话,双方可以“对吼”。–数据能收能发,但要分时进行就是半双工,比如对讲机。一方按下按键,只能说话(发送数据),另一方只能收听。当一个人说完必须加一句“over”,然后就得松开按键(接收数据),对方听到“over”知道对方讲完了,这时才能按下按键说话(发送数据)。–只能单向通信就是单工了,比如广播,播音员播音时(发送数据),听众永远只能是听众。通信原理•并行通信通信原理•串行通信–1线通信•在真正传输“有用信号前”,需要先确定信号的流向(读还是写)。•由于没有同步时钟,每1位数据的间隔必须足够大以容忍时钟的频差和相差。通信原理–2线通信•增加同步时钟线。这样一来,虽然也得麻烦的判断信号流向,但是每位数据的间隔可以很小(波特率高)。(左图)•增加数据线。一根负责收,一根负责发,构成全双工通信,这样也能成倍提高效率。(右图)通信原理–3线通信•有了3根线,就可以有1根时钟线,1根数据发送线,1根数据接收线了。这样的速度又可以加快了。•需规定主机从机,同步时钟由主机控制。通信原理–具体应用•全双工时,往往不宜多机对等的通信,最多是1主多从(除非给每个主机增加使能控制线)。•而半双工时,则很容易“并联”成多机通信,通过总线仲裁和地址广播等办法来实现任意设备之间的通信。通信原理•通信协议–简单说,就是通信的双方要约定1、0序列代表什么含义,就像可以用“三长两短”代表危险一样。如果我们是自己使用两片单片机进行通信,那么我们爱怎么规定数据流的含义就怎么规定,谁也管不着。但是,自定义的通讯协议有几个缺点。通信原理•自编通讯协议的效率不高,会有bug。成熟的通讯协议都是人类集体智慧的结晶。•不是通用协议,不能与“别人”进行通信。协议这个东西,和霸王条款差不多。•成熟的通信协议有相应的硬件支持,可以在通信时减轻CPU的负担,增强性能。UARTUART原理•UART–UART(UniversalAsynchronousReceiver/Transmitter)是通用异步收发器的缩写,一般称为串口。由于不需要时钟线,且为全双工工作,所以UART有两根数据线,发送Tx和接收Rx。UART原理•UART通信协议–首先是一个起始位,然后是7-8位可选的数据位,0-1位可选的地址判别位、0-1位可选的奇偶判别位、1-2位可选的高电平停止位。UART原理•UART多机通信–UART可以1主多从进行通信,主机的Tx连上全部从机的Rx,主机的Rx连上所有从机的Tx。UART原理–地址位模式多机通信•在每帧中插入了一个地址位AddressBit。UART原理–空闲帧模式多机通信•对于每次对同一从机都发送很多数据的情况下,采用空闲帧模式的效率更高。UART下相关的寄存器-功能选择寄存器UART下相关的寄存器-UCAxCTL1控制寄存器UART下相关的寄存器-波特率设置寄存器UART下相关的寄存器-中断使能寄存器UART下相关的寄存器-接收和发送缓冲寄存器UART下相关的寄存器-中断标志位寄存器SPISPI原理•SPI的数据接口–SPI(SerialPeripheralInterface)串行外设接口的简称,它是一种同步全双工通信协议。Motorola首先提出的有3根或者4根数据线组成,包括CLK、SOMI、SIMO、STE:•SOMI是SlaveoutputMasterinput的缩写,如果设备被设定为主机,那么这就是输入口。如果设备被设定为从机,这个口就是输出口。这与UART的Tx和Rx方向恒定相不同。•SIMO是SlaveinputMasterOutput的缩写。•STE是SlaveTransmitEnable的缩写。SPI原理–SPI共分为4种工作模式:三线制主模式、三线制从模式、四线制主模式、四线制从模式。SPI原理–SPI协议时序图•数据传输格式–通常是高位(MSB)在前,低位(LSB)在后。一些增强型MCU中可以通过软件设置高位在前或低位在前。•两个概念–时钟极性:表示时钟信号在空闲时是高电平还是低电平。–时钟相位:决定数据是在SCK(CLK)的起始沿采样还是在SCK(CLK)的结束沿采样。SPI原理时钟相位为1时钟前沿数据输出时钟后沿数据采样时钟信号极性0极性1从机选择时钟相位控制为0时钟前沿数据采样时钟后沿数据输出Bit112345678Bit1Bit2Bit3Bit4Bit5Bit6Bit7Bit8Bit1Bit2Bit3Bit4Bit5Bit6Bit7Bit8Bit1Bit2Bit3Bit4Bit5Bit6Bit7Bit812345678SCK(CPOL=0)SCK(CPOL=1)SSELCPHA=0Cycle#CPHA=0MOSI(CPHA=0)MISO(CPHA=0)CPHA=1Cycle#CPHA=1MOSI(CPHA=1)MISO(CPHA=1)Bit2Bit3Bit4Bit5Bit6Bit7Bit8时钟前沿输出时钟后沿采样时钟前沿采样时钟后沿输出SPI原理•传输模式‒根据时钟极性(CPOL)及相位(CPHA)不同可以组合成4种工作模式:SPI0,SPI1,SPI2,SPI3.(1)SPI0:CPOL=0,CPHA=0(2)SPI1:CPOL=0,CPHA=1(3)SPI2:CPOL=1,CPHA=0(4)SPI3:CPOL=1,CPHA=1USCI模块•通用串行通信接口(USCI)模块支持多种串行通信模式。不同的USCI模块支持不同的模式•USCI_Ax模块支持:–UART模式–IrDA通信的脉冲整形–LIN通信的自动波特率检测–SPI模式•USCI_Bx模块支持:–I2C模式–SPI模式SPI模式下可用的USCI寄存器名称描述访问复位值寄存器访问UCBxCTLW0USCI_Bx控制字0读/写0001h字UCBxBRWUSCI_Bx波特率控制字读/写0000h字UCBxMCTLUSCI_Bx调制器控制UCBxSTATUSCI_Bx状态寄存器读/写00h字节UCBxRXBUFUSCI_Bx接收缓存读/写00h字节UCBxTXBUFUSCI_Bx发送缓存读/写00h字节UCBxI2COAUSCI_BxI2C本机地址读/写0000h字UCBxI2CSAUSCI_BxI2C从机地址读/写0000h字UCBxICTLUSCI_Bx中断控制读/写0200h字UCBxIEUSCI_Bx中断使能读/写00h字节UCBxIFGUSCI_Bx中断标志读/写02h字节UCBxIVUSCI_Bx中断向量读0000h字USCI_Ax和USCI_Bx都有SPI模块,下面以USCI_Bx为例,介绍相关寄存器UCB控制寄存器UCBxCTL1(USCI_Bxcontrolregister)00:NA01:ACLK10:SMCLK11:SMCLK0:不允许软件复位1:允许软件复位0:前沿采样,后沿输出1:前沿输出,后沿采样0:从机模式1:主机模式00:三线制01:四线制,UCxSTE=1选择从机10:四线制,UCxSTE=0选择从机11:I2C模式0:异步通信1:同步通信0:时钟空闲状态为低电平1:时钟空闲状态为高电平UCB控制寄存器UCBxCTL0(USCI_Bxcontrolregister)0:LSBfirst1:MSBfirst0:8-bitdata1:7-bitdata比特率控制寄存器UCBxBR0和UCBxBR1UCBxBR0是比特率发生器的低8位;UCBxBR1是比特率发生器的高8位。计算是UCBR0+UCBR1×256串口中断允许寄存器IE20:发送中断禁止1:发送中断允许0:接收中断禁止1:接收中断允许串口中断标志寄存器UCBxIFG1:发送缓冲器为空0:接收缓冲器不满串口状态寄存器UCBxSTAT环回模式,发立即到收总线冲突标志,用于4线跑飞标志USCI忙收发串口中断缓冲器UCBxRXBUF和UCBxTXBUFUCRXBUFx:接收缓冲器UCTXBUFx:发送缓冲器
本文标题:MSP430G2553串行通信UART和SPI
链接地址:https://www.777doc.com/doc-309898 .html