基于80C51和CH375的LPT-USB打印机驱动器设计

发布者:古泉痴迷者最新更新时间:2011-09-10 关键字:80C51  CH375  打印机驱动器 手机看文章 扫描二维码
随时随地手机看文章

引 言 
      
      随着USB打印机技术的逐渐普及,并行口打印机越来越不好买到,而且有些用户的打印机只是USB接口而非并行口,因此现有仪器产品对打印机的支持变得不能适应用户需要。为了实现能将公司的并行口仪器直接和USB打印机相连进行打印,决定设计开发一款LPT-USB打印机的驱动器,负责并口仪器和USB打印机的连接。
      
本文利用单片机和USB总线接口芯片实现LPT-USB打印机的驱动器设计。利用该设计将能够实现并行打印口数据可以在USB打印机上的直接打印工作,克服了有些并口仪器必须连接并口打印机才能打印的弊端,极大地方便了用户的使用。
   
1 CH375芯片特点及工作原理   


1.1 CH375芯片特点
        
CH375 是一个USB总线的通用接口芯片,支持Host主机方式和Slave设备方式。CH375芯片内部集成了PLL倍频器、主从USB接口SIE、数据缓冲区、被动并行接口、异步串行接口、命令解释器、控制传输的协议处理器、通用的固件程序等。在本地端,CH375 具有8 位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机/DSP/MCU 等控制器的系统总线上。CH375 的USB 主机方式支持各种常用的USB 全速设备,外部单片机/DSP/MCU 可以通过CH375 按照相应的USB 协议与USB 设备通信。CH375芯片有如下特点:
  
       ① 全速USBHOST 主机接口USB V1.1,支持动态切换主机与设备方式,外围元器件只需要一个晶体和2个电容;

  ② 主机端点输入和输出缓冲区各64 B,支持常用的12 Mbps 全速USB设备;

  ③ 支持USB 设备的控制传输、批量传输和中断传输;

  ④ 自动检测USB 设备的连接和断开,提供设备连接和断开的事件通知;

  ⑤ 内置控制传输协议处理器,简化常用的控制传输;

  ⑥ 并行接口包含8 位数据总线,4 线控制(读选通、写选通、片选输入和中断输出);

  ⑦ 串行接口包含串行输入、串行输出和中断输出,支持通信波特率动态调整;

  ⑧ 支持5 V电源电压和3.3 V电源电压。
      
1. 2CH375芯片工作原理
      
如图1所示,CH375芯片通过被动并行接口芯片可以很方便地挂接到各种8 位单片机、DSP和MCU 的系统总线上,并且可以与多个外围器件共存。并口信号线包括:8 位双向数据总线D7~D0、读选通输入RD、写选通输入WR、片选输入CS、中断输出INT以及地址输入线A0。CH375 芯片的RD和WR可以分别连接到单片机的读选通输出引脚和写选通输出引脚。INT可以连接到单片机的中断输入引脚,中断请求是低电平有效。当CS和RD以及A0 都为低电平时,CH375 中的数据通过D7~D0 输出;当CS和WR以及A0 都为低电平时,D7~D0 上的数据被写入CH375 芯片中;当CS和WR都为低电平而A1 为高电平时,D7~D0 上的数据被作为命令码写入CH375 芯片中。


图1主机通过CH375控制USB设备原理图
图2硬件电路原理图



2 硬件电路设计
      

单片机通过CH375控制USB打印机的硬件电路,如图2所示,CH375芯片通过被动并行接口芯片挂接到8 位单片机的系统总线上,CH375 的TXD 引脚接地,从而使CH375 工作于并口方式。CH375芯片的8 位双向数据总线D7~D0直接与单片机的P0数据口相连,RD和WR分别连接到单片机的读选通输出引脚和写选通输出引脚。片选信号CS连接到单片机的P26引脚,该引脚为低电平时选通CH375芯片。INT可以连接到单片机的中断输入INT0引脚,中断请求是低电平有效。地址输入线A0连接至单片机的P25引脚,当A0引脚为高电平时选择命令端口,可以写入命令;当A0引脚为低电平时选择数据端口,可以读写数据。


采用74HC245三态双向总线驱动器作为打印机口向单片机传送并口数据的接口,其片选信号与单片机的P27相连,方向控制位DIR与单片机的T0相连。当DIR置成高电平时,数据从A端口向B端口传送,此时单片机可以通过读取74HC245数据端口即可得到并口数据。打印机状态信号BUSY连接至单片机的P15引脚,并口数据采集控制信号CTRL直接连至单片机的INT1中断引脚,当INT1产生中断时,单片机从并口将数据取走,然后再发送至打印机打印出来。
     

