CHLPTUSB打印机驱动器设计方案.docx
- 文档编号:1355717
- 上传时间:2022-10-21
- 格式:DOCX
- 页数:12
- 大小:25.15KB
CHLPTUSB打印机驱动器设计方案.docx
《CHLPTUSB打印机驱动器设计方案.docx》由会员分享,可在线阅读,更多相关《CHLPTUSB打印机驱动器设计方案.docx(12页珍藏版)》请在冰豆网上搜索。
CHLPTUSB打印机驱动器设计方案
封面
作者:
PanHongliang
仅供个人学习
对USB接口芯片CH375的功能、原理做了较详细的介绍,并给出了在单片机读写U盘中的实例及注意事项。
随着计算机技术的快速发展,USB移动存储设备的使用已经非常普遍,因此在一些需要转存数据的设备、仪器上使用USB移动存储设备接口的芯片便相继产生了,CH375就是其中之一,它是一个USB总线的通用接口芯片,支持HOST主机方式和SLAVE设备方式。
在本地端,CH375具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机/DSP/MCU等控制器的系统总线上。
在USB主机方式下,CH375还提供了串行通信方式,通过串行输入、串行输出和中断输出与单片机/DSP/MCU等相连接。
CH375的USB主机方式支持各种常用的USB全速设备,外部单片机/DSP/MCU可以通过CH375按照相应的USB协议与USB设备通信。
CH375芯片内部结构
1内部结构
CH375芯片内部集成了PLL倍频器、主从USB接口SIE、数据缓冲区、被动并行接口、异步串行接口、命令解释器、控制传输的协议处理器、通用的固件程序等。
CH375芯片引脚排列如图1所示。
2内部物理端点
CH375芯片内部具有7个物理端点。
端点0是默认端点,支持上传和下传,上传和下传缓冲区各是8B;端点1包括上传端点和下传端点,上传和下传缓冲区各是8B,上传端点的端点号是81H,下传端点的端点号是01H;端点2包括上传端点和下传端点,上传和下传缓冲区各是64B,上传端点的端点号是82H,下传端点的端点号是02H。
主机端点包括输出端点和输入端点,输出和输入缓冲区各是64B,主机端点与端点2合用同一组缓冲区,主机端点的输出缓冲区就是端点2的上传缓冲区,主机端点的输入缓冲区就是端点2的下传缓冲区。
其中,CH375的端点0、端点1、端点2只用于USB设备方式,在USB主机方式下只需要用到主机端点。
软件接口
对于USB存储设备的应用,CH375直接提供了数据块的读写接口,以512b的物理扇区为基本读写单位,从而将USB存储设备简化为一种外部数据存储器,单片机可以自由读写USB存储设备中的数据,也可以自由定义其数据结构。
CH375以C语言子程序库提供了USB存储设备的文件级接口,这些应用层接口API包含了常用的文件级操作,可以移植并嵌入到各种常用的单片机程序中。
CH375的U盘文件级子程序库具有以下特性:
支持常用的FAT12、FAT16和FAT32文件系统,磁盘容量可达100GB以上,支持多级子目录,支持8.3格式的大写字母文件名,支持文件打开、新建、删除、读写以及搜索等。
CH375的文件级接口API子程序需要大约600b的随机存储器RAM作为缓冲区。
所有API在调用后都有操作状态返回,但不一定有应答数据。
有关API参数的说明请参考CH375数据手册。
CH375在单片机读写U盘中的电路原理图
图2给出了MCS-51单片机读写U盘的电路原理图,如果CH375芯片的TXD引脚悬空或者没有通过下接电阻接地,那么CH375工作于串口方式。
在串口方式下,CH375只需要与单片机/DSP/MCU连接3个信号线,TXD引脚、RXD引脚以及INT#引脚,其他引脚都可以悬空。
除了连接线较少之外,其他外围电路与并口方式基本相同。
由于INT#引脚和TXD引脚在CH375复位期间只能提供微弱的高电平输出电流,在进行较远距离的连接时,为了避免INT#或者TXD在CH375复位期间受到干扰而导致单片机误操作,可以在INT#引脚或者TXD引脚上加阻值为1~5kΩ的上拉电阻,以维持较稳定的高电平。
在CH375芯片复位完成后,INT#引脚和TXD引脚将能够提供5mA的高电平输出电流或者5mA的低电平吸入电流。
单片机读写U盘的接口
由于CH375内置了处理Mass-Storage海量存储设备的专用通信协议的固件,所以嵌入式系统的单片机可以通过CH375将U盘(USB闪存盘、USB外置硬盘)作为可移动的大容量存储器。
数据读写只需要几条指令,而不需要详细了解USB通信协议。
如果嵌入式系统需要将USB存储设备组织为文件系统,那么可以直接调用CH375文件级子程序库提供的接口API,由子程序库处理文件系统。
CH375主机USB-HOST的电路设计注意事项
某些USB设备带电插入时常出现如下问题。
●CH375复位或者单片机复位(尤其是采用uP监控电路的单片机系统)。
●CH375或者单片机突然工作不正常,失去控制。
●CH375芯片的工作电流突然增大并且持续如此,时间长了芯片发热烫手。
出现上述问题时可参考如下解决方法。
●给USB插座单独供电,这样,即使USB设备刚插上时存在电容充电过程,也不会影响单片机和CH375。
变通方法是,将5V主电源分别通过两个独立的限流电感后(或者在PCB中电源线分开走),一组提供给CH375和单片机等,另一组提供给USB插座。
●在USB插座前串接限流电阻或者电感,并在USB插座电源上并联储能用的电解电容。
如果用电感也可以限制电流突变,防止电源电压突降,但是用电感在USB设备拔出后,容易在USB插座中产生过冲高压,所以必须接储能电容。
(注意,在第一版CH375评估板的原理图中已经标出USB插座的限流电阻R1为1Ω,建议将其换为阻值5Ω的电阻或者保险电阻)
●其他临时的解决方法(不推荐):
①在USB设备与USB插座之间加入USB延长线。
②在主电源上并联较大的储能电容,在U盘刚插入时提供足够的瞬时电能,减少对电源电压的影响。
●参考目前计算机端的解决方法:
USB端口的电源供给是通过保险电阻或者限流电感提供的,这些能够限制瞬时电流。
对于计算机前面板的USB端口,由于本身通过一段较长的连接导线,自然减弱了对主电源的影响,而且计算机的5V电源功率很大,连续供电电流都在20A以上,所以不易受影响。
引言
本课题来源于北京普析通用公司。
由于该公司现有光谱仪器的单机版(如1810和T6等)采用的是并行口打印技术,而随着USB打印机技术的逐渐普及,并行口打印机越来越少,有些用户原有的打印机只是USB接口而非并行口,因此现有仪器对打印机的支持不能适应用户需要。
为了使该公司的并行口仪器直接和USB打印机相连,笔者设计了一种LPT-USB打印机驱动器,实现并口仪器与USB打印机的连接。
笔者利用单片机和USB总线接口器件实现LPT-USB打印机驱动器的设计。
利用该设计将能够实现并行打印口数据在USB打印机上的直接打印,克服了有些并口仪器必须连接并口打印机才能打印的弊端,极大地方便了用户的使用。
2CH375的特点及工作原理
2.1CH375的特点
CH375是一个USB总线通用接口电路,支持HOST主机方式和SLAVE设备方式。
CH375内部集成了PLL倍频器、主从USB接口SIE、数据缓冲区、被动并行接口、异步串型接口、命令解释器、控制传输的协议处理器、通用的固件程序等。
在本地端,CH375具有8位数据总线和读、写、片选控制线及中断输出,可以方便地挂接到单片机、DSP、MCU等控制器的系统总线上。
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.2CH375的工作原理
如图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。
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.1软件流程
软件流程如图3所示。
该软件用C语言编程,通信过程主要包括初始化和并口数据的采集。
并口数据的采集是通过中断方式进行的。
采集数据的控制信号CTRL连接至单片机的中断INT1引脚,通过不断检测INT1的状态进行并口数据的采集。
当打印机不忙(BUSY=0)时,如果产生INT1中断,则从74HC245的数据断口读出并口数据,同时将打印机忙标志BUSY置1(表示打印机忙),当数据已经发送至打印机打印时,则将打印机忙标志BUSY置0。
然后重复上述步骤进行并口数据的采集及打印。
初始化过程分为单片机初始化和打印机的枚举初始化。
单片机的初始化过程是直接向相应的I/0口写初始化值及设置看门狗,可调用函数watchdog_init()设置看门狗。
打印机的枚举初始化过程是很重要的,要打印采集到的并口数据首先必须成功地枚举初始化打印机。
初始化USB打印机函数init_print()主要使用以下几个主要函数:
4.2主程序源代码
主程序代码如下:
5结束语
本文详细介绍了基于80C51型单片机和CH375型USB总线通用接口电路的LPT-USB打印机驱动器的设计及C语言实现。
测试结果表明,利用该设计能够实现并口仪器数据直接经USB打印机打印,打印结果正确无误。
该设计现已用于并口仪器上,并行口仪器利用该驱动器可以直接和USB打印机相连并进行打印,克服了有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CHLPTUSB 打印机 驱动器 设计方案