计算机并口EPP模式及基于XC95144芯片实现它的通信设计

前言
计算机的并行接口一开始是作为打印机接口而设计的。随着计算机周边设备的不断扩展,人们对提高计算机外设的数据采集速度的要求也越来越高。传统的异步串行通讯方式虽然具有数据传输距离较远的优势,但是由于数据传输速度慢,会造成传输速率的瓶颈问题。所以在一些需要高速数据传输的场合,使用并行接口一直是一种比较理想的解决方法。
1、并口epp模式介绍
1.1并行接口的种类
最初的pc机并口由8个单向输出,5个位输入和4位双向(控制)线组成(spp),如今为了适应扩展外围设备的需要,并口已经发展出了多种工作模式。总共有标准并行接口(spp)、简单双向接口(ps/2)、增强型并行接口(epp)和扩展功能接口(ecp)模式和多模式接口(ecp+epp)这几种。epp工作模式作为一个提供高性能并口连接的方法,仍与spp兼容。epp工作模式的优点概括如下:
1)8位数据线由原来spp的单向改成了双向,简化了外围电路的设计;
2)在一个isa的周期可以完成一次数据的传输,大大加快了数据传输速率;
3)只需要对计算机发送一条简单软件指令,接口硬件就可以自动生成握手联络信号;
4)接口数据线可以分别定义为数据和地址,通过综合使用nastrb和ndstrb两条控制线可以快速的实现数据向不同的设备传输;
5)相对ecp的工作模式,epp具有操作简单、易于实现的特点;
1.2 epp的硬件接口
epp接口通常是25芯的d-sub接口,符合ieee1284标准。其中数据选通和地址选通信号为低电平有效, 且两者不可能同时为低, 等待信号(nwait) 为握手信号,主要是考虑pc比外设快, 外设通过发送等待信号与pc并口协调工作。空闲信号线(spare)可以由外设根据需要来决定其状态,由pc直接读取并口状态寄存器的相应位来获得spare的状态信息。
1.3 epp寄存器说明
在pc机中,标准并行接口使用了3个8位的端口寄存器。pc就是通过对这些寄存器,也就是通常所说的数据、状态、控制寄存器的读写访问并口信号的,这3个寄存器的地址分别是基地址、基地址+1、基地址+2。如今,epp将在基地址+3到基地址+7的范围内,添加5个寄存器。所以epp一共使用了8个寄存器,表1列出了这些寄存器及其功能。
表1 epp的8个寄存器及他们的功能
为了能够在epp模式下读写一个数据字节,你需要将数据读取或者写入epp数据寄存器(基地址+4),而不是读写基地址。同样的,地址的读写也是通过读取或者写入epp的地址寄存器(基地址+3)来实现的。epp的基地址通常是378h和278h。
1.4 epp工作模式的时序分析
在epp和ecp模式中,简单的端口读写操作就会自动产生握手联络信号,这简化了很多软件上的设计。图1是一个epp地址写入周期的时序图。如图所示,对epp数据寄存器的写操作将导致接口启动一个完整的数据写入周期。接口的硬件把待写入数据置于d0~d7,然后接口自动触发握手联络信号,并检测外设的应答。读取一个字节的过程与此类似。同样的,对epp地址寄存器进行读写操作将引发一个完整的数据读写周期。所以,仔细研究epp工作状态的时序是非常重要的。
图1 epp地址写入周期的时序图
2、基于wdm的并口驱动程序的实现
在设计pc机外围产品时,不仅需要考虑pc接口定义,与接口相关的寄存器定义,数据传输协议,还要根据上位机采用的操作系统来编写合适的通讯程序,以便上位机对数据进行管理和监控。早期的windows98以及更低版本的操作系统,可以直接访问并口硬件资源,比如使用c语言中的inp()和outp()函数来编写简单的通讯程序。但windows2000/xp的操作系统采用了一些保护措施,阻止对端口的直接访问。这样做虽然提高了系统运行的可靠性,但也增加了软件上实现通讯的难度。
2.1 wdm驱动程序的种类和结构
wdm(win32 driver model),即windows驱动程序模型,是microsoft力推的全新驱动程序模式,可以用来开发windows 98和windows 2000设备驱动程序。图2显示了在win2000/xp系统中应用程序调用一个硬件操作的基本过程,从中可以看到wdm在整个驱动体系结构中的位置何作用。
图2 win2000的驱动体系结构
如图所示,wdm的驱动程序是分层的,一般按照层次分为高层、中间和底层三类。顾名思义,高层驱动程序依赖于中间和底层驱动程序完成工作,而中间驱动程序又依赖于底层驱动程序来完成工作。其中各层驱动程序的详细介绍请参阅参考文献[1]。
图3 并行口epp模式驱动程序接口框图
2.2 并口epp模式驱动程序的功能实现
wdm驱动程序开发工具通常用numega driverstudio。因为它可以集成到vc++ 开发环境中,这样就可以像生成其他工程一样生成驱动程序框架,省去了大量的编写代码的时间。
2.3 epp模式的基本操作
首先定义类kiorange的一个实例,以对应epp
下面就可以用类kiorange的成员函数来访问epp的寄存器:
3、并口epp模式外围电路硬件设计实例
由上文可知,并口epp模式下的数据传输速度可以达到?s级,所以使用一般的单片机来控制外设与epp的通讯显然不能满足高速的要求。早期,工程师使用大量的逻辑分立元件来设计epp的外围电路,但是当计算机的主频越来越高,epp 模式在高速数据传输中可靠性明显下降, 因此本文采用大规模可编程逻辑器件, 充分利用其高速和大容量特性设计接口电路, 不仅可大大提高其可靠性, 且易于系统扩展和升级, 可广泛用于数据采集、d/a 转换以及数字控制。
采用xilinx公司的xc95144芯片作为epp接口模块的控制单元,并且通过xc95144实现了计算机并口与外部存储器sram的数据交换。在某些外设需要数据存储和与pc机进行数据交换的应用场合得到了成功的应用。该epp接口模块的总体框架如图4所示。
图4 epp接口模块逻辑框图
如图4所示,cpld内部由各个负责不同功能的子模块组成,其作用与早期的分立元件一样,所有子模块用verilog设计实现,并且通过了仿真验证。采用ecs将所有的子模块组织起来,集成在一块cpld内。这样做大大提高了整个系统运行的可靠性,同时也为系统扩展其他功能提供条件。
由于sram相对dram具有存储速度块,无需定时刷新,控制信号简单的优点,所以被广泛的用于需要高速数据处理的小型设备中。图4中的sram采用issi的is61c6416,存储容量是64k×16位。地址线和数据线都是16条,但是epp每次只能传送一个字节的数据,所以cpld内部需要配置4个8位的数据寄存器,分别保存sram的地址和数据总线上的数据。
图4中的总线74ls245是一个总线收发器,由nwrite信号控制并口数据的传输方向。74ls138子模块是一个3-8译码器,通过epp的地址线向138写入数据,使能不同的触发信号(ck)来锁存sram的地址或者数据总线上的高/低8位数据。该模块的verilog核心源码如下:
由此可知,如果希望向sram的地址低8位写入数据,pc只需执行outp(0x378+3, 0x00),outp(0x378h+4,地址低8位值) 两条指令,在执行后一条指令的同时,ck_al选通信号将并口的数值锁存到sram地址低8位锁存器中。在ck_dh信号触发的同时将由nwe_cre模块使能一个nwe信号,将数据写入sram。
4、总结
采用增强型并口(epp)模式,可以极大地扩展并口通讯的容量和速度。编写针对并口的wdm驱动程序,既可以保证系统运行的可靠性,也可以增加驱动程序的可移植性。使用cpld设计并口epp接口模块,可以*限度的体现epp高速传输的特性,而且由于将所有的功能模块集成在一块芯片中,提高了系统的可靠性,特别是xc95144具有的isp(在线可编程)技术使复杂的接口电路可根据具体的应用加以修正,大大增强了接口电路的灵活性和可扩展性。本文设计的epp接口模块已被成功的运用到某款单片机仿真器产品中,实验证明这种设计是可行的。


预测2021年电信行业将有1%的增长,在2021年收回损失的三分之一
环境光传感器发展趋势
PC订单需求旺盛,联宝科技新招聘员工近万人
DPCNN,究竟是多么牛逼的网络呢?
在IoT时代智能家庭网关系统被颠覆_有哪些新变化
计算机并口EPP模式及基于XC95144芯片实现它的通信设计
MWC究竟有哪些优秀的手机设备
3GPP对于5G标准和产业可持续性发展设立了23个标准立项
企业作业数字化转型需要什么工具,华为 ISDP 有话说
TCL两款折叠屏概念机展示,采用两种不同类型的铰链
AI教师出道,颠覆传统教育模式
回流炉设备维护与保养内容的详细介绍
汕头移动SPN+5G固移融合切片专线助力医联体创新发展
12英寸集成电力生产线项目概况
ICT:让农村生活更美好!
树莓派利用Nodejs+Express开发关于硬件监控的服务讨论
关于雷达的相关计算
TFT LCD面板产业2012年呈复苏
红外线遥控鼠标器的原理,如何进行安装和调试
掀开Mini LED华丽的外衣,直击其技术的核心本质:芯片与封装