www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于開(kāi)源軟件的嵌入式網(wǎng)絡(luò)打印服務(wù)器


引 言
    目前常用的打印機(jī)有兩種接口形式:USB口和Eth-ernet網(wǎng)口。由于價(jià)格相對(duì)較低,USB口的打印機(jī)更為普遍。USB口打印機(jī)不能獨(dú)立工作,必須依附于一臺(tái)主機(jī)。為了在一個(gè)局域網(wǎng)環(huán)境中共享使用一臺(tái)USB口打印機(jī),需要為該打印機(jī)配備一臺(tái)服務(wù)器,然后通過(guò)共享設(shè)置實(shí)現(xiàn)打印機(jī)的網(wǎng)絡(luò)共享。這種方式有幾個(gè)方面的缺陷:需要占用一臺(tái)服務(wù)器資源;耗電;容易中毒導(dǎo)致無(wú)法正常打??;由于長(zhǎng)時(shí)間不間斷運(yùn)行,出現(xiàn)故障的概率高,導(dǎo)致無(wú)法打??;占用辦公空間。
    隨著嵌入式處理器主頻的不斷提高,設(shè)計(jì)專門(mén)的嵌入式網(wǎng)絡(luò)打印服務(wù)器已經(jīng)成為共識(shí)。HP等很少的幾家打印機(jī)公司在幾年以前就推出了這樣的嵌入式設(shè)備,但基本上都只針對(duì)本公司特定的幾種打印機(jī),無(wú)法做到通用。很多文獻(xiàn),如參考文獻(xiàn)[1]、[2]中提到的設(shè)計(jì)方案不夠具體?;谶@些情況,設(shè)計(jì)并實(shí)現(xiàn)了一款基于Linux的嵌入式網(wǎng)絡(luò)打印服務(wù)器,硬件設(shè)計(jì)簡(jiǎn)單,軟件完全開(kāi)源,只要有Linux下的打印驅(qū)動(dòng),就可以支持。


1 總體方案設(shè)計(jì)
    要把USB口打印機(jī)連人網(wǎng)絡(luò),有兩種設(shè)計(jì)方案,一種是使用USB/以太網(wǎng)協(xié)議轉(zhuǎn)換器,另一種是設(shè)計(jì)一個(gè)帶有USB口和以太網(wǎng)網(wǎng)口(包含操作系統(tǒng))的嵌入式設(shè)備。盡管協(xié)議轉(zhuǎn)換器軟硬件簡(jiǎn)單,但不支持多用戶同時(shí)并發(fā)打印,也就無(wú)法實(shí)現(xiàn)共享打印的要求。
1.1 硬件設(shè)計(jì)
    筆者是在中科院計(jì)算所自主研制基于龍芯1號(hào)核的“聚芯SoC”1000C上實(shí)驗(yàn)的,主頻266 MHz。作為產(chǎn)品,只需要提供電源接口、USB口和以太網(wǎng)口。調(diào)試階段,增加串口和JTAG調(diào)試接口??紤]到多用戶并發(fā)打印的負(fù)載和實(shí)際測(cè)試效果,因?yàn)橐浦驳?strong>開(kāi)源軟件有很多依賴庫(kù),所占空間較大,故選用的是1 GB容量的Flash。打印過(guò)程中,打印文件在內(nèi)存中緩存,為了應(yīng)對(duì)較大的打印文件和提高運(yùn)行速度,建議選擇256 MB以上的SDRAM。嵌入式網(wǎng)絡(luò)打印服務(wù)器硬件結(jié)構(gòu)框圖如圖1所示。

