專利名稱:一種對(duì)打印設(shè)備上的數(shù)據(jù)流進(jìn)行管理和控制的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種對(duì)打印設(shè)備上的數(shù)據(jù)流進(jìn)行管理和控制的方法。
由于通用處理器不但要進(jìn)行命令解釋和數(shù)據(jù)解壓縮等工作,而且要實(shí)時(shí)保持與主機(jī)的通訊并對(duì)打印硬件進(jìn)行管理和配置,同時(shí)還要負(fù)責(zé)內(nèi)存的管理,這使得通用處理器的工作負(fù)擔(dān)過大,需要較高的成本投入,才能滿足其性能上的要求。
發(fā)明內(nèi)容
針對(duì)上述普通打印機(jī)在打印過程中所存在的問題和不足,本發(fā)明的目的是提供一種對(duì)打印設(shè)備上的數(shù)據(jù)流進(jìn)行管理和控制的方法。通過實(shí)施該方法,能夠有效的解決打印數(shù)據(jù)在存儲(chǔ)器中進(jìn)行多次存儲(chǔ)的問題,從而更好的滿足了實(shí)時(shí)性的要求。同時(shí),設(shè)計(jì)一種獨(dú)立的存儲(chǔ)器控制方法對(duì)內(nèi)存進(jìn)行管理,以減輕通用處理器的工作負(fù)擔(dān)。
為了達(dá)到上述目的,本發(fā)明設(shè)計(jì)了一種對(duì)打印設(shè)備上的數(shù)據(jù)流進(jìn)行管理和控制的方法,所述打印設(shè)備包括打印機(jī)數(shù)據(jù)輸入接口、打印機(jī)接口協(xié)議模塊、端口仲裁模塊、SDRAM接口、SDRAM(同步隨機(jī)存儲(chǔ)器)、存儲(chǔ)器控制模塊、通用處理器、命令解釋和數(shù)據(jù)解壓縮模塊、打印設(shè)備機(jī)芯接口及打印機(jī)機(jī)芯。所述方法包括如下步驟將經(jīng)過打印驅(qū)動(dòng)程序、打印處理器程序、語(yǔ)言監(jiān)控器程序處理后形成的打印數(shù)據(jù)流通過所述打印機(jī)數(shù)據(jù)輸入接口進(jìn)入打印機(jī)接口協(xié)議模塊。
所述端口仲裁模塊負(fù)責(zé)對(duì)輸入端口進(jìn)行管理,端口仲裁。
對(duì)所述打印數(shù)據(jù)的頁(yè)結(jié)束字符串進(jìn)行監(jiān)控,為所述存儲(chǔ)器管理模塊提供頁(yè)計(jì)數(shù)。
所述數(shù)據(jù)流通過所述SDRAM接口存儲(chǔ)到所述SDRAM中,并由所述存儲(chǔ)器控制模塊對(duì)所述SDRAM進(jìn)行存儲(chǔ)管理。
在適當(dāng)?shù)臅r(shí)候,所述通用處理器通過所述SDRAM接口讀取存儲(chǔ)器的數(shù)據(jù)并分析作業(yè)頭文件和頁(yè)頭文件,根據(jù)文件內(nèi)容對(duì)機(jī)芯進(jìn)行初始化和必要的設(shè)置,之后啟動(dòng)所述命令解釋和數(shù)據(jù)解壓縮模塊。
頁(yè)內(nèi)的光柵化打印數(shù)據(jù)流經(jīng)命令解釋和數(shù)據(jù)解壓縮模塊處理還原成可打印的光柵化數(shù)據(jù)。
重復(fù)這一處理過程直到所述通用處理器處理到光柵化打印數(shù)據(jù)流中的作業(yè)結(jié)束命令字符串后結(jié)束該打印過程。
還原后的光柵化數(shù)據(jù)流由打印機(jī)機(jī)芯接口模塊按機(jī)芯相關(guān)的輸出格式進(jìn)行輸出。
其特征在于,在所述通用處理器對(duì)打印作業(yè)的頭文件和頁(yè)頭文件完成分析,并且對(duì)打印機(jī)的機(jī)芯進(jìn)行設(shè)置后,所述命令解釋和數(shù)據(jù)解壓縮模塊獲得所述SDRAM的讀控制權(quán),讀取包含壓縮指令和壓縮數(shù)據(jù)的數(shù)據(jù)流,根據(jù)壓縮指令對(duì)壓縮編碼進(jìn)行還原。
更具體來說,所述存儲(chǔ)器控制模塊將所述SDRAM控制為一環(huán)形存儲(chǔ)器,該控制模塊包括三個(gè)內(nèi)存管理單元寫指針(lpWrite)、讀指針(lpRead)和當(dāng)前打印頁(yè)開始位置指針(lpCurrentJob);所述寫指針(lpWrite)指向數(shù)據(jù)流被寫入存儲(chǔ)器的位置,所述讀指針(lpRead)指向數(shù)據(jù)流被讀出存儲(chǔ)器的位置,所述當(dāng)前打印頁(yè)開始位置指針(lpCurrentJob)指向當(dāng)前打印頁(yè)開始位置的位置;所述存儲(chǔ)器管理模塊根據(jù)所述三個(gè)內(nèi)存管理單元的值及其相互關(guān)系確定對(duì)所述SDRAM進(jìn)行讀或?qū)懖僮鞯牡刂?,并指示所述SDRAM的狀態(tài)。
由于本發(fā)明采用了與通用處理器相分離的命令解釋和數(shù)據(jù)解壓縮模塊,因此能夠保證一定的解壓縮速度,而且能夠達(dá)到實(shí)時(shí)解壓縮實(shí)時(shí)打印的要求,從而避免了現(xiàn)有打印設(shè)備中打印數(shù)據(jù)需要多次存儲(chǔ)的現(xiàn)象。
另外,本發(fā)明還采用了獨(dú)立的存儲(chǔ)器控制模塊,用于對(duì)存儲(chǔ)頁(yè)面進(jìn)行簡(jiǎn)單的控制,而不需要通用處理器對(duì)存儲(chǔ)器進(jìn)行管理,因此,減輕了通用存儲(chǔ)器的負(fù)擔(dān)。
由上述兩點(diǎn)有益效果可以看出,由于通用處理器無需再對(duì)打印數(shù)據(jù)進(jìn)行命令解釋和解壓縮,也無需對(duì)存儲(chǔ)器內(nèi)存進(jìn)行管理,因此對(duì)于通用處理器的性能要求將大大降低,從而降低了成本開銷。
對(duì)光柵化打印數(shù)據(jù)流的頁(yè)結(jié)束字符串進(jìn)行監(jiān)控,給多頁(yè)面環(huán)形存儲(chǔ)管理模塊提供頁(yè)計(jì)數(shù)。
而后,該光柵化打印數(shù)據(jù)流進(jìn)入SDRAM進(jìn)行存儲(chǔ),存儲(chǔ)后的光柵化打印數(shù)據(jù)流由存儲(chǔ)器控制模塊進(jìn)行管理,當(dāng)存儲(chǔ)器中的數(shù)據(jù)流大于或等于一頁(yè)時(shí),通用處理器通過SDARM接口讀取存儲(chǔ)器的數(shù)據(jù)并分析作業(yè)頭文件和頁(yè)頭文件,根據(jù)文件內(nèi)容對(duì)機(jī)芯進(jìn)行初始化和必要的設(shè)置,之后啟動(dòng)精簡(jiǎn)光柵化PCL解釋器和數(shù)據(jù)解壓縮模塊。精簡(jiǎn)光柵化PCL解釋器和數(shù)據(jù)解壓縮模塊被啟動(dòng)后獲得SDRAM的讀控制權(quán),頁(yè)內(nèi)的光柵化打印數(shù)據(jù)流經(jīng)PCL解釋器和數(shù)據(jù)解壓縮模塊處理還原成可打印的光柵化數(shù)據(jù),當(dāng)一頁(yè)完成后將SDRAM的讀控制權(quán)釋放,由通用處理器作頁(yè)間的分析處理。重復(fù)這一處理過程直到通用處理器處理到光柵化打印數(shù)據(jù)流中的作業(yè)結(jié)束命令字符串后結(jié)束該打印過程。
還原后的光柵化數(shù)據(jù)流由打印機(jī)機(jī)芯接口模塊按機(jī)芯相關(guān)的輸出格式進(jìn)行輸出;在數(shù)據(jù)輸出簡(jiǎn)單通用處理器可以同時(shí)與機(jī)芯保持通訊。
下面詳細(xì)介紹本發(fā)明的命令解釋和解壓縮過程。根據(jù)優(yōu)選的具體實(shí)施方案在簡(jiǎn)單通用處理器完成作業(yè)的頭文件和頁(yè)頭文件分析、對(duì)機(jī)芯初始化設(shè)置后啟動(dòng)精簡(jiǎn)光柵化PCL解釋器和數(shù)據(jù)解壓縮模塊,處理任務(wù)由該模塊進(jìn)行,該模塊在獲得SDRAM的讀控制權(quán)后讀取包含精簡(jiǎn)光柵化PCL壓縮指令和壓縮編碼的數(shù)據(jù)流,根據(jù)壓縮指令對(duì)壓縮編碼進(jìn)行還原。為了提高壓縮編碼的效率采用了多種編碼技術(shù)共用的編碼,不同的編碼方法由PCL指令指示;編碼采用行內(nèi)編碼和行內(nèi)分段技術(shù),使壓漲(壓漲時(shí)用不壓縮指令)范圍限制到最小。一旦模塊完成當(dāng)前頁(yè)處理(遇到頁(yè)結(jié)束指令),模塊將SDRAM的讀控制權(quán)釋放。
該模塊能獨(dú)立完成頁(yè)內(nèi)光柵化PCL指令的解釋和數(shù)據(jù)解壓縮,能確保一定的解壓縮速度,保證實(shí)時(shí)解壓縮打印。
下面將對(duì)照?qǐng)D2詳細(xì)描述本發(fā)明優(yōu)選的存儲(chǔ)器管理方法。該方法是一種用于存儲(chǔ)打印數(shù)據(jù)流的內(nèi)存管理技術(shù)。將分配的一塊內(nèi)存視為環(huán)形存儲(chǔ)器,內(nèi)存管理模塊(硬件模塊)管理寫指針lpWrite指向數(shù)據(jù)流被寫入存儲(chǔ)器的位置、讀指針lpRead指向數(shù)據(jù)流被讀出存儲(chǔ)器的位置、當(dāng)前打印頁(yè)開始位置指針lpCurrentJob指向當(dāng)前打印頁(yè)開始的位置,三個(gè)指針像表針一樣作“順”時(shí)針旋轉(zhuǎn);lpWrite到lpCurrentJob的“順”時(shí)針間隔表示“空”內(nèi)存,這一區(qū)間可以接受新的數(shù)據(jù)流。若接收到‘作業(yè)開始’命令,lpCurrentJob=lpRead=lpWrite=0;當(dāng)數(shù)據(jù)流被寫入內(nèi)存時(shí)lpWrite計(jì)數(shù),此時(shí)lpWrite象表針作‘順’時(shí)針旋轉(zhuǎn),當(dāng)lpWrite達(dá)到該塊內(nèi)存的長(zhǎng)度時(shí)lpWrite=0,象表針過‘12’后回零一樣。當(dāng)數(shù)據(jù)流被讀出內(nèi)存時(shí)lpRead計(jì)數(shù),此時(shí)lpRead也象表針作‘順’時(shí)針旋轉(zhuǎn),若一頁(yè)數(shù)據(jù)輸出后該頁(yè)面需要‘拷貝’多份,內(nèi)存管理模塊在接收到CopyCommand(拷貝命令)后,將lpCurrentJob賦給lpRead,就象把lpRead‘逆’時(shí)針撥到lpCurrentJob的位置,當(dāng)前頁(yè)面數(shù)據(jù)將被重復(fù)輸出一次。若當(dāng)前頁(yè)輸出完成或‘拷貝’達(dá)到要求的份數(shù)后,內(nèi)存管理模塊將收到CurrentPagePrintedCom(當(dāng)前頁(yè)打印完成命令),管理模塊將lpRead賦給lpCurrentJob,象把lpCurrentJob‘順’時(shí)針撥到lpRead的位置,接著可以進(jìn)行下一頁(yè)的打印,此時(shí)上一次的頁(yè)面數(shù)據(jù)將被遺棄。當(dāng)lpRead達(dá)到該塊內(nèi)存的長(zhǎng)度時(shí)lpRead=0,同lpWrite一樣。該內(nèi)存管理模塊同時(shí)得到‘空’內(nèi)存的長(zhǎng)度(若分配的內(nèi)存長(zhǎng)度=2**N,MemoryEmptyLength=lpCurrentJob-lpWrite).N+1位自動(dòng)溢出。PC機(jī)可以通過相應(yīng)的命令獲取包含‘內(nèi)存狀態(tài)’的‘打印控制器狀態(tài)字符串’得到內(nèi)存狀態(tài)。
使用該環(huán)形存儲(chǔ)管理打印數(shù)據(jù)流時(shí)無須考慮‘頁(yè)面’格式,語(yǔ)言監(jiān)控器程序只需要通過‘獲取內(nèi)存狀態(tài)’命令得到‘空’內(nèi)存狀態(tài)(如是否有64k-bytede的‘空’內(nèi)存)來確定數(shù)據(jù)流的是否需要繼續(xù)傳輸,確保硬件通道不被阻塞,同時(shí)提高內(nèi)存的使用效率,存儲(chǔ)多個(gè)頁(yè)面的壓縮數(shù)據(jù)。
該方案內(nèi)存管理簡(jiǎn)單,簡(jiǎn)單通用處理器只需根據(jù)分析頁(yè)面頭文件結(jié)果及當(dāng)前頁(yè)輸出后發(fā)送‘作業(yè)開始’、‘拷貝’或‘當(dāng)前頁(yè)打印完成’等命令。
根據(jù)以上的描述,本領(lǐng)域的普通技術(shù)人員已經(jīng)可以容易的實(shí)施本發(fā)明所述的方法。當(dāng)然,上述發(fā)明可以在其它的特殊形式中得到具體實(shí)施,且并不背離所揭示的精髓或根本特征。因此可以理解,本發(fā)明不應(yīng)被前面說明性的細(xì)節(jié)所限定,而是由附加的權(quán)利要求所定義。
權(quán)利要求
1.一種對(duì)打印設(shè)備上的數(shù)據(jù)流進(jìn)行管理和控制的方法,所述打印設(shè)備包括打印機(jī)數(shù)據(jù)輸入接口、打印機(jī)接口協(xié)議模塊、端口仲裁模塊、SDRAM接口、SDRAM、存儲(chǔ)器控制模塊、通用處理器、命令解釋和數(shù)據(jù)解壓縮模塊、打印設(shè)備機(jī)芯接口及打印機(jī)機(jī)芯;所述方法包括如下步驟將經(jīng)過打印驅(qū)動(dòng)程序、打印處理器程序、語(yǔ)言監(jiān)控器程序處理后形成的打印數(shù)據(jù)流通過所述打印機(jī)數(shù)據(jù)輸入接口進(jìn)入所述打印機(jī)接口協(xié)議模塊;所述端口仲裁模塊負(fù)責(zé)對(duì)輸入端口進(jìn)行管理,端口仲裁;對(duì)所述打印數(shù)據(jù)的頁(yè)結(jié)束字符串進(jìn)行監(jiān)控,為所述存儲(chǔ)器管理模塊提供頁(yè)計(jì)數(shù);所述數(shù)據(jù)流通過所述SDRAM接口存儲(chǔ)到所述SDRAM中,并由所述存儲(chǔ)器控制模塊對(duì)所述SDRAM進(jìn)行存儲(chǔ)管理;在適當(dāng)?shù)臅r(shí)候,所述通用處理器通過所述SDRAM接口讀取存儲(chǔ)器的數(shù)據(jù)并分析作業(yè)頭文件和頁(yè)頭文件,根據(jù)文件內(nèi)容對(duì)機(jī)芯進(jìn)行初始化和必要的設(shè)置,之后啟動(dòng)所述命令解釋和數(shù)據(jù)解壓縮模塊;頁(yè)內(nèi)的光柵化打印數(shù)據(jù)流經(jīng)命令解釋和數(shù)據(jù)解壓縮模塊處理還原成可打印的光柵化數(shù)據(jù);重復(fù)這一處理過程直到所述通用處理器處理到光柵化打印數(shù)據(jù)流中的作業(yè)結(jié)束命令字符串后結(jié)束該打印過程;還原后的光柵化數(shù)據(jù)流由打印機(jī)機(jī)芯接口模塊按機(jī)芯相關(guān)的輸出格式進(jìn)行輸出;其特征在于,在所述通用處理器對(duì)打印作業(yè)的頭文件和頁(yè)頭文件完成分析,并且對(duì)打印機(jī)的機(jī)芯進(jìn)行設(shè)置后,所述命令解釋和數(shù)據(jù)解壓縮模塊獲得所述SDRAM的讀控制權(quán),讀取包含壓縮指令和壓縮數(shù)據(jù)的數(shù)據(jù)流,根據(jù)壓縮指令對(duì)壓縮編碼進(jìn)行還原。
2.如權(quán)利要求1所述的方法,其特征在于,所述存儲(chǔ)器控制模塊將所述SDRAM控制為一環(huán)形存儲(chǔ)器,該控制模塊包括三個(gè)內(nèi)存管理單元寫指針(lpWrite)、讀指針(lpRead)和當(dāng)前打印頁(yè)開始位置指針(lpCurrentJob);所述寫指針(lpWrite)指向數(shù)據(jù)流被寫入存儲(chǔ)器的位置,所述讀指針(lpRead)指向數(shù)據(jù)流被讀出存儲(chǔ)器的位置,所述當(dāng)前打印頁(yè)開始位置指針(lpCurrentJob)指向當(dāng)前打印頁(yè)開始位置的位置;所述存儲(chǔ)器管理模塊根據(jù)所述三個(gè)內(nèi)存管理單元的值及其相互關(guān)系確定對(duì)所述SDRAM進(jìn)行讀或?qū)懖僮鞯牡刂?,并指示所述SDRAM的狀態(tài)。
3.如權(quán)利要求2所述的方法,其特征在于,所述寫指針與所述當(dāng)前打印頁(yè)開始位置指針之間的存儲(chǔ)區(qū)域?yàn)榭捎脜^(qū)域;初始時(shí)所述三個(gè)內(nèi)存管理單元的值置零;當(dāng)數(shù)據(jù)流被寫入時(shí),所述寫指針進(jìn)行計(jì)數(shù),當(dāng)其值達(dá)到了該內(nèi)存區(qū)域的長(zhǎng)度時(shí),將該寫指針置零;當(dāng)數(shù)據(jù)流被讀出時(shí),所述讀指針進(jìn)行計(jì)數(shù),當(dāng)其值達(dá)到了該內(nèi)存區(qū)域的長(zhǎng)度時(shí),將該讀指針置零,同時(shí)將此段存儲(chǔ)區(qū)作為可用區(qū)域,將其值提交給所述存儲(chǔ)器管理模塊;若當(dāng)前頁(yè)的數(shù)據(jù)需要多次復(fù)制,則使所述讀指針的值等于所述當(dāng)前打印頁(yè)開始位置指針的值;當(dāng)前頁(yè)輸出完成或按照指定次數(shù)復(fù)制完成后,使所述當(dāng)前打印頁(yè)開始位置指針的值等于所述讀指針的值。
4.如權(quán)利要求2所述的方法,其特征在于,所述命令解釋和數(shù)據(jù)解壓縮模塊中的命令為精簡(jiǎn)PCL指令集。
5.如權(quán)利要求4所述的方法,其特征在于,所述命令解釋和數(shù)據(jù)解壓縮模塊根據(jù)所述精簡(jiǎn)PCL指令集中的指令所指示的壓縮編碼技術(shù)對(duì)相應(yīng)的數(shù)據(jù)進(jìn)行解壓縮。
6.如權(quán)利要求1所述的方法,其特征在于,所述通用處理器為簡(jiǎn)單通用處理器,該簡(jiǎn)單通用處理器負(fù)責(zé)對(duì)USB包協(xié)議進(jìn)行解釋,對(duì)PJL命令進(jìn)行解釋執(zhí)行,與主機(jī)進(jìn)行通訊,以及對(duì)打印硬件進(jìn)行配置。
7.如權(quán)利要求1所述的方法,其特征在于,當(dāng)所述SDRAM中的數(shù)據(jù)流大于或等于一頁(yè)時(shí),所述通用處理器通過所述SDRAM接口讀取存儲(chǔ)器的數(shù)據(jù)并分析作業(yè)頭文件和頁(yè)頭文件,根據(jù)文件內(nèi)容對(duì)機(jī)芯進(jìn)行初始化和必要的設(shè)置。
8.如權(quán)利要求1所述的方法,所述打印機(jī)數(shù)據(jù)輸入接口是IEEE 1284端口、USB接口或其他協(xié)議端口。
9.如權(quán)利要求8所述的方法,所述打印機(jī)接口協(xié)議模塊是IEEE1284模塊、USB模塊或其他協(xié)議模塊。
全文摘要
本發(fā)明提供了一種對(duì)打印設(shè)備上的數(shù)據(jù)流進(jìn)行管理和控制的方法,步驟為打印數(shù)據(jù)流經(jīng)打印機(jī)數(shù)據(jù)輸入接口進(jìn)入打印機(jī)接口協(xié)議模塊;端口仲裁模塊對(duì)輸入端口進(jìn)行管理,端口仲裁;對(duì)打印數(shù)據(jù)的頁(yè)結(jié)束字符串進(jìn)行監(jiān)控,為存儲(chǔ)器管理模塊提供頁(yè)計(jì)數(shù);數(shù)據(jù)流通過SDRAM接口存儲(chǔ)到SDRAM中,并由存儲(chǔ)器控制模塊對(duì)SDRAM進(jìn)行存儲(chǔ)管理;通用處理器通過SDRAM接口讀取存儲(chǔ)器的數(shù)據(jù)并分析作業(yè)頭文件和頁(yè)頭文件,根據(jù)文件內(nèi)容對(duì)機(jī)芯進(jìn)行初始化和必要的設(shè)置,之后啟動(dòng)命令解釋和數(shù)據(jù)解壓縮模塊,獲得SDRAM的讀控制權(quán),讀取包含壓縮指令和壓縮數(shù)據(jù)的數(shù)據(jù)流,根據(jù)壓縮指令對(duì)壓縮編碼進(jìn)行還原;重復(fù)處理過程直到通用處理器處理到光柵化打印數(shù)據(jù)流中的作業(yè)結(jié)束命令字符串后結(jié)束該打印過程。
文檔編號(hào)G06F12/00GK1439972SQ03121288
公開日2003年9月3日 申請(qǐng)日期2003年3月31日 優(yōu)先權(quán)日2003年3月31日
發(fā)明者徐忠良, 陳文先 申請(qǐng)人:上海北大方正科技電腦系統(tǒng)有限公司