Visual C++串口通信技术详解(第2版)
上QQ阅读APP看书,第一时间看更新

1.1 接口技术

人们使用计算机时,通常需借助于某些外部设备,如鼠标、键盘等。由于外部设备种类繁杂,所以这些外部设备在和CPU交互信息时,容易在工作速度、运行时序、信息格式与类型等方面出现不匹配现象。因此,CPU和外部设备之间的数据交换必须通过被称作接口的中间环节才能完成。换句话说,接口可以被看作为CPU与外部世界的特殊连接部件,是CPU与外部设备进行信息交换的中转站。

1.1.1 接口的定义

从广义上讲,接口技术是研究CPU如何与外界进行最佳结合与匹配,将各种功能部件连接成完整、实用的计算机系统,从而实现和外界高效、可靠地交换信息的一门硬件、软件相结合的技术。例如,CPU与系统总线连接所需的总线驱动器、数据收发器、总线控制器及总线裁决器等,称为处理器接口;存储器与系统总线的连接逻辑、存储管理部件、DMA控制器等,称为存储器接口。

从狭义上讲,接口技术通常仅指I/O接口技术,它涵盖各种输入/输出设备与主机进行信息交换所需的硬件逻辑和软件设计。

1.1.2 接口的基本功能

简单来说,I/O接口应具备以下一些功能:

(1)数据缓冲功能

为解决CPU高速和外部设备低速的矛盾,避免两者因速度不匹配而导致数据丢失,接口通常内置数据寄存器或者锁存器。当接口电路内部存储器容量足够大时,还可以采用批量传输数据的方式提高CPU和外部设备之间的数据交互能力。

(2)信号转换功能

当外部设备使用的控制、状态等信号和微机内部总线信号规范不兼容时,接口必须提供类似“翻译”功能的信号转换。

(3)设备选择功能

计算机系统通常带有种类繁杂的外部设备,接口利用地址码可对外部设备进行寻址,确保某个时间点只有被选定外部设备才能和CPU进行数据交互。

(4)接收、解释和执行CPU命令的功能

在计算机系统中,CPU控制外部设备操作的各种命令通常是以约定代码的形式发送给接口电路。在接收到CPU发来的命令后,接口电路对其进行解释,形成一系列控制信号后对目标外部设备进行相应控制。为了保证CPU掌握外部设备的工作状态,接口电路还须向CPU发送“空”、“满”、“闲”等表示目标外部设备当前状态的信号。

(5)中断管理功能

当外部设备工作出现突发事件,可以通过接口中内置的中断控制器向CPU发送中断处理请求,以便使CPU及时处理外部设备遇到的突发事件。接口提供中断管理功能,可有效提高计算机系统对外界突发事件的响应速度,同时实现CPU和外部设备的并行工作,从而提高了CPU的使用效率。

(6)数据宽度变换的功能

为适应CPU对处理数据的位宽要求,接口应内置移位寄存器,实现串行数据和并行数据之间的变换。

(7)可编程功能

现有接口芯片绝大多数具有可编程功能,可以在不改动硬件的条件下,通过修改驱动程序即可改变接口芯片的具体工作模式。可以说,可编程功能大大增强了接口芯片的灵活性和可扩展性。

1.1.3 接口的基本控制方式

主机通过接口对外部设备进行控制的基本方式有以下三种:

(1)程序查询方式

在程序查询方式下,CPU(主机)通过特定I/O指令询问外部设备当前工作状态。如果外部设备处于就绪状态,那么就执行数据传送任务,否则CPU始终处于循环等待状态,直到外部设备进入就绪状态。

这种方式容易实现,电路复杂性较低;但由于CPU处理速度远高于外部设备,所以CPU常处于“忙等”状态,导致整个计算机系统效率低下。

(2)中断处理方式

在中断处理方式中,CPU通过接口向外部设备发出I/O指令后,就不再主动查询外部设备是否就绪,而是转而执行其他进程。当外部设备处于就绪状态后,就利用接口的中断管理功能向CPU发出服务请求。CPU如果响应该请求,那么就暂停当前进程运行,转而执行和中断请求对应的服务程序。完成该服务程序后,再继续执行被中断进程。

