电子发烧友网 > 接口/总线/驱动 > 正文

EPP接口协议的原理及实现PC与单片机系统间高速传输的电路设计

2020年04月08日 10:00 次阅读

前言

单片机系统中常常需要具备与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所列。

EPP接口协议的原理及实现PC与单片机系统间高速传输的电路设计

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所列。

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

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

USER1~USER3:用户自定义;

TMOUT:保留(EPP1.7)超时标志位(EPP1.9)。EPP控制端口寄存器。

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

FILE *fp;

Int data;

Long i;

int k;[page]

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接口协议解决双向高速数据传输的难题,在智能测量、自动控制、数据传输等领域必将得到广泛的应用。

责任编辑:gt

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播

电子发烧友观察

一线报道 · 深度观察 · 最新资讯
收藏 人收藏
分享:

评论

相关推荐

书童哥(龙顺宇)62讲生动课程带您玩儿转STM8单片机

【课程介绍】:朋友们大家好,本套视频教程由本人录制,现做为录播课程上传至电子发烧友网平台,感谢电子发烧友网让单片机学习的
发烧友学院发表于 2019-01-19 00:00 3004次阅读
书童哥(龙顺宇)62讲生动课程带您玩儿转STM8单片机

物联网之阿里云教程(2)——基于官方SDK接入阿里云串口获取云下发数据

一、获取阿里云IoT设备认证三元组 二、安装安信可一体化开发环境 三、下载乐鑫官方SDK 四、下载aliyun_mqtt_a...
发表于 2020-04-08 08:58 49次阅读
物联网之阿里云教程(2)——基于官方SDK接入阿里云串口获取云下发数据

想在atmega16单片机上加一个GSM模块,请问需要选择哪种GSM模块???

想在atmega16单片机上加一个GSM模块, 请问需要选择哪种GSM模块??? 如果可以请具体到型号什么的, 跪谢大...
发表于 2020-04-07 22:27 34次阅读
想在atmega16单片机上加一个GSM模块,请问需要选择哪种GSM模块???

LWIP实验网络调试助手发送数据,单片机接受不到

我已经把网址设置好了,而且连接成功,但是网络调试助手向单片机发送数据时,单片机接受不到,大家帮帮我...
发表于 2020-04-07 21:59 2次阅读
LWIP实验网络调试助手发送数据,单片机接受不到

Intel被分析师看好 远程办公需求正在利好PC...

2020年过去了1/4了,这几个月全球都因为COVID-19陷入了混乱,正常的工作、生活都被打乱了。....
发表于 2020-04-07 14:43 49次阅读
Intel被分析师看好 远程办公需求正在利好PC...

求助STM32L433单片机串口下载程序问题

[table] [tr][td]该单片机没有BOOT1引脚,只有BOOT0引脚,此时需要实现串口下载程序已经不能按照F1系列的拉...
发表于 2020-04-07 10:50 133次阅读
求助STM32L433单片机串口下载程序问题

TWS无线耳机充电仓PCBA方案设计

TWS耳机是近两年比较热门的一款产品,其技术实现是基于蓝牙芯片技术的发展,工作原理为通过手机蓝牙连接....
发表于 2020-04-07 09:18 192次阅读
TWS无线耳机充电仓PCBA方案设计

请问有lcd240128多级菜单程序吗?

求51单片机的一个完整的多级菜单程序
发表于 2020-04-07 09:01 23次阅读
请问有lcd240128多级菜单程序吗?

MPLAB编译出现程序跑飞

基于pic16f877A单片机,用MPLAB编写。编写的子程序(延时程序或者空语句),不管主程序有没有调用,都会出现程序...
发表于 2020-04-07 09:00 31次阅读
MPLAB编译出现程序跑飞

单片机如何获取电脑的分辨率和绝对坐标值?

发表于 2020-04-07 08:26 24次阅读
单片机如何获取电脑的分辨率和绝对坐标值?

嵌入式操作系统怎么选择?

嵌入式操作系统是ARM CPU的软件基础,从8位/16位单片机发展到以arm CPU核为代表的32位嵌入式处理器,嵌入式操...
发表于 2020-04-07 07:13 50次阅读
嵌入式操作系统怎么选择?

多功能测量系统有什么功能?

