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

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

3天内不再提示

基于80C51单片机和CH375芯片实现打印机驱动系统的设计

电子设计 来源:国外电子元器件 作者:吴友宇;余翔 2020-11-13 10:32 次阅读

引言

本课题来源于北京普析通用公司的一个项目。由于公司现有单机版光谱仪器产品(如1810、T6等)采用的是并行口打印技术,而随着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主机接口USBV1.1,支持动态切换主机与设备方式,外围元器件只需要一个晶体和2个电容;

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

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

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

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

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

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

⑧支持5V电源电压和3.3V电源电压。

1.2 CH375芯片工作原理

如图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芯片中。

基于80C51单片机和CH375芯片实现打印机驱动系统的设计

2 硬件电路设计

单片机通过CH375控制USB打印机的硬件电路,如图2所示。

如图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()实现设置看门狗。

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

◇get_descr(1),获取设备描述符。

◇rd_usb_data(buffer),从CH375中读取数据到单片机中。

◇set_addr(3),设置打印机的USB地址。

◇get_full_descr(buffer),获取配置描述符。

◇set_config(unsignedcharcfg),加载USB配置值。

编者注:具体程序见本刊网站:www.mesnet.com.cn

结语

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

责任编辑:gt

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

    关注

    6023

    文章

    44391

    浏览量

    629175
  • 驱动器
    +关注

    关注

    51

    文章

    8018

    浏览量

    145187
  • 总线
    +关注

    关注

    10

    文章

    2832

    浏览量

    87753
收藏 人收藏

    评论

    相关推荐

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

    高电平时,D7~D0上的数据被作为命令码写入CH375芯片中。2 硬件电路设计单片机通过CH375控制USB打印机的硬件电路,如图2所示。如
    发表于 09-22 16:00

    80C51CH375的USB打印机驱动设计

    ,给出80C51单片机通过CH375控制USB打印机的硬件设计及其C语言软件实现.利用该设计能够
    发表于 03-02 15:19

    80C51CH375的USB打印机驱动设计

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

    CH375 数据包不同步

    求高手!用CH375遇到问题了!51单片机CH375,连接热敏打印机设备。在枚举时给设备设置地址时,获取中断状态为0x2E(当前接受数据包
    发表于 09-22 01:16

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

    ()主要使用以下几个主要函数: 4.2 主程序源代码主程序代码如下: 5 结束语本文详细介绍了基于80C51单片机CH375型USB总线通用接口电路的LPT-USB打印机
    发表于 06-18 05:00

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

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

    使用STM32H743单片机如何判断何时可以向打印机发送打印数据?

    单片机,可以控制CH375打印图片,现在问题是图片太大时,发的太快打印机的缓冲区会溢出,太慢又会l乱码,我如何判断何时可以向打印机发送
    发表于 07-08 08:00

    USB接口芯片CH375的原理及应用

    USB接口芯片CH375的原理及应用:对USB 接口芯片CH375 的功能、原理做了较详细的介绍,并给出了在单片机读写U 盘中的实例及注意事
    发表于 09-20 18:07 133次下载

    基于CH375实现单片机读写U盘

    摘要:介绍了一种USB总线的通用接口芯片CH375,并在此基础上提出了一种外部单片机读写U盘的基本方法及其硬件连接方法。单片机只要在原硬件系统
    发表于 09-10 14:40 187次下载

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

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

    80C51单片机的硬件结构是怎么样的?

    本文档的主要内容详细介绍的是80C51单片机的硬件结构是怎么样的?主要内容包括了:80C51单片机的内部结构,80C51的外部引脚及功能,
    发表于 09-20 17:24 23次下载
    <b class='flag-5'>80C51</b><b class='flag-5'>单片机</b>的硬件结构是怎么样的?

    51单片机教程之80C51单片机的指令系统

    本文档的主要内容详细介绍的是51单片机教程之80C51单片机的指令系统详细资料免费下载。
    发表于 10-26 14:27 33次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>教程之<b class='flag-5'>80C51</b><b class='flag-5'>单片机</b>的指令<b class='flag-5'>系统</b>

    80C51单片机的最小系统

    目录80C51单片机的最小系统电源时钟脉冲复位电路存储器设置电路最小系统80C51单片机的最小
    发表于 11-11 10:51 76次下载
    <b class='flag-5'>80C51</b><b class='flag-5'>单片机</b>的最小<b class='flag-5'>系统</b>

    51单片机ch375实现键鼠功能

    51单片机ch375实现键鼠功能说明:为了参加比赛,我和我的队友设计了一款人机交互系统,我负责接收摄像头数据和模拟键鼠功能,由于当时只是
    发表于 11-20 14:06 19次下载
    用<b class='flag-5'>51</b><b class='flag-5'>单片机</b>和<b class='flag-5'>ch375</b><b class='flag-5'>实现</b>键鼠功能

    51单片机连接蓝牙控制ch375pcb

    利用51单片机控制,做成手机蓝牙连接台式打印机USB口打印的电路设计。用51单片机接收蓝牙模块指
    发表于 03-10 10:58 0次下载