[转]UART通讯简介

1.前言

UART通讯,即通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)。html

串行通讯是指利用一条传输线将资料一位位地顺序传送。特色是通讯线路简单,利用简单的线缆就可实现通讯,下降成本,适用于远距离通讯,但传输速度慢的应用场合。异步

异步通讯以一个字符为传输单位,通讯中两个字符间的时间间隔多少是不固定的,然而在同一个字符中的两个相邻位间的时间间隔是固定的。 
数据传送速率用波特率来表示,即每秒钟传送的二进制位数。例如数据传送速率为120字符/秒,而每个字符为10位(1个起始位,7个数据位,1个校验位,1个结束位),则其传送的波特率为10×120=1200字符/秒=1200波特。
spa

2.串行与并行通信方式

  • 并行

控制简单,传输速度快。线多,长距离成本较高且同时接受困难。
3d

 

图 并行通信方式htm

 

  • 串行

将数据字节分红一位一位的行驶在一条传输线上进行传输。如图:
 
blog

 

图 串行通信方式同步

 

3. 串行通信的特色

  • 串行通信的制式

单工:数据传输仅沿一个方向,不能实现反向传输
半双工:数据能够沿两个方向传输,可是须要分时
全双工:数据能够同时进行双向传输it

  • 串行通信三种错误校验

奇偶校验、代码和校验、循环冗余校验thread

  • RS232电平与TTL电平的转换

PC使用的串口的电平为RS232的九针串口,MCU使用的电平是TTL电平,要使得PC 和MCU进行通信,就须要对其电平极性转换。原理

主要的几款电平转换芯片:MAX23二、MAX20二、HIN232,SIPEX320等

  • 串行通信速度的定义_波特率

串行通信的速率用波特率表示,其定义为:                   每秒钟传送二进制代码的位数,即1波特=1位/秒,单位bps(位/秒)

eg:每秒钟传送240个字符,而每一个字符格式包含10位(1起始、8数据、1中止),此时的波特率为:

                 10位*240个/秒=2400bps

  

4.同步与异步串行通信方式

  • 同步串行通信方式

同步通信须要创建发送方对接收方时钟的直接控制,是双方达到彻底同步

  • 异步串行通信方式

通信的发送和接收设备使用各自的时钟控制数据的发送和接收,为使双方收发协调,要求发送和接收的时钟尽量一致。如图:

图 异步串行通讯方式

 

5.UART(通用异步串行通讯方式)的数据传输格式

 

图 UART的数据传输格式

异步通信以字符构成的帧为单位进行传输,字符与字符之间的间隙是任意的,但每一个字符中的各位是以固定的时间传送的。

其一帧字符信息由4部分组成:起始位、数据位、奇偶检验位、中止位。在单片机中的通信通常状况下均使用这种帧格式。如图:

  •     起始位

先发出一个逻辑”0”信号,表示传输字符的开始。

  •     数据位

能够是5~8位逻辑”0”或”1”。如ASCII码(7位),扩展BCD码(8位)。小端传输,即低位在前高位在后

  •     校验位

数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验)

  •     中止位

它是一个字符数据的结束标志。能够是1位、1.5位、2位的高电平。

  •     空闲位

处于逻辑“1”状态,表示当前线路上没有资料传送。

    注:异步通讯是按字符传输的,接收设备在收到起始信号以后只要在一个字符的传输时间内能和发送设备保持同步就能正确接收。

下一个字符起始位的到来又使同步从新校准(依靠检测起始位来实现发送与接收方的时钟自同步的)

 

图 连续字符的数据传输

6. UART的发送与接收过程

  • 串行数据的发送过程

串行数据的发送由发送时钟控制。数据发送过程:把并行的数据序列送入移位寄存器,而后经过移位寄存器由发送时钟触发进行移位输出,数据位的时间间隔可由发送时钟周期来划分。

发送时钟、待发送的二进制数据和出如今传输线上的信号波形三者的关系如图所示:

图 串行数据发送

  • 串行数据的接收过程

串行数据的接收由接收时钟检测,接收数据的过程:把由传输线送来的串行数据序列由接收时钟做为输入移位寄存器的触发脉冲,逐位打入移位寄存器,接收过程是将串行数据序列逐位打入移位寄存器,而装配成并行数据序列的过程。

接收时钟、接收器检测到的的二进制数据和出如今传输线上的信号波形三者的关系如图所示:

图 串行数据接收

 

7.UART RS232 MAX232 DB9的关系

  • UART是一种物理设备,主要用于数据的收发
  • RS232是一种异步串行通讯协议标准
  • MAX232是一款芯片来实现PC端RS232电平转换成单片机TTL电平
  • DB9是具体的物理链接器

注:TTL是Transistor-Transistor Logic,即晶体管-晶体管逻辑的简称,它是计算机处理器控制的设备内部各部分之间通讯的标准技术。

       TTL电平信号应用普遍,是由于其数据表示采用二进制规定,+5V等价于逻辑"1",0V等价于逻辑"0"。

       数字电路中,由TTL电子元器件组成电路的电平是个电压范围,规定:输出高电平>=2.4V,输出低电平<=0.4V;输入高电平>=2.0V,输入低电平<=0.8V。

       RS232是串口的一个标准,它有本身的电平定义:它采用负逻辑,-15V~-3V表明逻辑"1",+3V~+15V表明逻辑"0"。

图 DB9 MAX232的链接

 

7.参考资料

[1] 基于51的串行通信原理及协议详解(uart) http://www.51hei.com/bbs/dpj-40281-1.html

相关文章
相关标签/搜索