应用
返回首页

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

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

    摘要: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协议控制专用芯片。可以同时满足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传输的系统中稍有不便。另外,该芯片对信号时序要求较为严格,应用中应注意。

进入应用查看更多内容>>
相关视频
  • 直播回放: Keysight 小探头,大学问,别让探头拖累你的测试结果!

  • 控制系统仿真与CAD

  • MIT 6.622 Power Electronics

  • 直播回放:基于英飞凌AIROC™ CYW20829低功耗蓝牙芯片的无线组网解决方案

  • 直播回放:ADI & WT·世健MCU痛点问题探索季:MCU应用难题全力击破!

  • Soc Design Lab - NYCU 2023

精选电路图
  • 光控电路设计与分析

  • IGBT模块通过控制门极阻断过电流

  • CCFL的工作原理及电子驱动电路解析

  • 开关电源的基本组成及工作原理

  • MT3608构成3.7V转12V的升压电路图

  • 运算放大器IC741的基本工作原理及在电路中的实现方式

    相关电子头条文章