RS-232接口不足之处及编程实例

描述

RS-232接口符合美国电子工业联盟(EIA)制定的串行数据通信的接口标准,原始编号全称是EIA-RS-232(简称232,RS232)。它被广泛用于计算机串行接口外设连接。

RS-232是现在主流的串行通信接口之一。由于RS232接口标准出现较早,难免有不足之处,主要有以下四点:

(1)接口的信号电平值较高,易损坏接口电路的芯片。RS232接口任何一条信号线的电压均为负逻辑关系。即:逻辑"1"为-3- -15V;逻辑"0":+3- +15V ,噪声容限为2V。即要求接收器能识别高于+3V的信号作为逻辑"0",低于-3V的信号作为逻辑"1",TTL电平为5V为逻辑正,0为逻辑负 。与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。

(2)传输速率较低,在异步传输时,波特率为20Kbps

(3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。

(4)传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在15米左右。


串口232有两种,第一种:DB9;第二种:DB25;下面分别介绍。

DB9接口接线说明:

1 DCD 载波检测

2 RXD 接收数据

3 TXD 发送数据

4 DTR 数据终端准备好

5 SGND信号地线

6 DSR数据准备好

7 RTS 请求发送

8 CTS 清除发送

9 RI 振铃提示

DB25接口接线说明:

1 屏蔽地线

2 TXD 发送数据

3 RXD 接收数据

4 RTS 请求发送

5 CTS 允许发送

6 DSR 数据准备好

7 SG 信号地

8 DCD 载波检测

9 发送返回(+)

10 未定义

11 数据发送(-)

12~17 未定义

18 数据接收(+)

19 未定义

20 数据终端准备好 DTR

21 未定义

22 振铃 RI

23~24 未定义

25 接收返回

实际应用中使用最多的是DB9接口,如果遇到DB25接口后可以通过更改接线方法来转换。DB25转DB9的接线方法。

串口通信

在RS-232标准中,字符是以一串行的比特串来一个接一个的串行(serial)方式传输,优点是传输线少,配线简单,传送距离可以较远。最常用的编码格式是异步起停(asynchronous start-stop)格式,它使用一个起始比特后面紧跟7或8 个数据比特(bit),然后是可选的奇偶校验比特,最后是一或两个停止比特。所以发送一个字符至少需要10比特,带来的一个好的效果是使全部的传输速率,发送信号的速率以10划分。一个最平常的代替异步起停方式的是使用高级数据链路控制协议(HDLC)。

在RS-232标准中定义了逻辑1和逻辑0电压级数,以及标准的传输速率和连接器类型。信号大小在正的和负的3-15v之间。RS-232规定接近0的电平是无效的,逻辑1规定为负电平,有效负电平的信号状态称为传号marking,它的功能意义为OFF,逻辑0规定为正电平,有效正电平的信号状态称为空号spacing,它的功能意义为ON。根据设备供电电源的不同,±5、±10、±12和±15这样的电平都是可能的。

RS-232设计之初是用来连接调制解调器做传输之用,也因此它的脚位意义通常也和调制解调器传输有关。RS-232的设备可以分为数据终端设备(DTE,Data Terminal Equipment, For example, PC)和数据通信设备(DCE,Data Communication Equipment)两类,这种分类定义了不同的线路用来发送和接受信号。一般来说,计算机和终端设备有DTE连接器,调制解调器和打印机有DCE连接器。但是这么说并不是总是严格正确的,用配线分接器测试连接,或者用试误法来判断电缆是否工作,常常需要参考相关的文件说明。

串行通信在软件设置里需要做多项设置,最常见的设置包括波特率(Baud Rate)、奇偶校验(Parity Check)和停止位(Stop Bit)。

波特率(又称鲍率):是指从一设备发到另一设备的波特率,即每秒钟多少比特bits per second (bit/s)。典型的波特率是300, 1200, 2400, 9600, 15200, 19200等bit/s。一般通信两端设备都要设为相同的波特率,但有些设备也可以设置为自动检测波特率。

奇偶校验(Parity:是用来验证数据的正确性。奇偶校验一般不使用,如果使用,那么既可以做奇校验(Odd Parity)也可以做偶校验(Even Parity)。奇偶校验是通过修改每一发送字节(也可以限制发送的字节)来工作的。如果不作奇偶校验,那么数据是不会被改变的。在偶校验中,因为奇偶校验位会被相应的置1或0(一般是最高位或最低位),所以数据会被改变以使得所有传送的数位(含字符的各数位和校验位)中"1"的个数为偶数;在奇校验中,所有传送的数位(含字符的各数位和校验位)中"1"的个数为奇数。奇偶校验可以用于接受方检查传输是否发送生错误--如果某一字节中"1"的个数发生了错误,那么这个字节在传输中一定有错误发生。如果奇偶校验是正确的,那么要么没有发生错误要么发生了偶数个的错误。如果用户选择数据长度为8位,则因为没有多余的比特可被用来作为同比特,因此就叫做"无位元(Non Parity)"。

停止位:是在每个字节传输之后发送的,它用来帮助接受信号方硬件重同步。

RS232读写时序图:

串口通信

下面列举一下编程实例。因为RS232编程使用51单片机的历程太多了,所以我给大家分享一个由DSP编写的RS232通信例程。DSP由于库文件和头文件比较大,所以我只是把通信部分程序分享出来。如果需要完整项目,可以发送信息到公众号里。我们看到后会尽快回复并发送到你的邮箱里。

程序简要说明:开发环境CCS4.2,芯片TMS320F2812,模式:中断方式读写

使用模块:SCIA模块

DSP串口通信与单片机串口通信是有很大区别的,但是基本的通信流程相同。首先是配置GPIO(因模式较多所以需要配置,普通单片机不需要配置),配置完成后是通信参数设置,参数设置完成后就可以利用中断来发送和接收了。(发送也可以不使用中断,我只是写了一个历程,实际使用中要根据功能来写,我写的发送是一直在发数据),下面是程序。

串口通信

串口通信

串口通信

串口通信

责任编辑:PSY

原文标题:工业RS-232接口总线原理与应用方案

文章出处:【微信公众号:开源嵌入式】欢迎添加关注!文章转载请注明出处。

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

全部0条评论

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

×
20
完善资料,
赚取积分