◆ 欢迎您预览尼佳特网站,希望能为您解决问题!如在网站没有找到的产品麻烦发邮件沟通nigat168@nigat.com  

> 自动访问> 加入收藏 > English

产品搜索

产品分类
 智能制造
  智能制造线缆组件
  无人机系列
  数据传输
  防爆防水
 航天轨道
  航空 运输线束
  航空连接器
 工业装备系列
  LFH
  DB HDD SDR
  通信网络
  圆形
  医疗系列
  工业用组合线缆
 新能源
  新能源线束
  储能接口
  换电接口
 医疗设备
  医疗接口
 消费电子类系列产品
  USB
  Micro Mini USB
  DIN
  MINI DIN
  D-SUB
   IEEE 1394
  SATA
  HDMI
  DVI
  Displayport
  Mobile 手机数码
   AUDIO JACK
  GAME 游戏机玩具插头
  CARD
  ADAPTER
  RCA
  Modular 网络
  CABLE ASS'Y 组合线缆
  其它系列
 外壳系列
  铝合金外壳
  五金外壳
  塑胶外壳
 车件 CNC 产品
  车件
  CNC产品
 其它系列
您的位置:首 页 >> 技术资讯>> 正文

利用EPP接口协议实现高速数据通信


www.nigat.com 2006年11月12日

     

利用EPP接口协议实现高速数据通信 
 

  摘要:如何实现PC与单片机系统间的高速数据通信,是测量控制系统中经常遇到的难题。本文系统地介绍利用EPP接口协议实现高速数据通信的原理,并从硬件、软件两方面给出一个应用EPP接口协议的设计实例。 
    关键词:单片机系统 高速数据通信 EPP

前言

单片机系统中常常需要具备与PC机通信的功能,便于将单片机中的数据传送到PC机中用于统计分析处理;有时又需要将PC机中的数据装入单片机系统中,对单片机程序进行验证和调试。目前常用的通信方式是串行通信,但传输速率太低,以9600bps计算,传输1MB至少需要10min(分钟)以上。并行通信克服了串行通信传输速率低的缺点。标准并行口SPP(Standard Parallel Port)方式实现了由PC机向外设的单向传输,但实现PC机接收外设发送的数据则非常麻烦;而增强型并行口EPP(Enhanced Parallel Port)协议却很好地解决了这一问题,能够实现稳定的高速数据通信。

一、EPP接口协议介绍

EPP协议最初是由Intel、Xircom、Zenith三家公司联合提出的,于1994年在IEEE1284标准中发布。EPP协议有两个标准:EPP1.7和EPP1.9。与传统并行口Centronics标准利用软件实现握手不同,EPP接口协议通过硬件自动握手,能达到500KB/s~2MB/s的通信速率。

1.EPP引脚定义

EPP引脚定义如表1所列。

表1 EPP接口引脚定义

引脚号 SPP信号 EPP信号 方  向 说       明
1 Strobe nWrite 输出 指示主机是向外设写(低电平)还是从外设读(高电平)
2~9 Data0~7 Data07 输入/输出 双向数据总线
10 Ack Interrupt 输入 下降沿向主机申请中断
11 Busy nWait 输入 低电平表示外设准备好传输数据,高电平表示数传输完成
12 PaperOut/End Spare 输入 空余线
13 Select Spare 输入 空余线
14 Autofd nDStrb 输出 数据选通信号,低电平有效
15 Error/Fault nDStrb 输入 空余线
16 Initialize Spare 输出 初始化信号,低电平有效
17 Selected Printer nAStrb 输出 地址数据选通信号,低电平有效
18~25 Ground Ground GND 地线
2.EPP接口时序

EPP利用硬件自动握手实现主机与外设之间的高速双向数据传输,软件只须对相应端口寄存器进行读/写操作。

(1)EPP写操作时序如图1所示。

CPU实现向外设写数据的操作步骤如下:

①程序对EPP数据寄存器执行写操作;

②nWrite置低;

③CPU将有效数据送到数据总线上;

④nDStrb(nAStrb)变低(只要nWait为低);

⑤主机等待nWait变高,确认数据发送成功;

⑥主机等待nWait变高,确认数据发送成功;

⑦EPP写周期结束。

(2)EPP读操作时序如图2所示。

CPU实现从外设读数据的操作步骤如下:

①程序对相应EPP端口寄存器执行读操作;

②nDStrb(nAStrb)置低(如果nWait为低);

③主机等待nWait为高,确认数据发送成功;

④主机从并行口引脚读取数据;

⑤nDStrb(nAStrb)置高;

⑥EPP读操作周期结束。

3.EPP端口寄存器

EPP接口除了保留SPP的3个端口寄存器以外,还新增了5个端口寄存器,如表2所列。

表2 

地   址 端口名称 方    向
基地址+0 SPP数据端口
基地址+1 EPP状态端口
基地址+2 EPP控制端口
基地址+3 EPP地址端口 读/写
基地址+4 EPP地址端口 读/写
基地址+5 EPP数据端口 读/写
基地口+6 未定义(32位传输) 读/写
基地址+7 未定义(32位传输) 读/写
EPP状态端口寄存器

