已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的打印机控制系统的开发基于单片机的打印机控制系统的开发摘要随着科学技术的不断革新,打印机控制系统也朝着多样化发展。近年来,单片机以其体积小、性能高、以及价格实惠等优点,逐渐在打印机系统控制中显露头脚。因此,本文研究基于单片机的打印机控制系统的开发。本文以 Bus Hound 的数据采集技术以及大数据分析技术为基础,设计一种基于 STC 单片机的打印机控制系统。实现系统驱动惠普 DESKJET 1010 系列喷墨打印机打印 BMP 文件的功能。论文给出系统的总体设计方案、硬件设计以及软件设计的方法,并结合硬软件的功能给出相关的 C 语言编程。最后,通过系统调试,测试模块的整体性能。测试结果显示,本论文设计的打印机控制系统可以正常稳定地工作,系统的硬件以及软件设计达到了课题要求。关键词:打印机,单片机,Bus Hound,USB 设备协议全套设计加扣3012250582 基于单片机的打印机控制系统的开发THE DEVELOPMENT OF THE PRINTER CONTROLSYSTEM BASED ON SINGLE CHIP MICROCOMPUTERABSTRACTWith the constant innovation of science and technology, printer control system also becomes more diversified. Recently, single chip microcomputer(SCM) have gradually risen up in the field of printer system control, because of its small size, high performance and reasonable price. Therefore, this article studies the development of printer control system based on SCM.Based on data collection technology of Bus Hound as well as the large data analysis technology, this paper designed a printer control system based on STC. Let this system adopt STC to drive the Hewlett Packed DESKJET 1010 series inkjet printer to print a BMP file. Then this Paper introduces the overall design method include the hardware design and the software design method of the whole system. Combined with hard functions and software functions the article gives out a series of control program written in C.In the end, through system debugging, this paper gives out the overall performance of the module .From the test results, the whole printer control system based on single-chip microcomputer works stability, both the hardware and the software design meet the requirements of the subject.Key words: printer, SCM, Bus Hound, USB device protocol基于单片机的打印机控制系统的开发目录1 绪论11.1 引言11.1.1 课题背景11.1.2 课题意义21.2 发展现状及趋势21.2.1 单片机控制打印机21.2.2 发展现状与趋势21.3 课题研究内容与要求31.4 论文的主要组织结构安排31.5 本章小结42总体方案设计52.1 技术需求分析52.2 系统功能分析62.3 硬件总体设计72.4 软件总体设计82.5 本章小结93 打印机控制系统的硬件设计103.1 主控模块103.2 USB 接口芯片的选用133.3 存储器芯片的选用153.4 人机接口模块163.5 本章小结184 打印数据的截取与分析194.1 打印数据的截取194.2 打印数据的分析20基于单片机的打印机控制系统的开发4.3 本章小结245 打印机控制系统的软件设计255.1 软件开发环境简介255.1.1 编程语言的选择255.1.2 开发工具的选择255.2 主程序设计265.3 打印机的 USB 设备枚举275.4 打印机的数据发送及状态读取程序285.4 本章小结296 系统调试306.1 系统硬件调试306.2 系统软件调试306.3 模块打印测试316.4 本章小结327 结论337.1 论文总结337.2 课题展望33参考文献34致谢36附录 I37附录 II38附录 III40基于单片机的打印机控制系统的开发1 绪论1.1 引言1.1.1 课题背景打印机的历史,可追溯到遥远的 1933 年1。自走入人们的视野开始,打印机就为人们工作生活的便利做出了极大的贡献。发展至今 80 余年,从平面打印到发展到 3D 打印、从只能打印单一色调发展到可以实现彩色打印、从体积巨大的台式机器发展到便携式的微型打印机,打印机技术根据人们要求的提高而不断地革新2,与此同时,打印机也不断的在人们生活中普及开来,深刻地融入了人们的工作和生活中。近年来,在打印机技术变得愈发成熟和完善的同时,多样化的打印机系统控制方式已成为当前的研究热点。目前市面上的打印机系统多为基于 PC 的控制系统或者嵌入式控制系统。PC 控制占用空间大、需要用户自行安装驱动程序,而嵌入式系统控制虽然体积小,却价格昂贵导致打印成本高。这些问题都给用户造成了不便,因此研究出一种既可以摆脱对 PC 依赖又能更加快速便捷的打印机系统控制方式可以大大提升用户的打印体验。而单片机因为其良好的可靠性、轻便的体积、良好的性价比以及简单实用等优点,已经在各个领域得到了迅猛的发展3,虽然在打印机系统控制领域还处于起步阶段,但是不可置否的有着良好的前景。打印机发展至今经历了几次里程碑性的变革,纵观其发展过程,从最早的“针式打印机”、“喷墨打印机”,到后来的“激光打印机”、“彩色打印机”,到现在的“大幅面打印机”、“三维打印机”等一系列产品4。打印机不管在成本、质量还是特点、性能等各方面都不断优化,以满足人们的不断提高的需求。相比较于其他的几种打印机,喷墨打印机以其打印速度快,打印质量高,以及性价比高等优点,现已成为办公室以及家用打印设备的首选。因此,本课题着眼于设计一款基于单片机的 USB 接口喷墨打印机控制系统。1基于单片机的打印机控制系统的开发1.1.2 课题意义人们的生活节奏不断加快,因此人们对生活的各个方面甚至是娱乐都追求便捷和高效,这种改变也同样渗透在打印机的发展变革之中,具体表现为越来越多的“微型打印机”、“迷你照片打印机”等的出现。这类微型打印机的出现,看似在一定程度上改变了人们对 PC 控制的依赖。事实上,微型打印机由于价格昂贵,性能价格比等问题,没有真正地得到应用的普及5,不管是在小型家庭用户,还是在办公室中,PC 作为主机控制打印机依然应用最为广泛。PC 体积大、不便于移动,并且占用空间多、用户还须自行安装驱动程序后方能使用打印机6。因此,研究出单片机对打印机系统的控制,可以实现低成本高效率的打印体验,对打印机的性能提升有着重要的意义。1.2 发展现状及趋势1.2.1 单片机控制打印机基于单片机的打印机系统,是指使用单片机取代电脑直接控制打印机进行打印、停止打印等操作。此时单片机系统模块就相当于一个微型的电脑,用户可以通过模块上的按键方便地控制打印机打印的进度,同时可以通过模块上的指示灯以及显示屏等掌握打印机的打印状态。并且,相比于基于 PC 的打印机控制系统,单片机系统模块具有体积轻便、价格便宜以及打印速度快等多个优势。1.2.2 发展现状与趋势由于技术的约束,各种打印机控制系统在市场中发展并不平衡。基于 PC 的打印机控制系统基本垄断了小型个体用户以及企业用户市场。目前,以嵌入式系统为代表的微型打印机控制系统,凭借着其体积轻薄、设计灵活等优势,已渐渐应用于仪器、仪表、消防、医疗等领域7。但是,由于微型打印机打印幅面限制、以及打印接口的通用互换性差等缺点导致其不能得到广泛的使用8。基于单片机的打印机控制系统这个概念提出已经有一段时间,但是由于技术的约束,没有得到系统的发展。目前国内外也有一些企业在研发这个项目,但基本上是一些中小型企业,市场上相关的产品比较稀少了。但由于单片机各种优良的性能,基于单片机的打印机控制系统的前景还是激励着不少的人才不断的探索着。其中,国内江苏沁恒电子有限公司对这项技术有一定的研究成果。该企业生2基于单片机的打印机控制系统的开发产的 CH375 评估板功能强大,不仅可以实现对 U 盘(USB 闪存盘、USB 外置硬盘、USB 读卡器等)的读写操作,还可以直接操作其它 USB 设备,例如 USB打印机等9。打印机控制系统在多样化发展的同时,也在朝着以下几个方向发展:(1)智能化。在一切都趋向智能化的时代,智能化发展是现在打印机控制系统的发展核心。单片机具有优良的性价比和丰富的片内外资源,是打印机控制系统智能化发展的首选之一。(2)高精度化。打印机实现高精度化,对于提高打印机效率有着重要作用。提高打印机的打印精度对打印机控制系统的硬件设计和软件设计都有着更高的要求。1.3 课题研究内容与要求本课题在深入研究基于 USB 的喷墨打印关键技术的基础上,结合了 USBMonitor 的数据监控与分析技术以及 USB 总线协议,开发出一个基于 STC 系列单片机的 USB 接口喷墨打印机控制系统。在研究的过程中主要有以下几点要求:(1)分析出在打印不同格式的文件时,电脑至打印机的数据规律。(2)分析 PC 控制打印机的 USB 协议,并根据该协议编写相应的控制程序。(3)设计单片机硬件,画出原理图,PCB 图,并制作出模块 。(4)系统调试,实现单片机对打印机系统的驱动控制。1.4 论文的主要组织结构安排论文首先简述了基于单片机的打印机控制系统的定义,介绍了打印机控制系统的发展现状及趋势,引出本课题的研究意义。通过分析单片机与打印机通信的工作原理,设计了基于单片机的打印机控制系统基本方案。通过对 USB 接口芯片、存储器芯片的选用以及显示屏等主要模块的介绍,结合主控芯片,给出了完整的单片机驱动控制打印机系统的硬件设计方案。根据 USB 总线协议,详细地解析 USB 接口打印机的打印指令。以打印 BMP 格式的图像文件为例,深度解析PC 与打印机之间的数据传输规律。基于以上几点,以模块化结构制定出完整的基于单片机的打印机控制系统软件设计方案。最后对模块进行现场打印测试,根3基于单片机的打印机控制系统的开发据实际的打印结果,对本课题的研究内容进行总结与展望。本文各章节的主要研究内容如下:第一章:绪论。从课题的选题背景以及意义开始,介绍基于单片机的打印机系统控制的当前发展现状以及未来的发展趋势,结合以上两点引出了论文的目的及意义并且给出论文的内容、要求以及组织结构规划。第二章:总体方案设计。根据系统模块的功能需求,给出系统的设计依据,然后分别对硬软件进行整体的设计。第三章:硬件设计。介绍了模块的基本硬件结构,根据模块的不同功能来设计硬件电路。给出设计思路,并确定了本课题中所用到的主控芯片、USB 接口芯片、存储器芯片等相关芯片的型号。第四章:介绍 USB 协议,根据模块的工作情况结合相应的 USB 协议对接口数据进行解析。详细解析 USB 接口打印机的打印指令。第五章:软件设计。介绍了系统软件的开发环境及设计流程。分模块给出控制算法及流程图。重点介绍主程序以及发送数据子程序和状态监控子程序的设计。第六章:系统调试。分别对硬软件进行测试与调整,排除设计中的错误。最终,通过模块的打印测试,观察模块工作的稳定性。第七章:总结课题。指出模块设计过程中的不足,讨论改善方案。1.5 本章小结本章首先介绍了课题的背景,从而引出课题的意义。继而简单介绍了打印机控制系统的发展现状以及发展趋势,给出课题的内容与要求,详细阐述了论文的主要组织结构的安排。4基于单片机的打印机控制系统的开发2 总体方案设计2.1 技术需求分析为了更好地进行系统的总体方案设计,本课题以现有的基于 PC 的打印机控制系统为基础,通过分析对比基于 PC 的打印机控制系统的模块组成,来设计基于单片机的打印机控制系统模块。图 2-1 为 PC 控制打印机的原理图。图 2-1 PC 控制打印机的原理图由图 2-1 所示,PC 与打印机之间通过 USB 接口相连,PC 在驱动程序的驱动下控制打印机工作。同理,单片机系统与打印机之间也可以 USB 接口的形式连接,且单片机系统相比于 PC 不仅体积小、重量轻便于携带,还具有软硬件一体化设计,免去了用户自行安装驱动程序的麻烦。图 2-2 为单片机控制打印机的原理图。图 2-2PC 控制打印机的原理图本课题以喷墨打印技术作为课题研究的技术基础。喷墨打印机利用喷墨技术进行打印,可以将智能控制信号转换成图形图像的形式输出。在喷墨打印机的工作过程中,当纸张通过喷墨头时,打印机通过通信接口把数据传送给主机,主机5基于单片机的打印机控制系统的开发接收数据并加以转化成驱动信号,在驱动信号的作用下,打印机的主控电路可以通过强磁场加速,控制喷头高速地喷出墨水10。喷墨打印机工作流程图如图 2-3所示。图 2-3 喷墨打印机的工作流程图本文的目标是实现单片机控制喷墨打印机工作,从喷墨打印机工作原理来看,单片机对打印机的控制实质是对打印机喷头的控制。打印机喷头受控制信号的驱动,因此单片机和打印机之间的数据转换成为本论文的研究重点。2.2 系统功能分析一个完整的打印机控制系统应具有完整硬件结构以及软件结构。硬软件需要实现的功能不尽相同而又相辅相成。下面将分别介绍硬件模块和软件模块需要实现的功能,并根据其功能需求来进行各模块的设计。(1) 硬件模块:硬件是系统的运行平台,在单片机对打印机的控制过程中单片机需要对打印机发送控制命令、对打印机发送大量的数据并对数据进行转化与储存、系统需要支持用户对打印机工作进度的实时控制。为满足以上不同功能,系统可分几个不同的模块,分别为主控模块、接口模块、数据存储模块、人机交互6基于单片机的打印机控制系统的开发模块四个部分。(2) 软件模块:软件模块是系统的大脑,有了软件程序的驱动,系统才能控制打印机工作。为了实现硬件模块的几个功能、软件程序也需要分为几个模块。软件程序首先需要初始化打印机,各子程序需要实现的功能有发送数据、读取端口状态、实现人机交互等。根据以上的功能描述图 2-4 给出了系统的基本组成及功能。图 2-4 系统的基本组成及功能2.3 硬件总体设计作为整个控制系统的运行平台,硬件电路的设计在整体的打印机控制系统设计中占有重要地位。硬件的性能直接影响着整个系统的稳定性。结合 USB 接口喷墨打印机的技术需求以及单片机的性能特点,主要从以下几个部分进行系统的硬件电路设计:(1) 主控模块:以 STC 系列单片机为核心,主要的功能为系统的控制、数据的传输与处理、以及检测与转换打印机信号等。本模块还应包括电源电路、时钟及复位电路等外围电路。7基于单片机的打印机控制系统的开发(2) USB 接口芯片电路:在 USB 主机方式下,CH375 芯片作为中间桥梁单片机通过 CH375 芯片,按照相关 USB 设备协议与打印机进行通讯。(3) 数据存储模块:单片机外接一块大容量的 62256 存储器芯片,用来存储单片机与打印机之间传输的数据。(4) 人机接口模块:该模块包括用户按键、显示屏、以及指示灯,蜂鸣器等几个部分。用户通过显示屏观察打印进程,通过指示灯和蜂鸣器可以判断打印机是否故障。为了便于用户控制打印进度,模块扩展了多个按键来进行不同的操作。在控制系统的硬件设计中,主控模块是整个系统模块的核心,数据转换存储模块也是重点介绍部分。图 2-5 为系统的硬件结构设计框图。图 2-5 系统的硬件结构框图2.4 软件总体设计在整个系统模块中,软件就像系统的灵魂一样处于十分重要的地位。只有软件设计合理,系统才能高效有序地工作,才能控制打印机稳定工作精确打印。系统模块的软件程序主要由主程序协调,从而实现打印机驱动以及状态的实时显示。图 2-6 为系统的软件结构设计框图。8基于单片机的打印机控制系统的开发图 2-6 系统的软件结构框图上位机软件的主要功能如下:(1) 数据通信:发送运行指令到打印机,有时需要对打印机的运行状态加以干涉。(2) 数据监控:实时监控单片机至打印机之间发送的数据,同时对打印机的运行状态及打印进度进行监测。下位机主程序主要需要向上位机反馈信息,接收上位机的控制命令并对打印系统的各模块进行控制。其主要功能如下:(1) 数据通信:接收上位机的数据和指令,并反馈打印机的各种运行状态以及进度。(2) 状态显示:在 LCD 显示屏上实时显示打印机的运行状态以及打印进度,以及墨盒的工作状态等。(3) 实时响应用户的按键操作,自行诊断打印过程中的故障并且处理突发情况。2.5 本章小结本章以基于 USB 接口的喷墨打印机的工作原理为基础,制定了一套基于单片机的打印机控制系统基本方案。本章从简述喷墨打印机的工作原理开始,继而根据打印机控制系统的技术要求制定了总体的硬件设计方案,并且给出了硬件结构框图。最后结合总体硬件设计方案以及控制系统的功能要求,提出总体软件设计方案,给出软件设计框图。各个模块的硬件及软件的具体设计方案将在后续章节详细介绍。9基于单片机的打印机控制系统的开发3 打印机控制系统的硬件设计作为整个打印机控制系统的运行平台以及软件运行的载体,硬件设计的合理性直接决定打印机工作的稳定性。图 3-1 给出整体的硬件原理框图。图 3-1 整体的硬件原理框图下文将根据图 3-1,结合第二章提出的控制系统总体硬件设计方案,详细介绍各个功能模块的硬件电路。3.1 主控模块3.1.1 主控芯片的选择主控芯片承担着打印机控制系统的大部分工作。通过比较各芯片的性能、功耗、成本等因素,本系统采用 STC 系列单片机。相比于其他的单片机,STC 有许多的优点。它不仅可以很好地兼容 MCS51 系列单片机,而且拥有更加丰富的片内资源,而且可以很好地进行多任务的调度,以及处理复杂信号11。除此之外,STC 单片机更是具有强悍的保密性,可以很好地保护开发者的权益。单片机鱼龙混杂,功能各异,因此在选用的时候也要考虑与打印机控制系统的要求相匹配,主要需要考虑以下几个因素:10基于单片机的打印机控制系统的开发(1) 芯片的处理速度足够快(2) 芯片有管理嵌套向量中断的控制器,满足可以实时监控打印机工作状态并快速响应用户输入的要求。(3) 芯片具有多个 I/O 端口,以便于连接多路数据通讯实时显示运行状态信息。(4) 芯片功耗小、开发难度小、性能价格比高。综合考虑以上各个因素,本论文选用 STC12C5A60S2。它完全兼容 51 系列单片机的指令以及管脚,支持串口程序烧写12,从而大大地缩短了设备的开发时间。除此之外,它的内部自带高达60K闪存 , 运行速度更快。写入STC12C5A60S2 内的程序可以加密,可保护技术人员的专利不受侵犯。根据芯片的特性结合本系统的功能,本论文选用 40 引脚的 STC12C5A60S2芯片,图 3-2 给出了 STC12C5A60S2 的引脚功能图。芯片的一个引脚可能有数种功能,具体使用哪种功能根据芯片手册进行选择。芯片引脚的这种特性使得系统硬件设计更为灵活。图 3-2 STC12C5A60S2 引脚图3.1.2 外围电路(1) 电源电路11基于单片机的打印机控制系统的开发电源为各个模块供能,是模块正常运行所必须的。本系统采用+3.3V 直流电源为各个模块电路供电。+3.3V 直流电由 USB 接口的+5V 电源经电压转换芯片LM1117-3.3 转化获得。电源电路如图 3-3 所示。图 3-3 +3.3V 电源电路图(2) 时钟电路任何一种的控制器都需要时钟信号才可以正常工作,时钟电路提供正确的时钟基准和频率,是主控芯片重要的外围电路。STC12C5A60S2 有 2 个独立的振荡器,分别为:内部 R/C 振荡器,常温下 3.3V 单片机的频率为 8MHZ12MHZ,一般对精度要求不高时才会使用内部R/C 振荡器;外部时钟电路,频率为1MHZ24MHZ,可以通过 PLL 倍频至最大值。本论文采用外部时钟电路,图 3-4给出系统的时钟电路图。图 3-4 系统时钟电路图(3)复位电路复位电路的功能是将单片机的硬件逻辑回复到初始状态,在系统死机或者紧12基于单片机的打印机控制系统的开发急停止的状态下使用,在模块电路中起着重要作用。STC12C5A60S2 外部复位通过 RST 引脚实现,低电平有效。主控芯片的复位电路如图 3-5 所示。图 3-5 主控芯片的复位电路3.2 USB 接口芯片的选用USB 接口芯片是单片机与打印机之间进行通讯的桥梁。USB 接口芯片种类繁多,例如 Atmel 公司推出的 AT433 系列以及 Philips 公司推出的 PDIUSB 系列,都是单片机开发应用中比较常见的 USB 接口芯片。本论文选用的是南京沁恒公司生产的 CH375 芯片。 CH375 既支持 USB 主机方式又支持 USB 从设备方式。它具有 8 位数据总线,能方便地与单片机连线,并且具有完整的读、写、片选信号以及中断输出等功能13。除此之外,CH375 还内置有海量通用协议固件,在 USB 主机方式下,外部单片机可以通过其作为中间桥梁,按照相应的 USB 协议与单片机进行通信。图 3-6 给出芯片的引脚图,各个引脚的功能如表 3-1 所示。图 3-6 CH375 引脚排列图13基于单片机的打印机控制系统的开发表 3-1 CH375 引脚功能表14基于单片机的打印机控制系统的开发单片机的 P1.0 到 P1.7 端口与 CH375 的 D0 D7 端口相连,用于接收转换数据;CS#为片选信号输入,用于选中信号。单片机与 CH375 的具体连接方式如图 3-7 所示。图 3-7 STC12C5A60S2 与 CH375 的硬件接口3.3 存储器芯片的选用虽然 STC12C5A60S2 芯片内置了容量达60K FLASHROM,但在数据量过多的情况下,需要外接一个存储器芯片才能让模块更快更好地运行。本论文选用 62256 芯片作为模块的存储器芯片。62256 芯片是一个 32K 的静态 RAM 存储器芯片,具有集成度高、容量大、以及功耗低等特点14。它采用单一的+5V 电源,封装为 DIP-28(双列直插的 28 引脚封装)。62256 的引脚图由图 3-8 给出。图 3-8 62256 的引脚图15基于单片机的打印机控制系统的开发其中各引脚的功能为:D0D7:数据总线,与单片机相连,负责数据的传输A0A7:连接锁存器OE/:读选通引脚,与单片机的 RD/相连,低电平时,单片机从 62256 中读取数据。WE/:写选通引脚,与单片机的 WR/相连,低电平时,单片机写入数据到 62256 中。具体的引脚连接图如图 3-9 所示图 3-9 62256 与其他芯片的引脚连接图3.4 人机接口模块3.4.1 按键电路本系统设计了按键模块,以便于用户操作,实时控制打印机的工作进度。根据实际打印状况,按键可以用来开始、停止、以及复位等功能。图 3-10 给出了模块的按键电路设计图。图 3-10 按键电路图16基于单片机的打印机控制系统的开发3.4.2 显示电路显示电路包括 LED 指示灯以及 LCD 显示屏 2 个部分,重点介绍显示屏的选用。本系统模块体积较小、成本控制较低,结合模块的功能要求,本论文选择LCD1602 作为系统的显示屏。LCD1602 液晶屏是一种小型的字符型液晶屏,专门用来显示字母、符号以及数字等字符的点阵型液晶模块。虽然它不能很好地显示图像,但由于其体积小,重量轻,功耗低等优点,广泛应用于小型仪表和有低功耗要求的应用系统当中。LCD1602 可以显示 32 个字符或者数字,分成 2 行显示。其实物如图 3-11 所示。图 3-11 LCD1602 液晶模块实物图LCD1602 模块接口简单,采用 16 引脚接口,3.3V 的电压供电。LCD1602的引脚功能表如表 3-2 所示。表 3-2 LCD1602 的引脚功能引脚编号符号说明引脚编号符号说明1GND接地9D2双向数据端2VCC电源正极10D3双向数据端3VL对比度调整端11D4双向数据端4RS寄存器选择引脚12D5双向数据端5RW读写信号线13D6双向数据端6EN使能端14D7双向数据端7D0双向数据端15BL+空引脚或背光正极电源8D1双向数据端16BL-空引脚或背光负极电源在上表中,RS=1 时,选择数据寄存器;RS=0 时,选择指令寄存器。RW=117基于单片机的打印机控制系统的开发时,进行读操作;RW=0 时进行写操作。EN=1 时,读取信息;EN=0 时,执行指令。单片机的 I/O 接口可以直接驱动 LCD1602 液晶屏,图 3-12 为 LCD1602 与 STC12C5A60S2 的硬件连接图。图 3-12 LCD1602 与 STC12C5A60S2 的硬件连接3.4.3 蜂鸣器电路蜂鸣器在系统故障的时候起到报错的作用。图 3-13 为蜂鸣器电路。图 3-13 为蜂鸣器电路3.5 本章小结本章从介绍打印机控制系统的硬件组成开始,继而从各个功能模块分别详细说明了各模块电路的设计思路、芯片的信选用思路并给出了各模块的具体硬件电路图。最后整合本章的设计,画出整个打印机控制系统的原理图以及 PCB 图。18基于单片机的打印机控制系统的开发4 打印数据的截取与分析无论是 PC 控制打印机还是单片机控制打印机,都是由驱动信号控制打印。设计基于单片机的打印机控制系统的控制程序,需要获取打印机的一些基本的自身配置。本文以打印黑条的数据为例,利用 Bus Hound 截取 PC 至打印机之间的数据,结合相关 USB 协议,分析出打印机的一些基本配置,例如接口号、端点号、支持的端点个数等等。这些基本配置信息,应用于程序开始的设备枚举部分。4.1 打印数据的截取为了获得打印机的基本设备配置值,本文以 Bus Hound 为工具,在 PC 控制打印机打印时,截取打印机指令。Bus Hound 是美国 Perisoft 公司开发的专用于监视和控制各种总线数据包的工具软件,可以敏锐地感知到来自总线数据的细小变化。使用 BusHound 截取打印数据,只需要在打印前打开软件的捕捉界面,开始打印后,打印数据便会显示在 Bus Hound 的捕捉界面上。下面将逐步介绍打印指令截取的过程。首先双击打开 BusHound 软件,如图 4-1 所示,有六个操作选项,其中 Capture表示捕捉,该页面为显示数据的页面;Save 为保存,可以将截取的数据以不同的格式保存;Setting 为设置,这些设置决定了需要捕捉的数据的类型,例如数据传输的方向、描述、长度、地址等等;Devices 表示设备,在该选项下正确地选择打印机型号,才可在打印过程中将数据截取下来。图 4-1 Bus Hound 的选项界面经过相应的设置,在 Capture 界面得到打印机的 USB 配置数据,保存成 Text格式以便于整理分析。图 4-2 为使用 HP1010 型号的打印机打印黑条时截取到的数据。19基于单片机的打印机控制系统的开发图 4-2 截获的打印数据4.2 打印数据的分析根据上一章截取到的打印数据,结合 USB 描述符相关协议来解析打印机的 USB 配置信息。主要从设备、配置、接口、端点等四个部分来分析。(1) 设备描述符12 01000200 00 00 40f0031188000101 02 03 01上述数据从左往右读:12H 表示设备描述符的长度,为固定的 18 字节;01H 表示设备描述符的类型值;0002H 为 bcdUSB,用于表示该 USB 设备所遵循的 USB 规范版本号,格式为 0xAABC,其中 AA 为主版本号、B 为次版本号、C 为次子版本号,因此该打印机的 USB 版本为 USB2.0;00H 为 bDeviceClass 用于表示该 USB 设备所属的标准设备类,该字段值在1FEH 之间时,表示为 USB 协议中定义的某一个设备类,当为 0 时,表示 USB设备的各个接口相互独立分属于不同的设备类,当为 03H 时,表示 HID 设备类,20基于单片机的打印机控制系统的开发当为 FFH 时,表示由供应商自定义该设备类,因此该打印机的各个接口相互独立分属于不同的设备类;00H 为 bDevicesSubClass,用于表示 USB 设备所属的标准设备子类,对于不同的设备类,其设备子类的数值也不同,由于该打印机的设备代码为 0 因此子类代码也必须为 0;00H 为 bDeviceProtocol,用于表示 USB 设备所采用的设备类协议,其值和设备类代码以及设备子类代码都有关,当为 0 时,表示不使用任何设备类协议,当为 FFH 时,表示设备类协议由供应商自定义,因此该打印机不使用任何设备类协议;40H 为 bMaxPackerSize0:用于表示在 USB 设备中,端点 0 所支持的最大数据包的长度以其字节为单位,低速设备该值为 8,对于全速 USB 设备,该值可为 8、16、32 或 64,高速 USB 设备该值为 64,因此该打印机的 USB 为高速 USB,且端点 0 所支持的最大数据包长度为 64 字节;f003H 为 idVendor,表示该打印机的供应商 id;1188H 为 idProduct 用于表示该打印机的产品 id;0001H 为 bcdDevice 用于表示打印机的版本号,以 BCD 码的形式表示;01H 为 iManufacturer,用于表示供应商字符串描述符的索引值;02H 为 iProduct,用于表示打印机字符串描述符的索引值;03H 为 iSerilNumber,用于表示打印机序列号字符串描述符的索引值;01H 为 bNumConfigurations,表示该打印机只支持一个配置。(2) 配置描述符在本次的打印过程中,产生了两串配置描述符,表示打印机配置了 2 次09 02 3700 02 01 00 c00109 02 2000 01 01 00 c001上述两行数据从左往右读:09H 为 bLength 用于表示配置描述符的长度,固定为 9 字节;02H 为 bDescriptorType 用于表示配置描述符的类型值,固定为 02H;3700H 和 2000H 为 wTotalLength 用于表示配置信息的总长度,包括配置描述符、接口描述符、和端点描述符的长度总和,此处总长为 5700H;21基于单片机的打印机控制系统的开发02H 和 01H 为 bNumInterfaces 用于表示配置所支持的接口数,因此该打印机设备支持 2 个接口;01H 为 bConfigurationValue 用于表示 USB 设备的配置值,此处出现了 2 次01H,表示打印机配置了 2 次;00H 为 iConfiguration 表示配置字符串的索引值,此处表示该打印机没有配置字符串;C0H 为 bmAttributes 用于表示 USB 设备的配置特性,按位寻址第 6 位置 1 表示使用电源总线、第 5 位置 1 表示支持远程唤醒功能,该字段的其他位均保留,一般来说 04 位置 0 即可,第 7 位置 1 即可,因此该打印机使用电源总线不具有远程唤醒功能;01H 为 bMaxPower 用于表示 USB 设备运行时所消耗的总线电流,单位以2mA 为基准,设备可以从 USB 设备上获得最大的电流为 500Ma,该打印机运行所消耗的总线电流为 2mA。(3) USB 接口描述符09 04 00 00 02 07 01 02 0009 04 01 00 02 ff 04 01 00上述两行数据从左往右读:09H 为 bLength 用于表示接口符的长度,固定为 9 字节;04H 为 bDescriptorType 用于表示接口描述符的类型值,固定为 04H;00H 和 01H 为 bInterfaceNumber 用于表示接口的接口号,此处分别为接口 0和接口 1;00H 为 bAlterateSetting 用于表示接口的可替换设置值,此处表示打印机接口无可替换设置;02H 为 bNumEndpoints 用于表示接口所使用的端口数,除端点 0 以外的所有端点,此处表示打印机的接口 0 和接口分别使用 2 个端口;07H 和 ffH 为 bInterfaceClass 用于表示接口所属的设备类,当 bInterfaceClass=1FEH 时,表示该接口属于 USB 定义的某个设备类,当该字段指定为 FFH 时,它表示该设备类是供应商自定义的,因此该打印机的接口 0 属于 USB 定义的设备类,而接口 1 属于供应商自定义的设备类;22基于单片机的打印机控制系统的开发01H 和 04H 为 bInterfaceSubClass 用于表示接口所属的 USB 设备子类,当设备类字段为 0 时,该字段必须为 0,若设备类字段为 1FEH 之间则该字段需进一步表示设备子类,当该值为 FFH 时表示由供应商自定义设备子类,因此打印机端点 0 的设备子类为 01H,端点 1 的设备子类为 04H;02H 和 01H 为 bInterfaceProtocol 用于表示接口所采用的 USB 设备类协议,其值和 bInterfaceClass 以及 bInterfaceProtocol 有关,当该字段为 0 时表示不使用任何设备类协议,当该字段为 FFH 时表示由供应商自定义设备类协议,因此该打印机的接口 0 的设备类协议为 02H,接口 1 的设备类协议为 01H;00H 为 iInterface 用于指出接口字符串描述符的索引值。该字段为 0 表示打印机接口没有配置字符串。(4) 端点描述符在 USB 协议中,端点描述符用于指出 USB 设备端点的特性,包括其支持的传输类型、方向等。除端点 0 外,其他端点必须包含端点描述符。该打印机的配置中,除端点 0 外还有 4 个端点,以下分别为这四个端点的描述符。07 05 08 02
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沈阳理工大学《计算机网络》2021-2022学年期末试卷
- 沈阳理工大学《工艺美术设计》2022-2023学年第一学期期末试卷
- 沈阳理工大学《单片机接口技术》2023-2024学年期末试卷
- 合同编通则与新公司法银行业务
- 2024标准幼师聘用合同范本
- 期末复习检测提升卷九 -2022-2023学年语文五年级上册(部编版)
- 2024小产权房屋买卖合同协议书样本
- 2024货物采购合同范本
- 2024快递承包合同,快递承包协议
- 2024中学门卫劳动合同范本
- 景区解说系统
- 注册电子邮箱PT课件
- 一年级语文学年第一学期期中质量分析报告
- 《少年的荣耀》阅读推荐课件参考
- 择菜洗菜我能行
- VTE的预防和护理PPT演示课件
- 钠与水的反应
- 向世界讲述中国智慧树知到答案章节测试2023年
- 议论文写作技巧
- 教科版五年级科学上册(风的作用) 教学课件
- 全国初中语文优质课一等奖《诫子书》课堂实录及评析
评论
0/150
提交评论