中断处理方式的优点是有效减少了CPU查询外部设备状态和等待外部设备就绪所花费的时间,在提高CPU工作效率的同时,还满足了外部设备的实时性要求。但是,这种控制方式需要为每个外部设备分配一个中断号并编制相应的中断服务程序,同时要求接口芯片内置一个中断控制器管理外部设备提出的中断请求。

中断处理方式的缺点是每传送一个字符就发出一次中断请求,执行一次中断服务程序,当计算机系统需要进行大量数据传送时,系统整体性能将变得很低。

(3)DMA(直接存储器存取)控制方式

DMA控制方式最明显的优点是利用了专门硬件电路—DMA控制器来控制主机内存和外部设备之间的数据传送任务。该方式无须CPU介入,从而极大地提高了CPU的工作效率。

在进行DMA数据传送前,DMA控制器向CPU申请总线控制权;在CPU交出总线控制权后,DMA控制器启动一次大容量数据传送任务;当传送任务结束后,DMA控制器将总线控制权交还给CPU。

1.1.4 并行接口技术

并行接口(parallel interface)是计算机和外部设备之间进行数据传输的一种接口(简称并口)。该接口具有在多条线上同时传输一组二进制数字位的能力,通常能将给定字节(或者字)中数据的所有位信息使用各自的数据线同时传输。并行接口目前主要用于快速、近距离的设备与主机的连接,如打印机、扫描仪和主机的连接。因此,这种接口又被称为打印接口或者LPT接口。

我们常见的并口,通常主机上是25针D型接口,打印机上是36针弹簧式接口。现有的IEEE1284标准规定了3种连接器,分别被称为A、B、C型连接器(如图1-1所示)。目前,几乎所有个人计算机的主板都集成了并行口插座,是一个26针的双排针插座,标注为Paralle 1或LPT 1。

图1-1 IEEE 1284标准连接器

并行接口通常有三种工作模式:

(1)SPP模式

SPP(Standard Parallel Port)模式称为标准并行接口,也被称为兼容模式,包括4位、8位、半8位。目前,多数IBM PC或其兼容机都配置了4位或8位的并行接口。4位并行接口一次只能输入4位数据,但可以输出8位数据;8位并行接口一次可以传送8位数据或者半8位数据。

(2)EPP模式

EPP(Enhanced Parallel Port)模式称为增强型并行接口,运行任一方向的高速字节传输。EPP由Intel等公司开发,允许8位双向数据传送,可以连接各种非打印机设备,如扫描仪、LAN适配器、磁盘驱动器和CDROM驱动器等。

(3)ECP模式

ECP(Extended Capability Port)模式称为扩充功能并行接口,运行主机发送数据块。ECP由Microsoft、HP公司开发,能支持命令周期、数据周期和多个逻辑设备寻址,在多任务环境下可以使用DMA(直接存储器访问)。

1.1.5 串行接口技术

目前,计算机系统另一种主要接口是串行接口(serial interface),也被称为串口通信接口,是采用串口通信方式的标准扩展接口。串口通信概念较为简单,即按位(bit)发送和接收字节。典型的,串口用于ASCII码字符传输。尽管比按字节(byte)传送数据的并行通信方式慢,却能实现远距离通信,距离最远可达1200m。由于串口通信采用异步方式,所以端口在一根线上发送数据的同时,还可以在另一根线上接收数据。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。

我们可将串口类比为只允许在一条车道上顺序行车,而并口则是允许在8条车道上同时行驶8辆车。然而,正如8条车道上车辆会因相互干扰而降低车速一样,并口传送数据的速度并不一定比串口快。另外,并口传送数据出错时必须同时重传8位数据,而串口传送数据出错时只需重传1位数据就可以了。

现有的IBM PC或其兼容机一般至少配有两个串口,标记为COM1和COM2。其中,COM1通常使用9针D形连接器,而COM2使用的是老式的25针D型连接器。图1-2给出了这两种典型串口的形式。

图1-2 典型串口的形式