您当前的位置:五五电子网电子知识电工技术电力配电知识用增强并口EPP协议扩展计算机的ISA 正文
用增强并口EPP协议扩展计算机的ISA

用增强并口EPP协议扩展计算机的ISA

点击数:7162 次   录入时间:03-04 11:58:09   整理:http://www.55dianzi.com   电力配电知识

摘要:提出了用EPP协议和CPLD扩展笔记本电脑的ISA接口的方法,给出了详细的技术解决方案。扩展的ISA接口可以达到1310 KB/s的双向通讯速度,与ISA本身的速度相当。用户可以通过扩展的ISA接口直接使用市场上的基于ISA的接口卡。

    关键词:ISA  标准并口  增强并口  复杂的可编程逻辑器件

    利用微机开发便携式的数据采集、控制系统一直是微机应用系统开发者十分关心的课题。特别在是基于笔记本电脑的数据采集和控制系统中,这一点显得尤为重要。传统的数据采集和控制系统是针对台式机或者工控机设计的,一般都做成了标准的插卡,如A/D卡、D/A卡、RS232扩展卡等等,用户根据自己的实际需要选取合适的插卡,安装在自己的计算机中,再编写所需要的程序。但是在基于笔记本电脑的应用系统中,由于其没有扩展槽,如果用户自己不再配一个扩展箱,就不能配置现成的插卡。扩展箱的主要功能是扩展笔记本电脑的各种外围接口,即把笔记本电脑的功能扩展为与一个台式机相同的功能。它需要单独的电源供应,体积比笔记本电脑本身大,又比笔记本重的多,价格在人民币7000~10000元左右。如果能够找到一种便捷的方法,为笔记本电脑提供一个标准的总线接口,如ISA接口,那么现在市场上大部分的插卡都可以用在笔记本电脑上,不仅为用户节约了一个扩展箱投资,而且还为用户提供了更加广阔的选择余地。本文提出了解决该问题的一个完整的技术方案。

1 EPP并口

    最初的计算机并口只是为打印机设计的,数据只是单向传输。IBM公司引进了PS/2设计后,并口开始支持双向数据传输,但是PS/2实际上并没有成为一个为业界广泛认可的双向并口模式。1992年,由Intel、Xicom和Zenith公司共同制定了EPP1.7标准。以后IEEE又发展了IEEE1284的EPP标准。实际上EPP的标准共有三个,即EPP1.7、EPP1.9和IEEE1284,这些标准并不完全兼容,特别是EPP1.7和IEEE1284之间,不过这些对用户的使用并没有太大的影响。文献[1]即是IEEE1284标准,其中规定了并口各种模式的详细的时序图,包括SPP、PS/2、ECP和EPP模式。作者根据IEEE1284上规定的时序图进行了时序设计,而计算机上提供的EPP版本是EPP1.7或EPP1.9,实际使用中它们没有不匹配的地方。

2 用EPP扩展ISA接口的总体设计

    计算机主板上一般有2~3个ISA插槽,可以扩充一些ISA插卡。大多数基于ISA标准的微机数据采集和控制只用到了ISA接口的数据线、地址线、AEN、ALE、#IOR、#IOW等信号,有的也用到了中断和DMA的信号。只要了解这些信号之间的时序关系,我们完全可以自己用逻辑器件“制造”出ISA接口,文献[2]介绍了用单片机扩展总线的技术,包括ISA、STD总线等。作者曾经用并口的SPP模式和80C196单片机扩展出了计算机的ISA接口,但是IO读写速度只能达到20KB/s左右,总体的效果不太理想。ECP和EPP都能进行高速双向数据通讯,但是ECP的实现远比EPP复杂的多,其性能和EPP却大致相当,所以最终的方案采用了EPP模式。由于单片机是一个单任务的串行控制器,如果它只是用来扩展ISA接口,那么可以达到比较高的速度;否则,ISA总线的速度会大大降低,最后变得失去使用价值,所以最终的外设芯片不能采用单片机,只能采用DSP或者大规模的可编程逻辑器件。作者选用了后一种方案。

    用EPP扩展ISA口的硬件核心是一片可编程逻辑器件,如CPLD,它一方面负责与计算机通过EPP协议进行双向数据通讯,另一方面负责产生ISA接口时序,系统体系相当简洁而高效,电路原理如图1所示。EPP的数据线D0~D7和信号线nWrite、nDstrb、nAstrb、nInit、nWait、Intr直接与CPLD的双向I/O线相连。另外,EPP没有定义标准并口的第12、13、15三个引脚,这些引脚用户可以灵活使用。电路图上并口的第13脚和CPLD连了起来,可以提供其他的功能。CPLD提供了ISA接口的D0~D7,A0~A15,ALE,AEN,#IOR,#IOW,IRQ、IORDY等信号。扩展的ISA接口提供了16根地址线,可以寻址64K的IO空间,这比计算机所提供的IO空间(1K)大了许多倍。用户可以专门设计具有64K寻址能力的数据采集和控制板,也可以用只有1K寻址能力的数据采集和控制板,在这种情况下,地址线的高6位被忽略了,但这并不影响系统的正常使用。

