RS232协议介绍及数据通信基础讲解
1. RS-232 简介
1960年初 EIA(Electronic Industries Association 电子工业协会)开发了一个设备间数据通信的标准通用接口协议。在当时所谓的数据通信是指机房中的大型计算机和另外远程计算之间,或者是不是计算机的两个设备之间的通信。
这些设备一般都是中间使用电话线来连接,所以需要有调制解调器。为了各种设备厂商之间避免各自为战,有一个统一的标准是非常有必要的。在这样的背景下 RS-232 协议应运而生,它规定了 信号的电压、信号的时序、信号的功能、信息交换协议以及物理连接器。
这个标准几经改版最后一次是1997做的修订,这次修定除了 把名称 RS-232 改成了 EIA232 以外 还对一些信号线进行了重命名,并定义了各种新信号线,包括屏蔽导体。最后这次的修定名称为 EIA232F。
2. RS-232 使用时候的常见问题
常见连接如下
db9 接头 基本定义
一般来说只接3线即可。RX TX交叉相接,gnd直接相接。由此也可以看出,简单的做回环线就是让它自收发,短接 RX TX即可。也就是 宽头 2 3 针
- 流量控制(握手)信号的缺失或连接错误,导致缓冲区溢出或通信锁定。
- 线缆街头定义错误,尤其公母头定义。
- 延长线有正反线,直通线的区别。
3. RS-232 定义
3.1. RS232 的工作原理是什么
RS232 工作于相互交换数据的双向通信。有两个相互连接的设备, (DTE)数据传输设备和(DCE)数据通信设备,其具有TXD、RXD 和 RTS&CTS等引脚。现在, RTS从DTE源生成发送数据的请求。然后从另一侧DCE (CTS)清除接收数据的路径。清理完一条路径后,会向DTE源的RTS发出信号,发送信号。然后这些位从DTE传输到DCE 。现在再次从DCE源,可以由DTE源的RTS和CTS生成请求,清除接收数据的路径并给出发送数据的信号。这就是数据传输的整个过程。
因为数据是从电话线过来的,所以最远的设备是 DTE 也就是数据终端设备。离电话线近的是 DCE ,DCE 设备有时被称为“数据通信设备”。其实就是个相对位置,在EIA232中有时候觉得和直觉是相反的就在这,他是以 DCE 为视角的,而不是 DTE 来看待收发的方向的。
这里只说常见的 db9 其他的接口形式不做介绍
信号可以分为 6 大类,分别是
- 地和屏蔽。
- 主通道。用于数据交换,并包括流量控制信号。
- 辅助通道。用于控制远程调制解调器、发生错误时请求重传以及对主通道设置的管理。
- 调制解调器状态和控制信号。这些信号指示调制解调器状态并在建立电话语音通道时提供中间检查点。
- 发射器和接收器定时信号。如果使用同步协议,这些信号为发射器和接收器提供定时信息,发射器和接收器可以以不同的波特率运行。
- 通道测试信号。在数据交换之前,可以测试通道的完整性,并且波特率自动调整到通道可以支持的最大速率。
3.2. 地和屏蔽
引脚 1和外壳均属于此类。线缆内都是独立的线,但内部接线通常将引脚 1 和电缆外壳/屏蔽层、
其他的外形规格定义里面 引脚 7 也会是接地。
3.3. 主通道
引脚 2 - 传输数据 (TxD) 当数据从 DTE 设备传输到 DCE 设备时,该信号有效。当没有数据传输时,信号保持在标记状态(逻辑“1”,负电压)。
引脚 3 - 接收数据 (RxD) 当 DTE 设备从 DCE 设备接收数据时,该信号有效。当没有数据传输时,信号保持在标记状态(逻辑“1”,负电压)。
引脚 4 - 请求发送 (RTS) 该信号被置位(逻辑“0”,正电压)以准备 DCE 设备接受来自 DTE 设备的传输数据。此类准备可能包括启用接收电路,或在半双工应用中设置通道方向。当 DCE 准备就绪时,它会通过置位“清除发送”来进行确认。
引脚 5 - 清除发送 (CTS) 该信号由 DCE 设备置位(逻辑“0”,正电压),以通知 DTE 设备传输可以开始。 RTS 和 CTS 通常用作握手信号来调节进入 DCE 设备的数据流。
3.4. 辅助通道(25针或其他形式才有)
这些辅助信号,都是为了提高稳定性,但是辅助通道的波特率一般都非常的慢。
引脚 14 - 辅助传输数据 (STxD)
引脚 16 - 辅助接收数据 (SRxD)
引脚 19 - 辅助请求发送 (SRTS)
引脚 13 - 辅助清除发送 (SCTS)
3.5. 调制解调器状态和控制信号
引脚 6 - DCE 就绪 (DSR) 当源自调制解调器时,当以下三个条件全部满足时,该信号被置位(逻辑“0”,正电压)
- 调制解调器连接到“摘机”的活动电话线路
- 调制解调器处于数据模式,而不是语音或拨号模式
- 调制解调器已完成拨号或呼叫设置功能,并正在发出应答音
如果线路“摘机”、检测到故障情况或建立语音连接,则 DCE 就绪信号无效(逻辑“1”,负电压)
引脚 20 - DTE 就绪 (DTR) 当 DTE 设备希望打开通信通道时,该信号被置位(逻辑“0”,正电压)。如果 DCE 设备是调制解调器,则 DTE Ready 的断言将使调制解调器准备好连接到电话电路,并且一旦连接就保持连接。当 DTE Ready 被取消置有效(逻辑“1”,负电压)时,调制解调器切换到“挂机”以终止连接。
引脚 8 - 接收线路信号检测器 (CD) (也称为载波检测) 当 DCE 设备是调制解调器时,此信号相关。当电话线“摘机”、已建立连接并且从远程调制解调器接收到应答音时,调制解调器将置有效该信号(逻辑“0”,正电压)。当未收到应答音或应答音的质量不足以满足本地调制解调器的要求(可能是由于信道有噪声)时,信号将无效。
引脚 12 - 辅助接收线路信号检测器 (SCD) 该信号相当于接收线路信号检测器(引脚 8),但涉及辅助通道。
引脚 22 - 环指示器 (RI) 当 DCE 设备是调制解调器时,该信号是相关的,并且当从电话线路接收到振铃信号时,该信号被置有效(逻辑“0”,正电压)。该信号的有效时间大约等于振铃信号的持续时间,并且在振铃之间或没有振铃时该信号将被取消有效。
引脚 23 - 数据信号速率选择器 该信号可能源自 DTE 或 DCE 设备(但不能同时源自两者),并用于选择两个预先安排的波特率之一。置有效该信号(逻辑“0”,正电压)选择较高的波特率。
3.6. 发射器和接收器定时信号 (25针或其他形式才有)
引脚 15 - 发送器信号元件定时 (TC) (也称为发送器时钟) 仅当 DCE 设备是调制解调器并且使用同步协议运行时,此信号才相关。调制解调器生成此时钟信号以精确控制传输数据(引脚 2)上的数据从 DTE 设备发送到 DCE 设备的速率。该线上的逻辑“1”到逻辑“0”(负电压到正电压)转变引起到传输数据线上的下一个数据元素的相应转变。调制解调器持续生成该信号,除非它正在执行内部诊断功能。
引脚 17 - 接收器信号元件定时 (RC) (也称为接收器时钟) 该信号与上述 TC 类似,不同之处在于它为 DTE 接收器提供定时信息。
引脚 24 - 发送器信号元件时序 (ETC) (也称为外部发送器时钟) 定时信号由 DTE 设备提供以供调制解调器使用。该信号仅在 TC 和 RC(引脚 15 和 17)未使用时使用。逻辑“1”到逻辑“0”转换(负电压到正电压)指示数据元素的时间中心。无论其他信号条件如何,每当 DTE 打开时都会提供定时信号。
3.7. 通道测试信号(25针或其他形式才有)
引脚 18 - 本地环回 (LL) 该信号由 DTE 设备生成,用于将调制解调器置于测试状态。当本地环回被置有效时(逻辑“0”,正电压),调制解调器将其调制输出信号(通常馈入电话线)重定向回其接收电路。这使得 DTE 生成的数据能够通过本地调制解调器回显,以检查调制解调器电路的状况。调制解调器在引脚 25 上发出测试模式信号,以确认它已处于本地环回状态。
引脚 21 - 远程环回 (RL) 该信号由 DTE 设备生成,用于将远程调制解调器置于测试状态。当远程环回被置有效时(逻辑“0”,正电压),远程调制解调器将其接收到的数据重定向回其传输的数据输入,从而重新调制接收到的数据并将其返回到其源。当 DTE 启动此类测试时,传输的数据将通过本地调制解调器、电话线、远程调制解调器并返回,以测试通道并确认其完整性。当远程环回测试正在进行时,远程调制解调器向本地调制解调器发出信号,以在引脚 25 上启用测试模式。
引脚 25 - 测试模式 (TM) 仅当 DCE 设备是调制解调器时,此信号才相关。当置有效时(逻辑“0”,正电压),表示调制解调器处于本地环回或远程环回状态。其他内部自检条件也可能导致测试模式被激活,具体取决于调制解调器及其所连接的网络。
3.8. 电气标准
EIA232 标准中负电压信号代表逻辑“1”,正电压代表逻辑“0”。这与现在的数字电路的逻辑是相反的。
3.9. 等效电路
这是 EIA232 信号线的等效电路,适用于源自连接的 DTE 或 DCE 侧的信号。标准中未指定“Co”,但假定它很小并且是寄生电容。选择“Ro”和“Vo”以使短路电流不超过500ma。
信号状态电压分配- 相对于信号接地(引脚 7或1)的 -3v 至 -25v 电压被视为逻辑“1”(标记条件),而 +3v 至 +25v 电压被视为逻辑“0”(间隔)健康)状况)。 -3v 和+3v 之间的电压范围被认为是未分配信号状态的过渡区域。
大多数现代应用对于逻辑“1”(标记)将显示 -8 至 -14 伏的开路信号电压,对于逻辑“0”(空格)则显示 +8 至 +14 伏的开路信号电压。当发生端和接收端连接时(当 DTE 和 DCE 设备通过电缆连接时),电压幅度会稍有下降。
如果在电路中加了 led 来查看信号状态,那很可能会把电压的幅值降到 +3 到-3之间。还有一些设备是从 串口 取电的。这两种情况都会对信号的抗干扰能力造成影响。
3.10. 信号时序
EIA232 标准适用于高达 20,000 位/秒的数据速率(通常上限为 19,200 波特率)。 EIA232 标准未设置固定波特率。常用的值为 300、1200、2400、9600 和 19,200 。
信号状态从逻辑“1”变为逻辑“0”或反之亦然必须遵守以下几个要求:
- 在状态更改期间进入过渡区域的信号必须移动到相反的信号状态,而无需反转方向或重新进入。
- 对于控制信号,通过过渡区域的传输时间应小于 1ms。
- 对于数据和定时信号,通过过渡区域的传输时间应为
- 对于传输周期大于 25ms 的,要求小于 1ms
- 对于传输周期在 25ms 和 125μs 之间的,要求不超过总周期的 4%
- 对于传输周期小于 125μs 的,要求小于 5μs
- 理想情况下,数据和定时信号的上升和下降时间应该相等,但在任何情况下变化不超过三倍
- 快速上升沿是被允许的,有缺陷的下降沿会造成数据解析的错误。
- 转换的上升沿和下降沿的斜率不应超过 30v/μS。高于此速率可能会在电缆的相邻导体中引起串扰。
4. 数据通信简介
在计算机内部 芯片到外设被扣之间距离非常短,除了那些超高速的信号外,电路设计的人员通常不会考虑使用模型信号或数字信号的特性,使用铜作为导体就能满足所有的场景。
但是对着设备之间距离的增加,远端的设备到本地设备之间,通信的信号就会变得非常差,难以实现准确的信息传输。计算机内部通信可以做各种手段来做信号校验,计算机与外部的通信会有非常多的噪声和干扰,导致信息传输遇到障碍。
一般来说,计算机用于外部通信的设备都是有电源的,那么信号传输的距离就与信号传输的功率成正比,与噪声的成反比。所以任何的通信系统,都是以降低通信功率,且降低噪声实现远距离传输为目标的。
5. 数据通信的沟通渠道
就传输的介质来说常见的有,激光、无线电、电缆等。任何通信都有发起的源头和数据的目的地。单一的发起源头可以有多个目的地,这中间涉及的因素主要是有接收通道的数量和发起信息的能量大小。
在数字通信信道中,信息由单独的数据位表示,这些数据位可以封装成多位消息单元。
常见的数字通信中的例子是由8个bit组成的字节作为传输单元。字节集合本身可以分组为帧或其他更高级别的消息单元。这种多级封装有利于复杂数据通信网络中的消息处理。
任何通信通道都有一个与之相关的方向:
消息源是发送者,目的地是接收者。
传输方向不变的信道称为单工信道。例如,广播电台是一个单工通道,因为它始终将信号传输给听众,并且不允许他们传回。
半双工信道是方向可以相反的单个物理信道。在半双工系统中,消息可以沿两个方向流动,但绝不能同时流动。在电话通话中,一方说话,另一方听。停顿后,对方发言,甲方聆听。同时说话会产生无法理解的乱码。
全双工通道允许同时在两个方向上交换消息。它实际上由两个单工通道组成,一个前向通道和一个反向通道,连接相同的点。如果仅用于前向信道的流量控制,则反向信道的传输速率可能会较慢。
5.1. 串行通讯
大多数的数据传输都比几个 bit 长的多。那么直接传输这么大的数据,不实际也不经济,因此信息需要被分割成小块并按顺序来传输。位串行传输,在通道中每次传输一个消息位。每个位代表消息的一部分。然后各个位在目的地重新组合以组成消息。一般来说,一个通道一次仅传递一位。因此,如果只有单个通道可用,则在数据通信中就需要位串行传输。位串行传输通常称为串行传输,是许多计算机外围设备选择的通信方法。
字节串行传输通过八个并行通道一次可以传送八位。尽管原始数据传输速率比单一的位串行传输快八倍,但需要八个通道,并且传输消息的成本可能高出八倍之多。
串行通信--你正在使用机枪射击目标,子弹一颗一颗地击中目标。
并行通信--你正在使用霰弹枪射击目标,许多子弹同时到达。
当距离较短时,使用并行通道来换取高数据速率可能既可行又经济。流行的Centronics 打印机接口就是使用数据并行传输的情况。作为另一个例子,通常的做法是使用16位宽的数据总线在微处理器和存储芯片之间传输数据;这相当于 16 个并行通道。另一方面,当通过调制解调器与分时系统通信时,只有单个通道可用,就需要使用串行传输。该图说明了这些想法:
波特率是指发送数据时候发送信号的速率,测量的是每秒电平变化数量。在EIA232串行接口标准中,每位最多发生一次信号转换,并且波特率和比特率相同。
在这种情况下,9600 波特率对应于每秒传输 9,600 个数据位,位周期为 104 微秒(1/9600 秒)。
如果每个位需要两次电转换(如不归零编码中的情况),则在 9600 波特率下,每秒只能传送 4800 位。
信道效率是每秒通过信道的有用信息的位数。它不包括在传输消息之前可能添加到信息位的成帧、格式化和错误检测位,并且始终小于 1。下图的例子中,一帧的bit位11,有效数据为8
通道的数据传输快慢通常用比特率来表示(但人们常误以为它就是波特率)。不过,衡量信道传输能力的关键是带宽。通常,通道的带宽越大,能传输的数据就越快;而通道里的噪声越多,数据传输就越慢。
通信协议是一种商定的约定,它定义了串行传输中位的顺序和含义。它还可以指定交换消息的过程。协议将定义有多少数据位组成消息单元、成帧和格式化位、可能添加的任何错误检测位以及管理通信硬件控制的其他信息。通道效率由协议设计决定,而不是由数字硬件考虑因素决定。请注意,信道效率和可靠性之间存在权衡——通过添加错误检测和纠错码来提供更大的抗噪声能力的协议必然会变得效率较低。
示波器下
注意停止位
注意这里面好多数值可以设置,协议分析时候要看好设置的是什么再去分析。
基于此,那么串口的传输1秒可以传输多少数据其实就是可变的了,不是个恒定值,他会根据设置的发生变化
- 波特率用于测量传输速度。它被描述为一秒内通过的位数。例如,如果波特率为 200,则每秒传输 200 位。在电话线路中,波特率为14400、28800 和 33600 。
- 数据位 常见是8,可以不是,可以是7 或9或其他,只是数据的封装多少不一样。
- 停止位用于单个数据包停止传输,表示为“T”。一些典型值为1、1.5 和 2 位。
- 奇偶校验位是检查错误的最简单形式。有奇偶、标记、间隔四种。例如,如果011是数字,则奇偶校验位=0,即偶校验,奇偶校验位=1,即奇校验。
5.2. 异步与同步传输
序列化数据通常不会以恒定速率通过通道发送。相反,通常是一连串规律间隔的二进制数据位后跟着一个暂停,之后数据流继续。以这种方式发送二进制数据包,数据包之间可能有不同长度的暂停,直到消息完全传输完毕。为了让接收端知道从通道中读取单个二进制位的正确时刻,它必须确切知道一个数据包何时开始以及位与位之间的时间间隔。当这个定时信息已知时,就说接收器与发送器是同步的,从而实现准确的数据传输。如果在整个传输过程中不能保持同步,就会导致数据损坏或丢失。
为了确保正确的同步,采用了两种基本技术。
在同步系统中,使用单独的通道来传输数据和定时信息。定时通道向接收器发送时钟脉冲。接收器在收到时钟脉冲后,会读取数据通道,并锁定该时刻在通道上发现的位值。直到下一个时钟脉冲到达之前,数据通道不会被再次读取。由于发送器同时产生数据和定时脉冲,因此接收器只会在发送器(通过时钟脉冲)指示时读取数据通道,从而确保了同步。
存在将定时信号与数据合并的技术,这样只需要一个通道即可。当需要通过调制解调器发送同步传输时,这种技术尤其有用。数据信号自定时的两种方法是非归零编码和双相曼彻斯特编码。这两者都是指将数据流编码成电波形以进行传输的方法。
在异步系统中,不使用单独的定时通道。发送器和接收器必须提前预设为商定的波特率。然后,接收器内非常精确的本地振荡器将生成一个内部时钟信号,该信号与发射器的信号相差百分之几。对于最常见的串行协议,数据以 10 或 11 位的小数据包形式发送,其中 8 位构成消息信息。当通道空闲时,信号电压对应于连续的逻辑“1”。数据包始终以逻辑“0”(起始位)开始,以向接收器发出传输正在开始的信号。起始位触发接收器中的内部定时器,生成所需的时钟脉冲。在起始位之后,八位消息数据以商定的波特率逐位发送。数据包以奇偶校验位和停止位结束。一个完整的数据包如下图所示:
在异步系统中,数据包长度较短,以最大程度地降低接收器和发送器中的本地振荡器发生漂移的风险。当使用高质量的晶体振荡器时,可以在11位周期内保证同步。每次发送新数据包时,起始位都会重置同步,因此数据包之间的暂停时间可以任意长。请注意,EIA232标准定义了串行接口的电气、定时和机械特性。但是,它并不包括上图中所示的异步串行协议,也不包括下文所述的ASCII字母表。
这一标准将二进制代码与可打印字符和控制代码相关联。ASCII字符集中有整整25%代表的是不可打印的控制代码,如回车(CR)和换行(LF)。大多数现代面向字符的外围设备都遵守ASCII标准,因此可以在不同的计算机之间互换使用。
5.3. 奇偶校验和校验和
噪声和瞬时的电气干扰可能会导致数据在通过通信信道时发生改变。如果接收器未能检测到这种情况,那么接收到的信息就会是错误的,并可能带来严重的后果。作为防御数据错误的第一道防线,必须能够检测到这些错误。如果能够标记出错误,就有可能请求重新发送有问题的数据包,或者至少能够防止将有缺陷的数据误认为是正确的。
如果发送了足够多的冗余信息,那么在损坏的数据到达目的地之前,接收器内的硬件就可能纠正一位或两位的错误。
为了检测错误,会在数据包中添加一个奇偶校验位。在偶校验约定中,会选择奇偶校验位的值,使得组合数据加上奇偶校验包中‘1’的总数为偶数。在接收到数据包后,本地硬件会重新计算数据的所需奇偶校验,并将其与随数据接收到的奇偶校验位进行比较。如果任何一位的状态发生了改变,奇偶校验将不匹配,从而检测到错误。实际上,如果奇数位(而非仅一位)发生了改变,奇偶校验也将不匹配。
但是,如果偶数位发生了反转,即使发生了错误,奇偶校验也会匹配。然而,对数据通信错误的统计分析表明,在存在随机噪声的情况下,单比特错误的概率远高于多比特错误。因此,奇偶校验是一种可靠的错误检测方法。
另一种错误检测方法涉及校验和的计算。在这种情况下,构成消息的分组被算术相加。校验和编号被附加到数据包序列中,使得数据加校验和的总和为零。当接收到时,本地微处理器可以将分组序列与校验和一起添加。如果总和不为零,则发生错误。只要总和为零,任何数据在传输过程中被损坏的可能性就很小(但并非不可能)。
如果将附加代码添加到数据包序列中,错误不仅可以被检测到,还可以被纠正。如果错误概率很高或者无法请求重传,那么这可能是值得做的。然而,在传输中包含纠错码会降低信道效率,并导致信道吞吐量显着下降。
5.4. 数据压缩
如果对典型的消息进行统计分析,就会发现某些字符的使用频率比其他字符高得多。通过在发送消息之前对其进行分析,可以将短的二进制代码分配给常用的字符,将较长的代码分配给很少使用的字符。
这样做,可以在不改变消息中的信息的情况下减少发送的字符总数。接收者进行适当的解码会将消息恢复为其原始形式。此过程称为数据压缩,可节省 50% 或更多的传输数据量。尽管在传输消息之前需要时间来分析消息,但节省的时间可能足够大,因此压缩、传输和解压缩的总时间仍然低于发送未压缩消息时的时间。
某些类型的数据会比其他类型的数据压缩得更多。例如,表示图像的数据通常会显着压缩,可能比其原始大小压缩 80%。另一方面,表示计算机程序的数据可能仅减少 15% 或 20%。
一种称为霍夫曼编码的压缩方法经常用于数据通信,特别是在传真传输中。显然,一封典型的商务信函的图像数据大部分代表的是白纸,只有大约5%的表面代表的是黑色墨迹。可以发送一个单独的代码,例如,代表连续的1000个白色像素,而不是为每个白色像素发送一个单独的代码。
因此,数据压缩将显著减少传真商务信函的总信息长度。如果信函由随机分布的黑色墨迹组成,覆盖了白纸表面的50%,那么数据压缩就没有优势了。
5.5. 数据加密
在数据通信中,隐私是一个重大问题。通过窃听电话线路或拦截微波传输,可以在发送方或接收方不知情的情况下随意截获传真商务信函。为了提高这种及其他数据通信(包括数字化电话通话)的安全性,可以对代表数据的二进制代码进行加密处理,使得未经授权的截获只会产生一连串无法破译的字符。经授权的接收站将配备解码器,以便还原信息。这种加密、传输和解密的过程被称为加密处理。
已经设计出用于执行此任务的定制集成电路,并且成本低廉。在某些情况下,它们会被整合到数据通信设备的主电路中,并在操作人员不知情的情况下运行。在其他情况下,会使用外部电路,以便设备和其加密/解密技术可以轻松携带。
5.6. 数据存储
通常,我们认为通信科学是处理远距离各方之间同时交换信息的学科。然而,数据通信中使用的许多相同技术也应用于数据存储,以确保从存储介质中检索信息的准确性。例如,我们发现用于保护数字电话传输免受噪声干扰的类似错误校正代码也用于确保从紧凑音频光盘(compact audio disks)、只读光盘(CD-ROMs)和磁带备份系统中正确读取数字数据。
6. 数字电路中的数据传输
数据通常被分组为8位、16位或32位长的数据包,并在称为寄存器的临时存储单元之间传递。寄存器内的数据以并行方式提供,因为每个位都通过单独的导线从寄存器中输出。为了将数据从一个寄存器传输到另一个寄存器,会将一个寄存器的输出导线切换到一个由并行导线组成的通道上,这个通道被称为总线。另一个也连接到总线的寄存器的输入导线会捕获这些信息。
数据传输完成后,源寄存器中的内容会被复制到目标寄存器中。重要的是要注意,在任何数字数据传输后,源寄存器和目标寄存器的内容是相同的;发送数据时,源寄存器的内容并不会被擦除。
上面显示的发送和接收开关是电子的,并根据中央控制单元的命令进行操作。可能存在两个或更多个目标寄存器被接通以从单个源接收数据的情况。然而,在任何时候,只有一个源可以向总线传输数据。如果多个源同时尝试传输,当相反值的位被驱动到单条总线导线上时,就会发生电气冲突。这种情况被称为总线争用。总线争用不仅会导致信息丢失,还可能损坏电子电路。只要系统中的所有寄存器都连接到一个中央控制单元,并且电路设计得当,就永远不会发生总线争用。请注意,典型微处理器内的数据总线基本上是半双工通道。
6.1. 短距离传输(< 2 英尺)
当源寄存器和目标寄存器是集成电路的一部分时(例如在微处理器芯片内部),它们之间的距离非常近(只有千分之几英寸)。因此,总线信号功率非常低,可以在极短的时间内传输,并且不太容易受到外部噪声和失真的影响。这是数字通信的理想环境。然而,目前还不可能将计算机所需的所有电路(即CPU、内存、磁盘控制、视频和显示驱动器等)集成在一个芯片上。当数据被发送到芯片外部的另一个集成电路时,必须放大总线信号,并通过外部引脚将导线延伸出芯片。可以在源寄存器中添加放大器。
从微处理器芯片和其他超大规模集成电路(VLSI)中输出的总线信号,在电性能上能够穿过印刷电路板上大约一英尺(约30厘米)的导体,如果连接了多个设备,则可能更短。可以添加特殊的缓冲电路来增强总线信号,使其足以在额外几英尺(约几十厘米至一米多)的导体长度上进行传输,或者分发给许多其他芯片(如内存芯片)。
6.2. 噪声和电气失真
由于计算机内部的数据总线、地址总线以及其他总线具有非常高的切换速率和相对较低的信号强度,因此如果直接将这些总线延伸到主板或插件板之外,将会引发严重问题。首先,无论是印刷电路板上的还是通过电缆连接的长段电导体,都会像接收天线一样,接收到由电机、开关和电子电路辐射的电噪声。
随着长度的增加,这种噪声会变得越来越严重,最终可能会在总线信号上产生不可接受的错误率。在从内存向微处理器芯片传输指令代码时,即使只有一个位出现错误,也可能导致无效指令被引入指令流中,进而使计算机完全停止运行。
第二个问题涉及电信号在通过金属导体时产生的失真。在源头产生的清晰、矩形的脉冲信号,在接收时可能会变成边缘带有振铃的圆形脉冲:
在数据传输完成后,源寄存器的内容会被复制到目标寄存器中。重要的是要注意,在任何数字数据传输之后,源寄存器和目标寄存器的内容是相同的;发送数据时,源寄存器的内容并不会被清除。
专为通过电缆传输直接(未调制)数字信号而设计的特殊放大器电路。对于印刷电路板上的组件之间或计算机背板沿线的相对较短距离,放大器采用简单的集成电路芯片,这些芯片由标准的+5伏电源供电。放大器输出的逻辑“1”的正常电压略高于通过逻辑“1”阈值所需的最小电压。相应地,对于逻辑“0”,其电压则略低一些。实际输出电压与阈值之间的差异被称为噪声容限,它表示信号中可以添加而不产生错误的噪声电压量。
6.3. 中距离传输(< 20 英尺)
诸如打印机或扫描仪之类的计算机外围设备通常包括不能位于计算机本身内的机构。我们的第一个想法可能只是使用足够长度的电缆来扩展计算机的内部总线以到达外围设备。然而,这样做会使所有总线事务暴露于外部噪声和失真,即使这些事务中只有很小一部分涉及总线所连接的远程外设。
如果外设可以放置在距离计算机20英尺以内的地方,那么就可以添加相对简单的电子设备,以使通过电缆的数据传输变得高效且可靠。为实现这一点,需在计算机中安装一个总线接口电路:
它包含一个用于外设数据的暂存寄存器、用于外部数据传输的定时和格式化电路,以及用于增强信号以通过电缆传输的信号放大器。当需要与外设通信时,微处理器首先将数据存入暂存寄存器。然后,这些数据将被重新格式化,并附加错误检测码,由总线接口电路中的数字硬件以相对较慢的速率发送出去。此外,在通过电缆传输之前,信号功率会被大幅增强。这些步骤确保了数据在通过电缆传输过程中不会因噪声或失真而损坏。此外,由于只发送目的地为外设的数据,计算机总线上进行的分线事务不会不必要地暴露于噪声之中。
如果电缆有八条并行通道(至少10条导线用于半双工操作),则以这种方式发送的数据可以以字节串行格式传输;如果只有一条通道可用,则数据可以以位串行格式传输。
6.4. 长距离传输(< 4000 英尺)
当到达外围设备的距离相对较长时,必须在总线接口单元之后插入驱动电路,以补偿长电缆的电气影响:
如果仅使用一个外设,那么只需要进行上述更改即可。然而,如果连接了多个外设,或者需要连接其他计算机站点,则需要一个局域网(LAN),并且必须彻底更换电气驱动器和通过电缆发送消息的协议。由于多芯电缆价格昂贵,当距离超过20英尺时,几乎总是使用位串行传输。
无论是简单的延长线还是局域网,都使用平衡电气系统来通过信道传输数字数据。这种系统每个信道至少涉及两条导线,且这两条导线都不是地线。请注意,与不平衡系统不同,在同一根电缆中,多个信道不能共用一条公共地线回路。
平衡电路的基本原理是,数字信号同时在两条导线上传输,一条导线上传输信号的正电压映像,另一条导线上传输信号的负电压映像。当这两条导线到达目的地时,信号会通过一个求和放大器进行相减,产生的信号摆动值是任意一条输入线上信号值的两倍。
如果电缆暴露在辐射电磁噪声中,电缆中的两条导线上会分别叠加一个极性相同的小电压。当信号通过求和放大器相减时,噪声会被抵消,信号从电缆中传输出来时不含噪声。
针对局域网系统,已经开发出了大量技术来最大限度地减少所需电缆的数量并提高吞吐量。局域网的成本主要集中在安装在个人电脑或外设中用于驱动电缆的电气接口卡以及通信软件上,而不是电缆本身(其成本已降至最低)。因此,局域网的成本和复杂性基本不会受到站点之间距离的影响。
6.5. 超长距离传输(超过 4000 英尺)
通过电话网络的数据通信可以到达世界上的任何地点。海外传真传输的数量在不断增加,连接数千家企业、政府和大学的计算机网络也无处不在。如此长距离的传输通常不是通过直接的数字线路连接来完成的,而是通过数字调制的模拟载波信号来实现。
这种技术使得可以利用现有的模拟电话语音信道来传输数字数据,尽管与直接数字链路相比,数据速率会大大降低。
通过电话线将数据从个人计算机传输到分时服务需要通过调制解调器将数据信号转换为可听声音。使用音频正弦波载波,并且根据波特率和协议,通过改变载波的频率、相位或幅度来编码数据。接收器的调制解调器接受调制的正弦波并从中提取数字数据。下面显示了几种通常用于对模拟传输的数字数据进行编码的调制技术:
类似的技术可以用在诸如硬盘驱动器之类的数字存储设备中来对数据进行编码以便使用模拟介质进行存储。
7. 引用内容
https://www.camiresearch.com/Data_Com_Basics/RS232_standard.html
https://www.camiresearch.com/Data_Com_Basics/data_com_tutorial.html
https://circuitdigest.com/article/rs232-serial-communication-protocol-basics-specifications
https://www.picotech.com/library/knowledge-bases/oscilloscopes/rs-232-serial-protocol-decoding