<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于嵌入式Linux的打印控制系統的設計

基于嵌入式Linux的打印控制系統的設計

作者: 時(shí)間:2007-05-25 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:這一方案應用先進(jìn)的ARM技術(shù),使當前必須由計算機來(lái)驅動(dòng)的機,完全脫離了計算機的束縛,形成一套完整獨立的系統,能完成預覽、編輯、控制、的功能。
關(guān)鍵詞:ARM處理器,打印機,打印,交叉編譯

1. 引言

當前,大多數打印機都是由桌面機及相應軟件來(lái)驅動(dòng)的,但是許多情況下,希望打印機能脫離機算計而獨立工作。這種考慮,本文提出一種的打印控制設備,它自帶液晶顯示屏,可以外接U盤(pán),移動(dòng)硬盤(pán),可以預覽存儲設備上的文本和圖像文件并進(jìn)行簡(jiǎn)單的圖像編輯, 還可以根據需要更改打印參數.

2.打印硬件結構

硬件結構原理圖如圖1所示:

圖1硬件結構原理圖[1]

各主要模塊基本組成描述如下:

(1) 微處理器MPU[2]:本系統采用的微處理器是Samsung公司S3C2410。這塊處理器是一款ARM920T內核的16/32位RISC嵌入式微處理器,采用五級流水線(xiàn)和哈佛結構,提供1.1MIPS/MHz的性能,主要面向手持設備以及高性?xún)r(jià)比,低功耗的應用.

(2) Flash存儲器: 采用Samsung公司K9F1208U0M Nand Flash存儲器,存儲容量為64MB,用于存放嵌入式操作系統和應用程序,剩余空間用于暫存文件和用戶(hù)自由存儲使用.

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

(4) USB集線(xiàn)器芯片: 采用ALCOR MICRO公司AU9254A21型號的USB集線(xiàn)器芯片,可將系統擴展為4個(gè)USB外部接口,用于連接打印機,U盤(pán),鼠標,鍵盤(pán)等外部設備.

(5) 觸摸屏:采用Sharp公司的3.5寸LCD液晶屏, 320240的分辨率,自帶觸摸功能.

3. 打印的軟件

3.1 linux操作系統簡(jiǎn)介

目前國際上有兩百多種嵌入式操作系統,比較有影響力的幾種是:VxWorks, uC/OS, Windows CE, , QNX, Palm OS.這其中,以其諸多的優(yōu)點(diǎn),發(fā)展最快,應用最廣.

Linux操作系統有如下幾個(gè)特點(diǎn):

(1) 免費使用,節省了大量的開(kāi)發(fā)費用.

(2) 開(kāi)放源代碼,可以根據需要隨意定制內核.也正是由于其開(kāi)源性,使得Linux成為自由軟件世界的一面旗幟,也使得我們能夠從廣袤的網(wǎng)絡(luò )世界中獲取大量的免費資源.

(3) 可移植性,能夠應用于多種硬件平臺.原形可以在標準平臺上開(kāi)發(fā),然后移植到具體硬件上,加快了開(kāi)發(fā)過(guò)程.

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

本文所述系統采用經(jīng)過(guò)裁減(依據外圍硬件和所需服務(wù))的linux操作系統.

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

根據打印機的命令方式,可以將其分成文本打印機、PostScript打印機和其它種類(lèi)。所謂文本打印機,就是那些比較古老的針式打印機,我們不需要驅動(dòng)程序,就可以直接用cat命令驅動(dòng)打印機打印文字,但只能打印英文,這種打印機現在已經(jīng)很少使用了。PostScript(簡(jiǎn)稱(chēng)PS)是一種繪圖能力很強的解釋性腳本語(yǔ)言,1985年由Adobe公司制定。由于它占用計算機系統資源少,處理過(guò)程標準化而且與設備無(wú)關(guān),所以被廣泛的應用于打印系統.現在,能夠直接支持PostScript的打印機,通常都是非常高級的辦公打印機,對于這種打印機來(lái)說(shuō),PS語(yǔ)言是它們和計算機之間溝通的最簡(jiǎn)便的方式,應用程序可以將生成的PS文檔直接發(fā)給打印機打印.但大多數情況下,我們使用的是各種比較低檔的,不能直接支持PostScript的噴墨或者激光打印機,這一種類(lèi)的打印機只能識別各廠(chǎng)家自己的指令集.

