当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于嵌入式Linux的打印控制系统的设计

<STRONG>摘要:这一方案应用先进的ARM嵌入式技术,使当前必须由计算机来驱动的打印机,完全脱离了计算机的束缚,形成一套完整独立的打印系统,能完成预览、编辑、控制、打印的功能。
关键词STRONG>:ARM 处理器,打印机,打印控制系统,交叉编译

1. 引言

    当前,大多数打印机都是由桌面机及相应软件来驱动的,但是许多情况下,希望打印机能脱离机算计而独立工作。基于这种考虑,本文提出一种基于嵌入式Linux的打印控制设备,它自带液晶显示屏,可以外接U盘,移动硬盘,可以预览存储设备上的文本和图像文件并进行简单的图像编辑, 还可以根据需要更改打印参数.

2.打印控制系统硬件结构

    硬件结构原理图如图1所示:

    图1硬件结构原理图[1]   

    各主要模块基本组成描述如下:

(1)       微处理器MPU[2]:本系统采用的嵌入式微处理器是Samsung公司S3C2410。这块处理器是一款基于ARM920T内核的16/32位RISC嵌入式微处理器,采用五级流水线和哈佛结构,提供1.1MIPS/MHz的性能,主要面向手持设备以及高性价比,低功耗的应用.

(2)       Flash存储器: 采用Samsung公司K9F1208U0M Nand Flash存储器,存储容量为64MB,用于存放嵌入式操作系统和应用程序,剩余空间用于暂存文件和用户自由存储使用.

(3)       SDRAM存储器: 采用HY57V561620CT,大小为32MB.

(4)       USB集线器芯片: 采用ALCOR MICRO公司AU9254A21型号的USB集线器芯片,可将系统扩展为4个USB外部接口,用于连接打印机,U盘,鼠标,键盘等外部设备.

(5)       触摸屏:采用Sharp公司的3.5寸LCD液晶屏, 320×240的分辨率,自带触摸功能.

3. 打印控制系统的软件设计

3.1 linux操作系统简介

   目前国际上有两百多种嵌入式操作系统,比较有影响力的几种是:VxWorks, uC/OS, Windows CE, Linux, QNX, Palm OS.这其中,Linux以其诸多的优点,发展最快,应用最广.

Linux操作系统有如下几个特点:

(1)       免费使用,节省了大量的开发费用.

(2)       开放源代码,可以根据需要随意定制内核.也正是由于其开源性,使得Linux成为自由软件世界的一面旗帜,也使得我们能够从广袤的网络世界中获取大量的免费资源.

(3)       可移植性,能够应用于多种硬件平台.原形可以在标准平台上开发,然后移植到具体硬件上,加快了开发过程.

(4)       高度的模块化使添加部件非常容易.

本文所述系统采用经过裁减(依据外围硬件和所需服务)的linux操作系统.

3.2 linux操作系统下的打印控制系统

    根据打印机的命令方式,可以将其分成文本打印机、PostScript打印机和其它种类。所谓文本打印机,就是那些比较古老的针式打印机,我们不需要驱动程序,就可以直接用cat命令驱动打印机打印文字,但只能打印英文,这种打印机现在已经很少使用了。PostScript(简称PS)是一种绘图能力很强的解释性脚本语言,1985年由Adobe公司制定。由于它占用计算机系统资源少,处理过程标准化而且与设备无关,所以被广泛的应用于打印系统.现在,能够直接支持PostScript的打印机,通常都是非常高级的办公打印机,对于这种打印机来说,PS语言是它们和计算机之间沟通的最简便的方式,应用程序可以将生成的PS文档直接发给打印机打印.但大多数情况下,我们使用的是各种比较低档的,不能直接支持PostScript的喷墨或者激光打印机,这一种类的打印机只能识别各厂家自己的指令集.

    接下来,我们根据图2所示框图,介绍一下打印控制系统中的几个主要问题:

       

(1)格式转化程序Netpbm:

     一组转换图形格式的程序集,可以将png和jpg等格式的图像经中间格式PNM,最终转换成通用的PostScript格式.其中包括了pngtopnm,pnmtops等一系列独立的小程序,将它们搭配使用,可以对图像进行诸如缩放,旋转等各种处理.

