当前位置:文档之家› MSP430G2553串行通信UART和SPI

MSP430G2553串行通信UART和SPI

– 首先是一个起始位,然后是 7-8 位可选的数据 位,0-1 位可选的地址判别位、 0-1 位可选的 奇偶判别位、1-2 位可选的高电平停止位。
UART 原理
• UART 多机通信
– UART 可以 1 主多从进行通信,主机的 Tx 连 上全部从机的 Rx,主机的Rx 连上所有从机的 Tx。
UART 原理
Bit时钟后沿采样 2 Bit 3 Bit 4 Bit 5 Bit 2 Bit 3 Bit 4 Bit 5
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
SPI 原理
– SPI 共分为 4 种工作模式:三线制主模式、三 线制从模式、四线制主模式、四线制从模式。
SPI 原理
– SPI 协议时序图
• 数据传输格式
– 通常是高位(MSB)在前,低位(LSB)在后。一些增强型 MCU中可以通过软件设置高位在前或低位在前。
• 两个概念
–时钟极性:K)的起始沿采样还是在 SCK(CLK)的结束沿采样。
USCI 模块
• 通用串行通信接口(USCI)模块支持多种串行通信 模式。不同的USCI 模块支持不同的模式 • USCI_Ax 模块支持:
– – – – UART 模式 IrDA 通信的脉冲整形 LIN 通信的自动波特率检测 SPI 模式
• USCI_Bx 模块支持:
– I2C 模式 – SPI 模式
0000h
00h 00h 00h 0000h 0000h 0200h 00h 02h 0000h

