|
|
| | -文章搜索 - 最新文章 - | |
一种基于W91284PIC的外设端双向并口设计 |
| 发布时间:2006年5月11日 点击次数:443 |
| 来源:国外电子元器件 作者:山东威海北洋电气集团公司技术开发中心 徐发荣 张 涛 高建卫 |
摘要:W91284PIC是美国Warp Nine Engineering公司生产的IEEE1284协议控制专用芯片,可同时满足IEEE1284协议规定的五种传输方式(EPP、ECP、字节、半字节、兼容)。文中介绍了用W91284PIC实现数据双向传输系统的软、硬件设计,并给出了其初始化、中断及空处理的程序源代码和程序流程图。 关键词:EPP ECP 双向并口 DMA W91284PIC 双向并口是在普通打印机并口的基础上发起来的,近几年来EPP、ECP双向并口的应用也越来越多,如双向并口打印机、双向并口扫描仪等外设。由于早期PC机已具备打印机并口,常用操作系统也在低层支持双向并口,且目前的外投也全向智能化方面发展,这样不但需要PC机向下传送数据,也需要外设向PC机传送数据,因而双向并口得以较快发展。EPP、ECP方式的最高速率可达1.2Mb/s,字节方式和半字节方式的传输速率可达200kb/s左右,对于要求外设端回传数据不多的场合也有一定的应用。IEEE1284协议是双向并口的完整描述,包含EPP、ECP、字节、半字节和兼容五种传输方式。其中EPP、ECP是独立的双向并口字节、半字节方式仅为反向数据传输(外投到PC机)方式,和兼容方式一起构成双向并口;兼容方式即为普通的打印机并口(仅能下传数据到外设)。 W91284PIC是美国Warp Nine Engineering公司生产的IEEE1284协议控制专用芯片。 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传输的系统中稍有不便。另外,该芯片对信号时序要求较为严格,应用中应注意。 |
|
|
|
|
[另类其他] 相关文章: AMCCS5933在PCI板卡设计中的应用简介:
摘要: 介绍了PCI接口芯片AMCCS5933的工作原理、功能特点以及在PCI板卡设计中的应用。 关键词: PCI接口芯片 AMCCS5933 PCI总线 PCI总线是计算机主机中最常见的总线。它是一种高性能的32/64位地址数据复用总线,支持...... 用MAX471/MAX472实现对电源的监测与保护
TMS320C32浮点DSP存储器接口设计
单片机与PC通信的简化接口
三电平SIM/SMART卡接口电路
DTMF电路HT9200A与单片机的接口
USB与1394谁能把握先机
基于EPLD技术的PCI总线接口设计
由ADuC812与K9S6408V0A构成的便携式数据采集系统
通用串行总线(USB)设备的驱动 |
|
|
|