随着电子技术的发展,居民普遍使用电子温度计或万年历自带的温度计来测量室内温度,但是,随着环境污染的日趋严重及人...
发表于 2020-04-07 07:11 47次阅读
多功能测量系统有什么功能?

怎么利用单片机接入Internet网络?

近年来以单片机(Micro Computer Unit,MCU)为代表的嵌入式系统在工业探测系统、智能仪器、安防系统、智能家电...
发表于 2020-04-07 06:30 42次阅读
怎么利用单片机接入Internet网络?

单片机可以同时处理多个任务吗

单片机可以按分时、顺序、中断的方法处理多个任务。
发表于 2020-04-06 15:43 78次阅读
单片机可以同时处理多个任务吗

使用单片机实现数字电压表的资料详细说明

利用单片机AT89S51与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数....
发表于 2020-04-06 13:46 118次阅读
使用单片机实现数字电压表的资料详细说明

单片机点阵式LED简单图形显示技术的实验资料概述

在8X8点阵式LED显示“★”、“●”和心形图,通过按键来选择要显示的图形。
发表于 2020-04-06 13:26 149次阅读
单片机点阵式LED简单图形显示技术的实验资料概述

使用单片机实现数字温度计设计的资料详细说明

AD590产生的电流与绝对温度成正比,它可接收的工作电压为4V-30V,检测的温度范围为-55℃-+....
发表于 2020-04-06 13:04 122次阅读
使用单片机实现数字温度计设计的资料详细说明

使用单片机实现两点间温度控制的实验详细说明

用可调电阻调节电压值作为模拟温度的输入量,当温度低于30℃时,发出长嘀报警声和光报警,当温度高于60....
发表于 2020-04-06 13:04 104次阅读
使用单片机实现两点间温度控制的实验详细说明

使用单片机实现音乐程序设计的详细资料说明

利用单片机(或单板机)奏乐大概是无线电爱好者感兴趣的问题之一。本文从单片机的基本发间实验出发,谈谈音....
发表于 2020-04-06 12:37 81次阅读
使用单片机实现音乐程序设计的详细资料说明

单片机的引脚图和及引脚功能详细说明

40个引脚按引脚功能大致可分为4个种类:电源、时钟、控制和I/O引脚。
发表于 2020-04-06 12:13 138次阅读
单片机的引脚图和及引脚功能详细说明

采用现场总线和PLC技术实现高炉自动化控制系统的...

工业现场总线技术是近几年自动化行业最为关注的技术之一,给各行各业的自动化控制技术带来了一次质的飞跃。
发表于 2020-04-05 08:27 49次阅读
采用现场总线和PLC技术实现高炉自动化控制系统的...

基于Profibus-DP协议和PLC器件实现辊...

  在自动化系统的配置中即要保证系统的先进、可靠、合理性,又要避免过剩功能,降低投资成本。2000年....
发表于 2020-04-05 08:17 36次阅读
基于Profibus-DP协议和PLC器件实现辊...

基于MPC8560微控制器的吉比特以太网物理层协...

随着网络技术的发展,网络通信控制器的应用已经越来越广泛。集成PowerPC微处理器的MPC8560 ....
发表于 2020-04-04 18:03 30次阅读
基于MPC8560微控制器的吉比特以太网物理层协...

初学者参考的几种单片机比较

使用的人很多,资料很多,根本不需要技术支持。价钱便宜(如批量AT89c52只需要8.5RMB)。但普....
发表于 2020-04-04 17:35 138次阅读
初学者参考的几种单片机比较

单片机IO口的三种输出模式介绍

单片机IO口输出一般有准双向口输出、 推挽输出、开漏输出等,下面介绍这三种输出模式。
发表于 2020-04-04 17:30 90次阅读
单片机IO口的三种输出模式介绍

六种常用的单片机实力大比拼

51单片最初是由Intel始创的8004单片机开始,这是8位的单片机,特点是:寄存器少。很多功能需要....
发表于 2020-04-04 17:26 234次阅读
六种常用的单片机实力大比拼

单片机哪家强?实力大比拼

AVR单片机是由Atmel公司最初提出,也是8位单片机,后来也有16位的,但是与51不一样,它内部指....
发表于 2020-04-04 16:25 43次阅读
单片机哪家强?实力大比拼

英飞凌AURIX获得最高汽车安全完整性等级认证的...

