当前位置:首页 > 智能硬件 > 智能硬件
[导读]本文系统地介绍利用EPP接口协议实现高速数据通信的原理,并从硬件、软件两方面给出一个应用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接口协议解决双向高速数据传输的难题,在智能测量、自动控制、数据传输等领域必将得到广泛的应用。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

5G是指第五代移动通信系统。它们属于移动通信标准的下一个主要阶段,目前的4G网络将遵从国际移动通信(IMT)于2020制定的ITU-R要求,与目前4G以下的系统相比.

关键字: 5G 数据通信 通信系统

随着信息技术的飞速发展,数据通信作为连接世界的桥梁,其重要性日益凸显。为了确保数据通信的高效、稳定和可靠,我们需要关注一系列关键的技术指标。本文将深入解析数据通信的主要技术指标,并探讨其前沿发展。

关键字: 数据通信 数据传输

在这篇文章中,小编将对端口的相关内容和情况加以介绍以帮助大家增进对它的了解程度,和小编一起来阅读以下内容吧。

关键字: 端口 控制端口

随着科技的飞速发展,数据通信已成为我们生活中不可或缺的一部分。无论是在工作中传输文件,还是在家庭中共享数据,数据通信都扮演着重要的角色。本文将介绍几种常见的数据通信方式,并探讨它们的特点和适用场景。

关键字: 数据通信 有线通信 无线通信

符号(symbol)。通过不同的调制方式(诸如FSK、QAM等等),可以在一个码元符号上负载多个bit位信息。举个例子,4QAM(即QPSK)调制的全部四种码元符号,一种符号可以带两个bit的信息。

关键字: 数据通信 传输速率 FSK

数据通信是计算机与计算机或计算机与其他数据终端之间存储、处理、传输和交换信息的一种通信技术,是计算机技术与通信技术相结合的产物。

关键字: 数据通信 存储 调制器

在当今的数字世界中,无论是浏览网页、发送电子邮件还是进行在线交易,所有这些行为的背后都依赖于一个关键组成部分:数据通信协议。简而言之,数据通信协议就是定义电子设备如何交换数据的一系列规则和标准。这些协议确保信息能够在不同...

关键字: 数据通信 计算机网络

并行通信:是指利用多条数据传输线将一个资料的各位同时传送。它的特点是传输速度快,适用于短距离通信,但要求通讯速率较高的应用场合。

关键字: 数据通信 并行通信 串行通信

数据通信是指利用电磁波、电子技术、光电手段,借助电信号或光信号实现把消息从一地向另一地或多地进行消息地有效传输和交换的过程。通信的实质就是实现信息的有效传输,它不仅要将有用的信息进行无失真、高效的传输,而且还要在传输的过...

关键字: 数据通信 电子技术

在当今数字化时代,网络已经成为我们生活和工作中不可或缺的一部分。无论是家庭网络还是企业网络,都需要有效的网络设备来实现数据通信和资源共享。而网络交换机作为一种重要的网络设备,扮演着连接和管理网络设备的关键角色。本文将探讨...

关键字: 网络设备 数据通信 交换机
关闭
关闭