0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于单片机和USB接口实现LPT-USB打印机驱动器的设计

电子设计 来源:电子设计工程 作者:王小芳,郑宽磊,强 2021-03-22 16:20 次阅读

作者:王小芳,郑宽磊,强伟锋

1 引言

本课题来源于北京普析通用公司。 由于该公司现有光谱仪器的单机版(如1810和T6等)采用的是并行口打印技术,而随着USB打印机技术的逐渐普及,并行口打印机越来越少,有些用户原有的打印机只是USB接口而非并行口,因此现有仪器对打印机的支持不能适应用户需要。为了使该公司的并行口仪器直接和USB打印机相连,设计了一种LPT-USB打印机驱动器,实现并口仪器与USB打印机的连接。

利用单片机和USB总线接口器件实现LPT-USB打印机驱动器的设计。利用该设计将能够实现并行打印口数据在USB打印机上的直接打印,克服了有些并口仪器必须连接并口打印机才能打印的弊端,极大地方便了用户的使用。

2 CH375的特点及工作原理

2.1 CH375的特点

CH375是一个USB总线通用接口电路,支持HOST主机方式和SLAVE设备方式。CH375内部集成了PLL倍频器、主从USB接口SIE、数据缓冲区、被动并行接口、异步串型接口、命令解释器、控制传输的协议处理器、通用的固件程序等。在本地端,CH375具有8位数据总线和读、写、片选控制线及中断输出,可以方便地挂接到单片机、DSPMCU控制器的系统总线上。CH375的USB主机方式支持各种常用的USB全速设备,外部单片机、DSP、MCU可以通过CH375按照相应的USB协议与USB设备通信。CH375的特点如下:

(1)全速USB-HOST主机接口符合USB1.1,支持动态切换主机与设备方式,外围元器件只需要1个晶体和2个电容;

(2)主机端点输入和输出缓冲区各有64字节,支持常用的12Mb/s全速USB设备;

(3)支持USB设备的控制传输、批量传输、中断传输;

(4)自动检测USB设备的连接和断开,提供设备连接和断开的通知;

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

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

(7)串行接口包括串行输入、串行输出和中断输出,支持通信波特率的动态调整。

(8)支持5V电源电压和3.3V电源电压。

2.2 CH375的工作原理

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

[/table]

3 硬件电路设计

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

采用74HC245型三态双向总线驱动器作为打印机口向单片机传送并口数据的接口,其片选信号与单片机的P2.7相连,方向控制位DIR与单片机的P3.4相连,当DIR为高电平时,数据从A端口向B端口传送,此时单片机可以通过读取74HC245数据端口得到并口的数据,打印机状态信号BUSY连接至单片机的P1.5引脚,并口数据采集控制信号CTRL直接连至单片机的INT1中断引脚,当INT1产生中断时,单片机从并口读取数据,然后再发送至打印机进行打印。

4 软件设计

4.1 软件流程

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

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

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

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

4.2 主程序源代码

程序代码如下:

[table]

5 结束语

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

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6037

    文章

    44559

    浏览量

    635502
  • usb
    usb
    +关注

    关注

    60

    文章

    7947

    浏览量

    264734
  • 打印机
    +关注

    关注

    10

    文章

    772

    浏览量

    45703
收藏 人收藏

    评论

    相关推荐

    基于飞思卡尔微型热敏打印机的设计与实现

    LPT-USB打印机驱动器,负责并口仪器和USB打印机的连接。本文利用单片机
    发表于 09-22 16:00

    80C51和CH375的USB打印机驱动设计

    本帖最后由 luna 于 2011-3-3 12:05 编辑 介绍基于80C51和CH375的LPTUSB打印机驱动器的设计与实现方法,介绍USB总线的通用
    发表于 03-02 15:19

    80C51和CH375的USB打印机驱动设计

    USB打印机的连接。本文利用单片机USB总线接口芯片实现
    发表于 03-03 17:43

    采用CH375接口电路实现LPT-USB打印机驱动器设计

    USB接口而非并行口,因此现有仪器对打印机的支持不能适应用户需要。为了使该公司的并行口仪器直接和USB打印机相连,笔者设计了一种
    发表于 06-18 05:00

    如何设计一种LPT-USB打印机驱动器

     本文详细介绍了基于80C51型单片机和CH375型USB总线通用接口电路的LPT-USB打印机驱动器
    发表于 04-23 06:20

    如何利用单片机USB总线接口芯片实现LPT-USB打印机驱动器设计

    本文利用单片机USB总线接口芯片实现LPT-USB打印机
    发表于 04-26 06:36

    微型打印机单片机接口

    微型打印机单片机接口:是PDG格式的电子书.
    发表于 12-13 22:32 92次下载
    微型<b class='flag-5'>打印机</b>与<b class='flag-5'>单片机</b><b class='flag-5'>接口</b>

    MCS-51单片机与键盘、显示、微型打印机接口

    MCS-51单片机与键盘、显示、微型打印机接口
    发表于 09-13 08:07 150次下载

    基于单片机的喷墨打印机控制技术

     摘要:介绍一种采用MCS51系列单片机控制驱动Hewlett Packard DESKJET 600/800系列喷墨打印机的硬件接口设计和软件设计方法。以控制
    发表于 03-11 11:48 2249次阅读
    基于<b class='flag-5'>单片机</b>的喷墨<b class='flag-5'>打印机</b>控制技术

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

    引 言             随着USB打印机技术的逐渐普及,并行口打印机越来越不好买到,而且有
    发表于 07-16 09:54 1659次阅读
    基于80C51和CH375的<b class='flag-5'>LPT-USB</b><b class='flag-5'>打印机</b><b class='flag-5'>驱动器</b>设计及

    EPSON C4X系列打印机电源原理分析

    在EPSON C4X系列的打印机中,SC和UX打印机仅仅是与电脑连接的接口不同,SX打印机采用LPT接口
    发表于 09-18 07:48 3366次阅读
    EPSON C4X系列<b class='flag-5'>打印机</b>电源原理分析

    基于C8051F单片机的标签打印机接口设计

    基于美国Silicon Labs公司生产的SoC单片机C8051f020作为主控制芯片,通过RS 232串行接口与标签打印机进行串行通信,采取单片机向标签
    发表于 05-20 09:32 4399次阅读
    基于C8051F<b class='flag-5'>单片机</b>的标签<b class='flag-5'>打印机</b><b class='flag-5'>接口</b>设计

    linux支持usb打印机

    配置CONFIG_USB_PRINTER=y inux内核默认运行打印机驱动,直接在配置上CONFIG_USB_PRINTER=y添加上去就好了。 make menuconfig
    发表于 01-16 20:59 1252次阅读

    USB打印机开关电路设计资料分享

    这是USB打印机开关电路设计,带有两个USB输入端口和一个USB输出端口。这是一个非常简单的设备,允许两台计算机(台式/笔记本电脑)选择一
    的头像 发表于 05-14 10:51 2400次阅读
    <b class='flag-5'>USB</b><b class='flag-5'>打印机</b>开关电路设计资料分享

    3D打印机USB接口和SD卡接口防静电设计

    3D打印机USB接口和SD卡接口防静电设计3D打印机的平民化带来了一场应用革命,越来越多的教学,模型,设计,广告场合应用。但由于众多
    的头像 发表于 12-31 10:54 1022次阅读
    3D<b class='flag-5'>打印机</b>的<b class='flag-5'>USB</b><b class='flag-5'>接口</b>和SD卡<b class='flag-5'>接口</b>防静电设计