学海荡舟手机网

主页 > 实用文摘 > 教育文摘_18 > > 详细内容

基于uPSD323X的EPP增强并口的接口技术_接口电路论文

摘要:系统介绍epp增强并口接口协议,简要介绍st公司upsd323x系列器件的特点及其开发环境psdsoft express;从硬件电路和软件编程两个方面,详细介绍使用upsd323x系列器件实现epp增强并口接口的设计方法。

    关键词:epp增强并口 upsd323x psdsoft express

引言

在ibm公司推出pc机时,并行端口已经是pc机的一部分。并口设计之初,是为能代替速度较慢的串行端口驱动当时的高性能点阵式打印机。并口可以同时传输8位数据,而串口只能一位一位地传输,传输速度慢。随着技术的进步和对传输速度要求的提高,最初的标准并行端口即spp模式的并行端口的速度已不能满足要求。1994年3月,ieee 1284委员会颁布了ieee 1284标准.ieee 1284标准提供的在主机和外设之间的并口传输速度,相对于最初的并行端口快了50~100倍。ieee 1284标准定义了5种数据传输模式,分别是兼容模式、半字节模式、字节模式、epp模式和ecp模式。其中epp模式、ecp模式为双向传输模式。epp模式比ecp模式更简洁、灵活、可靠,在工业界得到了更多的实际应用。本文介绍的一种基于upsd323x的epp增强并口的设计核心是,使用upsd323x内部的cpld实现epp接口。

1 epp接口协议介绍

epp(enhanced parallel port,增强并行端口)协议最初是由intel、xirocm、zenith三家公司联合提出的,于1994年在ieee1284标准中发布。epp协议有两个标准:epp1.7和epp1.9。epp接口控制信号由硬件自动产品,整个数据传输可以在一个isa i/o周期完成,通信速率能达到500kb/s~2mb/s。

epp引脚定义如表1所列。

表1 epp接口引脚定义

对应并口引脚epp信号方  向

说      明

1nwrit输出指示主机是向外设写(低电平)还是从外设读(高电平)
2~9data0~7输入/输出双向数据总线
10interrupt输入下降沿向主机申请中断
11nwait输入低电平表示外设准备好传输数据,高电平表示数据传输完成
12spare输入空余线
13spare输入空余线
14ndstrb输出数据选通信号,低电平有效
15spare输入空余线
16ninit输出初始化信号,低电平有效
17nastrb输出地址数据选通信号,低电平有效
18~25groundgnd地线

1.1 epp接口时序

epp协议定义了4种并口周期:数据写周期、数据读周期、地址写周期和地址读周期。数据周期用于计算机与外设间传送数据;地址周期用于传送地址、通道、命令、控制和状态等辅助。图1是epp数据写的时序图。图1中,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写周期类似,不同的是nwtrite信号置为高,表明是读周期,并且数据线由外设驱动。

从epp读、写周期可以看出,epp模式的数据传输过程是一个信号互锁的过程。以epp写周期为例子,当检测到nwait为低后,ndatastrobe控制信号就会变低,nwait状态信号会由于ndatastrobe控制信号的变低为而高。当计算机检测到

nwait状态信号变高后,ndatastrobe控制信号就会变高,一个完整的epp写周期结束。因此,epp数据的传输以接口最慢的设备来进行,可以是主机,也可以是外设。

1.2 epp增强并口的定义

epp增强并口模式使用与标准并口(spp,standard paralled port)模式相同的基地址,定义了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数据写周期。基地址+5~+7与基地址+4一起提供对epp数据口的双字操作能力。epp允许主机在此个时钟周期内写1个32位双字,epp电路再把32位双字拆为个字节依次从epp数据口中送出去。也可以用其所长6位字方式进行数据传送。

由于epp通过硬件自动握手,对epp地址口和epp数据口的读写操作都自动产生控制信号而无需软件生成。

2 upsd323x及其开发环境psdsoft express

st公司的upsd323x是带8032内核的flash可编程系统器件,将于8032 mcu、地址锁存器、flash、sram、pld等集成在一个芯片内。其主要特点如下:具有在线编程能力和超强的保密功能;2片flash保存器,1片是128k或者256k的主flash存储器,另一片是32k的从flash存储器;片内8k的sdram;可编程的地址解码电路(dpld),使存储器地址可以映射到8032寻址范围内的任何空间;带有16位宏单元的3000门可编程逻辑电路(cpld),可以实现epp接口等及一些不太复杂的接口和控制功能;2个异步串口、i2c接口、usb接口、5通道脉冲宽度调节器、50个i/o引脚等。由于upsd323x采用的是8032内核,因此可以完全得到keil c51编程器的psdsoft express是st公司针对psd系列产品(包括upsd)开发的基于windows平台的一套软件开发环境。经过不断升级,目前最新版是psdsoft express 7.9。它提供非常容易的点击设计窗口环境用户不需要自己编程,也不需要了解hdl语言,只有点击鼠标即可完成对地址锁存器、flash、可编程逻辑电路等外设的所有配置和写入。它支持所有psd器件的开发,使用psdsoft express工具对upsd323x系列器件的可编程逻辑电路的操作简单、直观。psdsoft express工具可以在st网站(www.st.com/psd)免费下载。

3 用upsd323x实现epp接口设计

3.1 硬件接口

