异步(UART)通信芯片资料课件.ppt

上传人:小飞机 文档编号:1562512 上传时间:2022-12-06 格式:PPT 页数:50 大小:1.40MB
返回 下载 相关 举报
异步(UART)通信芯片资料课件.ppt_第1页
第1页 / 共50页
异步(UART)通信芯片资料课件.ppt_第2页
第2页 / 共50页
异步(UART)通信芯片资料课件.ppt_第3页
第3页 / 共50页
异步(UART)通信芯片资料课件.ppt_第4页
第4页 / 共50页
异步(UART)通信芯片资料课件.ppt_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《异步(UART)通信芯片资料课件.ppt》由会员分享,可在线阅读,更多相关《异步(UART)通信芯片资料课件.ppt(50页珍藏版)》请在三一办公上搜索。

1、第四章 MSP430通信接口,2,Copyright 2009 Texas Instruments All Rights Reservedwww.msp430.ubi.pt,本章概述,MSP430系列微控制器中具有通信模块USCI (通用串行通信接口),可配置成以下三种通信接口:它能够配置成UART(通用异步通信协议)(异步)SPI(串行外设接口协议) (同步)I2C(内部集成电路协议)模式(同步)此外,一些MSP430系列还具有USB模块,它完全兼容USB 2.0全速 规范,扩展了MSP430的应用领域范围。,3,Copyright 2009 Texas Instruments All Ri

2、ghts Reservedwww.msp430.ubi.pt,本章结构,MSP430通信接口4.1 通信系统概述4.2 USCI模块概述4.3 通用异步通信协议UART模式4.4 串行外设接口协议SPI模式4.5 内部集成电路协议I2C模式4.6 通用串行总线协议USB模块,4.1 通信系统概述,通信系统模型,所有数字通信系统都具有三种设备:发送器:把信息处理成合适的格式,然后发送;接收器:收集信息并抽取出原始数据;通信介质:为信息流提供物理介质,通常为双绞线、光纤或射频网络。,通信常用术语,并行:数据各位同时进行传送 串行:数据逐位顺序进行传送全双工:(串行通信)收/发可同时进行 半双工:(

3、串行通信)收/发不可同时进行波特率(bps.):单位时间传送的位数,并行通信,在并行通信系统中,要发送的数字值的每个位都具有独立的信号线。多条线上的逻辑电平共同形成了要发送的信息的值,下图为ASCII字符“W”并行传输。,串口通信 (1/2),串行通信的基本特征是数据逐位顺序进行传送串行通信的格式及约定(如:同步方式、通讯速率、数据块格式、信号电平等)不同,形成了多种串行通信的协议与接口标准。常见的有: 通用异步收发器(UART) 通用串行总线(USB) I2C总线 CAN总线 SPI总线 RS-485,RS-232C,RS422A标准,串行通信 (2/2),在串行通信系统中,物理发送介质只需

4、要一条信号线。发送器根据发送器和接收器之间指定的速率发送比特序列。要使通信双方同步,还需要一些额外的信息:起始位:加到要发送的信息的开头,以识别一个新数据的开始;停止位:加到要发送的信息的尾部,表示传输结束。图 ASCII字符“W”串行传输,同步、异步的概念,异步通信:处理器之间不使用公共的参考时钟,通信双方分别有自己的时钟源,但必须使用相同的波特率。例如UART就是属于串行异步通信。同步通信:由主机提供时钟与数据,从机使用该时钟接收数据或发送数据,即通信双方公用时钟源。例如:SPI和I2C就属于串行同步通信。,4.2 USCI模块概述,USCI模块特性,低功耗运行模式(自动启动)两个独立模块

5、: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寄存器;配置相应引脚端口;软件清零UCSWRST;使能UCxRXIE和/或UCxTXIE中断。,波特率生成,对于一个特定的时钟源的频率,分频值下列公式给出

6、:通常情况下,N不是一个整数,因此,需要使用调制器。,低频波特率生成,当UCOS16 = 0时即选择为“低频波特率生成”模式。由于该模式使用低频时钟信号(32.768 kHz晶振),故其非常适合低功耗应用。波特率是由分频器和调制器中获得。寄存器将通过下面公式得出的值来进行配置。,超采样波特率生成,当UCOS16 = 1时即选择为“超采样波特率生成”模式。这个模式具有精确的位时序。它需要时钟源比所需的波特率高16倍。通过以下两步可以产生波特率:将时钟源16分频,结果存于BITCLK16,然后作为时钟源由分频器再次分频,然后供给第一个调制器。BITCLK由BITCLK16定义,通过16分频及第二个

