




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第4章章 MSP430MSP430通信接口通信接口nMSP430系列微控制器中具有通信模块系列微控制器中具有通信模块USCI (通通用串行通信接口用串行通信接口),可配置成以下三种通信接口:,可配置成以下三种通信接口:n它能够配置成UART(通用异步通信协议)(异步)nSPI(串行外设接口协议) (同步)nI2C(内部集成电路协议)模式(同步)n此外,一些此外,一些MSP430系列还具有系列还具有USB模块,它完全模块,它完全兼容兼容USB 2.0全速规范,扩展了全速规范,扩展了MSP430的应用领的应用领域范围。域范围。本章结构本章结构 4.1 通信系统概述4.2 USCI模块概述4.3
2、通用异步通信协议UART模式4.4 串行外设接口协议SPI模式4.5 内部集成电路协议I2C模式4.6 通用串行总线协议USB模块4.1 通信系统概述通信系统概述例如:例如:PC机的标准并行接口机的标准并行接口LPT1 (打印机接口打印机接口)、MSP430的的P1P6均可做均可做8位并行通信位并行通信4.2 USCI模块概述模块概述USCI模块特性n低功耗运行模式(自动启动)低功耗运行模式(自动启动)n两个独立两个独立模块模块:nUSCI_A:n支持Lin/IrDA的UART;nSPI( 主/从、3线和4线模式)。nUSCI_B:nSPI (主/从、3线和4线模式);nI2C (主/从, 高
3、达400 kHz)。n双缓冲TX/RX;n波特率/位时钟发生器:n自动波特率检测;n灵活的时钟源。nRX干扰抑制;n使能DMA;n错误检测。初始化初始化USCI模块模块n使用USCI模块之前,要先对其进行初始化配置。建议采用以下步骤初始化或重配置USCI模块:n置位置位UCAxCTL1的的UCSWRST;n初始化初始化USCI寄存器;寄存器;n配置配置相应引脚相应引脚端口端口;n软件清软件清零零UCSWRST;n使能使能UCxRXIE和和/或或UCxTXIE中断。中断。波特率生成波特率生成n对于一个特定的时钟源的频率,分频值下列公式给出:n通常情况下,N不是一个整数,因此,需要使用调制器。低频
4、波特率低频波特率生成生成n当UCOS16 = 0时即选择为“低频波特率生成”模式。由于该模式使用低频时钟信号(32.768 kHz晶振),故其非常适合低功耗应用。n波特率是由分频器和调制器中获得。n寄存器将通过下面公式得出的值来进行配置。 分频因子的整数部分通过预分频器实现分频因子的整数部分通过预分频器实现 UCBRx = INT(N) 小数部分由带有下面公式的调制器实现小数部分由带有下面公式的调制器实现UCBRSx = round( N INT(N) 8过采样波特率过采样波特率生成生成n当当UCOS16 = 1时即选择为“过过采样波特率生成采样波特率生成”模式。这个模式具有精确的位时序。它需
5、要时钟源比所需的波特率高16倍。n通过以下两步可以产生波特率:n将时钟源16分频,再供给第一个调制器,产生BITCLK16。n再将BITCLK16通过16分频后作为第二个调制器的输入来产生BITCLK。n寄存器将通过下面公式得出的值来进行配置。 UCBRx = INT(N/16)UCBRFx = round(N/16) INT(N/16) 16)4.3 通用串行通信接口通用串行通信接口(USCI) UART模式模式主要内容主要内容nUART总线协议n总线结构n工作模式n数据传输时序nMSP430 UART模块nUSCI概述n主从机模式nUART模块寄存器n应用示例全双工串行接口(UART)应用
6、场合 UART(Universal Asynchronous Receiver and Transmitter,异步异步通信收发器通信收发器),俗称“串口”。 串口是嵌入式系统与外界联系的重要手段,主要用于以下串口是嵌入式系统与外界联系的重要手段,主要用于以下两个方面:两个方面:1、UART直接和其他的控制器进行数据交换直接和其他的控制器进行数据交换2、UART和和PC机通信:由于机通信:由于PC机串口是机串口是RS232电平,所电平,所以连接时需要使用以连接时需要使用RS232转换器转换器片内片内UART模块模块其它其它通信设备通信设备片内片内UART模块模块PC机串口机串口RS232电平转
7、换电平转换TxDRxDTxDRxDTxDRxDTxDRxDUART 工作原理工作原理 需选择一波特率作为发送(需选择一波特率作为发送(/接收)数据的时序,交互接收)数据的时序,交互双方的波特率必须一致。双方的波特率必须一致。 UART的数据以的数据以帧帧为单位发送,一帧数据由以下几个为单位发送,一帧数据由以下几个部分顺序组成:部分顺序组成:开始位开始位、数据位数据位(可选位数(可选位数7位或位或8位)、位)、校验位校验位(可选)、(可选)、停止位停止位(可选位数(可选位数1位或位或2位)。通信双方的可选部分的设置必须完全一致。位)。通信双方的可选部分的设置必须完全一致。 数据成功的发送和接收,
8、都有专门的数据成功的发送和接收,都有专门的中断和状态位中断和状态位来来指出,例如,接收到一帧数据,如果相应的中断开启,指出,例如,接收到一帧数据,如果相应的中断开启,那么进入中断处理程序读出数据,如果未开启,则可那么进入中断处理程序读出数据,如果未开启,则可以通过循环查看接收状态位来确定数否收到数据。以通过循环查看接收状态位来确定数否收到数据。UART帧结构图帧结构图 8位数据、无校验、一位停止位的工作示例图起始位起始位1位位数据区(由低到高)数据区(由低到高)一般为一般为7位或位或8位位校验位校验位1位位停止位停止位一般可选为一般可选为1位或位或2位位使用UART通信使用使用UART通信需要
9、两个引脚:通信需要两个引脚:常用常用UART接口接口USCI介绍:介绍:UART模式模式 UART模块特征包括:模块特征包括: 带奇校验、偶校验或非奇偶校验的带奇校验、偶校验或非奇偶校验的7或或8位数据位数据 独立的发送和接收移位寄存器独立的发送和接收移位寄存器 独立的发送和接受缓冲寄存器独立的发送和接受缓冲寄存器 最低位优先最低位优先(LSB)或最高位或最高位(MSB)优先的数据发优先的数据发送和接收送和接收 多处理器系统的内置空闲线路和地址位通信协议多处理器系统的内置空闲线路和地址位通信协议 通过有效的起始位边沿检测,将通过有效的起始位边沿检测,将MSP430从低功从低功耗唤醒。耗唤醒。波
10、特率可编程控制,支持小数波特率调制波特率可编程控制,支持小数波特率调制 用于错误检测和抑制的状态标志用于错误检测和抑制的状态标志 用于地址检测的状态标志用于地址检测的状态标志 发送和接收的独立中断能力发送和接收的独立中断能力UART通信字符格式通信字符格式 UART的字符格式,包括一个起始位起始位ST,7或或8位数位数据位据位,一个奇一个奇/偶偶/非奇偶校验位非奇偶校验位,地址位地址位(地址位模式),以及以及1或或2个停止位个停止位。UCMSB位控制传送方向,选择低位或高位优先,UART通讯的典型选择是低位优先。串行通信模式 MSP430 MSP430单片机的串行通信模式有单片机的串行通信模式
11、有4 4种,他种,他们分别是们分别是由由UCMODEUCMODE控制选择控制选择。这是最普遍采用的工作模式,也是最为简单的工作模式。示例:回应接收的字符,开启接收中断,每接收到一个字符,就进入中断处理函数,将接收缓冲寄存器的值赋给发送缓冲寄存器,波特率为9600,ACLK = 32768Hz crystal, MCLK = SMCLK = DCO 1.045MHz,波特率配置计算方法:ACLK / Baud = 32768Hz 9600 = 3.41UCA1BR0 = 0 x03; UCA1BR1 = 0 x00; 由于ACLK / Baud 16,round(N-INT(N)8 = 3voi
12、d 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 &= UCSWRST; / 初始化复位USCI_A1状态机UCAIE |= UCRXIE; / 使能USCI_A1接收中断_bis_SR_register(LPM3_bits + GIE); /
13、 进入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 RXIFG while (!(UCA0IFG&UCTXIFG); / USCI_A1发送缓冲是否准备就绪?UCA0TXBUF = UCA0RXBUF; / 将接收到的字符传递给发送缓冲break;case 4: break; / Vector 4 - TXIFGdefault: break
14、; UART模式下可用的USCI寄存器名称描述访问复位值寄存器访问UCBxCTLW0USCI_Bx控制字0 读/写0001h字UCBxBRWUSCI_Bx波特率控制字读/写0000h字UCBxMCTLUSCI_Bx调制器控制 UCBxSTATUSCI_Bx状态寄存器 读/写00h字节UCBxRXBUFUSCI_Bx接收缓存读/写00h字节UCBxTXBUF USCI_Bx发送缓存读/写00h字节UCBxI2COAUSCI_Bx I2C本机地址 读/写0000h字UCBxI2CSAUSCI_Bx I2C从机地址读/写0000h字UCBxICTL USCI_Bx中断控制读/写0200h 字UCBx
15、IEUSCI_Bx中断使能读/写00h字节UCBxIFG USCI_Bx中断标志读/写02h字节UCBxIVUSCI_Bx中断向量 读0000h字USCI_Ax和和USCI_Bx都有都有SPI模块,下面以模块,下面以USCI_Bx为例,介绍相关为例,介绍相关寄存器寄存器例题例题1 通过串口向目标板发送数据,将收到同样的数据反馈通过串口向目标板发送数据,将收到同样的数据反馈#include int main() WDTCTL = WDTPW + WDTHOLD; / Stop WDT P7DIR |= (14)|(15);/方向设置为输出 P7OUT |= (15); P7OUT |= (1 R
16、Xed character break; case 4:break; / Vector 4 - TXIFG default: break; 4.4 串行外设接口协议串行外设接口协议SPI模式模式4.4.1 SPI4.4.1 SPI概述概述 串行外围设备接口(串行外围设备接口(Serial Peripheral Interface,SPISerial Peripheral Interface,SPI)总线技术是一种同步串行接口。总线技术是一种同步串行接口。图4.9 SPI典型结构 SPI的系统可以简单,也可以复杂。主要有以下几种形的系统可以简单,也可以复杂。主要有以下几种形式式 一台主机一台主机
17、MCU和若干台从机和若干台从机MCU。 多台多台MCU互相连接成一个多主机系统互相连接成一个多主机系统 一台主机一台主机MCU和若干台从机外围设备和若干台从机外围设备4.4.2 SPI模式操作模式操作 当当MSP430USCI模块控制寄存器模块控制寄存器UCTL的的UCSYNC置位且置位且UCMODEx为为00、01或或10时,串行模块工作在时,串行模块工作在SPI模式,通过模式,通过4线(线(SOMI、SIMO、SCLK及及STE)或者)或者3线线(SOMI、SIMO及及SCLK)同外界通信。同外界通信。 4.4.2.1 SPI4.4.2.1 SPI模式的引脚信号模式的引脚信号 引脚引脚SO
18、MISOMI、SIMOSIMO、SCLKSCLK和和STESTE用于用于SPISPI模式,其中模式,其中SOMISOMI、SIMOSIMO、SCLKSCLK在主机模式和从机模式下存在差别的,如表在主机模式和从机模式下存在差别的,如表4.14.1所示所示 表表4.1 SOMI4.1 SOMI、SIMOSIMO、SCLKSCLK的含义的含义STESTE是从机模式发送、接收允许控制引脚,控制多主从是从机模式发送、接收允许控制引脚,控制多主从系统中的多个从机。系统中的多个从机。4.4.2.2 SPI4.4.2.2 SPI的操作方式的操作方式 SPI是全双工的,即主机在发送的同时也在接收数据,传送的速率
19、由主机编程决定;主机提供时钟与数据,从机利用这一时钟接收数据,或在这一时钟下发送数据。1.SPI的主机模式的主机模式 当器件作为主机时,使用一个当器件作为主机时,使用一个IO引脚拉低相应从机的引脚拉低相应从机的选择引脚选择引脚(STE),传输的起始由主机发送数据来启动,时,传输的起始由主机发送数据来启动,时钟钟(SCK)信号由主机产生。通过信号由主机产生。通过MOSI发送数据,同时通过发送数据,同时通过MISO引脚接收从机发出的数据。引脚接收从机发出的数据。图图4.10 USCI模块为主机在同步模式下与其他从设备相连模块为主机在同步模式下与其他从设备相连2 SPI的的从机模式从机模式: 当器件
20、作为从机时,传输在从机选择引脚当器件作为从机时,传输在从机选择引脚(STE)被主机拉低后开始,接收主机输出的时钟信号,在读被主机拉低后开始,接收主机输出的时钟信号,在读取主机数据的同时通过取主机数据的同时通过MISO引脚输出数据。引脚输出数据。图图4.11 USCI模块为从机在同步模式下与其他从设备相连模块为从机在同步模式下与其他从设备相连1.时钟极性时钟极性CKPL:表示时钟信号在空闲时是高电平还是低电平。表示时钟信号在空闲时是高电平还是低电平。2.时钟相位时钟相位CKPH:决定数据是在决定数据是在CLK的第一个边沿采样还是在的第一个边沿采样还是在SCK的第二个边沿采样。的第二个边沿采样。3
21、 串行时钟控制串行时钟控制4.4.3 SPI模块寄存器模块寄存器1 USCI_Ax/USCI_Bx1 USCI_Ax/USCI_Bx控制寄存器控制寄存器0 0(UCAxCTL0/UCBxCTL0UCAxCTL0/UCBxCTL0)2 USCI_Ax/USCI_Bx2 USCI_Ax/USCI_Bx控制寄存器控制寄存器1 1(UCAxCTL1/UCBxCTL1UCAxCTL1/UCBxCTL1)3 USCI_AxSTAT/USCI_BxSTAT状态寄存器(状态寄存器(UCAxSTAT)例题例题2:SPI 3线主模式。线主模式。SPI主机与从机通过主机与从机通过3线线SPI接口通信,主机发接口通信
22、,主机发送数据,数据从送数据,数据从0 x01开始递增,如果发送和接收数据相同,则点亮开始递增,如果发送和接收数据相同,则点亮LED灯,否则熄灭。本程序是主机程序灯,否则熄灭。本程序是主机程序#include unsigned char MST_Data, SLV_Data;int main(void) volatile unsigned int i; WDTCTL = WDTPW + WDTHOLD; / 关闭看门狗定时器关闭看门狗定时器 P8SEL|=BIT4+BIT5+BIT6; P1DIR|=BIT0+BIT1; P1OUT&=BIT0; UCA0CTL1 |= UCSWRST; UC
23、A0CTL0 |= UCMST+ UCSYNC +UCCKPL+ UCMSB; / 3线线 ,8位位SPI主机,时钟极性为高,主机,时钟极性为高,MSB先发送先发送 UCB1CTL1 |= UCSSEL_2; / SMCLK UCB1BR0 |= 0 x02; UCB1BR1 = 0; UCB1MCTL = 0; / No modulation UCB1CTL1 &= UCSWRST; UCB1IE|= UCB1RXIE; P1OUT|=BIT1; /从机芯片选择从机芯片选择_delay_cycles(100);MST_Data=0 x01;SLV_Data=0 x00;While(!(UCB
24、1IFG&UCTxIFG);UCA0TXBUF = MST_Data; _bis_SR_register(LPM0_bits + GIE); #pragma vector=USCI_B1_VECTOR_interrupt void USCI_B1_ISR(void)volatile unsigned int i;switch(_even_in_range(UCB1IV,4)case 0:break;case 2:while(!(UCB1IFG&UCTXIFG);if(UCB1RXBUF=SLV_Data)P1OUT|=0 x01;elseP1OUT|=0 x01;MST_Data+;SLV_D
25、ata+;UCB1TXBUF=MST_Data;_delay_cycles(500);Break;Case 4:break;Default:break;4.5 4.5 内部集成电路协议内部集成电路协议I I2 2C C模式模式4.5.1 I2C4.5.1 I2C概述概述特点:特点:两条总线:数据线两条总线:数据线SDA;SDA;时钟线时钟线SCLSCL。连接到总线的器件都有唯一的地址。连接到总线的器件都有唯一的地址。是真正的多主机总线。是真正的多主机总线。数据传输速率在数据传输速率在100Kbps100Kbps3.4Mbps3.4Mbps。I I2 2C C总线连接模式总线连接模式n 两条总线
26、:串行时钟线两条总线:串行时钟线SCL和串行数据线和串行数据线SDAn 两条总线都被上拉电阻拉到两条总线都被上拉电阻拉到VCC,线与输出。,线与输出。I2CI2C模块结构模块结构4.5.2 I4.5.2 I2 2C C模式操作模式操作 n 完整帧包括完整帧包括起始位起始位、地址位地址位、读写位读写位、应答位应答位、数据位数据位 、应应答位答位.数据位、应答位、停止位数据位、应答位、停止位。n从起始位开始每帧数据都是从起始位开始每帧数据都是9位,其中第一帧是位,其中第一帧是7位从机地址位从机地址+1位读写标识位读写标识+1位数据接收应答位;后续的每帧都是位数据接收应答位;后续的每帧都是8位数据位
27、数据+1位数据接收方应答。位数据接收方应答。nR/W=0,主机发数据,主机发数据,ACK由由从机从机负责拉低;反之如此。负责拉低;反之如此。I2CI2C协议的起止位协议的起止位 721.1.在时钟线高电平时,数据线下降沿代表了起始位在时钟线高电平时,数据线下降沿代表了起始位STARTSTART2.2.在时钟线高电平时,数据线上升沿代表了停止位在时钟线高电平时,数据线上升沿代表了停止位STOPSTOPI I2 2C C的地址规范的地址规范 7位地址模式位地址模式10位地址模式位地址模式I I2 2C C的多主机仲裁的多主机仲裁第一个检测到自己发送分数据和总线上数据不匹配第一个检测到自己发送分数据
28、和总线上数据不匹配的设备就失去仲裁能力。的设备就失去仲裁能力。 仲裁过程中,要求来自不同主设备的时钟进行同仲裁过程中,要求来自不同主设备的时钟进行同步处理,在步处理,在SCLSCL上,某个快速设备的速度可能被其他上,某个快速设备的速度可能被其他设备降低。在设备降低。在SCLSCL上,第一个产生低电平的主设备强上,第一个产生低电平的主设备强制其他主设备也发送低电平,制其他主设备也发送低电平,SCLSCL保持为低,如果某保持为低,如果某些主设备已经结束低电平状态,就开始等待,直到所些主设备已经结束低电平状态,就开始等待,直到所有的主设备都结束低电平时钟。有的主设备都结束低电平时钟。时钟同步时钟同步
29、4.5.3 4.5.3 应用举例应用举例例例1 1:本例是主机发送程序,主机不断发送递增的数据,:本例是主机发送程序,主机不断发送递增的数据,在中断服务子程序中发送、读取数据在中断服务子程序中发送、读取数据。#include#includeunsigned char TXDataunsigned char TXData; ;unsigned char TXByteCtrunsigned char TXByteCtr; ;void main(voidvoid main(void) ) WDTCTL=WDTPW+WDTHOLD;WDTCTL=WDTPW+WDTHOLD;SEL|=BIT5+P8BIT6;SEL|=BIT5+P8BIT6;P8DIR|= BIT5+P8BIT6;P8DIR|= BIT5+P8BIT6;UCB1CTL1|=UCSWRST;UCB1CTL1|=UCSWRST;UVB1CTL0=UCMST+UCMODE_3+UCSYNC;UVB1CTL0=UCMST+UCMODE_3+UCSYNC;UCB1CTL1=UCSSEL_2+UCSWRST;UCB1CTL1=UCSSEL_2+UCSWRST;UCB1BR0=12;UCB1BR0=12;UCB1BR1=0;UCB1BR1=0;UCB1I2CSA=0 x48;UCB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年零售电商行业智能客服在售后服务优化中的应用报告
- 节能灯能源用电协议合同
- 篮球馆租场地合同协议书
- 高速公路合同制合同范本
- 闺房哲学就业协议书模板
- 矿山生产加工合同协议书
- 瑜伽托管合同协议书模板
- 电厂粉煤灰售卖合同范本
- 经营店铺转让合同协议书
- 理由拒绝签质量协议合同
- GB/T 20958.2-2007数控床身铣床检验条件精度检验第2部分:立式铣床
- GB/T 14592-2014钼圆片
- 单位同意申报证明【模板】
- 一重集团大连石化装备有限公司大型石化容器制造基地项目简本
- 2022年临泉县教师进城考试笔试题库及答案解析
- QC 减少地铁车站结构渗漏点个数
- 贵州省黔南布依族苗族自治州各县区乡镇行政村村庄村名明细居民村民委员会
- 双方自愿协议书8篇
- 送达地址确认书法院
- 建筑企业管理体系程序文件
- 网店开设与运营实战教程教学ppt课件(完整版)
评论
0/150
提交评论