会员服务
  首页 | 最新采购 | 现货热卖 | IC库存 | 应用资料&程序库 | 单片机销售 | 交流区 | 供应商 | 生产商 | 技术资料
应用资料:  
您现在的位置:首页 >  技术资料   上载库存  

虚拟仪器中的EPP接口设计

虚拟仪器是计算机软件和硬件(处理器、存储器、显示器)及测试功能硬件(数/模变换器、模/数变换器、定时和计数、数字输入输出等)构成的测试平台,他融合了测试理论、仪器原理、电子技术、计算机接口、总线技术以及软件编程技术于一身,实现了测量仪器的系列化、模块化、智能化和网络化,具有多功能、低成本、应用灵活、操作方便等优点,成为仪器发展的一个重要方向。

虚拟仪器与微型计算机的接口主要有3种形式:

(1)通用仪器总线接口 最典型的是VXI总线(VMEbus Extensions for Instrumentation,VME总线在仪器领域的扩展),该总线数据传输速度可达40Mb/s,其电气标准规范,系统重组和电磁兼容性均较好,可靠性高,并具有同步触发功能;但系统结构复杂、成本高,一般适合于组建大型精密的自动测试系统,如航空测试系统,军用测试系统。

(2)计算机内部插卡式接口 主要有微机内部的ISA接口和PCI接口,数据传输速度分别可达16Mb/s和133Mb/s;价格适中,适用于中小型测试系统。但由于插卡式结构的虚拟仪器直接插在微机内部的主板上,极易受到PC机的电源纹波和机箱内电磁辐射的干扰,从而限制了他的应用范围。

(3)计算机外部通用总线接口 主要有增强并行接口EPP(Enhanced Parallel Port,IEEEl284)、扩展能力接口 ECP(Enhanced Capability,PortIEEEl284)、通用串行总线USB(Universal Serial Bus)和火线Fire wire(即IEEEl394总线),数据传输速度分别可达2Mb/s,4Mb/s,12Mb/s和400Mb/s。EPP和ECP是在原打印机接口基础上发展起来的并行接口;USB,Fire wire是新型高速串行总线,并具有热插拔能力。由于采用外部通用接口的虚拟仪器硬件在微机外部与计算机相联,因此电磁兼容特性良好。特别是增强并行接口EPP,技术的复杂性和成本都不会太高,是构建通用自动测试系统的一种良好选择。由于插拔不用开机箱,使用方便,尤其是适用于笔记本电脑。

本文仅讨论使用EPP井口的虚拟仪器。

2 EPP增强型并行接口

EPP协议是一种与标准并行口兼容且能完成双向数据传输的协议。该协议定义的并行口更像一个开放的总线,给用户提供了强大的功能和灵活的设计手段。

2.1 EPP信号特性

当计算机井口工作于EPP模式时,实际上只用了8条数据线Data0~7和5条信号线nWrite,nWait,uDataStrobe,nAddrStrobe,nReset("n"表示低有效)。EPP信号引脚的定义与标准并口的定义有所不同,如表1所示。


2.2 EPP端口寄存器

EPP端口与标准井口SPP兼容,并增强定义了新的端口地址,如表2所示(Base为并口基地址:如LPTl为378H)。


当对基地址端口进行I/O操作时,就如同使用标准井口一样,必须由软件程序检测当前状态以产生必要的控制信号。要同EPP外设通信,则从EPP地址端口Base+3读写地址,从EPP数据端口Base+4读写数据。由于计算机井口只有8b数据线,16b或32b数据必须分成若干字节分别传送。如果设备端口有16b或32b数据线,可以利用Base+5,Base+6和Base+7三个端口直接完成16b或32b数据传输。

2.3 EPP时序

与标准并口通过软件检测外设状态并产生握手信号不同,EPP只需对相应端口进行一次I/O操作,读/写周期即开始,计算机自身产生一系列异步、互锁信号,自动完成握手操作,避免了程序的复杂性,使得EPP数据传输率接近标准PC内部ISA总线的传输率,典型的EPP传输速率为500kb/s~2Mb/s。

EPP协议定义的并行口提供了4种传送周期:数据写周期、数据读周期、地址写周期和地址读周期。数据周期一般用于计算机向外设发送命令和控制信号,以及向外设传送数据。地址周期一般用于传送地址、通道等信息。实际上,数据周期和地址周期并没有那么严格的界限,可以把地址周期看作另一种数据周期。图1~图4是4种周期的时序图。

EPP时序规定nDataStrobe(nAddrStrobe)信号在PC检测到nWait有效后才能置低,nDataStrobe(nAddrStrobe)有效又导致nWait信号变高,即通知PC结束该读写周期,nDataStrobe(nAddrStrObe)随后恢复到空闲时的高电平状态。上述信号之间的互锁关系可用下式实现。

2.4 EPP初始化

在EPP处于空闲状态时,nDataStrObe,nAddrStrObe,nWrite和nReset信号必须无效且p处于高电子状态。有的PC机需要程序在读写EPP之前对井口控制寄存器(BASE+2)相应位(Bit 0,Bitl,Bit3)初始化,即向控制寄存器写入xxxx0100的控制字。而有的井口当其被置于反向传输模式时,将无法正常实现EPP写周期,需要在使用EPP之前将并口置于正向传输模式,即清除控制寄存器的第5位Bit5。所以在发生上述情况时,程序在访问EPP数据、地址寄存器之前需先向控制寄存器写入xxoxol00的控制字。