(2) GhostScript程序:

    对于支持PostScript的打印机而言,要在Linux下使用是比较容易的,但对于那些不支持PostScript的打印机而言,就必须要把PostScript格式转换成打印机能够识别的命令格式,而GhostScript就是用来完成这个工作的.Ghostscript是PostScript打印机模拟程序,通过软件模拟PostScript打印机,它的具体工作是将PostScript页面描述语言,转译成各种打印机专用的低阶打印指令,并发送给打印机执行。因此,Ghostscript需要知道各种打印机的指令语言,这就是的打印机驱动程序。Ghostscript软件中有很多随附的驱动程序,除此之外,还可以在www.LinuxPrinting.org的打印机资料库中寻找.

(3)打印机驱动程序[3]

     打印机驱动程序是应用软件与打印机之间交流的桥梁,它可以将转化好的打印文件,按照各种打印机不同的格式发送给打印机,因此不同的打印机都有自己特有的打印驱动程序。另外,随驱动程序一起发布的还有PPD文档,PPD(PostScript Printer Description)是用来描述打印机功能的文件,里面包含了字体,打印页面等的一些描述。要使用一款打印机之前,必须找到其相应的PPD文件,并正确地安装到打印管理器程序上。

(4)打印管理程序:

     作为一个多用户多任务的操作系统,Linux上的所有程序都是基于多任务、多用户而设计的,打印也不例外。为了让不同的用户、不同的任务在打印的时候不会产生冲突,就需要一个打印管理程序,我们通常称其为spooler。这类管理程序很多,从传统的LPD,到时下非常流行的CUPS,它们功能各异,但有一点不变的就是都是用来协调打印任务的。CUPS的工作方式如下:通过命令行接收要打印的文件;通过文件的类型判断是否需要将其转换为PostScript,如果需要,则调用相应的应用程序进行转换;通过PPD文件来判断GhostScript应使用何种驱动处理此PostScript文件;把GhostScript处理的结果输出到打印设备上。

(5)用户统一界面Foomatic[4]

     由于打印领域标准问题长时间不统一,诞生了各种打印管理程序,而要学会为每一个打印管理程序安装驱动程序,是一件非常复杂的事情;如果用户需要更换打印机,也必须更改复杂的设置。为了改善这种状况,就出现了Foomatic应用程序,它的作用是通过一种方式管理所有的打印机,把PPD文档和打印管理程序的配置屏蔽掉,给用户一个友好的统一的界面。

    在嵌入式系统设计中,因为其系统资源有限,合理分配资源和保证处理速度是我们首先要考虑的问题.一台不支持PostScript格式的打印机工作时会占用大量的CPU处理时间和内存空间,只是在PC上工作时,由于CPU处理速度快,内存空间大,所以用户感觉不到罢了.基于以上考虑,本文所设计的嵌入式打印系统,在保留上述打印机系统结构的情况下,以简单的shell脚本程序代替CUPS等庞大的打印管理程序,以自行开发的图形用户界面代替Foomatic应用程序.另外,由于惠普公司的打印机驱动程序具有良好的通用性和可移植性,因此我们选择HP Deskjet系列喷墨打印机,同时使用这一系列的通用驱动程序hpijs(含多种打印机型号的PPD文档),源代码由惠普公司官方网站提供.Ghostscript选用GNU Ghostscript 7.05版本,具有较好的可移植性.

3.3软件设计中的关键问题:

(1)交叉编译:

     嵌入式项目的开发中,有一个重要的环节就是构建交叉编译工具链.所有的软件源程序,必须经过这个工具链的编译,链接后才能生成可以在嵌入式系统上运行的代码.在过去,编译一套工具链要花费开发人员不少的时间,但现在在网上很容易就可以下载一套已经做好的工具链.本文所述打印系统中的netpbm程序集,GhostScript程序,hpijs打印机驱动程序都是通过交叉编译以后才被装入嵌入式系统使用的.

(2)打印任务管理程序:

    没有使用CUPS打印管理程序,是因为它会耗费大量的系统资源,这对于嵌入式系统来说无疑是致命的.但节约资源的同时,我们也要花费时间去设计一个适和于目标系统的程序,来管理打印任务.目前,我们实现的系统不作为打印服务器使用,因此没有多用户并发的情况。我们完全用SHELL脚本实现了简单的打印任务管理功能,程序流程图如下所示:

3.4 用户图形界面设计

   Foomatic应用程序本身并不大,但它是一个Perl脚本程序,所以如果要使用它,我们还得额外移植一套庞大的Perl脚本解释器,这对系统会有十几兆的开销.因此,我们选择用Qt/Embedded工具包开发了一套简单的用户界面.其主要功能是让用户可以看到存储设备(flash存储器或外接usb存储设备)上的文件,以便选择打印,其中jpg和png格式的图像还可以显示出来,供用户做简单编辑后再打印;另外,可以让用户看到驱动程序所支持的几十种打印机型号,用户更换打印机后,只要更改相应的型号,程序就会自动调整打印命令,方便了用户的管理和使用.

4.结束语

   本文设计了一种基于嵌入式Linux的打印控制设备,在一般打印机上实现了脱离PC预览,编辑,控制,打印的功能。这一设备具有很大的灵活性,只要移植相应的驱动程序,我们可以将其应用于所有打印机,这样既获得了优越的性能又节省了开支,具有较高的实用价值。

参考文献:

[1] 江俊辉,基于ARM的嵌入式系统硬件设计,微计算机信息,2005年第7-2期
[2] 孙天泽等著,嵌入式设计及Linux驱动开发指南―基于ARM9处理器,电子工业出版社
[3] Alessandro Rubini等著,魏永明等译,Linux设备驱动程序(第二版),中国电力出版社
[4] LinuxPrinting.org: Foomatic, http://www.linuxprinting.org /foomatic.html

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

作者 Mohamad Ali| IBM咨询首席运营官 北京2024年5月24日 /美通社/ -- 生成式AI的兴起几乎在所有面向上给业务带来改变。根据 IBM 商业价值研究院最新的年度 CEO 研究,近60%...

关键字: IBM AI BSP 模型

新型天线可在宽频率范围内工作 加利福尼亚州尔湾2024年5月27日 /美通社/ -- Infinite Electronics 旗下品牌,业界领先的射频、微波和毫米波产品供...

关键字: 天线 波导 TE ST

台北2024年5月21日 /美通社/ -- 提供针对AMD WRX90和TRX50主板优化的DDR5 OC R-DIMM 提供容量128GB(16GBx8)到768GB(96GBx8),速度5600MHz到8...

关键字: AMD 内存 BSP GB

上海2024年5月20日 /美通社/ -- 2024年5月16日,世界知名的生命科学公司 Eppendorf 集团于第二十三届生物制品年会上成功举办了"疫路超越 推流出新"的产品发布会,正式推出大规模...

关键字: RF PEN BSP IMAC

北京2024年5月20日 /美通社/ -- 过去五年里,支付和收款方式日新月异,其发展和变化比过去五十年都要迅猛。从嵌入式数字商务的出现,到"一拍即付"的...

关键字: VI BSP PAY COM

华钦科技集团(纳斯达克代码: CLPS ,以下简称"华钦科技"或"集团")近日宣布致敬 IBM 大型机 60 载辉煌历程,并将继续实施集团大型机人才培养计划。

关键字: IBM BSP 研发中心 PS

助力科研与检测新突破 上海2024年5月15日 /美通社/ -- 全球知名的科学仪器和服务提供商珀金埃尔默公司今日在上海举办了主题为"创新不止,探索无界"的新品发布会,集中展示了其在分析仪器领域的最...

关键字: 质谱仪 BSP DSC 气相色谱

上海2024年5月16日 /美通社/ -- 2024年5月10日至5月13日,富士胶片(中国)投资有限公司携旗下影像产品创新力作亮相北京P&E 2024。在数码相机展览区域,全新制定的集团使命"为世界绽...

关键字: 富士 数码相机 影像 BSP

贝克曼库尔特目前已成为MeMed Key免疫分析平台和MeMed BV检测技术的授权经销商 在原有合作的基础上,继续开发适用于贝克曼库尔特免疫分析仪的MeMed BV检测 加州布瑞亚和以色列海法2024年5月16日...

关键字: BSP IO 检测技术 免疫分析仪

英国英泰力能的燃料电池是可产业化的产品解决方案 英国首个专为乘用车市场开发的燃料电池系统 在 157kW 功率下,此燃料电池比乘用车的其他发动机更为强大 &...

关键字: ENERGY INTELLIGENT 氢燃料电池 BSP
关闭
关闭