用68HC908GP32单片机实现EPP增强并口的接口技术
摘要:本文介绍了计算机并口的几种操作模式,给出了实现EPP接口设计的几种方案;着重介绍用Motorola公司的68HC908GP32单片机实现EPP接口设计,并给出了一个GP32单片机实现的数据采集系统的设计方案。
关键词:EPP 增强并口 单片机 68HC908GP32
一、计算机并口操作模式概述
1.SPP模式
SPP(Standard Parallel Port)模式即标准并口模式,是为打印输出而设计的。数据由计算机单向输出,不能用数据线进行数据输入,要做数据输入只能利用状态线。并口状态线只有5根,所以每个字节要分两次输入,再拼装为一个完整的字节。SPP模式速度较低,对硬件的要求不高,适用于低速的应用场合,如打印机、软件狗等。
2.PS/2模式
IBM公司引进了PS/2设计后开始支持并口的双向数据传输。PS/2模式和SPP模式兼容。它没有改变标准并口的信号定义,也没有改变并口接插件的引脚定义,而是通过一个方向控制位来设置并口的数据方向:如果设置为输出,PS/2模式就和SPP模式完全相同;如果设置为输入,则从并口数据线上每次可以读取一个字节的数据。同时,PS/2模式的总线控制功能提高了并口的速度。
无论是SPP模式还是PS/2模式,数据通信信度都不高。原因在于并口本身的I/O速度不高(只有100~400KB/s)。另一方面,每次数据传输都要通过I/O操作进行软件数据交换。通常情况下,一次互锁数据交换的数据传输至少需要5次I/O操作,才能保证进序的完整性。这两方面因素使SPP模式和PS/2模式只能用于速度较低的应用领域。
3.EPP模式
EPP(Enhanced Parallel Port)增强并口模式支持并口和外设间的双向数据交换,速度能够达到1~2MB/s。增强并口通过精密的逻辑界面和明确定义的电气参数保证了数据传输的速度和准确性。
4.ECP模式
ECP(Extended Capabilities Port)模式,即扩展功能和模式,其性能更高。ECP模式有16个字节的FIFO,并且支持DMA功能。在不降低系统性能的前提下减轻计算机CPU的负担,提高了应用系统的整体性能。更为重要的是,ECP模式把其他几种并口模式都纳入了ECP模式的定义中。ECP模式定义了ECR扩展控制寄存器,可以把并口的操作模式设置为SPP,PS/2,EPP或者ECP,从而构成一个完整的并口系统。javascript:window.open(this.src);" style="cursor:pointer;"/>
SPP模式、PS/2模式和EPP模式都是主从式结构,数据传输双方是一种不对等的关系。数据传输只能由计算机来启动,外设不能启动数据传输。如果外设要进行数据传输,它只能向计算机提出中断申请,然后由计算机启动数据传输。ECP模式则不是主从式结构,数据传输的双方都可以启动数据传输。ECP模式可以用于计算机之间的互联,而EPP模式则不能。
虽然ECP并口模式的性能比EPP高,但是ECP模式不太容易实现,大部分的设计者都采用了EPP模式来设计自己的应用系统。EPP模式比ECP模式更简洁,灵活,可靠,在工业界得到了更多的实际应用。
二、EPP增强并口的实现方案
1.EPP增益并口时序
EPP协议定义了4种并口周期:数据写周期、数据读周期、地址写周期和地址读周期。数据周期用于计算机和外设间传送数据;地址周期用于传送地址、通道、命令、控制和状态等辅助信息。图1是EPP数据写的时序图,图中的nIOW信号实际上在进行EPP数据写时并不会产生,只不过是表示所有的操作都发生在一个I/O周期内。在t1时刻,计算机检测nWAIT信号,如果nWAIT为低,则表明外设已经准备好,可以启动一个EPP周期了。在t2时刻,计算机把nWRITE信号置为低,表明是写周期,同时驱动数据线。在t3时刻,计算机把nDataStrobe信号置为低,表明是数据周期。外设在检测到nDataStrobe为低后读取数据并做相应的数据处理。在t4时刻把nWAIT置为高,表明已经读取数据,计算机可以结束该EPP周期。在t5和t6时刻,计算机把nDataStrobe和nWRITE置为高。这样,一个完整的EPP数据写周期就完成了。图1中的nDataStrobe信号如果换为nAddStrobe信号,就是EPP地址写周期。图2是EPP地址读周期。与EPP写周期类似,只不过是由外设来驱动数据线。
EPP时序还包括初始化、中断申请等,可以查阅参考文献1获得详细的时序图及时序说明。
2.EPP增益并口的逻辑界面
EPP增强并口模式使用与标准并口模式相同的基地址,定义了8个I/O地址。基地址+0是SPP数据口,基地址+1是SPP状态口,基地址+2是SPP控制口。这3个口实际上就是SPP模式下的数据、状态和控制口,这样保证了EPP模式和SPP模式的软硬件兼容性。
基地址+3是EPP地址口,向这个I/O口中写数据将产生一个连锁的EPP地址写周期,从这个I/O口中读数据将产生一个连锁的EPP地址读周期。在不同的EPP应用系统中,EPP地址口可以根据实际需要设计为设备选择、通道选择、控制寄存器、状态信息等,给EPP应用系统提供了极大的灵活性。
基地址+4是EPP数据口,向这个I/O口中写数据将产生一个连锁的EPP数据写周期,从这个I/O口读数据将产生一个连锁的EPP数据读周期。javascript:window.open(this.src);" style="cursor:pointer;"/>基地址+5~+7与基地址+4一起提供地EPP数据口的双字操作能力。EPP允许主机在1个时钟周期内写1个32位双字,EPP电路再把32位双字拆为4个字节依次从EPP数据口中送出去。也可以用16位字方式进行数据传送。
3