【通信基本概念】
什么是通信?简单地说,不同的系统经由线路相互交换数据,就是通信。通信的主要目的是将数据从一端传送到另一端,达到数据交换的目的。例如,从人与人之间的对话、计算机与设备之间的数据交换到计算机与计算机间的数据传送,乃至于广播或卫星都是通信的一种,一个完整的通信系统包括发送端、接收端、转换数据的接口及传送数据的实际信道。
【通信的种类】
按照通信的形式可以分为两种,其中一种为并行传输的通信,即并行通信(Parallel Communication),另一种则为串行通信(Serisl Communication)。这两种通信方式的区别是,并行通信一次的传输数据量为8位(1个字节);而串行通信则一次只能传输1位,传输1字节数据(8位)数据就需要8次才能传出去,因此,它们两者之间的数据传输速度就相差8倍。看到这里,估计有些朋友会问,既然并行通信的速度是串行通信的8倍,是不是串行通信就不好了?!其实不能这么认为,两种通信方式各有特点,串行通信之所以存活了这么长时间,自然有它的长处。
并行通信虽然可以在一次的数据传输中传送8位,但是数据电压在传送的过程中,容易因为线路及干扰因素使得电压准电位发生变化(主要为电压衰减和信号间相互干扰问题),因而使得传输数据发生错误,通信距离越长,问题越明显,因此并行通信主要用于传输距离较短的场合,如电脑主板的并口LPT1,主要和并行打印机通信。
串行通信一次只传输1位,相对来说,要处理的数据电压只有一个,因此比较不容易漏失数据,通信时候再加上一些校验防范措施后,串行通信的出错就更不容易了,串行通信端口(Serisl Communication Port)在系统控制的范畴中一直占有极其重要的角色,不仅没有因为时代的进步而被淘汰,反而失在规格上愈来愈向其极限挑战,下面我们重点来介绍RS-232C串行通信。
【RS-232串行通信】
一、RS-232C标准介绍
RS-232C是由美国电子工业协会(EIA)正式公布的,在异步串行通信中应用最广泛的标准总线。RS-232C 标准(协议)的全称是EIA-RS-232C 标准,其中EIA(Electronic Industry Association)代表美国电子工业协会,其中RS是Recommended Standard的缩写,代表推赠标准,232是标识符,C代表RS-232的最新一次修改(1969年),在这之前,有过RS-232A、RS-232B标准,它规定连接电缆和机械、电气特性、信号功能及传送过程。现在,计算机上的串行通信端口(RS-232)是标准配置端口,已经得到广泛应用,计算机上一般都有1~2个标准RS-232C串口,即通道COM1和COM2。下图为计算机主板上的两个RS-232通信端口图片及端口属性,我们一般可以从计算机后面查看到本机的通信端口。
计算机的RS-232串行通信接口图片 如左图所示,我们可以从操作系统的设备管理器中查看电脑的通信端口属性,进入计算机的:控制面板 -> 系统 -> 硬件 -> 设备管理器 -> 端口,就可以看到自己电脑通信端口,在图中显示了这台计算机有1个ECP打印机并行通信端口LPT1和2个RS-232串行通信端口COM1和COM2。只要显示的端口名称前面没有黄色的惊叹号的话,就表示这个端口是可以使用的。 | ||
EIA-RS-232C对电器特性、逻辑电平和各种信号线功能都作了明确规定。
在TXD和RXD引脚上电平定义:逻辑1(MARK) = -3V~-15V
逻辑0(SPACE) = +3~+15V
在RTS、CTS、DSR、DTR 和DCD等控制线上电平定义:
信号有效(接通,ON状态,正电压)=+3V~+15V
信号无效(断开,OFF状态,负电压)=-3V~-15V
以上规定说明了RS-232C 标准对逻辑电平的定义。对于数据(信息码):逻辑“1”的传输的电平为-3V~-15V,逻辑“0”传输的电平为+3V~+15V;对于控制信号;接通状态(ON)即信号有效的电平为+3V~+15V,断开状态(OFF)即信号无效的电平为-3V~-15V,也就是当传输电平的绝对值大于3V 时,电路可以有效地检查出来;而介于-3~+3V之间的电压即处于模糊区电位,此部分电压将使得计算机无法准确判断传输信号的意义,可能会得到0,也可能会得到1,如此得到的结果是不可信的,在通信时候体现的是会出现大量误码,造成通信失败。因此,实际工作时,应保证传输的电平在±(3~15)V 之间。
三、RS-232C机械连接器及引脚定义
目前,大部分计算机的RS-232C通信接口都使用了DB9连接器,如上面图中所示,主板的接口连接器有9根针输出(RS-232公头),也有些比较旧的计算机使用DB25连接器输出,下面我们来介绍DB9和DB25输出接口的引脚定义。
RS-232C串口引脚定义表 | ||||||
9针RS-232串口(DB9) | . | 25针RS-232串口(DB25) | ||||
引脚 | 简写 | 功能说明 | 引脚 | 简写 | 功能说明 | |
1 | CD | 载波侦测(Carrier Detect) | 8 | CD | 载波侦测(Carrier Detect) | |
2 | RXD | 接收数据(Receive) | 3 | RXD | 接收数据(Receive) | |
3 | TXD | 发送数据(Transmit) | 2 | TXD | 发送数据(Transmit) | |
4 | DTR | 数据终端准备(Data Terminal Ready) | 20 | DTR | 数据终端准备(Data Terminal Ready) | |
5 | GND | 地线(Ground) | 7 | GND | 地线(Ground) | |
6 | DSR | 数据准备好(Data Set Ready) | 6 | DSR | 数据准备好(Data Set Ready) | |
7 | RTS | 请求发送(Request To Send) | 4 | RTS | 请求发送(Request To Send) | |
8 | CTS | 清除发送(Clear To Send) | 5 | CTS | 清除发送(Clear To Send) | |
9 | RI | 振铃指示(Ring Indicator) | 22 | RI | 振铃指示(Ring Indicator) |
RS-232规定最大的负载电容为2500pF,这个电容了传输距离和传输速率,由于RS-232C的发送器和接收器之间具有公共信号地(GND),属于非平衡电压型传输电路,不使用差分信号传输,因此不具备抗共模干扰的能力,共模噪声会耦合到信号中,在不使用调制解调器(MODEM)时,RS-232能够可靠进行数据传输的最大通信距离为15米,对于RS232远程通信,必须通过调制解调器进行远程通信连接。
现在个人计算机所提供的串行端口的传输速度一般都可以达到115200bps甚至更高,标准串口能够提供的传输速度主要有以下波特率:1200bps、2400bps、4800bps、9600bps、19200bps、38400bps、57600bps、115200bps等,在仪器仪表或工业控制场合,9600bps是最常见的传输速度,在传输距离较近时,使用最高传输速度也是可以的。传输距离与传输速度的关系成反比,适当地降低传输速度,可以延长RS-232的传输距离,提高通信的稳定性。
一、RS232C串行接口标准简介
RS232C是1969年有电子工业协会(EIA)公布的标准,RS是推荐标准(recommended standard)的缩写。该标准的用途是定义数据终端设备(DTE)与数据通信设备(DCE)接口的电气特性。图1是个人计算机通过RS232C 、调制解调器访问远程计算机的应用框图。RS232C接口在个人计算通信中起着极为重要的作用。
图1 RS232C接口应用图例
1、RS232C信号特性、电缆长度及波特率
为了确保正确的发送二进制数据和正确的执行设备控制,RS232C标准为数据和管制信号提供了电压标准及范围。当RS232C的线路上没有通信的数据信号时,DTE端的发送信号保持-15V的电压。电压标准如表1所示
表1 交换电压标准
电压 | 逻辑状态 | 信号状态 | 接口控制功能 |
+3V~+15V | 0 | 间隔 | 接通 |
-3V~-15V | 1 | 标志 | 断开 |
2、RS232C引脚分配及定义
RS232C标准规定设备间使用带"D"型25针连接器的电缆通信。“D"型25芯标准连接器见图2所示。在这25根引线中,有20根要用作信号线,其他3根(11、18、25)未定以用途,2根(9、10)备用。
表2 对RS232C的25针连接器引脚定义进行了说明
表 2 RS232C标准25针连接器引脚定义
引脚号 | 名称 | 名称缩写 | 信号方向 | 说明 |
1 | frame ground | FG | 屏蔽地线 | |
2 | transmitted data | TXD | 从DTE至DCE | 传送数据线 |
3 | received data | RXD | 从DCE至DTE | 接受数据线 |
4 | request to send | RTS | 从DTE至DCE | 请求发送 |
5 | clear to send | CTS | 从DCE至DTE | 允许发送 |
6 | data set ready | DSR | 从DCE至DTE | 数据设备(DCE)准备好 |
7 | signal ground | SG | 信号逻辑地线 | |
8 | data carrier detect | DCD | 从DCE至DTE | 数据载波检测 |
9 | reserved | 备用 | ||
10 | reserved | 备用 | ||
11 | unassigned | 未定义 | ||
12 | secondary data carrier detect | DCD | 从DCE至DTE | 数据载波检测(二次通道) |
13 | secondary clear to send | CTS | 从DCE至DTE | 允许发送(二次通道) |
14 | secondary transmintted data | TXD | 从DTE至DCE | 传送数据(二次通道) |
15 | transmit clock | TXC | 从DCE至DTE | 传送时钟 |
16 | secondary received data | RXD | 从DCE至DTE | 接受数据线(二次通道) |
17 | received clock | RXC | 从DTE至DCE | 接受时钟 |
18 | unassigned | 未定义 | ||
19 | secondary request send | RTS | 从DTE至DCE | 请求发送(二次通道) |
20 | data terminal ready | DTR | 从DTE至DCE | 数据终端准备好 |
21 | signal quality detect | SQD | 从DCE至DTE | 信号质量检测 |
22 | ring indicator | RI | 从DCE至DTE | 振铃指示 |
23 | data rate select | DRS | 从DTE至DCE | 数据速率选择。它是针对21引脚改变的答应 |
24 | external transmit clock | 从DTE至DCE | 外部发送时钟 | |
25 | unassigned | 未定义 |
表3 9针连接器和25针连接器间的对应关系
9针连接器 | 25针连接器 |
1 | 8 |
2 | 3 |
3 | 2 |
4 | 20 |
5 | 7 |
6 | 6 |
7 | 4 |
8 | 5 |
9 | 22 |
RS232C的数据线有2根:发送数据线 TXD 和接收数据线RXD。与逻辑地线7结合起来工作,足以实现全双工和半双工的信息传输。信号是从DTE角度说明的,在DTE一方引脚2定义为TXD,引脚3定义为RXD。为了使DCE能很好地与DTE配合,协同进行发送与接收工作,在DCE一方引脚2定义为RXD,引脚3定义为TXD,为了能实现正确地传输,对这一点必须给予应有的注意。在使用RS232C标准插头实现连接之前,用户必须根据已有的DTE及DCE的具体说明,做好匹配的调整工作。
对数据线上所传输的数据格式、RS232C标准并没有严格的规定。所传输的数据速率是多少、有无奇偶校验位、停止位为多少、字符代码采用多少位等问题,应由发送方与接受自行商定,达成一致的协议。
4、RS232C的控制线
RS232C的控制线是为建立通信链接和维持通信链接而使用的信号。图3所示通信过程说明了RS232C控制线的功能
在图中,本地的数据终端设备DTE通过本地及远程的调制解调器,与远程的数据终端DTE进行通信,DTE与MODEM 之间采用的是RS232C接口。MODEM之间则是通过电话线进行数据交换,图3标出了通信过程和RS232C的控制信号出现的从上向下的顺序。
(1) DTE:数据终端准备好。DTE设备加电以后,并能正确实现通信的功能,向DCE发出DTR信号,表示数据终端已做好准备工作,可以进行通信。
(2) DSR :数据设备准备好。数据设备是DCE通信的设备,如此的MODEM。MODEM加电以后,并能正常执行通信功能时,向DTE发出DSR信号,表示MODEM已准备好。这两个准备好信号,在通信的过程中首先要对他们进行测试,以了解通行对方的状态,以可靠的建立通信。但是如果通信的对方并不要求测试,就可以不发出此信号。
(3)RTS :请求发送。当DTE有数据需要向远程DTE传输通信时,DTE在测得DSR有效,即MODEM接收到 信号时 ,根据提供的目的电话编码,向远程MODEM发出呼叫。远程RST收到此呼叫,首先发出2000HZ得短小短续得冲击声,以关闭电话线路得回声消除器,然后发出回答载波信号。本地MODEM接收此载波信号,确认已获得两对方的同意,它向远程MODEM发出原载波信号相对方表示是一个可用的MODEM同时用RS232C的第8引线发出数据载波信号DCD,向DTE表示已检测出有效的回答载波信号
(4)DCD:数据载波检测时MODEM发向DTE,表示已检测出对方载波信号。
(5)CTS:允许发送。每当一个MODEM辨认出对方MODEM已准备好运行接收时,他们便用CTS信号通知自己的DTE,表示这个通信通路已为传输数据作好准备,允许DTE进行数据的发送。至此通信链路才建立,开始通信。
在半双工的通信中,CTS是对DTE的RTS信号的答应,使DTE开始传输数据。在全双工的通信中,CTS一般保持很长时间,而对RTS并不要求保持很长时间,通信链路建立后,即可降下。
上述这些控制线,连同数据线及逻辑地线(引线7),即可构成基本的最长接线。
(6)RI:振铃指示线。如果MODEM具有自动应答能力,当对方通信传叫来时,MODEM用引线向DTE发出 信号,指示此呼叫。在电话呼叫振铃结束后,MODEM在DTE已准备好通信的条件(即DTE有效),立即向对方自动应答
5、RS23C的连接方法
在RS232C的机械结构中,有25个插针的连接器(DB-25)。数据采集和控制系统中如果有联网通信,和在本地和远程控制数据时,RS232C是数据终端设备和调制解调器之间的接口标准,所以数据终端设备和调制解调器各有对应的规格,通信会连接的双方必须配对。
终端与终端之间连接的例子如图4所示
(1)发送终端与接收终端连接,和接收端与发送端连接,各级端一旦处于工作状态,就可以不管对方的状态而发送或接收数据,由软件来去认数据的发送和接收。
(2)一方的RTS和另一方的CTS相连。这种情况挂钩联络是困难的,互相通信时,需要知道对方是否可以接收数据。但是这种连接方式只求通过发送请求将对方置与可发送状态。编制程序时,必须注意这个问题。
(3)通过检查DSR,能够确认对方是否输出了发送请求,把DTR置于ON,使对方知道可以接收,因而注意这个问题。另外,大规模集成电器与RS232C的连接方法很多,只要充分了解RS232C的接口规定,就可以迎刃而解。
二、RS422和RS485
随着通信技术的发展,对通信速率的要求越来越高,距离要求越来越远。根据RS232C标准,他的最高传输速率为20kb/s时,最远距离仅为15m,当然在使用中也可达到60m,但这远远不能满足上述发展对速度及距离所提出的新的要求。美国EIA学会与1977年在RS232C基础上提出了改进的标准RS449,现在的RS422和RS485都是从RS449派生出来的。
RS422是利用差分传输方式提高通信距离和可靠性的一种通信标准,它在发送端使用2根信号线发送同一信号(2根线的极性相反),在接收端对这两根线上的电压信号相减得到实际信号,这种方式可以有效的抗共模干扰,提高通信距离,最远可以传送1200m,原理图如图 5
图 5 RS422/RS485原理
RS485的电器标准与RS422完全相同,但当RS485线路空闲(即不传送信号)时,线路处于高阻(或挂起)状态这时RS485线路就可以允许被其他设备占用,也就是说具有RS485通信接口的设备连成网络。根据RS485驱动芯片驱动能力的不同,一个RS485数据发送设备可以驱动32~256台RS485数据接收设备。当RS485网络上的设备多于2台时,就必须采用半双工方式进行通信,即数据发送和接收使用同一线路,发送时不允许接收数据进入线路,反之亦然,在RS485网络中只允许有一个设备是主设备,其余全部是从设备;或者无主设备,各个设备之间通过传递令牌获得总线控制权。
由于RS422/RS485具有诸多优点,现已被大量采用,但普通PC机很少直接配置RS422/RS485通信接口,只有工控机提供的ALL-IN-ONE,主板配置有RS422/RS485通信口,可以用跳线选择T通信的工作方式是RS422还是RS485。市场上有大量的RS422/RS485/RS232转换或可以直接插在PC机扩展槽上的RS422/RS485通信卡销售。
三、20mA电流环接口
另一种流行的串行连接方式是电流控制,而不像RS232C标准那样用电压控制。电流控制是把20mA电流作为逻辑“1”,零电流作为逻辑“0”。
电流还在许多方面比RS232C接口优越。它内在的双端传输具有对共模噪音的抑止作用,而且由于他采用隔离技术能消除接地回路引起的一些问题,因而他的连接距离比RS232C长的多。
EIA把RS232C接口作为正式标准,而20mA电流环的文件在目前还只是非正式标准。所以,大多说制造厂商都提供RS232C串行接口,这样这种连接得到了最广泛的使用。因为RS232C和电流接口之间只在电气连接上存在差别,所以两者可共用I/O接口,设计师常常为串行口提供2个不同的连接器来利用这个公共口。一个接到电流环,另一个接到RS232C。这就允许用户根据具体情况,决定采用2种接口中的一种。
市场上也有产品可以直接插在PC机扩展槽上的电流环通信卡销售。