接下來(lái),我們根據圖2所示框圖,介紹一下打印控制系統中的幾個(gè)主要問(wèn)題:

(1)格式轉化程序Netpbm:

一組轉換圖形格式的程序集,可以將png和jpg等格式的圖像經(jīng)中間格式PNM,最終轉換成通用的PostScript格式.其中包括了pngtopnm,pnmtops等一系列獨立的小程序,將它們搭配使用,可以對圖像進(jìn)行諸如縮放,旋轉等各種處理.

(2) GhostScript程序:

對于支持PostScript的打印機而言,要在Linux下使用是比較容易的,但對于那些不支持PostScript的打印機而言,就必須要把PostScript格式轉換成打印機能夠識別的命令格式,而GhostScript就是用來(lái)完成這個(gè)工作的.Ghostscript是PostScript打印機模擬程序,通過(guò)軟件模擬PostScript打印機,它的具體工作是將PostScript頁(yè)面描述語(yǔ)言,轉譯成各種打印機專(zhuān)用的低階打印指令,并發(fā)送給打印機執行。因此,Ghostscript需要知道各種打印機的指令語(yǔ)言,這就是的打印機驅動(dòng)程序。Ghostscript軟件中有很多隨附的驅動(dòng)程序,除此之外,還可以在www.LinuxPrinting.org的打印機資料庫中尋找.

(3)打印機驅動(dòng)程序[3]

打印機驅動(dòng)程序是應用軟件與打印機之間交流的橋梁,它可以將轉化好的打印文件,按照各種打印機不同的格式發(fā)送給打印機,因此不同的打印機都有自己特有的打印驅動(dòng)程序。另外,隨驅動(dòng)程序一起發(fā)布的還有PPD文檔,PPD(PostScript Printer Description)是用來(lái)描述打印機功能的文件,里面包含了字體,打印頁(yè)面等的一些描述。要使用一款打印機之前,必須找到其相應的PPD文件,并正確地安裝到打印管理器程序上。

(4)打印管理程序:

作為一個(gè)多用戶(hù)多任務(wù)的操作系統,Linux上的所有程序都是基于多任務(wù)、多用戶(hù)而的,打印也不例外。為了讓不同的用戶(hù)、不同的任務(wù)在打印的時(shí)候不會(huì )產(chǎn)生沖突,就需要一個(gè)打印管理程序,我們通常稱(chēng)其為spooler。這類(lèi)管理程序很多,從傳統的LPD,到時(shí)下非常流行的CUPS,它們功能各異,但有一點(diǎn)不變的就是都是用來(lái)協(xié)調打印任務(wù)的。CUPS的工作方式如下:通過(guò)命令行接收要打印的文件;通過(guò)文件的類(lèi)型判斷是否需要將其轉換為PostScript,如果需要,則調用相應的應用程序進(jìn)行轉換;通過(guò)PPD文件來(lái)判斷GhostScript應使用何種驅動(dòng)處理此PostScript文件;把GhostScript處理的結果輸出到打印設備上。

(5)用戶(hù)統一界面Foomatic[4]

由于打印領(lǐng)域標準問(wèn)題長(cháng)時(shí)間不統一,誕生了各種打印管理程序,而要學(xué)會(huì )為每一個(gè)打印管理程序安裝驅動(dòng)程序,是一件非常復雜的事情;如果用戶(hù)需要更換打印機,也必須更改復雜的設置。為了改善這種狀況,就出現了Foomatic應用程序,它的作用是通過(guò)一種方式管理所有的打印機,把PPD文檔和打印管理程序的配置屏蔽掉,給用戶(hù)一個(gè)友好的統一的界面。

