资源预览内容
第1页 / 共38页
第2页 / 共38页
第3页 / 共38页
第4页 / 共38页
第5页 / 共38页
第6页 / 共38页
第7页 / 共38页
第8页 / 共38页
第9页 / 共38页
第10页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
MSP430串行通信,UART、SPI 陈文根 刘磊 2016/6/26,河南工业大学,通信原理,单工、全双工、半双工 能同时收发就是全双工,比如打电话,双方可以“对吼”。 数据能收能发,但要分时进行就是半双工,比如对讲机。一方按下按键,只能说话(发送数据),另一方只能收听。当一个人说完必须加一句“ over ”,然后就得松开按键(接收数据),对方听到“ over ”知道对方讲完了,这时才能按下按键说话(发送数据)。 只能单向通信就是单工了,比如广播,播音员播音时(发送数据),听众永远只能是听众。,通信原理,并行通信,通信原理,串行通信 1 线通信 在真正传输“有用信号前”,需要先确定信号的流向(读还是写)。 由于没有同步时钟,每 1 位数据的间隔必须足够大以容忍时钟的频差和相差。,通信原理,2 线通信 增加同步时钟线。 这样一来,虽然也得麻烦的判断信号流向,但是每位数据的间隔可以很小(波特率高)。(左图) 增加数据线。 一根负责收,一根负责发,构成全双工通信,这样也能成倍提高效率。(右图),通信原理,3 线通信 有了 3 根线,就可以有 1 根时钟线, 1 根数据发送线, 1 根数据接收线了。这样的速度又可以加快了。 需规定主机从机,同步时钟由主机控制。,通信原理,具体应用 全双工时,往往不宜多机对等的通信,最多是 1 主多从(除非给每个主机增加使能控制线)。 而半双工时,则很容易“并联”成多机通信, 通过总线仲裁和地址广播等办法来实现任意设备之间的通信。,通信原理,通信协议 简单说,就是通信的双方要约定 1、0 序列代表什么含义,就像可以用“三长两短”代表危险一样。如果我们是自己使用两片单片机进行通信,那么我们爱怎么规定数据流的含义就怎么规定,谁也管不着。但是,自定义的通讯协议有几个缺点。,通信原理,自编通讯协议的效率不高,会有 bug。成熟的通讯协议都是人类集体智慧的结晶。 不是通用协议,不能与“别人”进行通信。协议这个东西,和霸王条款差不多。 成熟的通信协议有相应的硬件支持,可以在通信时减轻 CPU 的负担,增强性能。,UART,UART 原理,UART UART( Universal Asynchronous Receiver/ Transmitter)是通用异步收发器的缩写,一般称为串口。由于不需要时钟线,且为全双工工作,所以 UART 有两根数据线,发送 Tx 和接收Rx。,UART 原理,UART 通信协议 首先是一个起始位,然后是 7-8 位可选的数据位,0-1 位可选的地址判别位、 0-1 位可选的奇偶判别位、1-2 位可选的高电平停止位。,UART 原理,UART 多机通信 UART 可以 1 主多从进行通信,主机的 Tx 连上全部从机的 Rx,主机的Rx 连上所有从机的 Tx。,UART 原理,地址位模式多机通信 在每帧中插入了一个地址位 Address Bit。,UART 原理,空闲帧模式多机通信 对于每次对同一从机都发送很多数据的情况下,采用空闲帧模式的效率更高。,UART下相关的寄存器,-功能选择寄存器,UART下相关的寄存器,-UCAxCTL1控制寄存器,UART下相关的寄存器,-波特率设置寄存器,UART下相关的寄存器,-中断使能寄存器,UART下相关的寄存器,-接收和发送缓冲寄存器,UART下相关的寄存器,-中断标志位寄存器,SPI,SPI 原理,SPI 的数据接口 SPI( Serial Peripheral Interface)串行外设接口的简称,它是一种同步全双工通信协议。Motorola首先提出的有 3 根或者 4 根数据线组成,包括 CLK、SOMI、SIMO、STE: SOMI 是 Slave output Master input 的缩写,如果设备被设定为主机,那么这就是输入口。如果设备被设定为从机,这个口就是输出口。这与 UART 的 Tx 和 Rx 方向恒定相不同。 SIMO 是 Slave input Master Output 的缩写。 STE 是 Slave Transmit Enable 的缩写。,SPI 原理,SPI 共分为 4 种工作模式:三线制主模式、三线制从模式、四线制主模式、四线制从模式。,SPI 原理,SPI 协议时序图 数据传输格式 通常是高位(MSB)在前,低位(LSB)在后。一些增强型MCU中可以通过软件设置高位在前或低位在前。 两个概念 时钟极性:表示时钟信号在空闲时是高电平还是低电平。 时钟相位:决定数据是在SCK(CLK)的起始沿采样还是在SCK(CLK)的结束沿采样。,SPI 原理,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=1,USCI 模块,通用串行通信接口(USCI)模块支持多种串行通信模式。不同的USCI 模块支持不同的模式 USCI_Ax 模块支持: UART 模式 IrDA 通信的脉冲整形 LIN 通信的自动波特率检测 SPI 模式 USCI_Bx 模块支持: I2C 模式 SPI 模式,MSP430 模块,MSP430的SPI模块有如下特点: 支持3线或4线SPI操作 支持7位或8位数据格式 接收和发送有单独的移位寄存器 接收和发送有独立的缓冲器 接收和发送有独立的中断能力 时钟的极性和相位可编程 主模式的时钟频率可编程 传输速率可编程 支持连续收发操作 支持主从方式,SPI模式下可用的USCI寄存器,USCI_Ax和USCI_Bx都有SPI模块,下面以USCI_Bx为例,介绍相关寄存器,UCB控制寄存器 UCBxCTL1(USCI_Bx control register),00: NA 01: ACLK 10:SMCLK 11:SMCLK,0: 不允许软件复位 1: 允许软件复位,0: 前沿采样,后沿输出 1: 前沿输出,后沿采样,0: 从机模式 1: 主机模式,00:三线制 01:四线制,UCxSTE=1选择从机 10:四线制,UCxSTE=0选择从机 11:I2C模式,0: 异步通信 1: 同步通信,0: 时钟空闲状态为低电平 1: 时钟空闲状态为高电平,UCB控制寄存器 UCBxCTL0(USCI_Bx control register),0: LSB first 1: MSB first,0: 8-bit data 1: 7-bit data,比特率控制寄存器 UCBxBR0和UCBxBR1,UCBxBR0是比特率发生器的低8位; UCBxBR1是比特率发生器的高8位。 计算是UCBR0 + UCBR1256,串口中断允许寄存器IE2,0: 发送中断禁止 1: 发送中断允许,0: 接收中断禁止 1: 接收中断允许,串口中断标志寄存器 UCBxIFG,1: 发送缓冲器为空,0: 接收缓冲器不满,串口状态寄存器 UCBxSTAT,环回模式, 发立即到收,总线冲突标志,用于4线,跑飞标志,USCI忙收发,串口中断缓冲器 UCBxRXBUF和UCBxTXBUF,UCRXBUFx: 接收缓冲器 UCTXBUFx: 发送缓冲器,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号