7、调制器。寄存器将通过下面公式得出的值来进行配置。,4.3 通用串行通信接口(USCI) UART模式,主要内容,UART总线协议总线结构工作模式数据传输时序MSP430 UART模块USCI概述主从机模式UART模块寄存器应用示例,全双工串行接口(UART)应用场合,UART(Universal Asynchronous Receiver and Transmitter,异步通信收发器),俗称“串口”。 串口是嵌入式系统与外界联系的重要手段,主要用于以下两个方面:1、UART直接和其他的控制器进行数据交换2、UART和PC机通信:由于PC机串口是RS232电平,所以连接时需要使用RS232转换

8、器,UART特性,UART是用硬件实现异步串行通信的通信接口电路。全双工异步模式可编程的7位、8位、9位数据独立的波特率发生器最大波特率是时钟频率的1/16两个缓冲器用于发送和接收CTS用于发送操作可编程的奇、偶和无校验检测帧错误和纠正错误支持发送和接收中断,UART 工作原理,需选择一波特率作为发送(/接收)数据的时序,交互双方的波特率必须一致。UART的数据以帧为单位发送,一帧数据由以下几个部分顺序组成:开始位、数据位(可选位数7位或8位)、校验位(可选)、停止位(可选位数1位或2位)。通信双方的可选部分的设置必须完全一致。数据成功的发送和接收,都有专门的中断和状态位来指出,例如,接收到一

9、帧数据,如果相应的中断开启,那么进入中断处理程序读出数据,如果未开启,则可以通过循环查看接收状态位来确定数否收到数据。,UART帧结构图,8位数据、无校验、一位停止位的工作示例图,使用UART通信,使用UART通信需要两个引脚:,常用UART接口,RS232:是美国电子工业协会(EIA)制定的串行通讯标准,又称RS-232-C 。RS232是一个全双工的通讯标准,它可以同时进行数据接收和发送的工作。 RS485:是美国电子工业协会(EIA)制定的串行通讯标准,又称RS-232-C 。RS232是一个全双工的通讯标准,它可以同时进行数据接收和发送的工作。,串行异步通信的波特率,对于给定的BRCL

10、K时钟源,所使用的波特率将决定分频因子N: N = INT(fBRCLK / Baud)式中,fBRCLK为实际进入波特率发生器的时钟频率 Baud为实际所需要的波特率 如果两者之比 16,则令 UCOS16 = 0 低频模式 UCBR = INT(N) 取整 UCBRS = round( NINT(N) )8 四舍五入后取整如果两者之比 16,则令 UCOS16 = 1 低频模式 UCBR = INT(N/16) 取整 UCBRS = round(N/16)INT(N/16) 8 四舍五入后取整,uart模式下可用的USCI寄存器,USCI_Ax和USCI_Bx都有SPI模块,下面以USCI

11、_Bx为例,介绍相关寄存器,应用示例,SPI主机与从机通过三线SPI接口通信,主机发送数据给从机,同时又接收从机发来的数据,发送数据从0 x01开始递增,从机接收到数据,就立马发出,主机接到这个数据,进入中断如果发送和接收数据相同,则点亮LED灯,否则熄灭。,程序流程图,主机端口初始化,P8SEL |= BIT2+BIT3; P8DIR |= BIT2+BIT3;,选择P8.4P8.6为外设功能,选择P8.4P8.6端口方向为输出,UCA1CTL1 |= UCSWRST; UCA1CTL1 |= UCSSEL_1; UCA1BR0 = 0 x03; UCA1BR1 = 0; UCA1MCTL

