串口概念

转载 2007年09月29日 22:06:00

        在PC机的主板上,有一种类型的接口可能为我们所忽视,那就是RS-232C串行接口,在微软的Windows系统中称其为COM。我们可以通过设备管理器来查看COM的硬件参数设置,如图1。 

.

        迄今为止,几乎每一台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、控件和第三方类的串口编程,最后本文将给出一个综合实例。

硬件原理

  众所周知,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 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所示。


图7 其它互连方式



第六天:串口通信概念、原理

串口通信的基本概念   通信过程其实分为三个步骤: 发送方先按照信息编码方式编码, 通过传输介质传输 收到编码信息,根据事先的编码方式解码得到原信息     电子通信概念1:...
  • Karven_
  • Karven_
  • 2016年07月23日 21:39
  • 5409

基于VC++开发串口通信的方法

 串行通信中的关键是串行通信设备的初始化、数据的发送和接收及其实现方式。   在Dos环境下,用户可以直接对通信设备编程,可以通过查询中断的方式使用通信设备。但是Windows不提倡应用程序直...
  • u013245354
  • u013245354
  • 2015年03月18日 16:51
  • 1331

串口波特率等概念

1:比特率:9600bps 就是每秒中传输9600bit,也就是相当于每一秒中划分成了9600等份。 如此,那么每1bit的时间就是1/9600秒=104.1666666666666666...
  • wjs1033
  • wjs1033
  • 2016年11月24日 20:48
  • 2870

51单片机中断详解(上)

一.中断的概念 中断发生 CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理 中断响应和中断服务 CPU暂时中断当前的工作,转去处理事件B 中断返回 待CPU将事件B处理完毕后,再回...
  • u013151320
  • u013151320
  • 2015年11月22日 15:35
  • 8612

windows 检测串口概念 参考

VC实现自动监测光驱状态的改变   Windows系统通过GDI(图形设备接口)将系统的硬件和用户可以操作的编程接口相分离,以保证系统的稳定型和安全性。当某一个设备的硬件配置发生变化时,Wind...
  • phenixyf
  • phenixyf
  • 2013年06月17日 23:22
  • 1145

第八章:端口复用和重映射

(部分重映射:部分管脚重新映射到其他管脚;完全重映射:所有管脚都重新映射到其他管脚;) 1 端口复用功能  所以,我们在使用复用功能的是时候,最少要使能...
  • qq_33553024
  • qq_33553024
  • 2017年12月24日 21:53
  • 53

USB转虚拟串口驱动

WinCE系统 USB Serial实现:http://blog.csdn.net/nanjianhui/archive/2009/12/11/4986390.aspxWinCE虚拟串口驱动:http...
  • kathyzju
  • kathyzju
  • 2010年12月27日 14:42
  • 3486

串口、RS232、COM口的概念

什么是串口? ------------------------------------------     串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Se...
  • vegeter
  • vegeter
  • 2012年07月30日 09:33
  • 742

操作系统概念性题目总结

什么是操作系统?答:操作系统是一种系统软件,是软、硬资源的控制中心。它以尽量合理有效的方法组织单个或多个用户以多任务方式共享计算机的各种资源。资源共享的两种方式?时分和空分。试述多道程序设计的基本思想...
  • qq_27687701
  • qq_27687701
  • 2016年11月26日 23:18
  • 549

多线程同步概念

不管是多线程还是多进程,涉及到共享相同的内存时,需要确保好同步问题。 对线程来说,需要确保每个线程看到一致的数据视图。   如果每个线程使用的变量都是其他线程不会读取和修改的,那么就不存在一致性...
  • zhouzhenhe2008
  • zhouzhenhe2008
  • 2017年04月24日 19:09
  • 221
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:串口概念
举报原因:
原因补充:

(最多只允许输入30个字)