3 硬件操作方法

    EPP协议定义的并行口提供了四种传送周期:数据写周期、数据读周期、地址写周期和地址读周期。数据周期一般用于计算机和外设间的数据传送,地址周期一般用于传送地址、通道、命令和控制等信息。实际上,数据周期和地址周期并没有那么严格的界限,可以把地址周期看做另一种数据周期,二者并没有太大的区别。图2是EPP数据写周期的时序图,图中的nIOW信号实际上在进行EPP数据写时并不会产生,只不过是为了表示所有的操作都发生在一个IO周期内,只有这样,才能使EPP获得ISA总线的数据操作速度。图2中的nDataStrobe信号如果换为nAddStrobe信号,就是EPP地址写周期。图3是EPP地址读周期,也是发生在一个IO周期内。

    EPP定义了一个计算机用于控制外设初始化的信号:nInit,如果用户不希望控制外设的初始化,则可以不处理这个信号;用户也可以挪用nInit信号做其他的用途,在本设计方案的地址周期中,如果nInit为高,则表示该地址对应ISA接口的高8位地址,否则,对应低8位地址。用这种办法解决了用8位的EPP地址扩展16位的ISA地址的难题。实践证明,这是一个方便实用的解决方法。

    用EPP扩展ISA接口,最根本的任务是把EPP的数据读写周期快速地转化为ISA的IO读写周期。在ISA的时序中[3],时钟的频率是4.77MHz,典型的一个ISA周期要用4个时钟周期,即大概1μs的时间。在EPP的读周期中,EPP首先发出读命令,然后等待ISA的数据响应,如果ISA仍然以4个时钟来进行IO读操作,那么EPP很有可能会由于超时而发生时序错误,数据也必然会错。解决这个问题可以用提高ISA接口的时钟频率的办法,如提高到8MHz甚至是16MHz,但是这样的话ISA卡可能会来不及响应而发生数据错误,所以这种方法不可取;另一种方法是改造ISA接口的时序,使得既能满足ISA卡的时序要求,又不至于造成EPP的超时错误。仔细分析ISA的IO读时序,CPU在T1发出地址信号并发出ALE信号,在T2发出读命令,在T3采样READY信号,以决定是否产生等待周期,如果不需要等待,则在T4读取数据,完成整个读周期。可以发现,对于本系统,T1周期是可以省略的,因为CPLD可以在EPP的地址周期内设定要寻址的IO地址,而没有必要在ISA周期内再发送地址,这样ISA的IO读周期就从4个时钟减少到3个时钟;如果可以保证ISA卡设备可以在一个时钟内送出有效的数据,则T3也可以省略,这样一个ISA读周期实际上只占用了两个时钟,不会造成EPP的超时错误。对EPP数据写周期,因为CPLD可以先把数据写到缓冲中,首先保证EPP时序,再把数据从缓冲写到ISA设备中去,所以不会造成超时错误。ISA的读写时序经过这样的简化处理后,可以满足ISA设备和EPP两方面的时序要求。

4 CPLD的编程

    系统选用的CPLD是ALTERA公司的MEP7064,它有64个宏单元,1250个可用门,就可以完成EPP和ISA的接口任务。文献[4]详细介绍了ALTERA公司的CPLD器件,在这里就不再介绍器件的性能和使用方法了。仅给出用VHDL语言写的控制程序如下(部分信号的意义请参照前面的电路原理图)。

    Process (clk)

    Type ISAType is (Idle,RD,WR);

    Variable ISA: ISAType;

    Variable IOR: STD_LOGIC;

[1] [2]  下一页


本文关键字:计算机  电力配电知识电工技术 - 电力配电知识

《用增强并口EPP协议扩展计算机的ISA》相关文章>>>