引言
在PC机的主板上,有一种类型的接口可能为我们所忽视,那就是RS-232C串行接口,在微软的Windows系统中称其为COM。我们可以通过设备管理器来查看COM的硬件参数设置,如图1。
图1 在Windows上查看PC串口设置
|
迄今为止,几乎每一台PC都包含COM。本质而言,COM是PC为和外界通信所提供的一种串行数据传输的接口。作为一种物理通信的途径和设备,它和目前风靡的另一种串行接口――USB所提供的功能是一致的。不过RS-232C显然已经开始被后起之秀USB赶超,因为USB的传输速率已经远远超过了RS-232C。
尽管如此,RS-232C仍然具有非常广泛的应用,在相对长的一段时间里,难以被USB等接口取代。RS-232C接口(又称EIA RS-232C),1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定,全名是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准"。
本文将对这一接口进行硬件原理的介绍,随后我们将逐章学习DOS平台的串口编程,及Windows平台下基于API、控件和第三方类的串口编程,最后本文将给出一个综合实例。
在本文的连载过程中,您可以通过如下方式联系作者(热忱欢迎读者朋友对本文的内容提出质疑或给出修改意见):
作者email:21cnbao@21cn.com(可以来信提问,笔者将力求予以回信解答,并摘取其中的典型问题,在本系列文章最后一次连载的《读者反馈》中予以阐述);
硬件原理
众所周知,CPU与存储芯片和I/O芯片的通信是并行的(并行传输的最大位数依赖于CPU的字长、数据总线的宽度),一种叫做UART(通用异步收发器,Universal Asynchronous Receiver/Transmitter)的芯片提供了并行数据传输和RS-232C串行数据传输方式的转换。这样的设备通常有如图2所示的管脚分布,当其向外传输数据时,CPU并行的将数据写入这类芯片的寄存器,UART再将寄存器中的数据一位一位地移动并向外传输;当外界向其传输数据时,UART一位一位地接收数据,并将其移位组合为并行数据,CPU再并行地读取这些数据。实际上,由于UART芯片一般以TTL/CMOS电平工作,在UART连接接口之前,还要经过一个TTL/CMOS和RS-232C电平的转换。RS-232C规定了其标准的电气特性,逻辑1对应的电压必须在-5~-15V之间;逻辑0对应的的电压必须在+5~+15V之间。
图2 UART并/串转换
|
一个常见的TTL/CMOS和RS-232C电平转换芯片如图3。
图3 常见的TTL/CMOS和RS-232C电平转换芯片
|
RS-232C通常以两类接插件与外界相连,分别称为DB9和DB25,如图4所示。
图4 DB9和DB25
|
而接插件中各个针的定义则如表1:
表1 DB9和DB25引脚定义
DB9
|
DB25
|
针号 |
功能说明 |
缩写 |
针号 |
功能说明 |
缩写 |
1 |
数据载波检测 |
DCD |
8 |
数据载波检测 |
DCD |
2 |
接收数据 |
RXD |
3 |
接收数据 |
RXD |
3 |
发送数据 |
TXD |
2 |
发送数据 |
TXD |
4 |
数据终端准备 |
DTR |
20 |
数据终端准备 |
DTR |
5 |
信号地 |
GND |
7 |
信号地 |
GND |
6 |
数据设备准备好 |
DSR |
6 |
数据准备好 |
DSR |
7 |
请求发送 |
RTS |
4 |
请求发送 |
RTS |
8 |
清除发送 |
CTS |
5 |
清除发送 |
CTS |
9 |
振铃指示 |
DELL |
22 |
振铃指示 |
DELL |
RS-232C定义为数据通信设备(DCE)和数据终端设备(DTE)之间的互连,实现上,到现在为止,究竟一个设备属于DCE还是属于DTE已经没有明显的界限,PC即可作为DCE,又可作为DTE。两串口互连,连接方法主要有二:
一种方法是,数据的发送和接收由软件控制,不进行硬件握手,其连接方法如图5(最常用DB9连接示意)和表2(DB9、DB25三线连接表),真正需要互相连接的是RXD、TXD和GND;
图5 无硬件握手时两串口连接
|
表2 DB9、DB25三线连接
9针-9针
|
5针-25针
|
2 9针-25针
|
2 |
3 |
3 |
2 |
2 |
2 |
3 |
2 |
2 |
3 |
3 |
3 |
5 |
5 |
7 |
7 |
5 |
7 |
软件握手又称为XON/XOFF,通常以CTRL-S(0x13)和CTRL-Q(0x11)两个字符来实现流控制。前者用于请求对方暂停发送,后者用于清除暂停传送的请求,继续发送数据。
另一种方法是,数据的发送和接收由硬件控制,进行硬件握手,其连接方法如图6(最常用DB9连接示意),需要连接的信号除RXD、TXD和GND外,还包括DTR、DSR、RTS和CTS。
硬件握手依赖于RTS和CTS信号,当发送设备欲发送数据时,将RTS信号置为有效表示请求发送,接收设备准备好后,置CTS信号有效,接着发送设备通过信号线TXD开始发送串行数据。
这里我们联想开来,RTS/CTS模式在许多领域里都出现过。回忆一下IEEE 802.11无线局域网协议标准,在其MAC协议中就使用了RTS/CTS,RTS/CTS抽象开来就是一种请求/应答。笔者曾经在拙作中多次以实例论证计算机领域里许多知识的相通性,这又是一个明证。
图6 有硬件握手时两串口连接
|
实际上,目前我们经常使用的是方法一,即只连接RXD、TXD和GND,简单灵活。另外,串口之间互连还有诸多途径,如图7所示。
学习笔记:
DB9串口引脚2、3、4、5、6、7、8七个引脚是有用的。2表示发送;3表示接收;4表示设备终端准备好;5表示地;6表示设备数据准备好;7表示发送命令;8表示清除发送命令。
RS232表示的数据根据协议是(-5)——(-15)表示1;(+5)——(+15)表示0。
|
分享到:
相关推荐
RS232串口驱动程序是计算机硬件与外部设备间通信的一种关键技术,广泛应用于工业控制、数据通信和设备调试等领域。RS232,全称为EIA/TIA-232标准,是由电子工业协会(Electronic Industries Alliance, EIA)和电信...
RS232串行接口在这款设备中起着至关重要的作用,它负责连接血凝仪与计算机或其他外围设备,实现数据传输和设备控制。下面将详细解释Stago Sta Compact血凝仪的RS232串口数据通信相关知识点。 1. RS232串口简介: ...
硬件连接说明部分通常会详细描述如何物理连接RS232接口,包括所需的线缆类型和每个引脚的功能。由于RS232是一种串行通信协议,它允许数据在一个方向上一次一个位地传输。为了建立连接,通常需要以下硬件设备: 1. ...
在C语言编程中,实现RS232串口通信时,会涉及这些连接方式的选择。 C语言串口通信软件的实现通常涉及以下几个步骤: 1. 硬件设备的配置,如单机测试、近距离两台设备通信和远距离通信,根据不同的连接方式设置串口...
在IT领域,基于FPGA(Field-Programmable Gate Array,现场可编程门阵列)的RS232串口通信是一种常见的硬件接口设计技术。本文将深入探讨RS232串口通信协议、FPGA在其中的角色以及如何在V2-PRo开发板上实现这一功能...
首先,RS232串口是一种物理接口,它定义了9针或25针D型连接器上的引脚功能,如TXD(发送数据)、RXD(接收数据)和RTS/CTS(请求发送/清除发送)等控制信号。这些信号用于实现全双工通信,允许设备同时发送和接收...
**RS232串口引脚定义详解** RS232(Recommended Standard 232)是一种古老的串行通信接口标准,广泛应用于计算机和其他设备之间的通信。它定义了一组信号线,用于数据传输、控制和状态指示。在本文中,我们将深入...
根据提供的文件信息,我们可以深入探讨RS232串口的相关知识点以及其在特定应用场景下的配置与使用。 ### RS232串口结构简介 #### 一、RS232串口概述 RS232是一种标准接口规范,用于定义设备之间进行串行二进制数据...
RS232串口源程序是电子工程和计算机科学领域中的一个重要组成部分,尤其在设备通信和嵌入式系统设计中。RS232,全称是"Recommended Standard 232",是一种早期制定的串行物理接口标准,用于定义计算机和其他设备之间...
串口调试助手是一款在IT行业中广泛应用的工具,主要用于测试和调试使用RS232串行通信接口的...在日常工作中,熟练掌握串口调试助手的使用技巧,以及对RS232串口的理解,对于解决硬件兼容性和通信问题具有极大的帮助。
标题中的“RS232串口转USB万能驱动”是指一种软件解决方案,它使得能够将传统的RS232串行接口与现代计算机的USB(Universal Serial Bus)接口相连接,以便于数据通信。在现代笔记本电脑中,由于USB接口的普遍应用,...
《基于C语言的RS232串行接口通信实现》 串行通信是电子和计算机领域中不可或缺的技术,尤其在RS232串行接口的支持下,设备间的通信变得更为简便。RS232接口是一种历史悠久但依然广泛使用的通信标准,尤其在需要远...
RS232,全称是“串行接口标准”,是一种广泛应用于设备间串行通信的标准,常见于工业自动化、数据采集系统以及嵌入式系统等领域。STM32是意法半导体(STMicroelectronics)推出的一系列高性能、低功耗的32位微控制器...
RS232串行接口,全称为EIA/TIA-232标准,是一种广泛应用于计算机和其他电子设备之间进行通信的接口标准。该标准由美国电子工业协会(Electrical Industries Association, EIA)和电信行业协会(Telecommunications ...
### RS232串口通信详解 #### 一、引脚定义 在了解RS232串行通信之前,我们先来明确一下它的引脚定义。RS232标准定义了多个引脚,用于实现数据的发送与接收等功能: 1. **CD(Carrier Detect)**:载波检测信号,...
**爱威轮 USB总线-RS232串口智能转换器说明书** 在现代计算机技术中,串行通信接口RS232仍然是许多设备和应用中的标准通讯方式,尤其是在工业控制、自动化系统以及一些老旧设备的连接中。然而,随着USB(Universal ...
RS232串口电平转换模块是一种在电子通信领域广泛应用的硬件设备,主要用于解决不同电平标准之间的兼容性问题。RS232,全称是"Recommended Standard 232",是一种早期制定的串行物理接口标准,广泛应用于计算机与其他...