UART和RS232、RS485的基础知识

博客目录:

1、UART和RS232、RS485的关系:

2、RS232和RS485的区别和引脚介绍

3、参考文献

正文如下

一、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可直接读写的形式。

注1】这里是例子是小端发送模式,是基本的串口传输方式,但是,大端模式的串口传输模式也是存在的,少见而已。

UART可以这样理解:每个SOC芯片,内部都会有UART控制器,也就是上面的“车站”。但是通常说的UART指的是,一种串行通信协议。规定了数据帧格式,波特率等。

RS232和RS485:是规定了数据通信的电气特性。是物理层的概念,对应的物理期间有RS232或者RS485驱动芯片,将CPU经过UART传送过来的电压信号驱动成RS232或者RS485电平逻辑。

(蓝色字体,是个人的理解,如果有不正确的地方,希望指点)

异步串口是目前工业设备最主要的通讯接口之一。在具体的工业现场中,串口的电气接口以RS232和RS485最为普遍。串口大多以TTL信号形式从板卡的管脚输入输出,客户需要在自己的应用底板上加入相应的驱动电路单元,以获得所需的串口接口,如RS232或RS485。在实际的应用中,由于现场的设备串口接口的情况并不确定,这样就要求客户设备同时具备RS232和RS485两种接口的功能。

RS232接口是采用正负电平的单极性信号,一般以3线制的接口最为普遍,信号包括RS232_TX、RS232_RX及GND,具有全双工通讯能力。RS485接口采用一对TTL电平的差分信号RS485_D-和RS485_D+,只能半双工通讯,在通讯方向(接收或发送)的切换方面,一般有两种方式:一种方式是利用TTL_TXD经过一定处理作为方向控制,这种方式也称为自动方向切换方式;另一种方式是使用串口的RTS控制线来控制方向,RTS有效时处于发送状态,无效时处于接收状态。

RS485接口连接器采用DB-9的9芯插头座,与智能终端RS485接口采用DB-9(孔),与键盘连接的键盘接口RS485采用DB-9(针)。

232和RS485定义是电气特性,影响的是数据在线路上的传输过程,RS232和RS485的收发器通过UART才能被CPU访问,所以,只要控制了UART,就可以控制串口的传输方式,而所谓的编程其实就是对UART编程,所以RS232个RS485从程序员视角是不可见的。 “那你就直接说RS485和RS232编程上没有区别不就完了?”

问题是,实际总比理论复杂,这里有一种例外:

RS232用两根线实现全双工,两根线各做各的,互不影响,可以同时进行;RS485虽然可以用四根线实现全双工,但是实际应用中比较少见,更常见的是只用两根线实现半双工,这样一来,就涉及到“收状态”和“发状态”的切换,这一切换又涉及两种情况:

1、驱动程序中已经含有对半双工情况下的接受切换,驱动程序会根据你读或写的动作,自动进行切换。这种情况下,RS485的编程就与RS232完全没有区别。

2、驱动程序不带自动切换,此时,为了完成切换,必须使用额外的GPIO连接RS485收发模块的接受使能端,在接受、发送数据之前,首先对使能端置位,使之处于正确的“接收”或“发送”状态。

"RS-485"是否与"半双工"等同?

答:否,RS-485接口可连接成半双工和全双工两种通信方式,半双工通信芯片有SN75176,SN751276,SN75LBC184,MAX485,MAX1478,MAX3082,MAX1483,全双工通信的有:SN75179,SN75180,MAX488-491,MAX1482 等

二、RS232 与 RS485 的区别:

一.抗干扰性:

1.. RS485 接口是采用平衡驱动器和差分接收器的组合,抗噪声干扰性好。 2. RS232 接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容 易产生共模干扰,所以抗噪声干扰性弱。

二.传输距离:

1.RS485 接口的最大传输距离标准值为 1200 米(9600bps 时),实际上可达 3000 米。 2. RS232 传输距离有限,最大传输距离标准值为 50 米,实际上也只能用在 15 米左右。

三.通信能力:

1.RS-485 接口在总线上是允许连接多达 128 个收发器, 即具有多站能力,这样用户可以利用 单一的 RS-485 接口方便地建立起设备网络 。 2.RS-232 只允许一对一通信。

四.传输速率:

1. 传输速率较低,在异步传输时,波特率为 20Kbps。 2.RS-485 的数据最高传输速率为 10Mbps 。

五.信号线:

