UART是通用异步串行接口的简称。串行通讯接口是用来与单片机外界体系进行通讯桥梁,比方能够吧单片机ADC转化的数据经过串口发送给PC机(上位机),经上位机处理之后在发回给单片,到达通讯的意图。TI公司的MSP430系列单片机均具有UART功用,其间大部分还和SPI,I2C功用复用,经过相关寄存器的装备,能够很轻松地就完成了UART,SPI,I2C的通讯功用。在此以MSP430x149为例介绍UART功用及其完成进程。
1.异步通讯的结构:
2.UART数据格式(数据协议):
异步通讯再不发送数据的时分,通讯线路上总是呈现高电平状况,称为闲暇状况。当有数据发送是,信号线变成低电平,并继续一位的时刻用于表明发送字符的开端,该为称为开始位。开始位之后在信号线上顺次呈现发送的数据。
开始位,数据位由高到低7/8位,地址位 0/1位,奇偶校验位 奇偶或无,中止位1/2位。数据位位数、地址位、奇偶校验位、中止位均可由单片机内部寄存器操控;这款单片机都有两个USART模块,有两套独立的寄存器组;以下寄存器射中呈现x代表0或是1,0代表对应0模块的寄存器,1代表对应1模块的寄存器;其间,与串口形式设置相关的操控位都坐落UxCTL寄存器,与接纳相关的操控位都坐落UxRCTL寄存器,与发送相关的操控位都坐落UxTCTL寄存器;波特率设置用UxBR0、UxBR1、UxMCTL三个寄存器;接纳与发送有独立的缓存UxRXBUF、UxTXBUF,并具有独立的移位寄存器和独立的中止;中止答应操控位坐落IE1/2寄存器,中止标志位坐落IFG1/2寄存器。
3.波特率设置:430的波特率设置用三个寄存器完成:
UxBR0:波特率发生器分频系数低8位。
UxBR1:波特率发生器分频系数高8位。
UxMCTL:波特率发生器分频系数的小数部分完成。
设置波特率时,首先要挑选适宜的时钟源:USART模块能够设置的时钟源有UCLK引脚、ACLK、SMCLK;关于较低的波特率(9600以下),可选ACLK作为时钟源,这样,在LPM3(低功耗3)形式下,串口仍能正常发送接纳数据;别的,因为串口接纳进程有一个三取二判定逻辑,这至少需求三个时钟周期,因而分频系数有必要大于3;波特率高于9600时,将不能运用ACLK作为时钟源,要调为频率较高的SMCLK作为时钟源;别的还能够外部输入UCLK时钟。分频系数核算公式如下:
小数分频是MSP430单片机的串口特征之一,UxMCTL寄存器的效果便是操控小数的分频,操控办法如下:对应位是1,则分频系数加一,0则分频系数减一;小数分频器会主动顺次取出每一位来调整分频系数。其核算办法:能够先核算小数部分一的个数,然后把1均匀的放入UxMCTL的8位中,这样核算比较简单,分频系数的小数部分乘以8即得到1的位数,查表得到对应的UxMCTL值;别的一种经过核算每一位的错误率,交互核算,直到得到最小错误率的UxMCTL值,这种办法比较复杂,但得到的小数分频差错更小。
4.UART的初始化及复位
(1)UxCTL寄存器的第0位SWRST置位;
(2)在SWRST置位的条件下,初始化一切的UART寄存器,包含UxCTL寄存器;
(3)经过置位模块使能寄存器MEx的URXEx和UTXEx位使能UART的承受和发送使能模块;
(4)经过软件复位UxCTL寄存器的第0位SWRST;
(5)经过中止使能寄存器IEx的URXIEx和UTXIEx来使能发送和承受中止。
5.UART的中止
(1)发送中止:当发送缓冲寄存器UxTXBUF被写入需求发送的数据的时分,UTXIFGx的中止标志位被置位;假如发送中止被答应,而且总中止被使能的话,则会向CPU宣布中止请求。当呼应中止请求之后,中止标志位被主动置0,在中止函数里面不需求手动铲除标志位。
(2)接纳中止:当有数据被装载到发送缓冲寄存器UxRXBUF时,UTXIFGx的中止标志位被置位;假如承受中止被答应,而且总中止被使能的话,则会向CPU宣布中止请求。当呼应中止请求之后,中止标志位被主动置0,在中止函数里面不需求手动铲除标志位。