安防监控知识
电气知识|LPC2000系列ARM UART0
2017-03-09  浏览:73
安防之家讯:特性

LPC2000系列微控制器具有两个功能强大的UART,其中UART0具有如下的特性:

16字节接收FIFO和16字节发送FIFO;

寄存器位置符合16C550工业标准;

接收FIFO触发点可设置为1、4、8或14字节;

内置波特率发生器。

使用UART0通信

使用UART0通信需要两个引脚,分别为: UART0内部结构示意图 UART0相关寄存器描述

——接收缓存寄存器

U0RSR移位寄存器从RxD0引脚接收的有效数据将被送到接收FIFO中。通过读取U0RBR寄存器可以将接收FIFO中最早接收到的字节读出,当FIFO中不再包含有效数据时,该寄存器反映接收到的最后一个有效字节数据。接收的数据不足8位时,高位用0填充。

注意: U0RBR只读。访问该寄存器时,U0LCR的除数锁存访问位(DLAB)必须为0。

UART0相关寄存器描述

——发送器保持寄存器

写入该寄存器的值将是发送FIFO中的最高字节。访问该寄存器时,U0LCR的除数锁存访问位(DLAB)必须为0。

注意: U0THR只写。它的地址与U0RBR相同,通过读/写操作予以区分。

UART0相关寄存器描述

——除数锁存寄存器

这两个寄存器决定波特率时钟的频率,而波特率时钟必须是波特率的16倍。波特率计算公式如下:

BaudRate = FPCLK / ([U0DLM,U0DLL]×16)

注意:由于U0DLL、U0DLM寄存器与其它寄存器的地址重叠,所以在访问它们时,U0LCR的除数锁存访问位(DLAB)必须为1。

UART0相关寄存器描述

——中断使能寄存器

U0IER可以控制UART0的4个中断源。其中RBR中断使能包括两个中断,一个是接收数据可用(RDA)中断,一个是接收超时中断(CTI)。稍后将对各中断源作详细介绍。

UART0相关寄存器描述

——中断标识寄存器

UART0相关寄存器描述

——中断源说明

RLS中断:该中断为最高优先级。它在UART0产生了四个错误条件(溢出错误(OE)、奇偶错误(PE)、帧错误(FE)和间隔中断(BI))中的任意一个时置位。通过查看U0LSR[4:1]可以了解到产生该中断的错误条件。读取U0LSR时清除该中断;

RDA中断:该中断与CTI中断并列为第二优先级。当接收的有效数据到达接收FIFO设置寄存器(U0FCR)中设置的触发点时,RDA被激活。当接收FIFO中的有效数据少于触发点时,RDA复位;

CTI中断:该中断为第二优先级。当接收FIFO中的有效数据少于预定的触发点数量,但至少有一个字节时,如果超过接收3.5~4.5个字节所需要的时间仍没有接收到数据,那将触发该中断。对接收FIFO的任何操作都会清零该中断标志; THRE中断:该中断为第三优先级。当发送FIFO为空并且满足一定的条件时,该中断将被触发。这些条件是: 3.如果在发送FIFO中有过两个字节以上的数据,但是现在发送FIFO为空时,将立即触发THRE中断。

当THRE中断为当前有效的最高优先级中断时,往U0THR写数据,或者对U0IIR的读操作,将使THRE中断复位。

UART0相关寄存器描述

——FIFO控制寄存器

复位RxFIFO:接收FIFO复位。当该位置位时,UART0接收FIFO中的所有字节被清零并复位指针逻辑。

注意:该位会自动清零。

复位TxFIFO:发送FIFO复位。当该位置位时,UART0发送FIFO中的所有字节被清零并复位指针逻辑。

注意:该位会自动清零。

—:这些位保留,用户程序不要向这些位写入1。

Rx触发点设置:通过设置这两位可以调整接收FIFO中触发RDA中断的有效字节数量。

00:触发点0(1字节); 01:触发点1(4字节);

10:触发点2(8字节); 11:触发点3(14字节);

UART0相关寄存器描述

——线状态控制寄存器

停止位:控制每帧数据包含的停止位个数。

0:1个停止位; 1:2个停止位;

奇偶使能:控制是否进行奇偶校验。如果使能,发送时将添加一位校验位。