1.RS485 接口组成的半双工网络,一般只需二根信号线。 2.RS-232 口一般只使用 RXD、TXD、GND 三条线,即"发送数据"、"接收数据"和"信号地" 。

六.电气电平值:

1.逻辑"1"以两线间的电压差为+(2-6) V 表示;逻辑"0"以两线间的电压差为-(2-6)V 表 示 。 2.在 RS-232-C 中任何一条信号线的电压均为负逻辑关系。即:逻辑"1",-5- -15V;逻辑"0 " +5- +15V 。噪声容限为 2V。即要求接收器能识别低至+3V 的信号作为逻辑"0",高到-3 V 的信号作为逻辑"1" 。 3.RS232 接口的信号电平值较高, 易损坏接口电路的芯片, 又因为与 TTL 电平不兼容故需使 用电平转换电路方能与 TTL 电路连接。 4.RS485
接口信号电平比 RS-232-C 降低了,就不易损坏接口电路的芯片, 且该电平与 TTL 电平兼容,可方便与 TTL 电路连接。

RS232 与 RS485 的联系:

1.都可通过 DB-9 连接器连接. 2.接口均可采用屏蔽双绞线传输。 3.都是串行通信。 4.通信方式都是全双工。 (一般情况 485 是半双工)

由于有的设备是232接口的,有的是485接口的,如果有一台232接口的设备与一台485接口的设备通信,那就需要一个RS232/RS485转换器,把232接口的设备的232信号转换成485信号,然后再与485接口的设备通信。如果是两台232接口的设备要进行远距离的通信,那只要加上两个RS232/RS485转换电路就可以了。

市场上所谓的“无源RS232/RS485转换器”采用从计算机串口偷电技术,而“有源RS232/RS485转换器”在电路原理图与跟前者差不多,只是电源部分有所改动而已。

RS232和RS485引脚分配

表1 RS-232端的引脚分配


DB9Female(PIN)


RS-232C接口信号


1


保护地


2


接收数据SIN(RXD)


3


发送数据SOUT(TXD)


4


数据终端准备DTR


5


信号地GND


6


数据装置准备DSR


7


请求发送RTS


8


清除发送CTS


9


响铃指示R1

表2 RS-485端的引脚分配


DB9Male(PIN)


输出信号


RS-485半双工接线


1


T/R+


RS-485(A+)


2


T/R-


RS-485(B-)


3


RXD+



4


RXD-



5


GND


地线


6


VCC


+5V备用电源输入

表1中因为不使用监控计算机的传送控制信号,所以只需三条接口线,即“发送数据”、“接收数据”和“信号地”。表2中T/R+、T/R-代表收发A+、B-,VCC代表备用电源输入,GND代表公共地线,点到点、点到多点、半双工通信接两根线(T/R+、T/R-),接线原则“发/收+”接对方的“发/收+” 、“发/收-”接对方的“发/收-” ,RS-485半双工模式接线时将T/R+(发/收+)接对方的A+ 、T/R-(发/收-)接对方的B-。

"RS-485"是否与"半双工"等同?

答:否,RS-485接口可连接成半双工和全双工两种通信方式,半双工通信芯片有SN75176,SN751276,SN75LBC184,MAX485,MAX1478,MAX3082,MAX1483,全双工通信的有:SN75179,SN75180,MAX488-491,MAX1482 等。

三、参考文献:

http://www.360doc.com/content/13/1119/18/13253385_330564821.shtml

http://www.360doc.com/content/11/0404/16/1317564_107153860.shtml (重要,可以仔细的看一下)

http://www.chinadmd.com/file/xoawuzuvowzx66r63iwrpuae_1.html

时间: 2024-10-09 15:03:01

UART和RS232、RS485的基础知识的相关文章

UART和RS232/RS485的关系是什么?

串口通讯是电子工程师和嵌入式开发工程师面对的最基本问题,RS232则是其中最简单最常用的通讯方式.但是初学者往往搞不清有关的名词如UART和RS232或RS485之间是什么关系,因为它们经常被放到语句中同等的位置使用.在百度搜索二者的区别,可以看到排在最前面的答案充斥着混淆的概念.就此,谈谈我对这几个概念的理解,希望能帮初学者厘清它们之间的关系. 通讯问题,和交通是一样的.串口通信,我们这里可以用公交来类比. 公交运行可以简单分成两个部分: 1.车站 2.公路 其中车站决定了车上装什么(人),怎

【转】RS-232,RS-485,UART联系与区别

