嵌入式
返回首页

基于uPSD323X的EPP增强并口的接口技术

2012-04-25 来源:dzsc

  引言

  在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信号 方 向 说   明
1 nWrit 输出 指示主机是向外设写(低电平)还是从外设读(高电平)
2~9 Data0~7 输入/输出 双向数据总线
10 Interrupt 输入 下降沿向主机申请中断
11 nWait 输入 低电平表示外设准备好传输数据,高电平表示数据传输完成
12 Spare 输入 空余线
13 Spare 输入 空余线
14 nDStrb 输出 数据选通信号,低电平有效
15 Spare 输入 空余线
16 Ninit 输出 初始化信号,低电平有效
17 nAStrb 输出 地址数据选通信号,低电平有效
18~25 Ground GND 地线

  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增强并口的接口方法。此方案不需要外接门电路,保密性好,成本低。

进入嵌入式查看更多内容>>
相关视频
  • PX4固件二次开发课程

  • RISC-V嵌入式系统开发

  • NuttX Workshop 2024

  • 自己动手写操作系统

  • SOC系统级芯片设计实验

  • 自己动手做一台计算机

精选电路图
  • 单稳态控制电路设计与分析

  • IGBT模块通过控制门极阻断过电流

  • MT3608构成3.7V转12V的升压电路图

  • 运算放大器IC741的基本工作原理及在电路中的实现方式

  • 基于M66T旋律发​​生器的电路图解析

  • 基于TDA1554的立体声放大器电路

    相关电子头条文章