WAIT INTR USER1 USER2 USER3 × × TMOUT

WAIT:Wait状态位(1有效);

INTR:中断请求状态位(1有效);

USER1~USER3:用户自定义;

TMOUT:保留(EPP1.7)超时标志位(EPP1.9)。

EPP控制端口寄存器。

× × DIR IRQEN ASTRB INIT DSTRB WRITE

DIR:方向位(1输入,0输出);

IRQEN:中断使能位(1有效);

ASTRB:地址选通位(0有效);

INIT:初始化(1有效);

DSTRB:数据选通位(0有效);

WRITE:读/写状态位(0:写,1:读)。

读取接口状态和控制接口都只须对相应的端口寄存器进行操作。以初始化为例:

读操作初始化:outportb(port+2,0x24);

//port为SPP数据端口地址

写操作初始化:outportb(port+2,0x04);

//port+2为EPP控制端口地址

4.EPP1.7和EPP1.9

EPP接口最先有EPP1.7标准定义,由于硬件厂商的原因,EPP现有两个标准:EPP1.7和EPP1.9,可以在BIOS/外围设备/并行口(BIOS/Peripheral Setup/Parallel Port Mode)方式中进行设置。两者有如下不同点:

(1)EPP状态端口寄存器的最低位bit0,在EPP1.9中定义为TMOUT。在EPP操作时序中,如果PC机数据(地址)选通信号变低后,且在10μs时间内,外设未能将nWait置为低,则TMOUT置为1,表示延时。

(2)EPP1.9标准中,只有当nWait为低时,才能开始一个操作周期;但在EPP1.7中,无论nWait状态如何,nAstrb(nDstrb)都会被置低,从而开始一个新的数据(地址)操作周期。

二、EPP接口传输数据的一个实例

在某单片机系统中,须要将单片机系统中数据存储器的大量数据传输到PC机中进行分析处理。EPP接口(采用EPP1.7标准)硬件电路及软件流程图如图3~图5所示。

GAL译码电路方程式为/O1=/I1*/I2*/I3*I4*/I5,EPP接口选通地址为2000H。当单片机执行如下指令:

MOV DPTR,#2000H

MOVX @DPTR,A

就将寄存器A中的数据锁存到数据总线上,便于PC机利用EPP接口进行读操作。

C语言例程:

#define SPPDATA 0x0378 //定义各寄存器地址

#define SPPSTAT 0x0379

#define SPPCNTL 0x037A

#define EPPADDR 0x037B

#define EPPDATA 0x037C

#include<stdio.h>

FILE *fp;

Int data;

Long i;

int k;

fp=fopen(filename,"wb"); //打开要存储数据的文件

outportb(SPPCNTL,0x24);

//向控制端口发00100100代码,初始化为读操作模式for(i=0;i<524288;i++)

{

while(!((inportb(SPPSTAT))&0x80))

//查询是否发送完毕

{}

data=inportb(EPPDATA); //读数据

fputc(data,fp); //将数据存入文件

}

fclose(fp); //关闭文件

单片机汇编语言程序为:

FLAG1 BIT P1.7 ;标志位

FLAG2 BIT P3.4

STADD EQU 0000H ;要传输数据段的起始地址

NUM EQU FFFFH ;要传输数据端的字节个数

COMMUN:MOV DPTR,#STADD

COMM1:MOVX A,@DPTR

PUSH DPH

PUSH DPL

MOV DPTR,#EPP_CE

MOVX @DPTR,A

POP DPL

POP DPH

SETB FLAG1 ;将P1.7置高

CLR FLAG2 ;将P3.4置低

JB FLAG1,$;查询P1.7为低,即nDStrb为低,表示PC读操作已完成

SETB FLAG2 ;将P3.4置高

SETB FLAG1 ;将P1.7置高

INC DPTR

CJNE NUM,COMM1 ;循环NUM次

RET

实际应用该接口电路,能实现1MB/s的传输速率,并且性能稳定可靠。

如果应用EPP1.9标准,硬件电路不用变动,软件中可以省略对nWait进行判断的环节,速率能接近2MB/s。

结束语

本文系统介绍了EPP接口的原理,并且给出了一个利用EPP接口实现PC与单片机系统间高速传输的实例。EPP接口协议解决双向高速数据传输的难题,在智能测量、自动控制、数据传输等领域必将得到广泛的应用。

Copyright©2008- NIGAT Electronics Shenzhen Co.,Ltd.  All right reserved 粤ICP备05066687号
尼佳特电子(深圳)有限公司  工厂地址:深圳市宝安区沙井街道 沙四高新科技园E栋(518110) 访问统计: 
业务电话:0755-2997 3249  图文传真:0755-2997 3252  移动电话:0 13428687862   在线咨询:  
在线网站:www.nigat.com   电子邮箱:nigat168@nigat.com   技术支持:中采网 IC160.com