原文:http://www.elecfans.com/emb/jiekou/20160608422297.html Note:需要说明一下,很多人经常把RS-232.RS-422.RS-485 误称为通讯协议,这是很不应该的,其实它们仅是关于UART通讯的一个机械和电气接口标准(顶多是网络协议中的物理层面). 导读 串口通讯是电子工程师面对的最基本的一个通讯方式,RS-232是其中最简单的一种.然而,很多初学者往往搞不清楚UART和RS-232.RS-422.RS-485的联系和区别,本文将谈谈

TCP/IP协议(一)网络基础知识

参考书籍为<图解tcp/ip>-第五版.这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及标准化过程(简述).OSI参考模型.网络概念的本质.网络构建的设备等 下面是协议层从底层至顶层的一个模型图: 一.计算机网络的背景 1.1 计算机的发展 有人说:"20世纪最伟大的发明就是计算机",自诞生伊始,计算机经历了一系列发展,从大型通用计算机.超级计算机.小型机.个人电脑.工作站以及现如今笔记本.平板.智能手机等, 计算机已经彻底融入了我们的生活

MySQL数据库基础知识

day02 MySQL数据库基础知识 一.基础知识概述: 基础决定你这门课程的学习成败!只有学习好这些基础知识以后,你才能真正的运用自如.才能够对数据库有更深入的了解,道路才会越走越远. 二.基础知识: 1.数据库(database):数据库就好比是一个物理的文档柜,一个容器,把我们整理好的数据表等等归纳起来. 创建数据库命令:        create database 数据库名; 2.查看数据库         show databases; 3.打开指定的数据库         use 

linux入门基础知识及简单命令介绍

linux入门基础知识介绍 1.计算机硬件组成介绍 计算机主要由cpu(运算器.控制器),内存,I/O,外部存储等构成. cpu主要是用来对二进制数据进行运算操作,它从内存中取出数据,然后进行相应的运算操作.不能从硬盘中直接取数据. 内存从外部存储中取出数据供cpu运存.内存的最小单位是字节(byte) 备注:由于32的cpu逻辑寻址能力最大为32内存单元.因此32位cpu可以访问的最大内存空间为:4GB,算法如下: 2^32=2^10*2^10*2^10*2^2 =1024*1024*1024

BroadcastReceive基础知识总结

BroadcastReceive基础知识总结 1.BroadcastReceive简介 BroadcastReceive也就是"广播接收者"的意思,顾名思义,就是用来接收来自系统和应用中的广播 在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能,当网络状态改变时,系统会产生一条广播,接收到这条广播,就能及时的做出提示和保存数据等操作,当电池的电量改变的时候,系统会产生一条广播,接收到这条广播就能在电量低的时候告知用户

基础知识--:before伪元素和:after伪元素

http://book.51cto.com/art/201108/285688.htm 3.7  替换指定位置 大家都知道before和after是前.后的意思.但是奇怪的是,CSS中的:before伪元素和:after伪元素是为源文档中不存在的内容设置样式的. 没有内容怎么设置样式呢?别急!它们有一个content属性,一起使用就可以为某个选择器前.后的内容设置样式了. 下面就来了解一下:before伪元素和:after伪元素的用法. 视频教学:光盘/视频/3/3.7  替换指定位置.avi 

20_Shell语言———VIM编辑器基础知识三之窗口属性定制、配置文件及查找替换功能

Vim编辑器可以让用户按照需求来定制一些使用属性. 一.窗口属性定义 1)显示行号 行号不是内容,只是用来帮助用户确认文本所在的行.在vim编辑器中,如果要显示行号,可以在末行模式下输入: set number 如果想关闭,则可以在功能名称前面加上no,即: set nonumber 命令可以被简写,如set number 可以简写为 set nu:set nonumber 可以简写为 set nonu. 注意,上述设定仅对当前vim的进程有效,一旦当前进程关闭,这些设定就会失效,如果要使设定永

web基础知识(一)关于ajax传值最基础东西

HTTP方法之 GET对比POST GET:从指定的资源请求数据, POST:向指定的资源提交要被处理的数据 GET方法: 请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的: /test/demo_form.asp?name1=value1&name2=value2 有关 GET 请求的其他一些注释: GET 请求可被缓存 GET 请求保留在浏览器历史记录中 GET 请求可被收藏为书签 GET 请求不应在处理敏感数据时使用 GET 请求有长度限制 GET 请求只应当用于取回