3 虚拟仪器EPP并行接口电路设计

虚拟仪器通过EPP并行接口连接PC计算机,硬件电路板包括多路数字量输入/输出、定时器/计数器、A/D转换器及D/A转换器、存储器等,软件包括硬件I/O驱动程序、仪器驱动程序、数据采集和处理模块、面板显示程序等,通过软件编程可构成交直流电压表、
频率计、多波形程控信号源、数字存储式示波器等虚拟仪器。

电路板内采用了总线结构,各功能部件均连接在模板的内部总线上。EPP有8条数据/地址共用线,因此只能采用分时复用的方法提供所需要的数据和地址总线。此外,还需要为各输入输出电路提供读写信号和片选信号。

为简化设计,使用CPLD芯片EPM7128SLC84完成电路板到EPP并口的接口电路。CPI。D的设计输入采用A1tera公司的硬件描述语言HDL(Hardware Describable Language),开发工具为MAX-PI。USⅡ,设计输入、编译、仿真、修改及下载和电路验证都非常方便。EPP接口电路设计文件如下:

SUBDESIGN EPP
(//前3行是连接EPP井口的数据、选通、读写、等待信号
data[7..0] :BIDIR'
naddstb, ndatastb, nwrite :INPUT;
nwait ;OUTPUT;
//以下是CPLD输出的信号
db[7..0] ;BIDIR; //双向8位数据总线
a[7..0] :OUTPUT; //8位地址总线
rd,wr :OUTPUT; //读写信号
csout[7..0] :OUTPUT; //8个输出端口片选信号
csin[7..0] :OUTPUT; //8个输入端口片选信号
)
BEGIN
Nwait=!(naddstb #ndatastb);
IF ndatastb= =GND AND nwrite= =GND THEN
db[7..0]=data[7..0]; //数据写周期
END IF;
IF naddstb= =GND AND nwrite= =GND THEN
a[7..0] =data[7..0]; //数据写周期
END IF;
IF ndatastb= =GND AND nwrite= =GND THEN= =
VCC THEN //数据写周期
data0=OPNDRN(db0);
datal=OPNDRN(dbl);
data2=OPNDRN(db2);
data3=OPNDRN(db3);
data4=OPNDRN(db4);
data5=OPNDRN(db5);
data6=OPNDRN(db6);
data7=OPNDRN(db7);
END IF;
rd:nwrite#ndatastbl
wr=!nwrite#ndatastb;
TABLE //8个输出端口片选信号, 地址为0~7
nwrite,naddstb,a[] => csout[];
0 ,0 ,H〞0〞 =>B〞11111110〞;
0 ,0 ,H〞10〞 =>B〞11111101〞;
0 ,0 ,H〞2〞 =>B〞11111011〞;
0 ,0 ,H〞3〞 =>B〞11110111〞;
0 ,0 ,H〞4〞 =>B〞11101111〞;
0 ,0 ,H〞5〞 =>B〞11011111〞;
0 ,0 ,H〞6〞 =>B〞10111111〞;
0 ,0 ,H〞7〞 =>B〞01111111〞;
END TABLE;
TABLE //8个输入端口片选信号, 地址为0~7
nwrite,ndatastb,a[] => csin[] ;
1 ,0 ,0 =>B〞011111110〞;
1 ,0 ,1 =>B〞11111101〞;
1 ,0 ,2 =>B〞11111011〞;
1 ,0 ,3 =>B〞11110111〞;
1 ,0 ,4 =>B〞11101111〞;
1 ,0 ,5 =>B〞11011111〞;
1 ,0 ,6 =>B〞l0111111〞;
1 ,0 ,7 =>B〞01111111〞;
END TABLE;
END;

4 对EPP接口的I/O操作编程

使用Lab Winds/CVI虚拟仪器开发平台,设计了3个EPP接口功能函数。使用时首先初始化EPP接口,然后再调用EPP的输入或输出函数即可。

(1)初始化EPP接口函数

viod epp_init ()
{ outp (0x3a,0x24);}

(2)EPP接口输出数据函数:先向地址寄存器写入I/O 8b地址,再向数据寄存器输出数据。

viod epp_out(unsigned short stdaddr,unsigned chardada)
{ outpw(Ox37b,stdaar);
outp(0x37c,data); }

(3)通过EPP接口输入数据函数:先向地址寄存
器写入I/O 8b地址,再从数据寄存器输人数据。

void epp-in(unsigned short staddr,unsigned char *dada)
{ outpw (0x37b,staddr);

5 结 语

在虚拟仪器中使用增强并行接口EPP,具有数据传输速度高(2Mb/s),电磁兼容特性良好。由于插拔不用开机箱,使用方便,具有热插拔能力,尤其是适用于笔记本电脑。技术复杂性和成本都不会太高,是构建通用自动测试系统的一种良好选择。EPP的接口
电路采用CPLD,设计快速,硬件实现容易,简化了软件开发。


关于我们 | 会员服务 | 广告服务 | 支付方式 | 联系我们 | 友情链接

会员服务热线:

深圳矽通科技版权所有 © Copyright 2005-2007, ic-cn.com.cn All Right Reserved.  
深  圳13410210660             QQ : 317143513   点击这里与电子元件采购网联系
客服联系: MSN:CaiZH01@hotmail.com       E-mail:CaiZH01@163.com