AURIX系列在安全相关应用中一直非常成功。领先的自动驾驶计算平台采用AURIX作为其安全主控制器。
发表于 2020-04-04 08:35 255次阅读
英飞凌AURIX获得最高汽车安全完整性等级认证的...

电机控制芯片iMOTION™ IMC300,助力...

凭借MCEWizard和MCEDesigner等实用工具,在实现变速驱动时,只需对相应电机的MCE进....
发表于 2020-04-03 16:21 299次阅读
电机控制芯片iMOTION™ IMC300,助力...

基于MSP430系列单片机快速开发红外体温检测仪...

MSP430系列单片机是德州仪器(TI)公司1996年开始推向市场的一种16位超低功耗RISC混合信....
发表于 2020-04-03 16:13 278次阅读
基于MSP430系列单片机快速开发红外体温检测仪...

关于物联网设备开发,这三件事攸关重要!

物联网,早已成为近年来最热话题之一,尤其在AI和5G的推动下,万物互连已经越来越成为很多公司的口号与....
发表于 2020-04-03 14:55 34次阅读
关于物联网设备开发,这三件事攸关重要!

基于80C32单片机和SPC3芯片的通讯适配器实...

现代纸机传动控制系统广泛地采用了总线通讯同步控制方式,纸机的控制精度、可靠性和实时性有了很大的提高。....
发表于 2020-04-03 09:23 86次阅读
基于80C32单片机和SPC3芯片的通讯适配器实...

为航空飞机提供高精确度的发电机测试:变送器Sin...

发电机为航空飞机提供动力,在安全方面具有重要意义。其功能效率和可靠性必须随时得到保障。奥地利一家名为....
发表于 2020-04-02 15:56 47次阅读
为航空飞机提供高精确度的发电机测试:变送器Sin...

如何对单片机的定时器进行赋初值

用proteus搭建的电路图如下,晶振为12M,P2.0每10ms翻转一次,即P2.0输出的频率为1....
发表于 2020-04-02 15:46 136次阅读
如何对单片机的定时器进行赋初值

单片机通信接口的物理结构和固件特性分析

对单片机的通信性能可以从通信接口性能和软件处理能两个方面进行考虑。通信接口性能主要表现在与通信有关的....
发表于 2020-04-02 15:24 110次阅读
单片机通信接口的物理结构和固件特性分析

如何实现单片机的待机唤醒

1、睡眠模式(Cortex-M3内核停止,所有外设包括Cortex-M3核心的外设,如NVIC、系统....
发表于 2020-04-01 16:19 129次阅读
如何实现单片机的待机唤醒

基于单片机和CAN控制器实现火灾报警控制系统的显...

目前国内现有的火灾楼层显示器大都以51单片机作为MCU。因为ROM寻址空间所限,火灾楼层显示器大都只....
发表于 2020-04-01 09:55 126次阅读
基于单片机和CAN控制器实现火灾报警控制系统的显...

单片机系统中晶振的作用是什么

晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。在通常工作条....
发表于 2020-03-31 15:52 205次阅读
单片机系统中晶振的作用是什么

新手该如何才能尽快地学会使用单片机

在学习单片机之初应当有一些基础知识准备。单片机是电子技术发展到一定程度才出现的产物,本身就是众多电子....
发表于 2020-03-30 15:36 255次阅读
新手该如何才能尽快地学会使用单片机

如何解决单片机系统失效的问题

一个单片机系统的可靠性是其自身软硬件与其所处工作环境综合作用的结果,因此系统的可靠性也应从这两个方面....
发表于 2020-03-30 15:31 98次阅读
如何解决单片机系统失效的问题

OBG调试接口在单片机中的应用解析

OBG在单片机中的解释STM32单片机的内核(Cortex-M3)含有硬件调试模块,支持多种复杂的调....
发表于 2020-03-30 15:19 69次阅读
OBG调试接口在单片机中的应用解析

38译码器真值表讲解

从这个名字来剖析,三八译码器,就是把 3 种输出形态翻译成 8 种输入形态。从图 3-15所能看出来....
发表于 2020-03-30 09:32 328次阅读
38译码器真值表讲解

基于单片机和TC35i型无线通信GSM模块实现L...

随着通信技术的发展,基于移动通信网络的服务功能正向工业控制和遥控领域扩展。为了适应这种需要,西门子公....
发表于 2020-03-29 10:23 709次阅读
基于单片机和TC35i型无线通信GSM模块实现L...