0:禁止奇偶产生和校验; 1:使能奇偶产生和校验;

奇偶选择:设置奇偶校验类型。

00:奇数(数据位+校验位=奇数);

01:偶数(数据位+校验位=偶数);

10:校验位强制为1; 11:校验位强制为0;

间隔:当该位为1时,输出引脚(TxD0)强制为逻辑0,可以引起通信对方(LPC2000)产生间隔中断。在某些通信方式中,使用间隔中断作为通信的起始信号(如:LIN Bus)。

0:禁止间隔发送; 1:使能间隔发送;

除数锁存:因为U0DLL和U0RBR/U0THR的地址重叠,通过设置该位可以指定其中某个寄存器操作。

0:禁止访问除数锁存寄存器; 1:使能访问除数锁存寄存器;

RDR:接收数据就绪。判断该位是否置一,决定能否从FIFO中读取数据。

0:U0RBR为空;

1:U0RBR中包含有效数据。从接收FIFO中读走所有数据后,恢复为0。

OE:溢出错误标志。当U0RBR寄存器中已经有新的字符就绪,而接收FIFO已满时,该位置位。

0:接收缓存区没有溢出;

1:接收缓存区发生溢出错误。

PE:奇偶校验错误。在使能奇偶校验位之后,对所有接收的数据都进行奇偶校验,如果与U0LCR中的设置不符,将引起奇偶校验错误。

0:没有发生奇偶校验错误;

1:发生奇偶校验错误。读操作使该位恢复为0。

FE:帧错误标志。当接收字符的停止位为0时,产生帧错误。

0:没有发生帧错误;

1:发生帧错误。读取该位时恢复为0。

BI:间隔中断标志。在发送数据时,如果RXD0引脚保持低电平,将产生间隔中断。发生间隔中断后,接收模块停止数据接收。

0:没有发生间隔中断;

1:发生间隔中断。

THRE:反映U0THR是否为空,也可以认为发送FIFO是否为空。

0:不为空;

1:空。对U0THR进行写操作,使该位恢复为0。

TEMT:当发送移位寄存器和U0THR均为空时,该位置位。

0:不为空;

1:空。对U0THR进行写操作,使该位恢复为0。

RXFE:如果一个带有接收错误(如帧错误、奇偶错误或间隔中断)的字符装入U0RBR时,该位置位。

0:U0RBR中没有接收错误,或U0FCR[0]为0;

1:U0RBR中包含至少一个UART0 Rx错误。

使用UART0注意要点

U0RBR与U0THR在同一地址上,但实际上是两个独立的寄存器,读操作时选择U0RBR,写操作时选择U0THR;

U0DLL与U0RBR/U0THR、U0DLM与U0IER在同一地址上,通过除数访问位DLAB选择。当该位为1时,选择U0DLL和U0DLM。为0时,选择U0RBR/U0THR和U0IER;

无论在U0FCR中是否使能FIFO,接收FIFO不能被禁止。关闭FIFO后,接收FIFO只有一个字节缓冲;

波特率计算公式:U0DLM、U0DLL = FPCLK/(16×baud);

UART0应用示例——操作流程



UART0应用示例——初始化代码 UART0应用示例——收发数据安防之家专注于各种家居的安防,监控,防盗,安防监控,安防器材,安防设备的新闻资讯和O2O电商导购服务,敬请登陆安防之家:http://anfang.jc68.com/
更多»您可能感兴趣的文章:
更多»有关 防盗 的产品:
  • 安防监控资讯
  • 发表评论 | 0评
  • 评论登陆
  • 移动社区 天花之家 木门之家 灯具之家 铁艺之家 幕墙之家 五金头条 楼梯头条 墙纸头条 壁纸头条 玻璃头条 老姚之家 灯饰之家 电气之家 全景头条 照明之家 防水之家 防盗之家 区快洞察 建材 枣庄建材 临沂建材 南昌建材 上饶建材 抚州建材 宜春建材 吉安建材 赣州建材 鹰潭建材 新余建材 九江建材 萍乡建材 景德镇陶瓷 石家庄建材 衡水建材 廊坊建材 沧州建材 承德建材 建材之家 企业之家 720全景
    (c)2015-2017 Bybc.cn SYSTEM All Rights Reserved