1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 基于 USB 传输的针式打印机驱动程序开发

基于 USB 传输的针式打印机驱动程序开发

时间:2021-04-28 09:54:11

相关推荐

基于 USB 传输的针式打印机驱动程序开发

1

.引

针式打印机曾经在相当长的一段时间占据打印机市场的主导地位,但是近年来由于喷墨、激光等非击打式打印机的冲击,针式打印机的市场份额逐年下降。即便如此,由于针式打印机在票据打印领域的不可取代性,同时鉴于当前国内打印机市场一直被国外品牌充斥的现状,我们设计并开发了这款基于

USB

传输的针式打印机。一个完整的

USB

针式打印机系统包括打印机软件和打印机硬件两部分,其中打印机软件负责打印任务的创建,而打印机硬件负责打印任务的执行。如果仔细划分,打印机软件又分为运行于主机系统的应用程序、打印机驱动程序和端口驱动程序,以及运行于打印机的打印机固件程序、打印机命令解析程序和打印机控制程序,打印机命令解析程序和打印机控制程序接受打印机主控程序的调度。打印机硬件也可分为电路组成和执行机构两部分。

2

针式

打印机

系统

设计

一个打印任务的完成必须要经过任务创建和任务执行两个步骤。在

Windows

操作系统下,打印任务起始于应用程序,如图

1

。当用户使用应用程序的打印功能后,应用程序将用户的打印任务提交给打印机驱动程序,打印机驱动程序将该任务解析为一些字符数据,包括打印机控制命令数据和打印图形数据。这些数据通过端口驱动程序发送到打印机。当打印机接收到打印数据后,首先解析这些数据为打印机的实际执行指令,然后由控制程序操作执行机构将位图信息打印到媒介上。整个打印数据的传输都建立在主机与打印机正常通信的基础上,这项工作由打印机固件程序完成。

了解了打印机系统的工作流程和系统内各个组件的作用,我们来对系统各个组件进行设计。

(1) Windows

打印机驱动程序设计

开发打印机驱动程序通常有两种途径:一是开发一个完整的驱动程序,二是利用微软提供的通用打印机驱动程序

( Unidrv )

开发小型驱动程序

( Minidriver )

。开发一个完整的驱动程序工作量大且过程复杂,因此我们采用通用打印机驱动程序

+

小型驱动程序来开发打印机驱动程序。

(2)

打印机固件程序设计

USB

协议中,不同的设备类具有着不同描述符和设备请求,

USB

打印机作为一种特殊的

USB

设备也有其特殊性,必须严格按照协议规定进行设计。在本文中,我们使用集成

USB

通信口的

At91sam7s32

芯片完成打印机固件程序开发。

(3)

打印机主控程序设计

打印机主控程序由打印机解析程序模块和打印机控制程序模块组成。解析模块通常使用顺序解析法解析数据,但是这种方法结构死板,解析效率低,为此本文提出了一种基于表格的解析法;对打印机执行机构进行控制是整个打印机系统的核心。一般采用的方法是使用单片机作为系统控制器,但是控制打印机需要同时控制两个步进电机和

24

个打印针头,对单片机处理速度要求较高,同时还要使用大量的单片机接口资源,

一般单片机都无法满足要求,为此我们提出了一种单片机

+CPLD

的打印机控制方法,有效的解决了这个问题。单片机使用上面提到的

At91sam7s32

CPLD

使用

Altera

生产的

EPM1270

芯片,该芯片具有

1270

个逻辑单元和

212

个用户引脚,满足打印机控制的速度要求和接口数量要求。

Windows

打印体系结构由打印假脱机系统(

SPOOL

)和一系列的打印机驱动程序(

DRIVER

)组成。

SPOOL

Windows

打印系统的核心,它有一个关键的作用就是对打印任务进行路由,将打印任务传递到正确的打印机驱动程序进行处理。打印驱动程序由打印图形动态链接库和打印接口动态链接库组成,打印图形动态链接库负责将打印任务解析为打印

3.1

小型驱动程序的开发

小型驱动程序是建立在通用驱动程序

( Unidrv )

基础之上的。通用驱动程序由打印图形动态链接库

UNIDRV.DLL

、打印接口动态链接库

UNIDRVUI.DLL

以及一些文本文件和二进制结构文件组成,这些文本文件和二进制文件文件构成了我们的小驱动程序。小型驱动程序的文本文件称为

GPD

General Printer Description)

文件,一个小型驱动程序可以由一个或多个

GPD

文件构成。小型驱动程序的二进制文件包括

GTT(Glyph Translation Table)

文件和

UFM

Unidrv Font Metric

)文件,

GTT

文件用来描述打印机所能支持的字体,

UFM

文件用来描述字体的尺寸大小。由于

GTT

文件和

UFM

文件不是小型驱动程序所必须的文件,所以这里只介绍

GPD

文件的设计方法。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。