12、= UCBRS_3+UCBRF_0; UCA1CTL1 ,主机UART模块初始化,配置波特率, 32kHz/9600=3.41,调制UCBRSx=3, UCBRFx=0,USCI_Bx复位释放,使能UART模块接收中断,时钟配置,while(BAKCTL ,打开XT1,选择内接电容大小,清除XT2,XT1,DCO错误标志清除晶振错误中断标志测试晶振错误标志,主机接收中断,#pragma vector=USCI_ B1_VECTOR_interrupt void USCI_ B1_ISR(void) switch(_even_in_range(UC B1IV,4) case 0: break;

13、case 2: while (!(UC B1IFG ,判断发送缓冲是否为空,如果为空,标志位置位,则说明上个数据未发送完毕,等待直到数据发送完毕,如果接收与发送相同,点亮LED,发送下一个字符,从机端口初始化,P8SEL |= BIT4+BIT5+BIT6; P8DIR |= BIT4+BIT5+BIT6; P1REN |= BIT4; P1OUT |= BIT4; P1IES ,使能P1.4内部电阻,P1.4输出为1,选择P8.4P8.6为外设功能,选择P8.4P8.6端口方向为输出,P1.4上升沿捕获,进入中断,P1.4 IFG 清零,P1.4中断使能,主机SPI模块初始化,UCB1CTL

14、1 |= UCSWRST;UCB1CTL0 |= UCSYNC+UCCKPL+UCMSB; UCB1CTL1 &= UCSWRST,USCI_Bx复位释放,从机接收中断,#pragma vector=USCI_ B1_VECTOR_interrupt void USCI_ B1_ISR(void) switch(_even_in_range(UC B1IV,4) case 0: break; case 2: while (!(UC B1IFG ,判断发送缓冲是否为空,如果为空,标志位置位,则说明上个数据未发送完毕,等待直到数据发送完毕,发送下一个字符,从机接收中断,#pragma vector

15、=USCI_ B1_VECTOR_interrupt void USCI_ B1_ISR(void) switch(_even_in_range(UC B1IV,4) case 0: break; case 2: while (!(UC B1IFG ,判断发送缓冲是否为空,如果为空,标志位置位,则说明上个数据未发送完毕,等待直到数据发送完毕,发送下一个字符,从机主机开始工作提示中断,#pragma vector=PORT1_VECTOR_interrupt void Port_1(void) P1IFG ,USCI_Bx复位释放,打开SPI中断,主机端口初始化库,/ Set P1.1 for

16、slave reset GPIO_setOutputHighOnPin(_MSP430_BASEADDRESS_PORT1_R_, GPIO_PORT_P1, GPIO_PIN1 );/ Set P1.0 to output direction GPIO_setAsOutputPin(_MSP430_BASEADDRESS_PORT1_R_, GPIO_PORT_P1, GPIO_PIN0 );/ P3.5,4,0 option select GPIO_setAsPeripheralModuleFunctionInputPin(_MSP430_BASEADDRESS_PORT8_R_, GPI

17、O_PORT_P8, GPIO_PIN4 + GPIO_PIN5 + GPIO_PIN6 );,USCI介绍:UART模式,UART模块特征包括: 带奇校验、偶校验或非奇偶校验的7或8位数据 独立的发送和接收移位寄存器 独立的发送和接受缓冲寄存器 最低位优先或最高位优先的数据发送和接收 多处理器系统的内置空闲线路和地址位通信协议 用于自动从LPMx模式唤醒的接收机起始边沿检测 波特率可编程控制,支持小数波特率调制 用于错误检测和抑制的状态标志 用于地址检测的状态标志 发送和接收的独立中断能力,串行异步通信的波特率,在低频模式下,分频因子的整数部分通过预分频器实现:N = INT(fBRCLK

18、/ Baud)式中,fBRCLK 为实际进入波特率发生器的时钟频率 Baud为实际所需要的波特率如果两者之比 16,则令 UCOS16 = 0 UCBR = INT(N)UCBRS = round( N-INT(N) )8如果两者之比 16,则令UCOS16 = 1UCBR = INT(N/16)UCBRS = round(N/16)-INT(N/16)16,USCI_Ax模块框图 UART模式,在异步模式下,USCI_Ax模块通过两个外部引脚UCAxRXD和UCAxTXD将芯片连接到外部系统。当UCSYNC = 0时,选择UART模式。,UART通信字符格式,UART的字符格式,包括一个起始

19、位,7或8位数据位,一个奇/偶/非奇偶校验位,地址位(地址位模式),以及1或2个停止位。UCMSB位控制传送方向,选择低位或高位优先,UART通讯的典型选择是低位优先。,串行通信模式,MSP430单片机的串行通信模式有4种,他们分别是UART普通模式、线路模式、地址模式、波特率探测模式,由UCMODE控制选择。,UART普通模式,这是最普遍采用的工作模式,也是最为简单的工作模式。示例:回应接收的字符,开启接收中断,每接收到一个字符,就进入中断处理函数,将接收缓冲寄存器的值赋给发送缓冲寄存器,波特率为9600,ACLK = 32768Hz crystal, MCLK = SMCLK = DCO

20、1.045MHz,波特率配置计算方法:ACLK / Baud = 32768Hz 9600 = 3.41UCA1BR0 = 0 x03; UCA1BR1 = 0 x00; 由于ACLK / Baud 16,round(N-INT(N)16 = 3,void main(void) UCACTL1 |= UCSWRST; / 复位USCI_A1状态机UCACTL1 |= UCSSEL_1; / CLK = ACLK = 32kHzUCABR0 = 0 x03; / 32kHz/9600=3.41 UCABR1 = 0 x00; UCAMCTL = UCBRS_3+UCBRF_0; / UCBRS = round(N-INT(N)8 = 3UCACTL1 / 进入LPM3,使能全局中断,#pragma vector=USCI_A0_VECTOR_interrupt void USCI_A0_ISR(void)switch(_even_in_range(UCA0IV,4)case 0: break; / Vector 0 无中断case 2: / Vector 2 - RXIFGwhile (!(UCA0IFG ,线路模式,地址模式,波特率探测模式,波特率自检测序列,波特率自检测同步序列,谢谢,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号