首页 > 代码库 > UART, RS-232, RS-422, RS-485

UART, RS-232, RS-422, RS-485

    这几个名词是我们在串口通信中最常打交道的几个名词,大概都知道是什么,但一般也不是特别清楚,也就容易混淆。

    UART主要完成了一个信号到串行传输转换、串行传输到信号转换及规定了信号传输的格式,即帧格式,这是一个软件工程师需要工作的地方;而RS-232, RS-422, RS-485则是硬件接口标准,硬件工程师选好器件,搭好电路,配合上软件工程师的UART实现,一个有用的串口通信就轻松完成了。

    在UART中有个东西叫做波特率,也就是每秒传输信号的位数。UART规定了数据传输的帧格式,即把信号的最小单元,一个字母或者是一个数字一帧一帧地传送。它会有个起始位,5到8位的数据位,奇偶校验位,停止位或空闲位,但不一定都包含,下面是一种可能的帧格式

技术分享

    RS-232是美国电子工业协会EIA(Electronic Industrial Assosiation)制定的串行物理接口标准,RS是推荐标准的英文首字母缩写,232只是一个标识号。RS-232还带给我们一样东西DB-9连接器,尽管在消费电子领域里,它已经基本被淘汰,但在工业及其他领域应该还是能经常见到。RS-232有几点需要注意的地方是:首先,它采用的是负逻辑,即用负电压表示1,正电压表示0;其次,电压的绝对值在3.3V以上才为有效电平;最后,一定要共地。

    与RS-232不同的是,RS-485采用的是差分传输,也有的叫平衡传输。而且相较于232而言,485对驱动电平的要求更低,它的电平的绝对值范围在2~6之间。由于是差分传输,它对于共模干扰的免疫更强,因此可以做到更远的传输距离和更快的传输速率。RS-422的电气特性与485完全相同,它对于收和发各采用一对差分线,所以可以实现全双工通信。

    对于硬件设计上而言,这块应该是挺简单的,但是,我就端接电阻及差分信号线的上下拉电阻的必要性及他们的选值还是费了不少功夫,至今也不是太清楚。大概的说一下,第一,在一对差分线之间,需要端接一个120OHM的电阻,这个阻值是如何来的我不清楚,我查阅了不少资料都是这个值,它的主要功能是为了减少因信号线上的阻抗不连续而造成的信号反射。还有一点就是对差分线的上下拉,有总比没有好,至少值选的不对还方便调试,它的作用是将空闲时的信号电平拉离0电平,以防止干扰信号对电路造成不利影响。对于这个复杂问题,不得不把我参看的文档搬出来,供大家,包括我自己学习:http://xilinx.eetrend.com/article/10962。

 

UART, RS-232, RS-422, RS-485