当前位置:首页 > 工业控制 > 工业控制
[导读]摘要:如何实现PC与单片机系统间的高速数据通信,是测量控制系统中经常遇到的难题。本文系统地介绍利用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 %26;#215; %26;#215; TMOUT WAIT:Wait状态位(1有效); INTR:中断请求状态位(1有效); USER1~USER3:用户自定义; TMOUT:保留(EPP1.7)超时标志位(EPP1.9)。 EPP控制端口寄存器。 %26;#215; %26;#215; 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 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))%26;amp;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接口协议解决双向高速数据传输的难题,在智能测量、自动控制、数据传输等领域必将得到广泛的应用。

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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