文本描述
深入浅出 VC++串口编程之基本概念 引言 在 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、 控件和第三方类的串口编程,最后本文将给出一个综合实例。 硬件原理 众所周知,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通常以两类接插