第四章-异步(UART)通信
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TxD TxD
UART特性
UART是用硬件实现异步串行通信的通信接口电路。
全双工
异步模式可编程的7位、8位、9位数据 独立的波特率发生器 最大波特率是时钟频率的1/16 两个缓冲器用于发送和接收 CTS用于发送操作 可编程的奇、偶和无校验 检测帧错误和纠正错误 支持发送和接收中断
设备A 发送器/ 接收器 设备B 接收器/ 发送器
ቤተ መጻሕፍቲ ባይዱ
18
通信速率
数据的传输速率可以用比特率表示。
比特率——每秒传输的二进制位数,单位为 bps(bit per second )。 波特率——每秒钟调制信号变化的次数。
不考虑实际通信中的调制和解调,计算机直接 传输的信号只有高、低电平(逻辑0或逻辑1), 那么比特率就等于波特率。
举例: 采用USCI_A1模块的UART在ISR中将接收的字符原样 发送出去,工作于超低功耗LPM3模式下,时钟频率选择为 ACLK=32768Hz。
#include<msp430f6638.h> void main(void) { WDTCTL=WDTPW+WDTHOLD; while(BAKCTL&LOCKIO) BAKCTL&=~(LOCKIO); UCSCTL6&=~(XT1OFF); UCSCTL6|=XCAP_3; Do { UCSCTL7&=~(XT2OFFG+XT1LFOFFG+DCOFFG); SFRIFG1&=~OFIFG; }while(SFRIFG1&OFIFG);
Copyright 2009 Texas Instruments All Rights Reserved www.msp430.ubi.pt
2
本章结构
• MSP430通信接口
– 4.1 通信系统概述
– 4.2 USCI模块概述 – 4.3 通用异步通信协议UART模式 – 4.4 串行外设接口协议SPI模式 – 4.5 内部集成电路协议I2C模式
– 4.6 通用串行总线协议USB模块
Copyright 2009 Texas Instruments All Rights Reserved www.msp430.ubi.pt
3
4.1 通信系统概述
通信系统模型
• 所有数字通信系统都具有三种设备:
– 发送器:把信息处理成合适的格式,然后发送;
– 接收器:收集信息并抽取出原始数据;
– 起始位:加到要发送的信息的开头,以识别一个新数据的开始; – 停止位:加到要发送的信息的尾部,表示传输结束。
无论以上何种通信方式,按照数据传输方向均可分为: 单工、半双工和全双工三种方式,如图所示。
15
单工方式
单工(Simplex)方式:数据的传输方式是单向的,即发送端和接收 端的身份是固定的,发送端只能发送信息,不能接收信息;接收端 只能接收信息,不能发送信息。
第四章 MSP430通信接口
本章概述
• MSP430系列微控制器中具有通信模块USCI (通用串行通信接口),可配 置成以下三种通信接口:
– 它能够配置成UART(通用异步通信协议)(异步)
– SPI(串行外设接口协议) (同步) – I2C(内部集成电路协议)模式(同步) • 此外,一些MSP430系列还具有USB模块,它完全兼容USB 2.0全速 规范,扩展了MSP430的应用领域范围。
UART帧结构图
起始位 数据区(由低到高) 1位 一般为7位或8位
校验位 停止位 1位 一般可选为1位或2位
8位数据、无校验、一位停止位的工作示例图
使用UART通信
使用UART通信需要两个引脚:
常用UART接口
• RS232:是美国电子工业协会(EIA)制定的串行通讯标准, 又称RS-232-C 。RS232是一个全双工的通讯标准,它可 以同时进行数据接收和发送的工作。 • RS485:是美国电子工业协会(EIA)制定的串行通讯标准, 又称RS-232-C 。RS232是一个全双工的通讯标准,它可 以同时进行数据接收和发送的工作。
同步、异步的概念
异步通信:处理器之间不使用公共的参考时钟,通信双方 分别有自己的时钟源,但必须使用相同的波特率。例 如UART就是属于串行异步通信。 同步通信:由主机提供时钟与数据,从机使用该时钟接收 数据或发送数据,即通信双方公用时钟源。例如:SPI 和I2C就属于串行同步通信。
同步串行通信方式
UART 工作原理
需选择一波特率作为发送(/接收)数据的时序,交互 双方的波特率必须一致。 UART的数据以帧为单位发送,一帧数据由以下几个 部分顺序组成:开始位、数据位(可选位数7位或8 位)、校验位(可选)、停止位(可选位数1位或2 位)。通信双方的可选部分的设置必须完全一致。 数据成功的发送和接收,都有专门的中断和状态位来 指出,例如,接收到一帧数据,如果相应的中断开启, 那么进入中断处理程序读出数据,如果未开启,则可 以通过循环查看接收状态位来确定数否收到数据。
UCA1CTL1 |= UCSWRST; // 复位USCI_A1状态机 UCA1CTL1 |= UCSSEL_1; // CLK = ACLK = 32kHz UCA1BR0 = 0x03; // 32kHz/9600=3.41 UCA1BR1 = 0x00; UCA1MCTL = UCBRS_3+UCBRF_0; // UCBRS = round[(N-INT(N))×8] = 3 P8SEL|=BIT2+BIT3; P8DIR|=BIT2+BIT3; UCA1CTL1 &= ~UCSWRST; // 初始化复位USCI_A1状态机 UCA1IE |= UCRXIE; // 使能USCI_A1接收中断 __bis_SR_register(LPM3_bits + GIE); } // 进入LPM3,使能全局中断
1
1
0
0
0
11
同步串行通信方式
同步通信:在同步通信方式下,在传送数据的同 时还要传送时钟信号,以使接收双方可以用时钟信 号来确定每个信息位。
发送时钟信号 接收时钟信号 数据信号
1
0
1 1
0
0
0
0
1
0
同步通信的缺点是要求发送时钟和接收时钟保持 严格同步。
12
同步方式通信的数据格式
同步字符(SYN1) 同步字符(SYN2) 数据(DATA)
…
同步通信是按数据块传送的。把传送的字符顺序 地连接起来,组成数据块,在数据块前面加上特 殊的同步字符,作为数据块的起始符号,由收/发 一致的同步时钟在发送端发出,接收端接收到同 步字符后,开始接收数据块。
同步通信的优点是传输速率快。
13
串行通信 (2/2)
• 在串行通信系统中,物理发送介质只需要一条信号线。发 送器根据发送器和接收器之间指定的速率发送比特序列。 要使通信双方同步,还需要一些额外的信息:
19
[例]
某异步通信的波特率为4800,8个数据位,无校验 位,,一个起始位,一个停止位。试估算每个字符传输 所需要的时间。 解:起始位1位,8位数据位,无校验位,一个起始 位,一个停止位,则一个字符的编码为1+8+0+1=10位。 波特率为4800,即4800位/秒,传输10位所需要的时间是 10/4800≈0.002083秒,即2.083毫秒。
同步通信:在同步通信方式下,在传送数据的同 时还要传送时钟信号,以使接收双方可以用时钟信 号来确定每个信息位。
发送时钟信号 接收时钟信号 数据信号
1
1
0
0
0
10
同步串行通信方式
同步通信:在同步通信方式下,在传送数据的同 时还要传送时钟信号,以使接收双方可以用时钟信 号来确定每个信息位。
发送时钟信号 接收时钟信号 数据信号
– 通信介质:为信息流提供物理介质,通常为双绞线、光纤或射频 网络。
通信常用术语
• • • • • 并行:数据各位同时进行传送 串行:数据逐位顺序进行传送 全双工:(串行通信)收/发可同时进行 半双工:(串行通信)收/发不可同时进行 波特率(bps.):单位时间传送的位数
并行通信
• 在并行通信系统中,要发送的数字值的每个位都具有独立的信号线。 多条线上的逻辑电平共同形成了要发送的信息的值.
– 配置相应引脚端口;
– 软件清零UCSWRST;
– 使能UCxRXIE和/或UCxTXIE中断。
波特率生成
• 对于一个特定的时钟源 的频率,分频值下列公 式给出:
• 通常情况下,N不是一 个整数,因此,需要使 用调制器。
低频波特率生成
• 当UCOS16 = 0时即选择为“低频波特率生成”模式。由 于该模式使用低频时钟信号(32.768 kHz晶振),故其非常 适合低功耗应用。 • 波特率是由分频器和调制器中获得。 • 寄存器将通过下面公式得出的值来进行配置。
4.3 通用串行通信接口(USCI) — UART模式
主要内容
• UART总线协议
– 总线结构 – 工作模式 – 数据传输时序
• MSP430 UART模块
– – – – USCI概述 主从机模式 UART模块寄存器 应用示例
全双工串行接口(UART)应用场合
UART(Universal Asynchronous Receiver and Transmitter,异步 TxD TxD 通信收发器),俗称“串口”。 片内 其它 RxD RxD UART 串口是嵌入式系统与外界联系的重要手段,主要用于以下 通信设备 模块 两个方面: 1、UART直接和其他的控制器进行数据交换 RS232 PC机串口是RS232电平,所 2、UART 片内和PC机通信:由于 电平转换 RxD RxD 以连接时需要使用 RS232 转换器 UART PC机串口 模块
串口通信 (1/2)
串行通信的基本特征是数据逐位顺序进行传送串行通信 的格式及约定(如:同步方式、通讯速率、数据块格式、信 号电平……等)不同,形成了多种串行通信的协议与接口标 准。 常见的有: • 通用异步收发器(UART) • 通用串行总线(USB) • I2C总线 • CAN总线 • SPI总线 • RS-485,RS-232C,RS422A标准……
超采样波特率生成
• 当UCOS16 = 1时即选择为“超采样波特率生成”模式。 这个模式具有精确的位时序。它需要时钟源比所需的波特 率高16倍。 • 通过以下两步可以产生波特率: • 将时钟源16分频,结果存于BITCLK16,然后作为时钟源 由分频器再次分频,然后供给第一个调制器。 • BITCLK由BITCLK16定义,通过16分频及第二个调制器。 • 寄存器将通过下面公式得出的值来进行配置。
USCI介绍:UART模式
UART模块特征包括:
带奇校验、偶校验或非奇偶校验的7或8位数据 独立的发送和接收移位寄存器 独立的发送和接受缓冲寄存器 最低位优先或最高位优先的数据发送和接收 多处理器系统的内置空闲线路和地址位通信协议 用于自动从LPMx模式唤醒的接收机起始边沿检测 波特率可编程控制,支持小数波特率调制 用于错误检测和抑制的状态标志 用于地址检测的状态标志 发送和接收的独立中断能力
20
4.2 USCI模块概述
USCI模块特性
• 低功耗运行模式(自动启动) • 两个独立模块:
– USCI_A:
– 支持Lin/IrDA的UART; – SPI( 主/从、3线和4线模式)。
– USCI_B:
– SPI (主/从、3线和4线模式); – I2C (主/从, 高达400 kHz)。
• 双缓冲TX/RX; • 波特率/位时钟发生器:
– 自动波特率检测; – 灵活的时钟源。
• RX干扰抑制; • 使能DMA; • 错误检测。
初始化USCI模块
• 使用USCI模块之前,要先对其进行初始化配置。 建议采用以下步骤初始化或重配置USCI模块:
– 置位UCAxCTL1的UCSWRST; – 初始化USCI寄存器;
设备A 发送器
Data flow
设备B 接收器
16
半双工通信
半双工(Half Duplex):数据可以在两个方向上 进行传送,但是这种传送绝不能同时进行。
设备A 设备B
Data flow
发送器/ 接收器
接收器/ 发送器
特点:双向,但不同时。
17
全双工通信
全双工(Full Duplex):能够在两个方向同时 进行数据传送。一般实现方法是采用两个信道 完成。
USCI_Ax模块框图—— UART模式
在异步模式下, USCI_Ax模块通过两个 外部引脚UCAxRXD和 UCAxTXD将芯片连接 到外部系统。
当UCSYNC = 0时, 选择UART模式。
UART通信字符格式
UART的字符格式,包括一个起始位,7或8位数据位, 一个奇/偶/非奇偶校验位,地址位(地址位模式),以及1或 2个停止位。UCMSB位控制传送方向,选择低位或高位优先 ,UART通讯的典型选择是低位优先。
UART特性
UART是用硬件实现异步串行通信的通信接口电路。
全双工
异步模式可编程的7位、8位、9位数据 独立的波特率发生器 最大波特率是时钟频率的1/16 两个缓冲器用于发送和接收 CTS用于发送操作 可编程的奇、偶和无校验 检测帧错误和纠正错误 支持发送和接收中断
设备A 发送器/ 接收器 设备B 接收器/ 发送器
ቤተ መጻሕፍቲ ባይዱ
18
通信速率
数据的传输速率可以用比特率表示。
比特率——每秒传输的二进制位数,单位为 bps(bit per second )。 波特率——每秒钟调制信号变化的次数。
不考虑实际通信中的调制和解调,计算机直接 传输的信号只有高、低电平(逻辑0或逻辑1), 那么比特率就等于波特率。
举例: 采用USCI_A1模块的UART在ISR中将接收的字符原样 发送出去,工作于超低功耗LPM3模式下,时钟频率选择为 ACLK=32768Hz。
#include<msp430f6638.h> void main(void) { WDTCTL=WDTPW+WDTHOLD; while(BAKCTL&LOCKIO) BAKCTL&=~(LOCKIO); UCSCTL6&=~(XT1OFF); UCSCTL6|=XCAP_3; Do { UCSCTL7&=~(XT2OFFG+XT1LFOFFG+DCOFFG); SFRIFG1&=~OFIFG; }while(SFRIFG1&OFIFG);
Copyright 2009 Texas Instruments All Rights Reserved www.msp430.ubi.pt
2
本章结构
• MSP430通信接口
– 4.1 通信系统概述
– 4.2 USCI模块概述 – 4.3 通用异步通信协议UART模式 – 4.4 串行外设接口协议SPI模式 – 4.5 内部集成电路协议I2C模式
– 4.6 通用串行总线协议USB模块
Copyright 2009 Texas Instruments All Rights Reserved www.msp430.ubi.pt
3
4.1 通信系统概述
通信系统模型
• 所有数字通信系统都具有三种设备:
– 发送器:把信息处理成合适的格式,然后发送;
– 接收器:收集信息并抽取出原始数据;
– 起始位:加到要发送的信息的开头,以识别一个新数据的开始; – 停止位:加到要发送的信息的尾部,表示传输结束。
无论以上何种通信方式,按照数据传输方向均可分为: 单工、半双工和全双工三种方式,如图所示。
15
单工方式
单工(Simplex)方式:数据的传输方式是单向的,即发送端和接收 端的身份是固定的,发送端只能发送信息,不能接收信息;接收端 只能接收信息,不能发送信息。
第四章 MSP430通信接口
本章概述
• MSP430系列微控制器中具有通信模块USCI (通用串行通信接口),可配 置成以下三种通信接口:
– 它能够配置成UART(通用异步通信协议)(异步)
– SPI(串行外设接口协议) (同步) – I2C(内部集成电路协议)模式(同步) • 此外,一些MSP430系列还具有USB模块,它完全兼容USB 2.0全速 规范,扩展了MSP430的应用领域范围。
UART帧结构图
起始位 数据区(由低到高) 1位 一般为7位或8位
校验位 停止位 1位 一般可选为1位或2位
8位数据、无校验、一位停止位的工作示例图
使用UART通信
使用UART通信需要两个引脚:
常用UART接口
• RS232:是美国电子工业协会(EIA)制定的串行通讯标准, 又称RS-232-C 。RS232是一个全双工的通讯标准,它可 以同时进行数据接收和发送的工作。 • RS485:是美国电子工业协会(EIA)制定的串行通讯标准, 又称RS-232-C 。RS232是一个全双工的通讯标准,它可 以同时进行数据接收和发送的工作。
同步、异步的概念
异步通信:处理器之间不使用公共的参考时钟,通信双方 分别有自己的时钟源,但必须使用相同的波特率。例 如UART就是属于串行异步通信。 同步通信:由主机提供时钟与数据,从机使用该时钟接收 数据或发送数据,即通信双方公用时钟源。例如:SPI 和I2C就属于串行同步通信。
同步串行通信方式
UART 工作原理
需选择一波特率作为发送(/接收)数据的时序,交互 双方的波特率必须一致。 UART的数据以帧为单位发送,一帧数据由以下几个 部分顺序组成:开始位、数据位(可选位数7位或8 位)、校验位(可选)、停止位(可选位数1位或2 位)。通信双方的可选部分的设置必须完全一致。 数据成功的发送和接收,都有专门的中断和状态位来 指出,例如,接收到一帧数据,如果相应的中断开启, 那么进入中断处理程序读出数据,如果未开启,则可 以通过循环查看接收状态位来确定数否收到数据。
UCA1CTL1 |= UCSWRST; // 复位USCI_A1状态机 UCA1CTL1 |= UCSSEL_1; // CLK = ACLK = 32kHz UCA1BR0 = 0x03; // 32kHz/9600=3.41 UCA1BR1 = 0x00; UCA1MCTL = UCBRS_3+UCBRF_0; // UCBRS = round[(N-INT(N))×8] = 3 P8SEL|=BIT2+BIT3; P8DIR|=BIT2+BIT3; UCA1CTL1 &= ~UCSWRST; // 初始化复位USCI_A1状态机 UCA1IE |= UCRXIE; // 使能USCI_A1接收中断 __bis_SR_register(LPM3_bits + GIE); } // 进入LPM3,使能全局中断
1
1
0
0
0
11
同步串行通信方式
同步通信:在同步通信方式下,在传送数据的同 时还要传送时钟信号,以使接收双方可以用时钟信 号来确定每个信息位。
发送时钟信号 接收时钟信号 数据信号
1
0
1 1
0
0
0
0
1
0
同步通信的缺点是要求发送时钟和接收时钟保持 严格同步。
12
同步方式通信的数据格式
同步字符(SYN1) 同步字符(SYN2) 数据(DATA)
…
同步通信是按数据块传送的。把传送的字符顺序 地连接起来,组成数据块,在数据块前面加上特 殊的同步字符,作为数据块的起始符号,由收/发 一致的同步时钟在发送端发出,接收端接收到同 步字符后,开始接收数据块。
同步通信的优点是传输速率快。
13
串行通信 (2/2)
• 在串行通信系统中,物理发送介质只需要一条信号线。发 送器根据发送器和接收器之间指定的速率发送比特序列。 要使通信双方同步,还需要一些额外的信息:
19
[例]
某异步通信的波特率为4800,8个数据位,无校验 位,,一个起始位,一个停止位。试估算每个字符传输 所需要的时间。 解:起始位1位,8位数据位,无校验位,一个起始 位,一个停止位,则一个字符的编码为1+8+0+1=10位。 波特率为4800,即4800位/秒,传输10位所需要的时间是 10/4800≈0.002083秒,即2.083毫秒。
同步通信:在同步通信方式下,在传送数据的同 时还要传送时钟信号,以使接收双方可以用时钟信 号来确定每个信息位。
发送时钟信号 接收时钟信号 数据信号
1
1
0
0
0
10
同步串行通信方式
同步通信:在同步通信方式下,在传送数据的同 时还要传送时钟信号,以使接收双方可以用时钟信 号来确定每个信息位。
发送时钟信号 接收时钟信号 数据信号
– 通信介质:为信息流提供物理介质,通常为双绞线、光纤或射频 网络。
通信常用术语
• • • • • 并行:数据各位同时进行传送 串行:数据逐位顺序进行传送 全双工:(串行通信)收/发可同时进行 半双工:(串行通信)收/发不可同时进行 波特率(bps.):单位时间传送的位数
并行通信
• 在并行通信系统中,要发送的数字值的每个位都具有独立的信号线。 多条线上的逻辑电平共同形成了要发送的信息的值.
– 配置相应引脚端口;
– 软件清零UCSWRST;
– 使能UCxRXIE和/或UCxTXIE中断。
波特率生成
• 对于一个特定的时钟源 的频率,分频值下列公 式给出:
• 通常情况下,N不是一 个整数,因此,需要使 用调制器。
低频波特率生成
• 当UCOS16 = 0时即选择为“低频波特率生成”模式。由 于该模式使用低频时钟信号(32.768 kHz晶振),故其非常 适合低功耗应用。 • 波特率是由分频器和调制器中获得。 • 寄存器将通过下面公式得出的值来进行配置。
4.3 通用串行通信接口(USCI) — UART模式
主要内容
• UART总线协议
– 总线结构 – 工作模式 – 数据传输时序
• MSP430 UART模块
– – – – USCI概述 主从机模式 UART模块寄存器 应用示例
全双工串行接口(UART)应用场合
UART(Universal Asynchronous Receiver and Transmitter,异步 TxD TxD 通信收发器),俗称“串口”。 片内 其它 RxD RxD UART 串口是嵌入式系统与外界联系的重要手段,主要用于以下 通信设备 模块 两个方面: 1、UART直接和其他的控制器进行数据交换 RS232 PC机串口是RS232电平,所 2、UART 片内和PC机通信:由于 电平转换 RxD RxD 以连接时需要使用 RS232 转换器 UART PC机串口 模块
串口通信 (1/2)
串行通信的基本特征是数据逐位顺序进行传送串行通信 的格式及约定(如:同步方式、通讯速率、数据块格式、信 号电平……等)不同,形成了多种串行通信的协议与接口标 准。 常见的有: • 通用异步收发器(UART) • 通用串行总线(USB) • I2C总线 • CAN总线 • SPI总线 • RS-485,RS-232C,RS422A标准……
超采样波特率生成
• 当UCOS16 = 1时即选择为“超采样波特率生成”模式。 这个模式具有精确的位时序。它需要时钟源比所需的波特 率高16倍。 • 通过以下两步可以产生波特率: • 将时钟源16分频,结果存于BITCLK16,然后作为时钟源 由分频器再次分频,然后供给第一个调制器。 • BITCLK由BITCLK16定义,通过16分频及第二个调制器。 • 寄存器将通过下面公式得出的值来进行配置。
USCI介绍:UART模式
UART模块特征包括:
带奇校验、偶校验或非奇偶校验的7或8位数据 独立的发送和接收移位寄存器 独立的发送和接受缓冲寄存器 最低位优先或最高位优先的数据发送和接收 多处理器系统的内置空闲线路和地址位通信协议 用于自动从LPMx模式唤醒的接收机起始边沿检测 波特率可编程控制,支持小数波特率调制 用于错误检测和抑制的状态标志 用于地址检测的状态标志 发送和接收的独立中断能力
20
4.2 USCI模块概述
USCI模块特性
• 低功耗运行模式(自动启动) • 两个独立模块:
– USCI_A:
– 支持Lin/IrDA的UART; – SPI( 主/从、3线和4线模式)。
– USCI_B:
– SPI (主/从、3线和4线模式); – I2C (主/从, 高达400 kHz)。
• 双缓冲TX/RX; • 波特率/位时钟发生器:
– 自动波特率检测; – 灵活的时钟源。
• RX干扰抑制; • 使能DMA; • 错误检测。
初始化USCI模块
• 使用USCI模块之前,要先对其进行初始化配置。 建议采用以下步骤初始化或重配置USCI模块:
– 置位UCAxCTL1的UCSWRST; – 初始化USCI寄存器;
设备A 发送器
Data flow
设备B 接收器
16
半双工通信
半双工(Half Duplex):数据可以在两个方向上 进行传送,但是这种传送绝不能同时进行。
设备A 设备B
Data flow
发送器/ 接收器
接收器/ 发送器
特点:双向,但不同时。
17
全双工通信
全双工(Full Duplex):能够在两个方向同时 进行数据传送。一般实现方法是采用两个信道 完成。
USCI_Ax模块框图—— UART模式
在异步模式下, USCI_Ax模块通过两个 外部引脚UCAxRXD和 UCAxTXD将芯片连接 到外部系统。
当UCSYNC = 0时, 选择UART模式。
UART通信字符格式
UART的字符格式,包括一个起始位,7或8位数据位, 一个奇/偶/非奇偶校验位,地址位(地址位模式),以及1或 2个停止位。UCMSB位控制传送方向,选择低位或高位优先 ,UART通讯的典型选择是低位优先。