epp增强并口的速度最高可达到500kb/s~2mb/s,这对外设的接口设计提供了一个很高的要求,如果外设响应太慢,系统的整体性能将大大下降。用户可编程逻辑器件,系统的整体性能将大大降低。用户可编程逻辑器件,如fpga(field programmable gates array,现场可编程门阵列)和cpld(complex programmable logic device,复杂可编程逻辑器件),可以实现epp增强并口的接口设计,这种实现方案可以达到并口中的速度极限,并且保密性好。st公司的upsd323x内部集成了可编程逻辑电路(cpld),因此使用upsd323x可以很好地实现epp增强并口的接口设计。

epp接口(epp1.7)外设硬件接口原理如图3所示。在本设计中,upsd323x通过中断的方式接收pc机并口的数据,并且当外设准备好数据上传到pc机时,pc机采用的也是中断方式接收外设的数据。

在上述硬件电路的基于上实现epp并口通信还需做两部分的工作:一部分工作是在psdsoft express工具中完成对cpld 的数据的锁存;另一部分工作是在keil c51环境下编写中断服务程序,实现epp数据的读取和发送。

图3

    3.2 对cpld的编程及其实现数据锁存的过程

在psdsoft express工具中,将pa端口(eppd0~eppd7)配置成带有时钟上升沿触发的寄存器类型(pt clocked register)的输入宏,pb0(nwait)配置成上升沿触发的d类型寄存器(d-type register)的输出宏,pb3(nwrite)、pb4(ndstrb)、pb2(nastrb)配置成cpld逻辑输入(logic input)口。ndstrb信号和nastrb信号各自取反再相与后的值作为输入宏单元和输出宏单元的时钟。上述对pa、pb端口的配置用方程式表示如下:

porta equations:

=======================

!eppd7_ld_0=nastrb & ndstrb;

eppd0.ld=eppd3_ld_0.fb;

!eppd3_ld_0=nastrb & ndstrb;

eppd1.ld=eppd3_ld_0.fb;

!nwait_c_0=nastrb & ndstrb;

eppd2.ld=eppd3_ld_0.fb;

eppd3.ld=eppd3_ld_0.fb;

eppd4.ld=fppd7_ld_0.fb;

eppd5.ld=eppd7_ld_0.fb;

eppd6.ld=eppd7_ld_0.fb;

eppd7.ld=eppd7_ld_0.fb;

portb equations:

=======================

nwait.d:=1;

nwait.pr=0;

nwait.c=nwait_c_0.fb;

nwait.oe=1;

ndstrb.le=1;

nastrb.le=1;

epp数据的锁存过程如下:以计算机向外设传输数据(即epp数据写周期)为例子,计算机首先检测nwait信号,如果nwait为低计算机把nwrite信号置为低,表明是写周期,同时将数据放到数据总线上,然后置低ndstrb信号。此时,ndstrb信号会出现一个上升沿,此上升沿会将pa端口的数据锁存到输入宏;同时,此上升沿使nwait信号变高,表示外设正忙阻计算机发数年。当计算机检测到nwait信号为高后就会将数据握手信号ndstrb变高,epp数据写周期结束。上述epp数据的锁存和nwait握手信号的产生都由硬件产生,因此数据传输速度快。整个数据传输过程可以在一个i/o周期内完成,锁存到输入宏的数据的读取和nwait信号的清除则在外部中断0服务程序软件完成。

3.3 中断服务程序的功能描述及流程

由硬件原理图可以看出,epp并口的ndstrb和nastrb信号线分别连到upsd323x的外部中断定和外部中断1引脚。当发生epp数据读写时,ndstrb信号就会产生一个下降沿,引起外中断定中断。当发生epp地址读写时,nastrb信号就会产生一个下降沿,引起外中断1中断。外部中断0和外部中断1的中断服务程序的功能是相同的,只不过前者接收或发送的是数据而后者是地址、命令等。以外部中断0的中断服务程序为例,详细介绍数据正向传输(计算机向外设发送数据)和反向传输(外设向计算机传送数据)时中断服务程序的功能。外部中断0中断服务程序流程如图4所示。

(1)数据正向传输

当发生epp数据写周期时,即数据正向传输时,计算机首先检测nwait信号。如果nwait为低,表示外设已准备好接收数据。计算机把nwrite信号置为低,表明是写周期,同时将数据放到数据总线上,然后置低ndstrb。ndstrb信号就会产生一个下降沿,此下降沿一方面将pa端口的数据锁存到输入宏并使nwait信号变高,表示外设正忙另一方面引起外部中断0中断,在外部中断0的中断服务程序中读取输入宏锁存的数据,然后将nwait信号清零通知计算机现在外设已经准备好可以再次接收数据了。

(2)数据反向传输

外设准备好数据需要上传到计算机时,upsd323x就会将数据放到pa端口,同时置低intr信号线,向计算机申请一个中断,计算机中由一个硬件驱动程序来处理并口的硬件中断。驱动程序在并口中断服务程序中,通过读取epp数据口获得外设上传的数据。由于epp接口的握手信号由硬件产生,当计算机读取epp数据口时同样会检测nwait信号。如果nwait为低,计算机把nwrite信号置高,表明是读周期,然后置低ndstrb,ndstrb信号就会产生一个下降沿。此下降沿使nwait信号变高,同时引起upsd323x外部中断定中断。在外部中断0的中断服务程序中,为确保计算机将pa端口的数据取走,需不断检测ndstrb是否为高。当ndstrb为高时,表示计算机已将pa端口听数据读走,然后中断服务程序将nwait置低,epp数据读周期结束。

结语

本文系统地介绍了epp增强并口协议,并给出使用st公司的upsd323x系列器件实现epp增强并口的接口方法。此方案不需要外接门电路,保密性好,成本低。