虚拟仪器中的EPP接口设计
出处:andyxgui 发布于:2007-05-27 12:55:01
虚拟仪器与微型计算机的接口主要有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,设计快速,硬件实现容易,简化了软件开发。
版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
- 什么是氢氧燃料电池,氢氧燃料电池的知识介绍2025/8/29 16:58:56
- SQL核心知识点总结2025/8/11 16:51:36
- 等电位端子箱是什么_等电位端子箱的作用2025/8/1 11:36:41
- 基于PID控制和重复控制的复合控制策略2025/7/29 16:58:24
- 什么是树莓派?一文快速了解树莓派基础知识2025/6/18 16:30:52













