一种基于W91284PIC的外设端双向并口设计

2006-05-07 15:49:54来源: 国外电子元器件

双向并口是在普通打印机并口的基础上发起来的,近几年来EPP、ECP双向并口的应用也越来越多,如双向并口打印机、双向并口扫描仪等外设。由于早期PC机已具备打印机并口,常用操作系统也在低层支持双向并口,且目前的外投也全向智能化方面发展,这样不但需要PC机向下传送数据,也需要外设向PC机传送数据,因而双向并口得以较快发展。EPP、ECP方式的最高速率可达1.2Mb/s,字节方式和半字节方式的传输速率可达200kb/s左右,对于要求外设端回传数据不多的场合也有一定的应用。IEEE1284协议是双向并口的完整描述,包含EPP、ECP、字节、半字节和兼容五种传输方式。其中EPP、ECP是独立的双向并口字节、半字节方式仅为反向数据传输(外投到PC机)方式,和兼容方式一起构成双向并口;兼容方式即为普通的打印机并口(仅能下传数据到外设)。

W91284PIC是美国Warp Nine Engineering公司生产的IEEE1284协议控制专用芯片。可以同时满足IEEE1284协议规定的五种传输方式(EPP、ECP、字节、半字节、兼容),同时,也满足IEEE1284.3协议,在一个并口上可同时串接5个设备而共享同一主机并口。该芯片为寄存器操作方式,具备DMA数据传输接口,和CPU之间可以采用中断和查询两种方式工作。W91284PIC采用100pin PQFP封装形式。

1 硬件设计

图1是一个利用W91284PIC芯片实现的数据双向传输系统。CPU采用89C51,CPU仅处理命令和传输信息。高速数据的传输可利用该芯片的DMA功能直接与系统的数据处理单元相接。该芯片只有一条数据总线,命令、信息、数据分时占用此数据总线。由于89C51无DMA功能,所以DMA传输控制由数据处理单元承担。DMA传送数据块的大小由数据处理单元的DMA控制器决定,当一块数据传送完毕后,数据处理单元便向W91284发送TC信号,此时W91284产生TC中断。在CPU的数据总线上增加一级数据缓冲隔离(74LS245),以解决CPU端数据总线的竞争问题。A0~4五根地址线进行W91284PIC芯片内部的32个寄存器选择,采用89C51的高位地址线,可以省掉一个锁存器,从而使电路更加简化。NDC-Enable引脚接地,使用该芯片的链式选择功能(Daisy Chain Function)。并口连接器1接HOST(主机),并口连接器2接DC(下一个外部设备)。

该系统的工作过程如下:首先,在芯片硬复位之后,芯片工作模式处于兼容方式。系统对芯片进行工作状态初始化,PC机选择并口链上一个外部设备,接着选择该设备的工作模式(EPP、ECP、字节、半字节、兼容方式)。而后依据选择的工作模式的时序要求收发外部设备的数据,最后返回兼容模式或空闲状态。接着进行下一个设备的数据收发工作。

2 软件设计

2.1 W91284PIC初始化子程序

W91284PIC初始化流程图如图2所示,其初始化程序清单如下:

W-INA:MOV A,#00H ;禁止W91284操作,为初始化准备

MOV DPTR,#PCCR

MOVX @DPTR,A

MOV A,#00H ;禁止所有中断

MOV DPTA,#IER1

MOVX @DPTA,A

MOV A,#03H;清空发送、接收(RX TX)FIFO

MOV DPTR,#FDCR

MOVX @DPTR,A

MOV A,#0CH;使RX、TX两个FIFO工作

MOVX @DPTR,A

MOV A,#0cH ;指定芯片工作晶振25Mhzeg nACK信号在busy信号前

MOV DPTR,#TCPR

MOVX @DPTR,A

MOV A,#0cH ;设置中断源

MOV DPTR,#IER2

MOVX @DPTR,A

MOV A,#13H ;设置工作模式并激活W91284PIC

MOV DPTR,#PCCR

MOVX @DPTR,A

MOV A,#06H;向发送FIFO送入5个数据06,06,06,06,06

MOV DPTR,#DATA

MOVX @DPTR,A

MOVX @DPTR,A

MOVX @DPTR,A

MOVX @DPTR,A

MOVX @DPTR,A

MOV A,#82H ;允许发送FIFO空中断、和接收数据中断

MOV DPTR,#IEP1

MOVX @DPTR,A

RET

符号说明:

DATA数据端口寄存器(Data Port)

PCCR控制寄存器(PIC Control Register)

ISR1 中断源寄存器1(Interrupt Source Register 1)

IER1 中断使能寄存器1(Interrupt Enable Register 1)

FDCR FIFO控制寄存器(FIFO Data Control Register)

TCPR定时控制参数寄存器(Timing Control Parameter Register)

ISR2中断源寄存器2(Interrupt Sourec Register 2)

ISR2中断使能寄存器2(Interrupt Enable Register 2)

2.2 中断处理子程序

W91284PIC的中断处理流程图如图3所示。为简化起见,下面仅列出TX FIFO空处理子程序的详细内容,其它子程序大同小异。图4所示为TX FIFO空处理子程序流程图。

TXFIFO空处理子程序程序清单如下:

说明:SEND-DATA为系统中的一个特征单元,为0表示无数据,非0表示有DMA数据。

TXFIFO:MOV A,SEND-DATA ;

CJNE A,#00H,NDMA

DMA:MOV A,#03H ;清空RX、TX FIFO

MOV DPTR,#PDCR

MOVX @DPTR,A

MOV A,#0CH ;激活RX、TX的FIFO

MOVX @DPTR,A

MOV A,#12H ;允许TC、接收数据中断,不允许TX FIFO空中断

MOV DPTR,#IER1

MOVX @DPTR,A

MOV A,#1BH ;设置DMA方向

MOV DPTR,#PCCR

MOVX @DPTR,A

MOV A,#1FH ;设置DMA使能

MOVX @DPTR,A

RET

NDMA:MOV A,#13H ;设置处于非DMA方式,接口激活状态

MOV DPTR,#PCCR

MOVX @DPTR,A

MOV A,#00H ;不允许任何中断

MOV DPTR,#IER1

MOVX @DPTR,A

MOV A,#03H ;清空RX TX FIFO

MOV DPTR,#FDCR

MOVX @DPTR,A

MOV A,#0CH ;使能RX TX FIFO

MOV A,R0 ;R0为要向PC机发送的信息

MOV DPTR,#DATA;向TX FIFO中送入信息数据

MOVX @DPTR,A

MOV A,#82H ;允许发送FIFO空中和接收数据中断

MOV DPTR,#IER1

MOVX @DPTR,A

RET

3 结束语

W91284PIC控制器功能齐全,并可全部满足IEEE1284和IEEE1284.3协议。该控制器是状态机方式设计,所以应用程序的编程相对简单,但由于数据总线只有一条,在使用DMA传输的系统中稍有不便。另外,该芯片对信号时序要求较为严格,应用中应注意。

编辑: 引用地址:http://www.eeworld.com.cn/designarticles/others/200605/2436.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved