大家好,我是阿荣。感恩遇见!
本文部分图文来源于网络,并经过整合、编辑和勘误。实战分享栏目将重点介绍嵌入式的基础知识,并融合一些实战经验,持续勘误和迭代,建议关注和收藏!WX同名。
RS-232概述
RS-232标准接口(又称EIARS-232)是常用的串行通信接口标准之一,它是由美国电子工业协会(Electronic IndustryAssociation,EIA)联合贝尔系统公司、调制解调器厂家及计算机终端生产厂家于1970年共同制定,其全名是“数据终端设备(DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准”。该标准规定采用一个25个脚的DB-25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。后来IBM的PC机将RS-232的DB-25连接器简化成了DB-9连接器,从而成为事实标准。而工业控制的RS-232接口一般只使用TXD、RXD、GND三条线。
DB-9连接器
DB-9连接器分为公头和母头。来认识一下,下图是其中一种的DB-9连接器实物图。
![](https://i-blog.csdnimg.cn/blog_migrate/f2cce9deb7b5bbcb58a8b7162131ffe3.png)
DB-9连接器的引脚定义详见下面的图片和表格。
![](https://i-blog.csdnimg.cn/blog_migrate/d177b93f628fc0e977eed5a27fb8f4b8.png)
编号 | 定义 | 功能 |
1 | DCD | 数据载波检测 |
2 | RXD | 数据接收 |
3 | TXD | 数据发送 |
4 | DTR | 数据终端准备好 |
5 | GND | 信号地 |
6 | DSR | 数据设备准备好 |
7 | RTS | 请求发送 |
8 | CTS | 清除发送 |
9 | RI | 振铃提示 |
串口通信时主要用到的是2、3、5引脚。在嵌入式开发中主要用到串口通信功能,因此,本文主要介绍RS-232作为串口通信的使用方法。
DB-9连接方式
公母头连接方式分为三种:公对母,公对公,母对母。这3种连接线都有直连线和交叉线,所以总共有6种连接方式。
什么是直连线和交叉线?
直连线:2对2,3对3,5对5;交叉线:2对3,3对2,5对5。
为什么会出现直连线和交叉线呢?
这里有个知识点,即通信的前提条件:RXD接TXD、TXD接RXD。
标准的DB-9定义是2脚为RXD,3脚为TXD。在设计电路的时候,有些人为了用直连线,于是就将2脚接TXD,3脚接RXD。
在电路设计时,如果不将收发引脚与标准引脚定义反接,就得用交叉线。一般情况下:两母头是交叉线,一公一母是直连线。
测试串口线好坏的方式
1、用万用表测量连通性
测量时,直连线为2/3/5对应2/3/5;交叉线为2对3,3对2,5对5进行测量(即交叉串口一头的2量另一头的3)。若导通,则引脚连接良好;若不导通,则引脚连接存在问题。
Tips:测量母头,需要将万用表探针插入引脚洞中,因为万用表测量探针比较粗,所以需要在万用表探针上焊接上两个比较细的金属针以便于测量母头。
2、用串口助手测量收发功能
在串口收发功能已实现的情况下,短接DB-9的2/3脚,并用串口助手发送数据。连接如果没有问题,即可实现自发自收。
RS-232的电气特性
电气特性是指电压水平、信号转换速率和线路电阻的规格。
电压水平
RS-232 被称为TTL逻辑,因此 RS-232使用TTL特定的5V和GND逻辑电平。在这个逻辑中,“1”的范围从-15伏到-3伏,而逻辑“0”的范围从+3伏到+15伏。这意味着逻辑“1”是低电压,逻辑“0”是高电压。通常逻辑“0”约为+12伏,逻辑“1”约为-12伏。电压相对于“GND”,一个公共接地引脚。介于-3V和+3V之间的电压称为未确定的逻辑状态。
转换速率
最重要的特征之一是信号电平变化的速率,称为转换速率。在RS-232中,最大压摆率始终保持在30V/µs。由于标准的这些限制,它有助于减少与其他信号的串扰。RS-232的最高传输速率为20kbps。
通讯
RS-232标准只允许一对一通信,支持双向传输,全双工。
线路阻抗
线路阻抗是DTE和DCE线之间的电阻,大概是3Ω到7Ω。根据RS-232标准,有两种不同长度的电缆。 较早的RS-232标准定义电缆的最大长度为15米,而修订后的标准规定了与电缆单位长度容量决定最大长度。
RS-232的工作原理
在 RS-232标准设备中,一根导线传输变化的电压,另一根导线接地,因为导线具有单端。由驱动器和接收器电路的接地电压差异引起的噪声会影响单端信号。 RS-232标准中的信息或数据仅通过一条数据线在一个方向上串行传输。为了结合双向通信,需要三根线(RXD、TXD和GND)以及控制信号。
RS-232严格遵循异步通信协议,即没有时钟信号来同步发送方和接收方。因此,它需要开始位和停止位来通知接收器何时检查数据。每个位的传输之间存在一定时间的延迟。此延迟是非活动状态意味着信号设置为-12伏或逻辑“1”,如前所述,逻辑1 为-12伏,逻辑 0 为RS-232中的12伏。
首先,发送器(即DTE)向接收器(即DCE)发送一个起始位,通知它数据传输从下一个位开始。我们始终将起始位保持为逻辑0 或+12伏,接下来的5到9个字符是数据位。
如果使用奇偶校验位,则最多可以传输8位,如果不使用奇偶校验位,则可以传输9个数据位。成功发送数据后,发送器发送停止位,可以是1位、2位或5位长。
由于RS-232是一个完整的标准,但许多制造商并没有遵循该标准。有的遵守完整的标识,有的仅部分遵循规范。这是因为RS-232标准实施的这种变化是并非所有设备和应用程序都需要RS-232协议的完整规范和功能。例如,使用RS-232的串行模型可能需要比使用串行端口的串行鼠标更多的控制线。
RS-232的局限性
为了操作RS-232,发射器和接收器之间需要一个公共平台。这就是为什么在RS-232协议中DTE和DCE之间使用短电缆的原因。
如果波特率随着电缆长度的增加而增加,则很有可能串扰被电缆之间的电容所抑制。
线路中的信号极易受到噪声的影响,噪声可以是内部的,也可以是外部的。
RS-232的电压电平不适应现代的TTL系统。为此,需要一个外部电平转换器。