第8章MSP430串行外设_第1页
第8章MSP430串行外设_第2页
第8章MSP430串行外设_第3页
第8章MSP430串行外设_第4页
第8章MSP430串行外设_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MSP430串行通信外设第1节串行通信的基本概念第2节MSP430USART外设第3节MSP430的异步串行方式(UARTMode)第4节MSP430的异步串行方式编程方法本章教学目标

1.了解异步串行通信原理;

2.掌握MSP430异步串行接口的组成和工作原理;

3.掌握MSP430异步串行接口的编程方法。第1节串行通信的基本概念并行—— 多位信息沿着各自的信号线或引脚 同时输入/输出D15D14

D1D0CPUP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0MSP430接存储器、I/O接口接外扩并口器件或设备

RxDTxD接收器发送器D7

D6D5D4D3D2

D1

D0Td串行—— 多位信息沿着同一根信号线或引脚 依次分时输入/输出串行方式的优点: 信号线少,传输距离远,接线方便、成本低等串行方式的缺点: 传输速度相对较慢串行通信的基本概念波特率=1/Td,单位:bps(bitspersecond)①波特率(Baudrate)是串行通信中衡量数据传输速率的单位,即每秒传送的二进制数据的位数,以位/秒(bps)表示。常用的波特率有:1200、2400、4800、9600、19200bps等

RxDTxD接收器发送器D7

D6D5D4D3D2

D1

D0Td②检错与奇偶校验(奇校验、偶校验)

数据在传输过程中,由于干扰可能引起信息的出错。检查传输中的错误,叫检错;

最简单的检错方法是奇偶校验,即在传送字符的各位之外,再传送1位奇/偶校验位。可采用奇校验或偶校验:

奇校验:使所有传送的数位(含校验位)中1的个数为奇数

偶校验:使所有传送的数位(含校验位)中1的个数为偶数LSBMSB起始位数据位校验位停止位按照数据流的方向,分成三种基本的传送方式:单工方式、全双工方式、半双工方式③串行数据传送方式发送器接收器AB发送器发送器AB接收器接收器需要两根数据线单工方式全双工方式半双工方式数据能从A方传送到B方,也能从B方传送到A方,但是不能同时在两个方向上传送,每次只能由一方发送,另一方接收。通信双方通过软件控制实现发送/接收方的角色转换发送器接收器AB接收器发送器发送器接收器AB接收器发送器半双工方式广泛地应用于主从结构的系统中主站从站1从站2从站n

每个站均有通信地址(定址原则)平时从站都处于接收状态,等待来自主站的命令当从站接收到来自主站的命令后,若需要响应,则将自己置为发送状态,并发送响应,发送完毕后再置为接收状态当主站要发送命令时,置主站为发送状态当主站发送命令完毕后,置主站为接收状态,以接收从站的响应例:RS-485总线集散系统分布式系统④异步串行与同步串行同步串行:使用独立的同步时钟信号线来实现位同步异步串行:不使用独立的同步时钟信号线,位同步靠起始位、停止位等实现LSBMSB起始位数据位校验位停止位DATADATASCLK第2节MSP430USART外设UART方式(MSP430x1xxFamily)USARTUSART的两种工作方式:UARTMode ——异步串行通信方式SPIMode ——同步串行通信方式USART:

UniversalSynchronous/Asynchronous Receive/TransmitUART:

UniversalAsynchronousReceive/TransmitSPI: SynchronousperipheralinterfaceUARTModeSYNC=0SPIModeSYNC=1实现字符格式、自发自收、同步异步、多处理器方式和软件复位使能等的控制USART控制寄存器UxCTL(USARTcontrolregister)0:paritydisabled1:parityenabled0:oddparity1:evenparity0:onestopbit1:twostopbits0:7-bitdata1:8-bitdata0:listendisabled1:listenenabled0:UARTmode1:SPImode0:idle-linemultiprocessorprotocol1:address-bitmultiprocessorprotocol0:softwareresetdisabled1:softwareresetenabled第3节MSP430的异步串行通信方式(UARTMode,SYNC=0)发送控制/状态寄存器UxTCTL数据缓冲控制逻辑地址译码MDB8接收缓冲器UxRXBUF接收移位寄存器发送缓冲器UxTXBUF发送移位寄存器MABUARTmode的主要编程结构URXDxUTXDx接收控制/状态寄存器UxRCTL控制寄存器UxCTL波特率设置用寄存器UxMCTLUxBR0UxBR1中断使能寄存器IE1/IE2中断标志寄存器IFG1/IFG2模块使能寄存器ME1/ME2MCB读写信号中断信号时钟信号其它特殊功能寄存器SFRUxCTLSPB=1]UARTMode字符格式(CharacterFormat)USART控制寄存器SYNC=0异步串行字符格式举例:8位数据位、偶校验、2位停止位、无地址位格式LSBMSB起始位数据位校验位停止位D0D1D2D3D4D5D6D7UxCTL1111000xBIS.B #PENA+PEV+SPB+CHAR,&U0CTLUxCTL异步通信格式(AsynchronousCommunicationFormats)无地址位格式(MM=0),字符中无地址位(无AD位)带地址位格式(MM=1),字符中带AD位(AD=1:地址字节;AD=0:数据字节)该格式中的块间间隔与块内字符间间隔有特殊要求:块间间隔≥10Bits;0≤块内字符间间隔<10Bits