字节 字节 字节 字 字 字 字节 字节 字
UCB控制寄存器 UCBxCTL1(USCI_Bx control register)
00: NA 01: ACLK 10:SMCLK 11:SMCLK
0: 不允许软件复位 1: 允许软件复位
通信原理
• 并行通信
通信原理
• 串行通信
– 1 线通信
• 在真正传输“有用信号前”,需要先确定信号的流 向(读还是写)。 • 由于没有同步时钟,每 1 位数据的间隔必须足够大 以容忍时钟的频差和相差。
通信原理
– 2 线通信
• 增加同步时钟线。 这样一来,虽然也得麻烦的判断 信号流向,但是每位数据的间隔可以很小(波特率 高)。(左图) • 增加数据线。 一根负责收,一根负责发,构成全双 工通信,这样也能成倍提高效率。(右图)
USCI_Bx波特率控制字
USCI_Bx调制器控制 USCI_Bx状态寄存器 USCI_Bx接收缓存 USCI_Bx发送缓存 USCI_Bx I2C本机地址 USCI_Bx I2C从机地址 USCI_Bx中断控制 USCI_Bx中断使能 USCI_Bx中断标志 USCI_Bx中断向量
读 /写
读 /写 读 /写 读 /写 读 /写 读 /写 读 /写 读 /写 读 /写 读
SPI模式下可用的USCI寄存器
USCI_Ax和USCI_Bx都有SPI模块,下面以USCI_Bx为例,介绍相关寄存器
名称 描述 访问 读 /写 复位值 0001h 寄存器访问 字 UCBxCTLW0 USCI_Bx控制字0
UCBxBRW
UCBxMCTL UCBxSTAT UCBxRXBUF UCBxTXBUF UCBxI2COA UCBxI2CSA UCBxICTL UCBxIE UCBxIFG UCBxIV
SPI 原理
时钟信号 极性0 极性1
SCK (CPOL = 0) SCK (CPOL = 1) SSEL CPHA = 0 Cycle # CPHA = 0 MOSI (CPHA = 0) MISO (CPHA = 0) CPHA = 1 Cycle # CPHA = 1 MOSI (CPHA = 1) MISO (CPHA = 1) 1 Bit 1 Bit 1 1 Bit 1 Bit 1 2 时钟前沿采样 3 4 Bit 2 Bit 2 5 6 Bit 6 Bit 6 7 Bit 7 Bit 7 8 Bit 8 Bit 8
-波特率设置寄存器
UART下相关的寄存器
-中断使能寄存器
UART下相关的寄存器
-接收和发送缓冲寄存器
UART下相关的寄存器
-中断标志位寄存器
SPI
SPI 原理
• SPI 的数据接口
– SPI( Serial Peripheral Interface)串行外设接 口的简称,它是一种同步全双工通信协议。 Motorola首先提出的有 3 根或者 4 根数据线组 成,包括 CLK、SOMI、SIMO、STE:
UCRXBUFx: 接收缓冲器 UCTXBUFx: 发送缓冲器
• SOMI 是 Slave output Master input 的缩写,如果 设备被设定为主机,那么这就是输入口。如果设备 被设定为从机,这个口就是输出口。这与 UART 的 Tx 和 Rx 方向恒定相不同。 • SIMO 是 Slave input Master Output 的缩写。 • STE 是 Slave Transmit Enable 的缩写。
– 地址位模式多机通信
• 在每帧中插入了一个地址位 Address Bit。
UART 原理
– 空闲帧模式多机通信
• 对于每次对同一从机都发送很多数据的情况下,采 用空闲帧模式的效率更高。
UART下相关的寄存器
-功能选择寄存器
UART下相关的寄存器
-UCAxCTL1控制寄存器
UART下相关的寄存器
UCB控制寄存器 UCBxCTL0(USCI_Bx control register)
0: 从机模式 1: 主机模式 0: 8-bit data 1: 7-bit data
0: LSB first 1: MSB first 0: 时钟空闲状态为低电平 1: 时钟空闲状态为高电平 0: 前沿采样,后沿输出 1: 前沿输出,后沿采样
通信原理
– 3 线通信
• 有了 3 根线,就可以有 1 根时钟线, 1 根数据发送 线, 1 根数据接收线了。这样的速度又可以加快了。 • 需规定主机从机,同步时钟由主机控制。
通信原理
– 具体应用
• 全双工时,往往不宜多机对等的通信,最多是 1 主 多从(除非给每个主机增加使能控制线)。 • 而半双工时,则很容易“并联”成多机通信, 通过 总线仲裁和地址广播等办法来实现任意设备之间的 通信。
通信原理
• 通信协议
– 简单说,就是通信的双方要约定 1、0 序列代 表什么含义,就像可以用“三长两短”代表危 险一样。如果我们是自己使用两片单片机进行 通信,那么我们爱怎么规定数据流的含义就怎 么规定,谁也管不着。但是,自定义的通讯协 议有几个缺点。
通信原理
• 自编通讯协议的效率不高,会有 bug。成熟的通讯 协议都是人类集体智慧的结晶。 • 不是通用协议,不能与“别人”进行通信。协议这 个东西,和霸王条款差不多。 • 成熟的通信协议有相应的硬件支持,可以在通信时 减轻 CPU 的负担,增强性能。
从机选择
时钟相位 控制为0 时钟前沿 数据采样 时钟后沿 数据输出
Bit 3 Bit 4 Bit 5 时钟后沿输出 Bit 3 Bit 4 Bit 5
时钟相位为 1
时钟前沿数 据输出 时钟后沿数 据采样
时钟前沿输出 2 3 4
5
6 Bit 6 Bit 6
7 Bit 7 Bit 7
8 Bit 8 Bit 8
河南工业大学
MSP430串行通信
UART、SPI
陈文根 刘磊 2016/6/26
通信原理
• 单工、全双工、半双工
– 能同时收发就是全双工,比如打电话,双方可 以“对吼”。 – 数据能收能发,但要分时进行就是半双工,比 如对讲机。一方按下按键,只能说话(发送数 据),另一方只能收听。当一个人说完必须加 一句“ over ”,然后就得松开按键(接收数据), 对方听到“ over ”知道对方讲完了,这时才能按 下按键说话(发送数据)。 – 只能单向通信就是单工了,比如广播,播音员 播音时(发送数据),听众永远只能是听众。
0: 异步通信 1: 同步通信
00:三线制 01:四线制,UCxSTE=1选择从机 10:四线制,UCxSTE=0选择从机 11:I2C模式
比特率控制寄存器 UCBxBR0和UCBxBR1
UCBxBR0是比特率发生器的低8位; UCBxBR1是比特率发生器的高8位。 计算是UCBR0 + UCBR1×256
UART
UART 原理
• UART
– UART( Universal Asynchronous Receiver/ Transmitter)是通用异步收发器的缩写,一般 称为串口。由于不需要时钟线,且为全双工工 作,所以 UART 有两根数据线,发送 Tx 和接 收Rx。
UART 原理
• UART 通信协议
串口中断允许寄存器IE2
0: 发送中断禁止 1: 发送中断允许
0: 接收中断禁止 1: 接收中断允许
串口中断标志寄存器 UCBxIFG
1: 发送缓冲器为空
0: 接收缓冲器不满
串口状态寄存器 UCBxSTAT
总线冲突标 志,用于4线
环回模式, 发立即到收
USCI忙 收发 跑飞标志
串口中断缓冲器 UCBxRXBUF和UCBxTXBUF
相关主题