3 软件设计实现
      

软件实现的流程如图3所示。该软件编程是用C语言实现的,通信过程主要包括两部分:初始化和并口数据的采集。
      

并口数据的采集是通过中断方式进行的。采集数据的控制信号CTRL连接至单片机的中断INT1引脚,通过不断检测INT1的状态来进行并口数据的采集。当打印机不忙(即BUSY=0)时,如果有INT1中断产生,则从74HC245的数据端口将并口数据读出,同时将打印机忙标志BUSY置1(表示打印机忙)。当数据已经发送至打印机打印时,则将打印机忙标志BUSY置0。然后重复上述步骤进行并口数据的采集及打印。
      

初始化过程分两部分:单片机初始化和打印机的枚举初始化。单片机的初始化过程就是直接向相应的I/O口写初始化值及设置看门狗,可调用函数watchdog_init()实现设置看门狗。



图3软件实现流程图



打印机的枚举初始化过程很重要,要实现打印采集到的并口数据,首先必须成功地枚举初始化打印机。初始化USB打印机函数init_print()主要用到以下几个主要函数:

       get_descr(1),获取设备描述符。
       rd_usb_data(buffer),从CH375中读取数据到单片机中。
       set_addr(3),设置打印机的USB地址。
       get_full_descr(buffer),获取配置描述符。
       set_config(unsigned char cfg),加载USB配置值。
      

结语
      

本文详细介绍了基于80C51单片机和USB总线通用接口芯片CH375的LPT-USB打印机驱动器设计及C语言实现。经测试表明,利用该设计能够实现并口仪器数据直接经USB打印机打印出来,打印结果正确无误。该设计现已被用于并口仪器上,利用该驱动器,并行口仪器可以直接和USB打印机相连进行打印,极大克服了有些并口仪器必须连接并口打印机才能打印的弊端,从而很大程度上方便了用户。

关键字:80C51  CH375  打印机驱动器 引用地址:基于80C51和CH375的LPT-USB打印机驱动器设计

上一篇:于C8051F99x设计的低功耗高灵敏容性触摸技术
下一篇:C51如何实现带死区控制的PID算法

推荐阅读最新更新时间:2024-03-16 12:41

51单片机在表决系统中的应用
0 引言 随着我国社会主义民主的提高,表决器作为一种公正,迅速准确的表决工具,应用日益广泛。通过表决器,与会代表只需根据会议议程轻按表决器按钮,即可轻松地完成从签到到各类议案的电子表决工作。在不记名模式下,系统特有的保密功能使得代表按键能最大限度地反映其真实意愿,而不用担心被人窥视或记录追查。表决结果可自动统计产生,并根据会议要求以图文或报表方式来显示和打印。 1 设计方案 系统包括PC机:用于文件的编辑储存、打印、显示表决结果。大屏监视器显示表决结果及其它文件。表决采集网络:采集各代表的表决结果并做处理。经对系统功能要求的分析,认为单片机80C51最为适合多点分散,每单点功能相对简单的系统。从而组成主-从型“单片机网”
[单片机]
51单片机在表决系统中的应用
单片机的状态迁移与复位操作
本文以经典的80C51单片机为例,利用工作状态及其状态辽移的新概念、新观点和新方法,揭示一些单片机运作的内在规律,对于单片机学习者和应用开发者具有一定的启迪作用和实际意义。 1 单片机的工作状态及其状态迁移 80C51单片机的各种活动,可以描述成多个不同的工作状态或工作模式。这里利用笔者构思的一个单片机工作状态迁移图(如图1所示)来说明。不过,这里重点关注的是复位状态。 经过仔细分析之后,从图1中可以看出: ① 把单片机经历的所有生存状态归纳和描绘成5个状态--1个非工作状态(即无电状态)和4个工作状态。 ② 只有复位状态是一个暂态,其他均为稳态;并且每次单片机进入正常运行状态时,都要经历一次复位状态。 ③ 只有在正
[应用]
80C51单片机产生几种基本波形的方法
  简介:介绍了基于80C51单片机产生几种基本波形的方法。采用微处理器兼容的14位数模转换器MAX7534,高速,稳定,具有良好的线性。用户通过按键选择输出需要的波形,波形精度能够满足一般的使用条件。   本文利用80C51单片机外接数模转换器和I/V转换电路,由用户通过按键选择输出实验中经常使用到的几种基本波形:方波、锯齿波、正弦波。方波由80C51单片机内部自带的计数器/定时器产生,并由用户通过小键盘选择波形周期。与微处理器兼容的14位数模转换器MAX7534将数字量转换为模拟量电流信号,通过I/V转换电路得到双极性的锯齿波和正弦波信号,波形保证了他的精度和平滑、稳定。   1硬件电路设计   80C51单片机时钟电
