Chinaunix首页 | 论坛 | 博客
  • 博客访问: 100176
  • 博文数量: 64
  • 博客积分: 3050
  • 博客等级: 中校
  • 技术积分: 725
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-22 18:16
文章分类
文章存档

2010年(56)

2009年(8)

我的朋友

分类: 嵌入式

2010-01-15 17:09:24

UART是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。作为接口的一部分,UART还提供以下功能:

将由计算机内部传送过来的并行数据转换为输出的串行数据流。

将计算机外部来的串行数据转换为字节,供计算机内部使用并行数据的器件使用。

在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验。

在输出数据流中加入启停标记,并从接收数据流中删除启停标记。

处理由键盘或鼠标发出的中断信号(键盘和鼠票也是串行设备)。

可以处理计算机与外部串行设备的同步管理问题。

有一些比较高档的UART还提供输入输出数据的缓冲区,现在比较新的UART是16550,它可以在计算机需要处理数据前在其缓冲区内存储16字节数据,而通常的UART是8250。现在如果您购买一个内置的调制解调器,此调制解调器内部通常就会有16550UART。

1.UART协议的工作特点
1.1 数据采样


UART协议是实现设备之间低速数据通信的标准协议。因发送时不需同时发送时钟,故此协议为异步。UART链接典型为38400,9600波特。UART字符格式为1个起始位,5~8个数据位,1个地址位或奇偶位(可选),1个停止位。


由于接收器、发送器异步工作,无需联接接收和发送时钟。接收器采取对输入数据流高度采样方式,通常采样为16,并根据采样值确定位值。按惯例,使用16个采样值的中间三个值。


1.2 UART帧区分


UART一参数MAX-IDL,用来设置空闲字符的多少。一旦一字符在线上被接收,UART控制器开始计数接收到的空闲字符。若下一数据字符接收前,一MAX-IDL多个空闲字符被接收,则产生空闲时间,缓冲区被关闭。顺次对CPU32 核心发出一中断请求,要求从缓冲区接收数据。因此,MAX-IDL给UART模式提供一区分帧的便利方法。


空闲字符按以下公式计算其位数:1(起始) 数据长度(5,6,7,8) 1(若奇偶校验被使用) 停止位(1)。例如,1个(起始),8位数据,无校验,1个停止位,则空闲字符MAX-IDL为10位。


1.3 UART地址识别


多站系统中,网络上可能会有两个以上的站,每个站有一特定的地址。由许多字符构成的帧可被广播,其第一字符做为目的地址。为实现此功能,UART帧被扩展一位,以区别地址字符和正常数据字符。


UART可被设置为操作于一多站环境,此环境下,支持以下两种模式:
自动多站模式当地址于两个预置值之一相匹配时,UART控制器自动检查到来地址字符,接收随后的数据。


非自动多站模式UART控制器接收所有数据。一地址字符总被写入一新缓冲区。


综上所述,UART协议采取一种通过数据采样来确定位值的机理,具有简单准确的定帧模式,而且广泛用于多站系统中,具有自动多站和非自动多站两种模式,来区分地址和数据。

2.几种重要寄存器


在嵌入式开发中,对寄存器的理解和正确配置至关重要。对MPC860的UART协议,有几个重要寄存器,它们是:管足配置寄存器波特率配置寄存器通信处理命令寄存器SCC通用模式寄存器发送和接收缓冲区描述器、UART的特定参数SCC协议专用模式寄存器SCC协议事件寄存器UART屏蔽寄存器

SCC是Supervisiory Computer Control的缩写,意为:监督计算机控制(在微机控制系统中)。

===================================================================
管足配置寄存器一般是针对收、发两根管足,有开漏寄存器、数据寄存器、数据方向寄存器,它们可被设置为具有串行信道输出的能力和被设置为输入输出口。

波特率配置寄存器负责把波特率指向所用的串口和配置波特率大小。

通信处理命令寄存器主要用于判断命令的发出是否和阻止传送。

SCC通用模式寄存器主要用于协议的选择和传输格式的配置。

发送和接收缓冲区描述器主要用于收发数据和判断接收的是地址还是数据,数据的错误情况等。

UART的特定参数用来部分初始化UART。

SCC协议专用模式寄存器主要用于设置UART处于自动多站和非自动多站模式。

事件寄存器主要用于判断是收中断还是发中断。

屏蔽寄存器主要用于收、发使能。

================================================================
因此,对UART协议来说,上面几种寄存器是很重要的,它们主要完成波特率配置,协议的选择,收发判断处理等。

UART&RS232&COM


UART是通用异步收发器(异步串行通信口)的英文缩写,它包括了RS232、RS499、RS423、RS422和RS485等接口标准规范和总线标准规范,即UART是异步串行通信口的总称

RS232、RS499、RS423、RS422和RS485等,是对应各种异步串行通信口的接口标准和总线标准,它规定了通信口的电气特性、传输速率、连接特性和接口的机械特性等内容。实际上是属于通信网络中的物理层(最底层)的概念,与通信协议没有直接关系。而通信协议,是属于通信网络中的数据链路层(上一层)的概念。

COM口是PC(个人计算机)上,异步串行通信口的简写。由于历史原因,IBM的PC外部接口配置为RS232,成为实际上的PC界默认标准。所以,现在PC机的COM口均为RS232。

UART(UniversalAsynchronousReceiver/Transmitter)即通用异步收发传输器,工作于数据链路层。包含了RS-232、RS-422、RS-485串口通信和红外(IrDA)等等。UART协议作为一种低速通信协议,广泛应用于通信领域等各种场合。UART基本可分为并口通信及串口通信两种。

 

在嵌入式系统或者计算机中,并非直接对串口直接进行,而是通过SCI(串行通讯接口)模块对其进行控制。(注:“SCI”首先由Motorola微串口微控制器而得名,SCI另一种说法是“UART控制器”)常用的许多芯片中都包含了SCI,例如ARM的S3C2410X芯片内嵌了3个串行接口控制器,而Nios等软核芯片则可以用选用UART(RS232)的IP对UART进行控制。PC机则常用16650UART,16750UART等控制串口。

阅读(969) | 评论(0) | 转发(0) |
0

上一篇: GPIO

下一篇:I2C详解

给主人留下些什么吧!~~