1.2 軟件設(shè)計(jì)
    軟件設(shè)計(jì)是整個(gè)系統(tǒng)設(shè)計(jì)的重點(diǎn),也是難點(diǎn)。在設(shè)計(jì)思想上,強(qiáng)調(diào)盡可能使用開(kāi)源軟件,主要是為了縮短研發(fā)周期并能保證打印系統(tǒng)的可靠性和穩(wěn)定性。操作系統(tǒng)選擇目前主流的Linux操作系統(tǒng)。Linux操作系統(tǒng)下的打印控制系統(tǒng)根據(jù)打印機(jī)的命令方式,分為文本打印機(jī)、Post-Script打印機(jī)和其他種類。文本打印機(jī)不需要驅(qū)動(dòng)程序,就可以直接用cat命令驅(qū)動(dòng)打印機(jī),但只能打印英文,已很少使用。PostScript(簡(jiǎn)稱PS)是一種繪圖能力很強(qiáng)的解釋性腳本語(yǔ)言,由Adobe公司制定。它因占用系統(tǒng)資源少,處理過(guò)程標(biāo)準(zhǔn)化與設(shè)備無(wú)關(guān)而被廣泛應(yīng)用。直接支持PostScript的打印機(jī)通常都是比較高級(jí)的辦公打印機(jī),對(duì)于這類打印機(jī)來(lái)說(shuō),PS語(yǔ)言是它們和計(jì)算機(jī)之間溝通的最簡(jiǎn)便的方式,應(yīng)用程序可以將生成的PS文檔直接發(fā)給打印機(jī)打印。但大多數(shù)情況下使用的是各種比較低檔的,不能直接支持PostScript的打印機(jī),這類打印機(jī)只能識(shí)別各廠家自己的指令集。[!--empirenews.page--]
    因此,必須采取一種機(jī)制,把PostScript格式轉(zhuǎn)換成打印機(jī)能夠識(shí)別的命令格式,而GhostScript程序就是用來(lái)完成這個(gè)工作的。Ghostscript將PostScript轉(zhuǎn)換成各種打印機(jī)能夠識(shí)別的格式。
    打印機(jī)驅(qū)動(dòng)程序是應(yīng)用軟件與打印機(jī)之間交流的橋梁,它可以將轉(zhuǎn)化好的打印文件,按照各種打印機(jī)不同的格式發(fā)送給打印機(jī),因此不同的打印機(jī)都有自己特有的打印驅(qū)動(dòng)程序。另外,隨驅(qū)動(dòng)程序一起發(fā)布的還有PPD文檔,PPD(PostScript Printer Description)是用來(lái)描述打印機(jī)功能的文件,里面包含了字體、打印頁(yè)面等的一些描述。在使用一款打印機(jī)之前,必須找到其相應(yīng)的PPD文件,并正確地安裝到打印管理器程序上。筆者所用打印機(jī)為HP 1020plus激光打印機(jī),CUPS不附帶此驅(qū)動(dòng),只能另行安裝。
    為了讓不同的作業(yè)在打印的時(shí)候不產(chǎn)生沖突,就需要一個(gè)打印管理程序。這類管理程序很多,使用最為廣泛的莫過(guò)于CUPS。CUPS接收要打印的文件;通過(guò)文件的類型判斷是否需要將其轉(zhuǎn)換為PostScript,如果需要,則調(diào)用相應(yīng)的應(yīng)用程序進(jìn)行轉(zhuǎn)換;通過(guò)PPD文件來(lái)判斷Ghost-Script應(yīng)使用何種驅(qū)動(dòng)處理此PostScript文件;把Ghost-Script處理的結(jié)果輸出到打印設(shè)備上。
    在打印管理程序和Ghostscript之間,通常還安裝一種統(tǒng)一的打印過(guò)濾器程序foomatic-rip。它是用perl編寫(xiě)的腳本程序,打印管理程序通過(guò)它調(diào)用Ghostscript程序,從而把PostScript作業(yè)轉(zhuǎn)換成PPD文件描述的打印機(jī)自身能夠識(shí)別的格式。


2 幾個(gè)關(guān)鍵問(wèn)題
2.1 軟件的交叉編譯
    由前面的分析可知,打印服務(wù)器需要的開(kāi)源軟件支持,為了運(yùn)行于嵌入式Linux環(huán)境,需要對(duì)它們一一進(jìn)行交叉編譯。通常的編譯方法是在宿主機(jī)上進(jìn)行,筆者在反復(fù)實(shí)驗(yàn)后不得不放棄,原因在于這些開(kāi)源軟件還依賴于很多的其他軟件包。建議編譯安裝直接在開(kāi)發(fā)板上進(jìn)行,雖然速度較慢,但可以及時(shí)發(fā)現(xiàn)缺少的包。此編譯過(guò)程大約需要一周的時(shí)間。
    ①CUPS的編譯與安裝:


2.2 CGI程序的編寫(xiě)
    嵌入式網(wǎng)絡(luò)設(shè)備通常都提供web管理方式,用以修改配置等。以修改IP地址為例,需要修改源碼目錄下的cgi—bin子目錄下的admin.c文件,參照do_am_printer()函數(shù)新增函數(shù)do_modify_ip,此函數(shù)的功能為讀取IP地址所在的配置文件,將IP地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)等顯示在頁(yè)面文本框中,允許修改,提交修改時(shí)該函數(shù)將新的參數(shù)覆蓋原配置文件中舊的參數(shù)。為實(shí)現(xiàn)這一功能,主要用到了CUPS提供的文件操作函數(shù)cupsFileGets、cupsFi-leOpen、cupsFilePrintf,和有關(guān)CGI變量的讀寫(xiě)函數(shù)cgiGetVariable、cgiSetVariable和界面的顯示函數(shù)cgiStartHTM如IP地址L(title)、cgiCopyTemplateLang("error_ip.tmpl")、cgiEndHTML()。有關(guān)文件的讀寫(xiě)操作,可參照CUPS目錄下的testfile.c文件。
