新闻中心

EEPW首页>嵌入式系统>设计应用> 基于Android平台的无线打印模块设计

基于Android平台的无线打印模块设计

作者: 时间:2016-10-10 来源:网络 收藏

本打印模块针对平台提供打印机驱动程序,既支持PS(PostScript)语言的打印机,也可以通过Imageto Raster和RastertotHP(或RastertoEpson)过滤器将需要打印的内容转换为HP公司的PCL(Print Control Language)、Epson公司的ESC/P等。Backend过滤器选用USB,以配合所选打印机的接口。打印实现流程图如图6所示。

本文引用地址://m.amcfsurvey.com/article/201610/306024.htm

c.JPG


Backend过滤器USB打印接口是通过AT91RM9200,按照USB主机规范控制其自带的主机接口实现的,主要包括I/O缓存的初始化、USB主机芯片的初始化以及USB打印机的设备枚举及初始化等。USB打印机设备的驱动程序结构框图如图7所示,流程图如图8所示。

d1.jpg

d.JPG


首先对I/O缓存以及AT91RM9200的USB主机部分进行初始化。其中,关于USB主机部分的初始化包括了对外设时钟的设置,初始化host stack,将所有的TD、ED和HCCA全部归零,USB主机软复位,设置AIC中断等。
然后通过对早先定义的全局变量HOST_Rhsclntr的监控,判断是否有中断发生,从而来判断是否有USB接口打印机的接入,以决定是否进行下一步的枚举操作。一旦检测到,主机则要等待400ms,使插入操作完成并使设备电源稳定工作。然后进行对USB打印机的枚举过程。
再通过对函数USBHostPrinterGetStatus()的调用,查询当前的USB打印机的工作状态——是否离线,是否缺纸,是否发生错误。并根据得到Print_Status中的8位数值来判断打印机的工作状态,如果处于正常的等待打印的状态,则进入到正常打印状态。由于采用的HP公司支持USB口和PCL5打印命令的打印机,通过对相关PCL打印命令的调用,完成对打印机的复位、设置纸张大小、页面格式和字体大小等操作。紧接着则可以通过端点的调用进行数据的传输,进行打印工作。最后通过调用函数USBHostPrinterReset()再次对打印机进行软复位,等待下一次的打印请求。

5 实验结果
实验采用HTC智能手机发送文本文件到打印模块,打印模块通过USB接口与HP激光打印机连接,打印模块将文件传输到打印机,最后由打印机打印输出。图9为打印模块打印设置界面,图10为打印操作页面。

e1.jpg

e.JPG



结语
本文采用高性能ARM处理器AT91RM9200以及操作系统,采用移植Linux下相关开源驱动的方式,通过调用Linux内核的CUPS,实现系统上的USB打印功能,解决了智能移动终端没备(如智能手机或平板电脑等)不支持直接打印功能的问题,给移动用户带来了文件打印的便利。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