串口uart和RS232,RS485有什么关系及联系

接口/总线/驱动

1115人已加入

描述

  一、UART介绍

  通用异步收发传输器通常称作UART,UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用于主机与辅助设备通信,如汽车音响与外接AP之间的通信,与PC机通信包括与监控调试器和其它器件,如EEPROM通信。

  基本结构:

RS232

  ⑵ 输出移位寄存器,它接收从输出缓冲器送来的并行数据,以发送时钟的速率把数据逐位移出,即将并行数据转换为串行数据输出。

  ⑶ 输入移位寄存器,它以接收时钟的速率把出现在串行数据输入线上的数据逐位移入,当数据装满后,并行送往输入缓冲寄存器,即将串行数据转换成并行数据。

  ⑷ 输入缓冲寄存器,它从输入移位寄存器中接收并行数据,然后由CPU取走。

  ⑸控制寄存器,它接收CPU送来的控制字,由控制字的内容,决定通信时的传输方式以及数据格式等。例如采用异步方式还是同步方式,数据字符的位数,有无奇偶校验,是奇校验还是偶校验,停止位的位数等参数。

  ⑹状态寄存器。状态寄存器中存放着接口的各种状态信息,例如输出缓冲区是否空,输入字符是否准备好等。在通信过程中,当符合某种状态时,接口中的状态检测逻辑将状态寄存器的相应位置“1”,以便让CPU查询。

  UART数据传输流程:

  (1)UART的TXD通常情况处于高电平的状态

  (2)UART准备传输数据的时候,TXD从高电平转变为低电平(即从1变0)并维持一位的传输时间。这样接收方在检测到TXD传输的电平有高电平变为低电平的时候准备开始接收数据。

  (3)UART一帧有5,6,7,8位的数据,TXD由高电平转变为低电平并保持一位的时候开始传输数据。传输数据是一位一位的进行高低电平传输。首先发送的是低位。

  (4)UART如果使用校验位时,在发送数据结束时候会紧跟着一位校验位。有两种校验方法:奇校验和偶校验

  (5)最后发送停止位,TXD数据线恢复到正常状态,停止位的长度有三种。1位,1.5位,2位

  二、RS232介绍

  个人计算机上的通讯接口之一,由电子工业协会(Electronic Industries Association,EIA) 所制定的异步传输标准接口。通常 RS-232 接口以9个引脚 (DB-9) 或是25个引脚 (DB-25) 的型态出现,一般个人计算机上会有两组 RS-232 接口,分别称为 COM1 和 COM2。

  在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。RS-232-C接口(又称EIARS-232-C)是目前最常用的一种串行通讯接口。(“RS-232-C”中的“-C”只不过表示RS-232的版本,所以与“RS-232”简称是一样的)

  RS232的9针接口:

RS232
RS232

  最右边的是串口接口 统称为RS232接口(封装DB9)

RS232

  通信过程中只有两个脚参与通信

  2脚:电脑的输入RXD

  3脚:电脑的输出TXD 通过2 ,3 脚就可以实现全双工(可同时收发)的串行异步 通信

  5脚:接地

  RS232的引脚电路连接完成(就三个脚)

  对于单片机

  单片机的P3口是有两个复用接口RXD 和TXD 这是单片机进行串行通信的收发口 连接应该错位的对应到电脑的TDX RDX上

  注意:单片机和rs232的电平标准是不一样的(各种电平标准见另一word)

  单片机的电平标准 TTL电平 :+5V表示1 0V表示0

  Rs232的电平标准 +15/+13 V表示1 -15/-13 表示0

  所以 单片机与电脑串口通信就应该遵循下面的连接方式:

 

  在单片机与上位机给出的rs232口之间 通过电平转换电路(最上面图中的Max232芯片) 实现TTL电平与RS232电平之间的转换

  三、RS485介绍

  为扩展应用范围,美国电子工业协会(EIA)又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同 一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。

  RS485接口组成的半双工网络,一般是两线制(以前有四线制接法,只能实现点对点的通信方式,现很少采用),多采用屏蔽双绞线传输。这种接线方式为总线式拓扑结构在同一总线上最多可以挂接32个结点。在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。很多情况下,连接RS-485通信链路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来。RS485接口连接器采用DB-9的9芯插头座,与智能终端RS485接口采用DB-9(孔),与键盘连接的键盘接口RS485采用DB-9(针)。

  rs485特点:

  1. RS-485的电气特性:采用差分信号正逻辑,逻辑“1”以两线间的电压差为+(2~6)V表示;逻辑”0“以两线间的电压差为-(2~6)V表示。接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片, 且该电平与TTL电平兼容,可方便与TTL电路连接。

  2. RS-485的数据最高传输速率为10Mbps。

  3. RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。、

  4. RS-485最大的通信距离约为1219m,最大传输速率为10Mbps,传输速率与传输距离成反比,传输速率越低,传输距离越长,如果需传输比RS-485最大通信距离更长的距离,需要加485中继器。RS-485总线一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点。

  RS485通信原理:

  RS485是一种在工业上作为数据交换的手段而广泛使用的串行通信方式,数据信号采用差分传输方式,也称作平衡传输,因此具有较强的抗干扰能力。它采用一对双绞线,将其中一线定义为A,另一线定义为B。

  通常情况下,RS485的信号在传送出去之前会先分解成正负对称的两条线路(即我们常说的A、B信号线),当到达接收端后,再将信号相减还原成原来的信号。发送驱动器A、B之间的正电平在+2~6V,是一个正1逻辑状态;负电平在-2~6V,是一个负0逻辑状态;另有一个信号地C。在RS485中还有一“使能”端。“使能”端是用于控制发送驱动器与传输线的切断与连接。当“使能”端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0”的第三态。

  接收端与发送端的电平逻辑规定,收、发端通过平衡双绞线将AA与BB对应相连,当在接收端AB之间(DT)=(D+)-(D-)有大于+200mV的电平时,输出正逻辑电平,小于-200mV时,输出负逻辑电平。接收器接收平衡线上的电平范围通常在200mV~6V之间。

  例如:发送“1”时,驱动器收到控制器发送来的高电平,之后A端输出高电平,B端输出低电平;接收器A端收到高电平,B端收到低电平,两个信号相减得到“1”。同理,发送“0”时,驱动器收到控制发送来的低电平,之后A、B两端分别输出低、高电平,接收端A、B则接收到低、高电平,两个信号相减后得到“0”。

  如果受到干扰,则接收端AB之间(DT)=[(D+)+Noise]-[(D-)+Noise]= (D+)-(D-),由此可以看出干扰信号被消除。

  四、串口uart和RS232,RS485联系

  串口通讯是电子工程师和嵌入式开发工程师面对的最基本问题,RS232则是其中最简单最常用的通讯方式。但是初学者往往搞不清有关的名词如UART和RS232或RS485之间是什么关系,因为它们经常被放到语句中同等的位置使用。在百度搜索二者的区别,可以看到排在最前面的答案充斥着混淆的概念。就此,谈谈我对这几个概念的理解,希望能帮初学者厘清它们之间的关系。

  通讯问题,和交通是一样的。串口通信,我们这里可以用公交来类比。

  公交运行可以简单分成两个部分:

  1、车站

  2、公路

  其中车站决定了车上装什么(人),怎么发送(班次)等。

  当汽车跑在路上,就要遵守公路交通的规则,过桥有过桥的规则,高速有高速的规则,和车站没有关系了。

  回到串口通讯,其实,UART就相当于车站,而RS232/RS485则对应于公路的规则。

  UART,是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),既然是“器”,显然,它就是个设备而已,要完成一个特定的功能的硬件,它本身并不是协议。那么它要完成什么功能呢?它的最基本功能,是串行数据和并行数据之间的转换。我们知道,计算机中的数据以Byte为基本单位,对一个Byte的存取是并行的,即,同时取得/写入8个bit。而串行通信,需要把这个Byte“打碎”,按照时间顺序来收发以实现串行。例如:

  内存中的数据是: 1 1 1 0 0 1 0 1

  串行发送的实际效果是(按时间排序【注1】):

  1

  0

  1

  0

  0

  1

  1

  1

  接收则是上述过程的逆过程。

  这就是UART做的最基本工作,进一步的,它还要控制“发车的班次”,比如确认一个Byte的这8个bit是什么时候开始的,又是什么时候结束的,两个班次之间至少要隔多长时间的缓冲,等等。这一部分,也具有协议的特征,但是相对于道路上的协议,更具有一般性,或曰,是与车在什么道路上开,相对独立的。

  那么道路上的规定是什么样的呢?

  RS232/RS485,是两种不同的电气协议,也就是说,是对电气特性以及物理特性的规定,作用于数据的传输通路上,它并不内含对数据的处理方式。比如,最显著的特征是:RS232使用3-15v有效电平,而UART,因为对电气特性并没有规定,所以直接使用CPU使用的电平,就是所谓的TTL电平(可能在0~3.3V之间)。更具体的,电气的特性也决定了线路的连接方式,比如RS232,规定用电平表示数据,因此线路就是单线路的,用两根线才能达到全双工的目的;而RS485, 使用差分电平表示数据,因此,必须用两根线才能达到传输数据的基本要求,要实现全双工,必需用4根线。但是,无论使用RS232还是RS485,它们与UART是相对独立的,但是由于电气特性的差别,必须要有专用的器件和UART接驳,才能完成数据在线路和UART之间的正常流动。

  RS232甚至规定了接口的具体样式,图为DB9接口

  总结:

  从某种意义上,可以说,线路上存在的仅仅是电流,RS232/RS485规定了这些电流在什么样的线路上流动和流动的样式;在UART那里,电流才被解释和组装成数据,并变成CPU可直接读写的形式。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分