2.3 界面和提示語(yǔ)言漢化
    CUPS支持多國(guó)語(yǔ)言版本,如果漢化,需要對(duì)界面標(biāo)識(shí)、提示、按鈕等全面進(jìn)行漢化,工作量較大,需要修改doc/index.html,需要把templates語(yǔ)言版本挪到最外層,需要在loeale/cups_zh.po修改或增加新的中英文對(duì)照信息。更詳細(xì)的信息可參考CUPS運(yùn)行后通過(guò)瀏覽器訪問(wèn)http://localhost:631/help下的Translating and Custom-izing CUPS文檔。
2.4 OUPS配置與調(diào)試
    編輯/etc/cups/cupsd.conf在Location選項(xiàng)中添加容許訪問(wèn)的網(wǎng)段。為簡(jiǎn)單起見(jiàn),在Order allow,deny后直接輸入Allow all即可。
    編輯/etc/cups/mime.convs,找到application/octet-stream application/vnd.cups-raw 0-行,將其注釋掉,否則pdf、doc等文件格式將不被支持,提示“Print file wasnot accepted(Unsupported format ‘a(chǎn)pplication/octet-stream‘!)”錯(cuò)誤。另外,要將防火墻中對(duì)631端口的訪問(wèn)控制去掉,否則將提示打印服務(wù)器忙。在CUPS調(diào)試過(guò)程中,如果將cupsd.conf中的loglev-el info改成。loglevel debug,可以在var/log/cups/error_log中看到更多的輸出信息,極大地方便了調(diào)試,也可借助網(wǎng)絡(luò)抓包程序輔助調(diào)試。在確認(rèn)打印機(jī)能夠工作之前,暫不要通過(guò)網(wǎng)絡(luò)方式驅(qū)動(dòng)打印機(jī),可用命令行的方式添加、使能并測(cè)試打印機(jī)是否工作正常。由于沒(méi)有成熟的文檔,過(guò)程比較艱辛。[!--empirenews.page--]
    CUPS啟動(dòng)后,可通過(guò)瀏覽器方式管理打印機(jī)。連接好打印機(jī),進(jìn)入web管理界面,找到“Add printer”。選擇正確的驅(qū)動(dòng)程序,如果所連接打印機(jī)的驅(qū)動(dòng)程序不存在,則必須手工添加驅(qū)動(dòng)程序。添加完成后,可以打印測(cè)試頁(yè)看看打印機(jī)是否可以正常工作。


3 客戶端連接
3.1 Windows客戶端
    在添加打印機(jī)時(shí),選擇添加的打印機(jī)類型為“網(wǎng)絡(luò)打印機(jī)”,在URL中輸入http://printer_server_ip:631/printers/printer_name,其中printer_server_ip為CUPS打印服務(wù)器的IP地址,631為CUPS服務(wù)端口,printer_name為已添加的打印機(jī)的名稱。如果提示URL錯(cuò)誤,請(qǐng)修正后再試,最后提供Windows下相應(yīng)的打印機(jī)驅(qū)動(dòng)即可。如果出現(xiàn)連接異常,建議關(guān)閉XP的防火墻服務(wù)(盡管理論上不受其影響);也可以使用samba服務(wù)來(lái)共享打印機(jī),這是最常規(guī)的做法,只需配置samba服務(wù),將打印機(jī)共享。在客戶端通過(guò)IP搜索,一般能夠找到打印服務(wù)器。
3.2 Linux客戶端
    對(duì)于已聯(lián)網(wǎng)并且安裝了CUPS的Linux客戶端來(lái)講,能夠自動(dòng)檢測(cè)到網(wǎng)絡(luò)中采用CUPS管理的打印機(jī)。因此,只需要找到菜單(RedHat Enterprise Server)“系統(tǒng)→首選項(xiàng)→更多首選項(xiàng)→默認(rèn)打印機(jī)”或(fedora)“桌面→首選項(xiàng)→更多首選項(xiàng)→默認(rèn)打印機(jī)”,將彈出網(wǎng)絡(luò)上所有已存在的打印機(jī),選擇其中的某一在線打印機(jī)作為默認(rèn)打印機(jī)即可。如果Linux客戶端沒(méi)有安裝CUPS,則需要手工去添加打印機(jī)。


結(jié) 語(yǔ)
    本文設(shè)計(jì)并實(shí)現(xiàn)的打印服務(wù)器完全使用開(kāi)源軟件,擴(kuò)展性強(qiáng),只要能夠找到Linux下的驅(qū)動(dòng)程序源碼,就能夠輕松加入到打印服務(wù)器的支持列表中。給出的http打印方式相比samba而言有三個(gè)方面的優(yōu)勢(shì),配置簡(jiǎn)單,使用安全,可以跨網(wǎng)段打印。打印服務(wù)器調(diào)試過(guò)程中的主要技術(shù)問(wèn)題都已包含在本文中,經(jīng)實(shí)際反復(fù)測(cè)試,打印效果良好,完全實(shí)用。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