[单片机]
<font color='red'>80C51</font>单片机产生几种基本波形的方法
实验七 串行通信(80C51单片机汇编语言编程)
主机:每隔1秒读一次P1口并将读数发给从机,同时接收从机的信号,若与所发数相同,则P3.2的灯亮,若不同或不回答则P3.3的灯亮。 从机:将接收的数据从P1口推出,并回发此数据 波特率自定,编写主机程序和从机程序。 主机: ORG 0000H AJMP MAIN ORG 000BH AJMP CT0 ORG 0023H AJMP RT ORG 0030H MAIN:MOV TMOD,#21H MOV TL1,#0FAH MOV TH1,#0FAH MOV R7,#0AH MOV TH0,#3CH MOV TL0,#
[单片机]
基于CH375的U盘MP3播放器设计
随着电子技术的发展,MP3播放器向大容量、高音质、小巧便携不断发展。虽然播放器与存储器的一体化设计使MP3播放器便于携带,但与此同时他也带来了很多新的问题。 比如存储容量固定,如果想装下更多的歌曲只能去购买新的产品,造成了巨大的浪费;另一方面,一体化又限制了MP3播放器在其他领域的应用,比如车载MP3等不方便移动的播放器。于是将存储器与播放器分离成为MP3的另一发展方向,同时HOSTUSB的开发也为实时数据采集的移动存储提供了价格低廉的解决方案。本文将从软硬件方面详细介绍如何用AVR控制HOSTUSB读取U盘中的文件并将其解码播放。 l 方案设计 1.1 系统功能简介 本设计主要完成U盘的识别和数据的读取,并将U盘中读取的
[单片机]
基于<font color='red'>CH375</font>的U盘MP3播放器设计
单片机C语言入门教程
学习一种编程语言,最重要的是建立一个练习环境,边学边练才能学好。Keil软件是目前最流行开发80C51系列单片机的软件,Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(?Vision)将这些部份组合在一起。 学习之前请先安装KEILC51软件,在学会使用汇编语言后,学习C语言编程是一件比较容易的事,我们将通过一系列的实例介绍C语言编程的方法。图1-1所示电路图使用89c51单片机作为主芯片,这种单片机性属于80C51系列,其内部有8K的FLASH ROM,可以反复擦写,非常适于做实验。89c51的P1引脚上接8个发光二极管,P3.2~P3.4引脚上接4个按钮
[单片机]
单片机C语言入门教程
基于CH375的LPT-USB打印机驱动器的设计
本课题来源于北京普析通用公司。由于该公司现有光谱仪器的单机版(如1810和T6等)采用的是并行口打印技术,而随着USB打印机技术的逐渐普及,并行口打印机越来越少,有些用户原有的打印机只是USB接口而非并行口,因此现有仪器对打印机的支持不能适应用户需要。为了使该公司的并行口仪器直接和USB打印机相连,笔者设计了一种 LPT-USB打印机驱动器,实现并口仪器与USB打印机的连接。 笔者利用单片机和USB总线接口器件实现LPT-USB打印机驱动器的设计。利用该设计将能够实现并行打印口数据在USB打印机上的直接打印,克服了有些并口仪器必须连接并口打印机才能打印的弊端,极大地方便了用户的使用。 2 CH375的特点及工作原理 2
[单片机]
基于<font color='red'>CH375</font>的LPT-USB<font color='red'>打印机</font><font color='red'>驱动器</font>的设计
80C51单片机程序(4)
//80C51单片机程序 中断的使用 #include reg52.h //包含reg52.h头文件 #define uint unsigned int //宏定义uint的数据类型为unsigned int型 #define uchar unsigned char //宏定义uchar的数据类型为unsigned char型 sbit D1=P2^6; sbit W1=P2^7; sbit D2=P1^0; uchar num; uchar code table ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴数码管0-9 void de
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
502 Bad Gateway

502 Bad Gateway


openresty
设计资源 培训 开发板 精华推荐

502 Bad Gateway

502 Bad Gateway


openresty
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

502 Bad Gateway

502 Bad Gateway


openresty
502 Bad Gateway

502 Bad Gateway


openresty
502 Bad Gateway

502 Bad Gateway


openresty
随便看看
    502 Bad Gateway

    502 Bad Gateway


    openresty
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
502 Bad Gateway

502 Bad Gateway


openresty