
eiars-232-c标准详解.doc
6页EIA RS-232-C 标准EIA RS-232-C 是由美国电子工业协会 EIA 制定的串行通信物理接口标准最初是远程 数据通信时,为连接数据终端设备 DTE(Data Terminal Equipment,数据通信的信源,如 计算机)和数据通信装置 DCE(Data Circuit-terminal Equipment、数据通信中面向用户的设 备,如调制解调器)而制定的它规定以 25 芯或 9 芯的 D 型插针连接器与外部相连这 个连接器上的基本信号定义如表 8-1 所示表 8-1 RS-232-C 标准接口信号信号符号信号符号 25 芯引脚芯引脚 9 芯引脚芯引脚 方向方向 信号描述信号描述 TXD 2 3 O 发送数据发送数据RXD 3 2 I 接收数据接收数据RTS 4 7 O 请求传送请求传送 CTS 5 8 I 允许传送允许传送 DSR 6 6 I 数据通信装置(数据通信装置(DCE)就绪)就绪 GND 7 5 信号地信号地 DCD 8 1 I 数据载波检测数据载波检测 DTR 20 4 O 数据终端设备(数据终端设备(DTE)就绪)就绪 RI 22 9 I 振铃指示振铃指示 通信将在数据终端设备(DTE)和数据通信装置(DCE)之间进行,信号线中的 RTS、CTS、DSR 和 DTR 为控制信号,其含义如下:RTS(请求传送):当数据终端设备(DTE)需向数据通信装置(DCE)发送数据时, 该信号有效,请求数据通信装置接收数据。
CTS(允许传送):如数据通信装置(DCE)处于可接收数据的状态,此信号有效,允许数据终端设备(DTE)发送数据反之,如数据通信装置(DCE)处于不可接收数据 的状态,此信号无效,不允许数据终端设备(DTE)发送数据DSR(数据设备就绪) 、DCD(数据载波检测):当数据通信装置(DCE)需向数据 终端设备(DTE)发送数据时,该信号有效,请求数据终端设备(DTE)接收数据DTR(数据终端就绪):如数据终端设备(DTE)处于可接收数据的状态,此信号有 效,允许数据通信装置(DCE)发送数据反之,如数据终端设备(DTE)处于不可接收 数据的状态,此信号无效,不允许数据通信装置(DCE)发送数据因而采用 RS-232 标准的通信,除了连接发送和接收的数据线外还需连接控制信号 图 8-3 为采用 RS-232 标准进行通信常用的连接方法 图 8-3 RS-232 标准通信常用的连接方法为实现数据的传输,A 端与 B 端的发送和接收的数据线相互连接,A 端的请求传送 (RTS)与 B 端的数据通信装置就绪、数据载波检测(DSR、DCD)相连,B 端的数据终 端设备就绪(DTR)信号与 A 端的允许传送(CTS)相连。
在 A 端需发送数据时,该端的 请求传送(RTS)输出有效,此信号连接到 B 端的数据设备就绪、数据载波检测 (DSR、DCD)端,如 B 端允许接收信号,将使数据终端设备就绪(DTR)信号有效,此 信号输入到 A 端的允许传送(CTS) ,A 端接收到此信号后即发送数据当 B 端需发送数 据时,将 B 端的 RTS 信号置为有效,因而控制 A 端的 DSR,如 A 端可接收数据,将置 DTR 有效,控制 B 端正确地发送数据在最简单的情况下,主系统和终端之间仅连接发送、接收的数据线和地线,而控制信 号由各自自行产生其连接方法如图 8-4 所示图 8-4 RS-232 的简化连接方式在这样的连接方法中,请求传送(RTS)信号的输出连接到本机的允许传送(CTS) 端,数据终端设备就绪(DTR)的输出连接到本机的数据通信装置就绪(DSR) 、数据载波 检测端(DCD) 当需发送数据时,控制 RTS 信号有效,此信号直接连接到 CTS,此时由 于 RTS 信号有效,因而可将数据送出同样应控制 DTR 信号有效,此信号直接连接到 DSR、DCD,在需接收数据时,由于所需的 DSR 信号有效,可接收数据。
采用这样的方法 可减少通信两端的连线,但必须协调收发双方的通信软件,避免在数据发送时,接收方未 能及时地接收数据采用 RS-232 标准除了规定信号与连接器外,还规定了信号的电气特性 其发送端与 接收端的电气特性规定如下:发送端:输出最大电压小于 25V(绝对值) ,最大短路输出电流为 500mA,输出阻抗 大于 300Ω,逻辑“1“为- 25V~-3V,逻辑“0“为 +3~+25V接收端:输入阻抗为 3~7KΩ,最大负载电容 2500PF,当信号小于-3V 时为逻辑“1“, 信号大于+3V 时为逻辑“0“为此在进行信号传输时,必须将信号的 TTL 电平与 RS-232 电平进行转换,在发送 时,将 TTL 电平转换为 RS-232 电平,而在接收时将 RS-232 电平转换为 TTL 电平能满足上述要求将信号由 TTL 电平与 RS-232 电平互换的常用器件有 MC1488 和 MC1489MC1488 为发送器,它将 TTL 电平转换为 RS-232 电平,采用±12V 电源,当输 入为 TTL“1“电平时,输出为-12V 的信号;当输入为 TTL“0“电平时,输出为+12V 的信号。
MC1489 为接收器,将 RS-232 电平转换为 TTL 电平,采用 5V 电源当输入为-12V 时, 输出 TTL“1“电平;当输入为+12V 时,输出 TTL“0“电平采用单电源供电的 RS-232 电平转换器件利用内部的电源电压变换器将输入的+5V 电 源变换成 RS-232 输出电平所需的±10V 电压由于器件内部的电源电压变换器由电荷泵和倍压电路构成,因而需外接倍压和滤波电容,电容的容量和质量将影响此电路能否正常工 作此类电路的 TIN 端为发送的 TTL/CMOS 电平的输入,TOUT 端为发送的 RS-232 电平 输出,与此对应,RIN 为接收的 RS-232 电平的输入,ROUT 端为接收的 TTL/CMOS 电平 输出在一个芯片中可包含不同数量的电平转换电路,如图 8-5 所示的 MAXIM 公司的 MAX232 提供了两个发送电平转换电路和两个接收电平转换电路 图 8-5 RS-232 电平转换电路RS232 中 RTS 和 CTS 的作用 问: 以前挺明白的,今天一下子觉得以前的理解都不对了,以下三种解释哪个对呢?解释一: RTS:终端我已经准备就绪,有数据就发过来吧 CTS:来了,接招解释二: RTS:终端我准备发数据给你,快用 CTS 应答,准备好没? CTS:好了,来吧解释三: CTS:主机,我有数据,请求接收 RTS:我是主机,就绪,请求发送。
我今天弄了个 SIM100 模块,我将 RTS 设置无效之后,凡是要发往主机的数据都没有发过 来(包括主动数据 RING) ,指令和指令返回结果都没有返回,都缓存在模块之中,等我将 RTS 设置有效后,缓存的数据全发来了,包括一大堆指令的执行结果,由此,我觉得上面 的“解释一”应该正确,而“解释二”应该是错的,但“解释三”是否正确呢?就是说 CTS 和 RTS 哪个是发起者呢?答: 一是错的 二是 RS232 标准 三是 MODEM 的硬件流控 SIMCOM 公司的解释完全正确很久很久以前,计算机还没有出现,那时就已经存在了(计算机)史前的串口设备(电传 打字机,工控测量设备,通信调制解调器),为了连接这些串口,EIA 制定了 RS232 标准, 采用 DB25 接插件,支持同步和异步串口,D 型的接口可以有效防止插反标准化给使用 带来了便利时光荏苒,个人计算机出现了,这些已有的串口设备毫无疑问地成为了最初的外设, 自然而然地 RS232 标准被个人计算机采纳但是设备制造商倾向于体积更小,成本更低的接口,因此,将 DB25 中未使用的和支持同步模式的引脚去掉,形成 DB9最初的情况相 当混乱,因为 DB9 只定义了信号,却没有指定信号和引脚的对应关系,各个制造商只能自 行定义。
幸运的是,IBM 的 PC 成了工业标准,DB9 逐渐统一到 IBM 的定义上来DB9 只有 9 根线,遵循 RS232 标准定义如下:DTR,DSR------DTE 设备准备好/DCE 设备准备好主流控信号RTS,CTS------请求发送/清除发送用于半双工时,收发切换属于辅助流控信号半 双工的意思是说,发的时候不收,收的时候不发那么怎么区分收发呢?缺省时是 DCE 向 DTE 发送数据,当 DTE 决定向 DCE 发数据时,先有效 RTS,表示 DTE 希望向 DCE 发 送,一般 DCE 不能马上转换收发状态,DTE 就通过监测 CTS 是否有效来判断可否发送, 这样避免了 DTE 在 DCE 未准备好时发送所导致的数据丢失全双工时,这两个信号一直有效即可随着计算机的日益普及,很多非 RS232 的串口也要接入 PC 机,如果为每一种新出现 的串口都增加一个新的 I/O 口显然不现实,因为 PC 后面板位置有限,因此,将 RS232 串 口和非 RS232 串口都通过 RS232 口接入是最佳方案UART 的 U(通用)指的就是这个意思 早期 ROM BIOS 和 DOS 里的通信软件都是为 RS232 设计的,在没有检测到 DCD 有效前 不会发送数据,因此,就连发送一个字符这样朴素的应用也要给出 DCD、 DTR、DSR 等 控制信号。
因此,串口接头上要将一些控制线短接,或者干脆绕过系统软件自己写通信程 序到此,UART 的涵义就总结为:通用的 异步 (串行) I/O 口就在 UART 冠以通用二字,准备一统江湖的时候,制造商们不满于它的速度、体积和 灵活性(软件可配置),推出了 USB 和 1394 串口目前,笔记本上的 UART 串口有被取消 的趋势,因而有网友发出了“没有串口,吾谁与归”的慨叹,古今多少事,都付笑谈中, USB 取代 UART 是后话,暂且不表话说自从贺氏(Hayes)公司推出了聪明猫(SmartModem),他们制定的 MODEM 接口就 成了业界标准,自此以后,所有公司制造的兼容猫都符合贺氏标准(连 AT 指令也兼容,大 家一起抄他呗)细观贺氏制定的 MODEM 串口,与 RS232 标准大不相同DTR 在整个通信过程中一 直保持有效,DSR 在 MODEM 上电后/可以拨号前有效(取决于软件对 DSR 的理解),在通 信过程的任意时刻,只要 DTR/DSR 无效,通信过程立即终止在某种意义上,这也可以 算是流控,但肯定不是 RS232 所指的那种主流控如果拘泥于 RS232,你是不会理解 DTR 和 DSR 的用途的。
贺氏不但改了 DTR 和 DSR,竟然连 RTS 和 CTS 的涵义也重新定义了因此,RTS 和 CTS 已经不具有最开始的意义了从字面理解 RTS 和 CTS,是用于半双工通信的,当 DTE 想从收模式改为发模式时,就有效 RTS 请求发送,DCE 收到 RTS 请求后不能立即完 成转换,需要一段时间,然后有效 CTS 通知 DTE:DCE 已经转到发模式,DTE 可以开始 发送了在全双工时,RTS 和 CTS 都缺省置为有效即可然而,在贺氏的 MODEM 串口 定义中,RTS 和 CTS 用于硬件流控,和什么劳什子的全双工/半双工一点关系也没有注意,硬件流控是靠软件实现的,之所以强调“硬件”二字,仅仅是因为硬件流控提 供了用于流量情况指示的硬件连线,并不是说,你只要把线连上,硬件就能自己流控如 果软件不支持,光连上 RTS 和 CTS 是没有用的RTS 和 CTS 硬件流控的软件算法如下:(RTS 有效表示 PC 机可以收,CTS 有效表示 MODEM 可以收,这两个信号互相独立,分别指示一个方向的流量情况 我是分隔线 ==========以下是我的几句胡言乱语最近在捣鼓一个 GSM 模块,正好也要用到这东西,就 baidu 了一把。