在嵌入式系統中,因為其系統資源有限,合理分配資源和保證處理速度是我們首先要考慮的問(wèn)題.一臺不支持PostScript格式的打印機工作時(shí)會(huì )占用大量的CPU處理時(shí)間和內存空間,只是在PC上工作時(shí),由于CPU處理速度快,內存空間大,所以用戶(hù)感覺(jué)不到罷了.基于以上考慮,本文所設計的嵌入式打印系統,在保留上述打印機系統結構的情況下,以簡(jiǎn)單的shell腳本程序代替CUPS等龐大的打印管理程序,以自行開(kāi)發(fā)的圖形用戶(hù)界面代替Foomatic應用程序.另外,由于惠普公司的打印機驅動(dòng)程序具有良好的通用性和可移植性,因此我們選擇HP Deskjet系列噴墨打印機,同時(shí)使用這一系列的通用驅動(dòng)程序hpijs(含多種打印機型號的PPD文檔),源代碼由惠普公司官方網(wǎng)站提供.Ghostscript選用GNU Ghostscript 7.05版本,具有較好的可移植性.

3.3軟件設計中的關(guān)鍵問(wèn)題:

(1)交叉編譯:

嵌入式項目的開(kāi)發(fā)中,有一個(gè)重要的環(huán)節就是構建交叉編譯工具鏈.所有的軟件源程序,必須經(jīng)過(guò)這個(gè)工具鏈的編譯,鏈接后才能生成可以在嵌入式系統上運行的代碼.在過(guò)去,編譯一套工具鏈要花費開(kāi)發(fā)人員不少的時(shí)間,但現在在網(wǎng)上很容易就可以下載一套已經(jīng)做好的工具鏈.本文所述打印系統中的netpbm程序集,GhostScript程序,hpijs打印機驅動(dòng)程序都是通過(guò)交叉編譯以后才被裝入嵌入式系統使用的.

(2)打印任務(wù)管理程序:

沒(méi)有使用CUPS打印管理程序,是因為它會(huì )耗費大量的系統資源,這對于嵌入式系統來(lái)說(shuō)無(wú)疑是致命的.但節約資源的同時(shí),我們也要花費時(shí)間去設計一個(gè)適和于目標系統的程序,來(lái)管理打印任務(wù).目前,我們實(shí)現的系統不作為打印服務(wù)器使用,因此沒(méi)有多用戶(hù)并發(fā)的情況。我們完全用SHELL腳本實(shí)現了簡(jiǎn)單的打印任務(wù)管理功能,程序流程圖如下所示:

3.4 用戶(hù)圖形界面設計

Foomatic應用程序本身并不大,但它是一個(gè)Perl腳本程序,所以如果要使用它,我們還得額外移植一套龐大的Perl腳本解釋器,這對系統會(huì )有十幾兆的開(kāi)銷(xiāo).因此,我們選擇用Qt/Embedded工具包開(kāi)發(fā)了一套簡(jiǎn)單的用戶(hù)界面.其主要功能是讓用戶(hù)可以看到存儲設備(flash存儲器或外接usb存儲設備)上的文件,以便選擇打印,其中jpg和png格式的圖像還可以顯示出來(lái),供用戶(hù)做簡(jiǎn)單編輯后再打印;另外,可以讓用戶(hù)看到驅動(dòng)程序所支持的幾十種打印機型號,用戶(hù)更換打印機后,只要更改相應的型號,程序就會(huì )自動(dòng)調整打印命令,方便了用戶(hù)的管理和使用.

4.結束語(yǔ)

本文設計了一種基于嵌入式Linux的打印控制設備,在一般打印機上實(shí)現了脫離PC預覽,編輯,控制,打印的功能。這一設備具有很大的靈活性,只要移植相應的驅動(dòng)程序,我們可以將其應用于所有打印機,這樣既獲得了優(yōu)越的性能又節省了開(kāi)支,具有較高的實(shí)用價(jià)值。

參考文獻:

[1] 江俊輝,基于A(yíng)RM的嵌入式系統硬件設計,微計算機信息,2005年第7-2期
[2] 孫天澤等著(zhù),嵌入式設計及Linux驅動(dòng)開(kāi)發(fā)指南D基于A(yíng)RM9處理器,電子工業(yè)出版社
[3] Alessandro Rubini等著(zhù),魏永明等譯,Linux設備驅動(dòng)程序(第二版),中國電力出版社
[4] LinuxPrinting.org: Foomatic, http://www.linuxprinting.org /foomatic.html

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>