如果格式中有2位停止位,则后一位被自动计入间隔中无地址位格式(MM=0)的间隔规定块间间隔的生成方法:

11bitsblockofcharacterblockofcharacter块间间隔UxTCTL置位TXWAKE,然后写任意一个字符到UxTXBUF

中该方法可以自动发送一个宽度为11位的间隔(高电平)TXWAKE

自动清零注意:待UTXIFGx=1(UxTXBUF已空)时才能写UxTXBUF。

UTXIFG0=IFG1.7,UTXIFG1=IFG2.7块间间隔与字符间间隔无特殊要求;注意:PC机中无此格式,因此该格式的应用会受到限制。Eachcharactercontainsanaddressindictor带地址位格式(MM=1)的间隔规定地址位(ADbit)的生成方法:1.编程UxTCTL的TXWAKE位: 发送地址字符时,使TXWAKE=1

发送数据字符时,使TXWAKE=02.在将被发送字符由UxTXBUF传入发送移位寄存器时,

TXWAKE的值由USART自动地装载入AD位,然后自动清零TXWAKE位。UxTCTL编程写入自动装载自动清零UARTMode的接收原理位起始同步:与USART的时钟同步在中间位置3次采样并按少数服从多数的表决机制确定每位的值(majorityvotetaken)MSP430UARTMode的同步与定位原理以N=14为例USART接收控制寄存器(UxRCTL)编程状态状态100:若接收到错误字符,则不存入UxRXBUF,并且不置位URXIFGx1:接收到的字符无论错对,都存入UxRXBUF,并置位URXIFGx0:接收到的字符无论是地址还是数据,都置位URXIFGx(URXEIE=1)1:仅接收到地址字符时,才置位URXIFGx(URXEIE=1)URXEIE=URXWIE=UxRCTLUSART的接收器的状态帧错误(framingerrors):停止位错误(第1个停止位=“0”)奇偶校验错(parityerrors)溢出错误(overrunerrors):未及时读出,被新接收到的字节覆盖断开条件(breakconditions):连续接收到10位及以上的“0”1:错误0:正确接收错误

RXERR=FE+PE+OE+BRK读UxRXBUF操作将清零FE,PE,OE,BRK,RXERR等标志位因此错误标志位的判断应在读UxRXBUF操作前进行。错误标志位也可由软件清零。0:receivedcharacterisdata1:receivedcharacterisanaddressMSP430USART的波特率发生器波特率=BRCLK/N (3≤N<0FFFFh)最大波特率=BRCLK/3波特率调整寄存器当BRCLK能被波特率整除时UxMCTL=0N=BRCLK周期数每bit波特率时钟选择波特率寄存器N=BRCLK周期数每bitN=BRCLK/波特率=32768/1200=27.31整数部分确定波特率寄存器UxBR1和UxBR0的值27=001Bh--->高字节:UxBR1=00h,低字节:UxBR0=1Bh小数部分确定波特率调整寄存器UxMCTL的值0.31×8=2.48---取整--->2------>

8位中使其中的2个bit的宽度=(27+1)个BRCLK, 其它的6个bit的宽度=27个BRCLKUxMCTL=00000011bor00010001bor00100010b……波特率寄存器值计算举例要求:

BRCLK=ACLK=32768Hz

波特率=1200BPSN=32768/2400=13.65 13=0x000D------>UxBR1=00h,UxBR0=0Dh0.65*8=5.2------>5------>8位中使其中的5个bit的宽度=13+1个BRCLKUxMCTL=01101011bor01101101bor11011010b……N=32768/4800=6.83 6=0x0006------>UxBR1=00h,UxBR0=06h0.83*8=6.64------>6------>8位中使其中的6个bit的宽度=6+1个BRCLKUxMCTL=01101111bor11101110bor11011011b……N=32768/9600=3.41 3=0x0003------>UxBR1=00h,UxBR0=03h0.41*8=3.28------>3------>8位中使其中的3个bit的宽度=3+1个BRCLKUxMCTL=01001010bor01001001bor10010010b……波特率寄存器值计算举例(BRCLK=32768Hz)常用波特率、波特率寄存器的值、波特率误差6MHz6MHz6MHz/8=750,000HzDivider=8波特率发生器时钟选择USART发送控制寄存器(UxTCTL)时钟源选择ME1ME2USART的收发模块允许/禁止使能控制

——通过编程模块使能寄存器实现

0:disable(defaultvalue) 1:enable第4节MSP430USARTUARTMode编程方法

1.查询方式

2.中断方式1.

查询方式串口通信编程2).USART引脚配置编程(UARTMode)UART0收发引脚UART1收发引脚编程使P3.4=1,P3.5=1,以选择USART0功能

引脚方向设置由USART自动完成例: 奇偶校验允许(PENA=1)、偶校验(PEV=1)、 停止位2位(SPB=1)、数据位8位(CHAR=1)、 非自发自收(LISTEN=0)、异步串行(SYNC=0)、 无地址位格式(MM=0)、SWRST

不变UxCTL1111000xB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论