專利名稱:具有內(nèi)置驅(qū)動(dòng)程序管理功能的外圍設(shè)備及其管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)外圍設(shè)備驅(qū)動(dòng)程序的應(yīng)用技術(shù),特別涉及一種具有內(nèi)置驅(qū)動(dòng)程序管理功能的外圍設(shè)備及其管理方法。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展,出現(xiàn)了內(nèi)置驅(qū)動(dòng)程序的計(jì)算機(jī)外圍設(shè)備。申請(qǐng)?zhí)枮?110390.6的專利申請(qǐng)就公開了一種內(nèi)建驅(qū)動(dòng)程序的周邊裝置及其安裝方法。該內(nèi)建驅(qū)動(dòng)程序的周邊裝置及其安裝方法可供電腦系統(tǒng)從周邊裝置上取得其驅(qū)動(dòng)程序,不需使用光盤或是磁盤來(lái)安裝,即將周邊裝置的驅(qū)動(dòng)程序存儲(chǔ)在只讀存儲(chǔ)器中,當(dāng)安裝周邊裝置時(shí),可從周邊裝置上將驅(qū)動(dòng)程序傳送至電腦系統(tǒng),而不需使用光盤或是磁盤即可驅(qū)動(dòng)周邊裝置。這里所述的電腦系統(tǒng)的周邊裝置也就是指計(jì)算機(jī)的外圍設(shè)備,一般來(lái)說(shuō),計(jì)算機(jī)的外圍設(shè)備種類相當(dāng)多,例如打印機(jī)、光碟機(jī)、掃描儀、數(shù)碼相機(jī)、高容量磁盤機(jī)、以及鍵盤、鼠標(biāo)、操作桿等操作裝置等等。
該專利申請(qǐng)公開的內(nèi)建驅(qū)動(dòng)程序的外圍設(shè)備,將驅(qū)動(dòng)程序存儲(chǔ)在只讀存儲(chǔ)器中,也就是說(shuō)外圍設(shè)備的驅(qū)動(dòng)程序在出廠是已固定存儲(chǔ)在只讀存儲(chǔ)器中。如果驅(qū)動(dòng)程序或計(jì)算機(jī)操作系統(tǒng)升級(jí),就可能導(dǎo)致內(nèi)置驅(qū)動(dòng)數(shù)據(jù)包失效,使新的驅(qū)動(dòng)程序或計(jì)算機(jī)操作系統(tǒng)無(wú)法兼容該外圍設(shè)備。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種具有內(nèi)置驅(qū)動(dòng)程序管理功能的外圍設(shè)備,該外圍設(shè)備能夠避免因操作系統(tǒng)和驅(qū)動(dòng)版本升級(jí)而導(dǎo)致內(nèi)置驅(qū)動(dòng)數(shù)據(jù)包失效的問(wèn)題,而且具有較高的擴(kuò)展性和兼容性。
本發(fā)明的另一個(gè)主要目的在于提供一種內(nèi)置驅(qū)動(dòng)程序的管理方法,避免因操作系統(tǒng)和驅(qū)動(dòng)版本升級(jí)而導(dǎo)致內(nèi)置驅(qū)動(dòng)數(shù)據(jù)包失效的問(wèn)題,提高內(nèi)置驅(qū)動(dòng)程序外圍設(shè)備擴(kuò)展性和兼容性。
為達(dá)到上述目的的一個(gè)方面,本發(fā)明提供了一種具有內(nèi)置驅(qū)動(dòng)程序管理功能的外圍設(shè)備,其至少包含主控制器、設(shè)備功能模塊、程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器和計(jì)算機(jī)接口,所述的程序存儲(chǔ)器為可讀可寫存儲(chǔ)器;且該可讀可寫存儲(chǔ)器進(jìn)一步包含內(nèi)置驅(qū)動(dòng)程序存儲(chǔ)模塊和內(nèi)置驅(qū)動(dòng)程序管理模塊;所述的主控制器與該可讀可寫存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器和計(jì)算機(jī)接口分別相連;主控制器通過(guò)計(jì)算機(jī)接口接收計(jì)算機(jī)發(fā)送的命令、數(shù)據(jù)或內(nèi)置驅(qū)動(dòng)程序內(nèi)容,并暫存到數(shù)據(jù)存儲(chǔ)器中,根據(jù)接收的命令,將數(shù)據(jù)存儲(chǔ)器中暫存的內(nèi)置驅(qū)動(dòng)程序內(nèi)容經(jīng)過(guò)可讀可寫存儲(chǔ)器中的內(nèi)置驅(qū)動(dòng)程序管理模塊,存儲(chǔ)到內(nèi)置驅(qū)動(dòng)程序存儲(chǔ)模塊;或根據(jù)接收的命令,經(jīng)過(guò)內(nèi)置驅(qū)動(dòng)程序管理模塊,從內(nèi)置驅(qū)動(dòng)程序存儲(chǔ)模塊中讀取內(nèi)置驅(qū)動(dòng)程序內(nèi)容通過(guò)計(jì)算機(jī)接口發(fā)送給計(jì)算機(jī);或根據(jù)接收的命令,由內(nèi)置驅(qū)動(dòng)程序管理模塊刪除內(nèi)置驅(qū)動(dòng)程序存儲(chǔ)模塊中存儲(chǔ)的內(nèi)置驅(qū)動(dòng)程序;或?qū)⒔邮盏臄?shù)據(jù)發(fā)送給設(shè)備功能模塊實(shí)現(xiàn)設(shè)備功能。
其中,所述的可讀可寫存儲(chǔ)器可以為閃存Flash ROM。
所述的計(jì)算機(jī)接口可以包含標(biāo)準(zhǔn)并行通信接口電路;該并行通信接口電路與主控制器相連;主控制器通過(guò)并行通信接口電路接收計(jì)算機(jī)發(fā)送的命令、數(shù)據(jù)和內(nèi)置驅(qū)動(dòng)程序內(nèi)容;或根據(jù)接收的命令,經(jīng)過(guò)內(nèi)置驅(qū)動(dòng)程序管理模塊,從內(nèi)置驅(qū)動(dòng)程序存儲(chǔ)模塊中讀取內(nèi)置驅(qū)動(dòng)程序內(nèi)容通過(guò)并行通信接口電路發(fā)送給計(jì)算機(jī)。
所述的計(jì)算機(jī)接口還可以包含串行通信接口電路;該串行通信接口電路與主控制器相連;主控制器通過(guò)串行通信接口電路接收計(jì)算機(jī)發(fā)送的命令、數(shù)據(jù)和內(nèi)置驅(qū)動(dòng)程序內(nèi)容;或根據(jù)接收的命令,經(jīng)過(guò)內(nèi)置驅(qū)動(dòng)程序管理模塊,從內(nèi)置驅(qū)動(dòng)程序存儲(chǔ)模塊中讀取內(nèi)置驅(qū)動(dòng)程序內(nèi)容通過(guò)串行通信接口電路發(fā)送給計(jì)算機(jī)。
所述的串行通信接口電路可以為USB接口電路。
該外圍設(shè)備可以進(jìn)一步包含網(wǎng)絡(luò)接口電路,該網(wǎng)絡(luò)接口電路與主控制器相連;主控制器通過(guò)網(wǎng)絡(luò)接口電路接收網(wǎng)絡(luò)發(fā)送的命令、數(shù)據(jù)和內(nèi)置驅(qū)動(dòng)程序內(nèi)容;或根據(jù)接收的命令,經(jīng)過(guò)內(nèi)置驅(qū)動(dòng)程序管理模塊,從內(nèi)置驅(qū)動(dòng)程序存儲(chǔ)模塊中讀取內(nèi)置驅(qū)動(dòng)程序內(nèi)容通過(guò)網(wǎng)絡(luò)接口電路發(fā)送給網(wǎng)絡(luò)。
所述的網(wǎng)絡(luò)接口電路可以包含以太網(wǎng)收發(fā)器和網(wǎng)絡(luò)接口連接器;該網(wǎng)絡(luò)接口連接器與網(wǎng)絡(luò)相連,該以太網(wǎng)收發(fā)器與主控制器相連。
為達(dá)到上述目的的另一個(gè)方面,本發(fā)明提供了一種內(nèi)置驅(qū)動(dòng)程序的管理方法,該方法包括以下步驟1)將內(nèi)置驅(qū)動(dòng)程序存儲(chǔ)在外圍設(shè)備的可讀可寫存儲(chǔ)器中;2)計(jì)算機(jī)向外圍設(shè)備發(fā)送驅(qū)動(dòng)程序管理操作命令;3)外圍設(shè)備收到操作命令后,根據(jù)操作命令對(duì)存儲(chǔ)在外圍設(shè)備的可讀可寫存儲(chǔ)器中的內(nèi)置驅(qū)動(dòng)程序進(jìn)行管理操作。
其中,所述的可讀可寫存儲(chǔ)器可以為閃存FlashROM。
所述的驅(qū)動(dòng)程序管理操作命令可以為驅(qū)動(dòng)程序下載命令、驅(qū)動(dòng)程序上載命令或驅(qū)動(dòng)程序刪除命令。
所述的步驟3)可以包括以下步驟31)外圍設(shè)備判斷操作命令類型,如果是驅(qū)動(dòng)程序上載命令,則執(zhí)行步驟32);如果是驅(qū)動(dòng)程序下載命令,則執(zhí)行步驟33);如果是驅(qū)動(dòng)程序刪除命令,則執(zhí)行步驟34);步驟32)接收計(jì)算機(jī)發(fā)送的內(nèi)置驅(qū)動(dòng)程序內(nèi)容,先將該內(nèi)置驅(qū)動(dòng)程序內(nèi)容上載到外圍設(shè)備的數(shù)據(jù)存儲(chǔ)器,然后寫入到可讀可寫存儲(chǔ)器中;結(jié)束流程;步驟33)根據(jù)驅(qū)動(dòng)程序下載命令,在可讀可寫存儲(chǔ)器中搜索匹配的驅(qū)動(dòng)程序,如果有匹配的驅(qū)動(dòng)程序,則將該驅(qū)動(dòng)程序內(nèi)容下載到計(jì)算機(jī);結(jié)束流程;否則,向計(jì)算機(jī)返回下載失敗信息;結(jié)束流程;
步驟34)根據(jù)驅(qū)動(dòng)程序刪除命令,在可讀可寫存儲(chǔ)器中搜索匹配的驅(qū)動(dòng)程序,如果有匹配的驅(qū)動(dòng)程序,則將該驅(qū)動(dòng)程序內(nèi)容刪除;結(jié)束流程;否則,向計(jì)算機(jī)返回刪除失敗信息;結(jié)束流程。
該方法可以進(jìn)一步包括外圍設(shè)備接收驅(qū)動(dòng)程序管理操作命令前,等待接收數(shù)據(jù),當(dāng)有信息輸入時(shí)先判斷該信息是否為驅(qū)動(dòng)程序管理操作命令;如果是操作命令則執(zhí)行步驟31),否則按照外圍設(shè)備本身的功能進(jìn)行后續(xù)的處理。
該方法可以進(jìn)一步包括在計(jì)算機(jī)中建立驅(qū)動(dòng)程序列表,記錄該外圍設(shè)備的可讀可寫存儲(chǔ)器中存儲(chǔ)的所有驅(qū)動(dòng)程序的版本,該驅(qū)動(dòng)程序列表在外圍設(shè)備的驅(qū)動(dòng)程序上載、下載或刪除操作后由計(jì)算機(jī)刷新。
該方法可以進(jìn)一步包括外圍設(shè)備收到驅(qū)動(dòng)程序上載命令后,檢查可讀可寫存儲(chǔ)器是否有足夠的空間,如果有則將驅(qū)動(dòng)程序先上載到外圍設(shè)備的數(shù)據(jù)存儲(chǔ)器,然后寫入到可讀可寫存儲(chǔ)器中;否則,向計(jì)算機(jī)返回上載失敗信息。
該方法可以進(jìn)一步包括外圍設(shè)備對(duì)上載到數(shù)據(jù)存儲(chǔ)器中的驅(qū)動(dòng)程序進(jìn)行數(shù)據(jù)校驗(yàn),如果校驗(yàn)成功則將驅(qū)動(dòng)程序?qū)懭氲娇勺x可寫存儲(chǔ)器;否則向計(jì)算機(jī)返回校驗(yàn)失敗信息;驅(qū)動(dòng)程序下載到計(jì)算機(jī)后,計(jì)算機(jī)對(duì)對(duì)該驅(qū)動(dòng)程序進(jìn)行數(shù)據(jù)校驗(yàn),如果校驗(yàn)成功則直接安裝該驅(qū)動(dòng)程序;否則向外圍設(shè)備返回校驗(yàn)失敗信息。
所述的校驗(yàn)方法可以為使用累加和算法進(jìn)行校驗(yàn)。
所述步驟1)可以為將內(nèi)置驅(qū)動(dòng)程序按照寫入順序從前向后依次存儲(chǔ)到可讀可寫存儲(chǔ)器中。
所述步驟34)可以進(jìn)一步包括判斷被刪除的驅(qū)動(dòng)程序是否在可讀可寫存儲(chǔ)器的末尾,如果是則結(jié)束流程;否則,將存儲(chǔ)在被刪除的驅(qū)動(dòng)程序后的驅(qū)動(dòng)程序向前移動(dòng)。
所述外圍設(shè)備的計(jì)算機(jī)接口可以為標(biāo)準(zhǔn)并行通信接口或/和USB接口,計(jì)算機(jī)通過(guò)并行通信接口或/和USB接口向外圍設(shè)備發(fā)送驅(qū)動(dòng)程序管理操作命令,并通過(guò)并行通信接口或/和USB接口進(jìn)行驅(qū)動(dòng)程序的上載和下載。
該方法可以進(jìn)一步包括在所述的外圍設(shè)備上設(shè)置網(wǎng)絡(luò)接口,該網(wǎng)絡(luò)接口將外圍設(shè)備連接到網(wǎng)絡(luò)上;計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)向外圍設(shè)備發(fā)送驅(qū)動(dòng)程序管理操作命令,并通過(guò)網(wǎng)絡(luò)對(duì)網(wǎng)絡(luò)上的外圍設(shè)備進(jìn)行驅(qū)動(dòng)程序的上載和下載。
由本發(fā)明的技術(shù)方案可見,本發(fā)明的這種具有內(nèi)置驅(qū)動(dòng)程序管理功能的外圍設(shè)備及其管理方法,將驅(qū)動(dòng)程序存儲(chǔ)在外圍設(shè)備中可讀可寫的存儲(chǔ)器中,并在外圍設(shè)備中設(shè)置內(nèi)置驅(qū)動(dòng)程序管理模塊,通過(guò)計(jì)算機(jī)與該管理模塊的互相配合,對(duì)外圍設(shè)備中內(nèi)置驅(qū)動(dòng)程序進(jìn)行上載、下載、刪除等管理操作。本發(fā)明使得內(nèi)置驅(qū)動(dòng)程序的外圍設(shè)備能夠避免因操作系統(tǒng)和驅(qū)動(dòng)版本升級(jí)而導(dǎo)致內(nèi)置驅(qū)動(dòng)數(shù)據(jù)包失效的問(wèn)題,而且具有較高的擴(kuò)展性和兼容性。
圖1為本發(fā)明一個(gè)較佳實(shí)施例的內(nèi)置驅(qū)動(dòng)程序外圍設(shè)備的結(jié)構(gòu)示意圖;圖2為圖1所示實(shí)施例在計(jì)算機(jī)中的處理流程圖;圖3為圖1所示實(shí)施例的內(nèi)置驅(qū)動(dòng)程序外圍設(shè)備中的處理流程圖;圖4為圖1所示實(shí)施例的可讀可寫的存儲(chǔ)器中數(shù)據(jù)存儲(chǔ)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下面結(jié)合實(shí)施例和附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。
本發(fā)明的這種具有內(nèi)置驅(qū)動(dòng)程序管理功能的外圍設(shè)備及其管理方法,將驅(qū)動(dòng)程序存儲(chǔ)在外圍設(shè)備中可讀可寫的存儲(chǔ)器中,并在外圍設(shè)備中設(shè)置內(nèi)置驅(qū)動(dòng)程序管理模塊,通過(guò)計(jì)算機(jī)與該管理模塊的互相配合,對(duì)外圍設(shè)備中內(nèi)置驅(qū)動(dòng)程序進(jìn)行上載、下載、刪除等管理操作。
參見圖1,圖1為本發(fā)明一個(gè)較佳實(shí)施例的內(nèi)置驅(qū)動(dòng)程序外圍設(shè)備的結(jié)構(gòu)示意圖。本實(shí)施例是一種驅(qū)動(dòng)程序內(nèi)置的打印機(jī),該打印機(jī)包括主控制器107;程序存儲(chǔ)器103,本實(shí)施例中程序存儲(chǔ)器103為Flash ROM,也可是其他可讀可寫存儲(chǔ)器;數(shù)據(jù)存儲(chǔ)器(SDRAM)108;計(jì)算機(jī)接口109和打印模塊114。
其中,可讀可寫存儲(chǔ)器103除了包含用于存儲(chǔ)打印機(jī)固件程序的固件程序模塊104,還包含內(nèi)置驅(qū)動(dòng)程序存儲(chǔ)模塊106和內(nèi)置驅(qū)動(dòng)程序管理模塊105。主控制器107與可讀可寫存儲(chǔ)器103、數(shù)據(jù)存儲(chǔ)器108和計(jì)算機(jī)接口109分別相連;主控制器107通過(guò)計(jì)算機(jī)接口109接收計(jì)算機(jī)發(fā)送的命令、數(shù)據(jù)或內(nèi)置驅(qū)動(dòng)程序內(nèi)容,并暫存到數(shù)據(jù)存儲(chǔ)器108中,根據(jù)接收的命令,將數(shù)據(jù)存儲(chǔ)器108中暫存的內(nèi)置驅(qū)動(dòng)程序內(nèi)容經(jīng)過(guò)可讀可寫存儲(chǔ)器103中的內(nèi)置驅(qū)動(dòng)程序管理模塊105,存儲(chǔ)到內(nèi)置驅(qū)動(dòng)程序存儲(chǔ)模塊106;或根據(jù)接收的命令,經(jīng)過(guò)內(nèi)置驅(qū)動(dòng)程序管理模塊105,從內(nèi)置驅(qū)動(dòng)程序存儲(chǔ)模塊106中讀取內(nèi)置驅(qū)動(dòng)程序內(nèi)容通過(guò)計(jì)算機(jī)接口107發(fā)送給計(jì)算機(jī);或根據(jù)接收的命令,由內(nèi)置驅(qū)動(dòng)程序管理模塊105刪除內(nèi)置驅(qū)動(dòng)程序存儲(chǔ)模塊106中存儲(chǔ)的內(nèi)置驅(qū)動(dòng)程序;如果接收的是打印數(shù)據(jù),則由主控制器107控制打印模塊114進(jìn)行打印。
本實(shí)施例的計(jì)算機(jī)接口109包含了由互相連接的IEEE 1284收發(fā)器110和并口連接器111組成的標(biāo)準(zhǔn)并行通信接口電路,以及由互相連接的USB節(jié)點(diǎn)控制器112和USB接口連接器113組成的USB接口電路。IEEE 1284收發(fā)器110和USB節(jié)點(diǎn)控制器112分別與主控制器107相連;主控制器107通過(guò)IEEE1284收發(fā)器110和并口連接器111;或通過(guò)USB節(jié)點(diǎn)控制器112和USB接口連接器113接收計(jì)算機(jī)發(fā)送的命令、數(shù)據(jù)和內(nèi)置驅(qū)動(dòng)程序內(nèi)容;或根據(jù)接收的命令,經(jīng)過(guò)內(nèi)置驅(qū)動(dòng)程序管理模塊106,從內(nèi)置驅(qū)動(dòng)程序存儲(chǔ)模塊106中讀取內(nèi)置驅(qū)動(dòng)程序內(nèi)容通過(guò)IEEE 1284收發(fā)器110和并口連接器111;或通過(guò)USB節(jié)點(diǎn)控制器112和USB接口連接器113發(fā)送給計(jì)算機(jī)。
如圖1所示,本實(shí)施例的打印機(jī)還包含了由網(wǎng)絡(luò)接口連接器101和以太網(wǎng)收發(fā)器102組成的網(wǎng)絡(luò)接口電路,該網(wǎng)絡(luò)接口連接器101和以太網(wǎng)收發(fā)器102相連,該以太網(wǎng)收發(fā)器102與主控制器107相連;主控制器107通過(guò)以太網(wǎng)收發(fā)器102和網(wǎng)絡(luò)接口連接器101接收網(wǎng)絡(luò)發(fā)送的命令、打印數(shù)據(jù)和內(nèi)置驅(qū)動(dòng)程序內(nèi)容;或根據(jù)接收的命令,經(jīng)過(guò)內(nèi)置驅(qū)動(dòng)程序管理模塊105,從內(nèi)置驅(qū)動(dòng)程序存儲(chǔ)模塊106中讀取內(nèi)置驅(qū)動(dòng)程序內(nèi)容通過(guò)以太網(wǎng)收發(fā)器102和網(wǎng)絡(luò)接口連接器101發(fā)送給網(wǎng)絡(luò)。
參見圖2,圖2為圖1所示實(shí)施例在計(jì)算機(jī)中的處理流程圖。該流程包括以下步驟步驟201,選擇通信端口,由于本實(shí)施例的打印機(jī)有并口、USB接口和網(wǎng)絡(luò)接口,所以要先選擇通信端口。
步驟202,在選擇的通信端口上搜索是否有驅(qū)動(dòng)內(nèi)置打印機(jī),如果成功搜索到驅(qū)動(dòng)內(nèi)置打印機(jī),則執(zhí)行步驟203;否則結(jié)束流程。
步驟203,選擇該通信端口上連接的打印機(jī)。
步驟204,判斷任務(wù)類型,如果是配置打印機(jī)則執(zhí)行步驟205直接對(duì)打印機(jī)進(jìn)行配置,如果是對(duì)內(nèi)置驅(qū)動(dòng)程序進(jìn)行管理,則執(zhí)行步驟206。
步驟206,判斷對(duì)打印機(jī)內(nèi)置驅(qū)動(dòng)程序的操作類型,如果是驅(qū)動(dòng)程序下載,則執(zhí)行步驟207;如果是驅(qū)動(dòng)程序上載或刪除,則執(zhí)行步驟213。
步驟207,獲取計(jì)算機(jī)(PC)操作系統(tǒng)版本;步驟208,根據(jù)PC操作系統(tǒng)版本,向打印機(jī)發(fā)送驅(qū)動(dòng)下載命令,其中包含對(duì)驅(qū)動(dòng)程序的版本要求。
步驟209,接收打印機(jī)的應(yīng)答信息,如果應(yīng)答信息中包含版本匹配,則執(zhí)行步驟210-212;否則版本不匹配,則結(jié)束流程。
步驟210-212,PC接收打印機(jī)下載的該版本驅(qū)動(dòng)程序,并對(duì)下載的驅(qū)動(dòng)程序進(jìn)行累加和校驗(yàn),也可以用其他方法進(jìn)行校驗(yàn),如果校驗(yàn)成功則PC自動(dòng)安裝下載的驅(qū)動(dòng)程序后束流程;否則直接流程。
步驟213,PC調(diào)出預(yù)先建立的驅(qū)動(dòng)程序列表,該驅(qū)動(dòng)程序列表記錄該外圍設(shè)備的可讀可寫存儲(chǔ)器中存儲(chǔ)的所有驅(qū)動(dòng)程序的版本。
步驟214,判斷驅(qū)動(dòng)管理類型,如果是上載則執(zhí)行步驟215;如果是刪除則執(zhí)行步驟220-222。
步驟215,發(fā)送驅(qū)動(dòng)程序數(shù)據(jù)包的文件頭,其中包含驅(qū)動(dòng)程序數(shù)據(jù)包的大小。
步驟216,接收打印機(jī)的應(yīng)答信息,如果應(yīng)答信息中表明Flash ROM空間足夠,則執(zhí)行步驟217-219;否則Flash ROM空間不足,則結(jié)束流程。
步驟217-219,向打印機(jī)發(fā)送驅(qū)動(dòng)程序數(shù)據(jù)包的數(shù)據(jù)部分和校驗(yàn)字,接收打印機(jī)的應(yīng)答信息,如果應(yīng)答信息中表明校驗(yàn)成功,則將該驅(qū)動(dòng)程序的版本填入到驅(qū)動(dòng)程序列表中,刷新驅(qū)動(dòng)程序列表,結(jié)束流程;否則校驗(yàn)失敗,則結(jié)束流程。
步驟220-222,向打印機(jī)發(fā)送刪除確認(rèn)信息,其中包含要?jiǎng)h除的驅(qū)動(dòng)程序的版本號(hào),接收打印機(jī)的應(yīng)答信息,如果應(yīng)答信息中表明刪除成功,則將該驅(qū)動(dòng)程序的版本從驅(qū)動(dòng)程序列表中刪除,刷新驅(qū)動(dòng)程序列表,結(jié)束流程;否則刪除失敗,直接結(jié)束流程。
參見圖3,圖3為圖1所示實(shí)施例的內(nèi)置驅(qū)動(dòng)程序外圍設(shè)備中的處理流程圖。該流程包括以下步驟步驟301,打印機(jī)等待數(shù)據(jù)。驅(qū)動(dòng)內(nèi)置打印機(jī)上電運(yùn)行后,一直處于等待、接收、處理的循環(huán)之中。
步驟302,有數(shù)據(jù)輸入打印機(jī)。
步驟303,判斷數(shù)據(jù)類型,如果是打印數(shù)據(jù),則執(zhí)行步驟304執(zhí)行打印作業(yè);如果是驅(qū)動(dòng)程序管理操作命令,則執(zhí)行步驟305。
步驟305,判斷驅(qū)動(dòng)程序操作類型,如果是驅(qū)動(dòng)程序上載,則執(zhí)行步驟306-308;如果是驅(qū)動(dòng)程序刪除,則執(zhí)行步驟309;如果是驅(qū)動(dòng)程序上載,則執(zhí)行步驟314;步驟306-308,根據(jù)驅(qū)動(dòng)程序下載命令的版本要求,在可讀可寫存儲(chǔ)器中搜索匹配的驅(qū)動(dòng)程序,判斷是否有合適的驅(qū)動(dòng)程序,如果有匹配的驅(qū)動(dòng)程序,則將該驅(qū)動(dòng)程序內(nèi)容下載到PC,結(jié)束流程;否則,向PC返回下載失敗信息;結(jié)束流程。
步驟309,根據(jù)驅(qū)動(dòng)程序刪除命令,在可讀可寫存儲(chǔ)器中搜索匹配的驅(qū)動(dòng)程序。
步驟310,判斷是否有匹配的驅(qū)動(dòng)程序,如果有匹配的驅(qū)動(dòng)程序,則執(zhí)行步驟311-313;否則,向PC返回刪除失敗信息;結(jié)束流程。
步驟311-313,將匹配驅(qū)動(dòng)程序內(nèi)容刪除,判斷被刪除的驅(qū)動(dòng)程序是否在可讀可寫存儲(chǔ)器的末尾,如果是則結(jié)束流程;否則,將存儲(chǔ)在被刪除的驅(qū)動(dòng)程序后的驅(qū)動(dòng)程序向前移動(dòng)后結(jié)束流程。
驅(qū)動(dòng)程序在Flash ROM中的存儲(chǔ)結(jié)構(gòu)參見圖4,圖4為圖1所示實(shí)施例的可讀可寫的存儲(chǔ)器中數(shù)據(jù)存儲(chǔ)的結(jié)構(gòu)示意圖。其中,打印機(jī)的固件程序(firmware)存儲(chǔ)在Flash ROM的最前面,內(nèi)置驅(qū)動(dòng)程序按照寫入順序從前向后依次存儲(chǔ)在可讀可寫存儲(chǔ)器中。每一打印機(jī)驅(qū)動(dòng)包都由兩部分組成文件頭(Header File),驅(qū)動(dòng)數(shù)據(jù)壓縮包(Zip File)。Header File大小為128字節(jié),均未經(jīng)壓縮處理,其中包含了緊隨其后Zip File的重要信息以及打印機(jī)的特征信息,如該驅(qū)動(dòng)適合的操作系統(tǒng)、語(yǔ)言版本、驅(qū)動(dòng)版本、Zip File的大小、Zip File解壓縮后的原始文件大小、打印機(jī)型號(hào)、打印機(jī)分辨率、打印速度、打印紙張幅面等。
步驟314,打印機(jī)從驅(qū)動(dòng)程序上載命令中獲得上載驅(qū)動(dòng)程序的大小。
步驟315,檢查可讀可寫存儲(chǔ)器是否有足夠的空間,如果有則執(zhí)行步驟316-318;否則,向PC返回上載失敗信息,結(jié)束流程。
步驟316-318,打印機(jī)將驅(qū)動(dòng)程序先上載到外圍設(shè)備的數(shù)據(jù)存儲(chǔ)器,然后對(duì)下載的驅(qū)動(dòng)程序進(jìn)行校驗(yàn),如果校驗(yàn)成功則將該驅(qū)動(dòng)程序?qū)懭氲娇勺x可寫存儲(chǔ)器中結(jié)束流竄;否則校驗(yàn)不成功,直接結(jié)束流程。
本實(shí)施例中,計(jì)算機(jī)對(duì)下載的驅(qū)動(dòng)程序進(jìn)行校驗(yàn),且打印機(jī)對(duì)上載的驅(qū)動(dòng)程序進(jìn)行校驗(yàn),都采用了累加和的校驗(yàn)方法,實(shí)現(xiàn)簡(jiǎn)單有效,在實(shí)際應(yīng)用中也可以采用其他方法進(jìn)行校驗(yàn)。
本實(shí)施例是一種驅(qū)動(dòng)程序內(nèi)置的打印機(jī),其他的外圍設(shè)備如光碟機(jī)、掃描儀、數(shù)碼相機(jī)、高容量磁盤機(jī)、以及鍵盤、鼠標(biāo)、操作桿等操作裝置等等,同樣可以通過(guò)將驅(qū)動(dòng)程序存儲(chǔ)在其中可讀可寫的存儲(chǔ)器中,并在外圍設(shè)備中設(shè)置內(nèi)置驅(qū)動(dòng)程序管理模塊,通過(guò)計(jì)算機(jī)與該管理模塊的互相配合,對(duì)外圍設(shè)備中內(nèi)置驅(qū)動(dòng)程序進(jìn)行上載、下載、刪除等管理操作,與本實(shí)施例的區(qū)別在于設(shè)備功能模塊和接口有可能有所不同。
本實(shí)施例可以很方便的實(shí)現(xiàn)內(nèi)置驅(qū)動(dòng)程序的更新,比如先將可讀可寫的存儲(chǔ)器中舊版本的驅(qū)動(dòng)程序刪除,再由計(jì)算機(jī)將新版本的驅(qū)動(dòng)程序上載到可讀可寫的存儲(chǔ)器中,當(dāng)然如果可讀可寫的存儲(chǔ)器空間夠大也可以先上載后刪除。
由上述的實(shí)施例可見,本發(fā)明的這種具有內(nèi)置驅(qū)動(dòng)程序管理功能的外圍設(shè)備及其管理方法,能夠?qū)ν鈬O(shè)備中內(nèi)置驅(qū)動(dòng)程序進(jìn)行上載、下載、刪除等管理操作,使得內(nèi)置驅(qū)動(dòng)程序的外圍設(shè)備能夠避免因操作系統(tǒng)和驅(qū)動(dòng)版本升級(jí)而導(dǎo)致內(nèi)置驅(qū)動(dòng)數(shù)據(jù)包失效的問(wèn)題,而且具有較高的擴(kuò)展性和兼容性。
權(quán)利要求
1.一種具有內(nèi)置驅(qū)動(dòng)程序管理功能的外圍設(shè)備,其至少包含主控制器、設(shè)備功能模塊、程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器和計(jì)算機(jī)接口,其特征在于所述的程序存儲(chǔ)器為可讀可寫存儲(chǔ)器;且該可讀可寫存儲(chǔ)器進(jìn)一步包含內(nèi)置驅(qū)動(dòng)程序存儲(chǔ)模塊和內(nèi)置驅(qū)動(dòng)程序管理模塊;所述的主控制器與該可讀可寫存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器和計(jì)算機(jī)接口分別相連;主控制器通過(guò)計(jì)算機(jī)接口接收計(jì)算機(jī)發(fā)送的命令、數(shù)據(jù)或內(nèi)置驅(qū)動(dòng)程序內(nèi)容,并暫存到數(shù)據(jù)存儲(chǔ)器中,根據(jù)接收的命令,將數(shù)據(jù)存儲(chǔ)器中暫存的內(nèi)置驅(qū)動(dòng)程序內(nèi)容經(jīng)過(guò)可讀可寫存儲(chǔ)器中的內(nèi)置驅(qū)動(dòng)程序管理模塊,存儲(chǔ)到內(nèi)置驅(qū)動(dòng)程序存儲(chǔ)模塊;或根據(jù)接收的命令,經(jīng)過(guò)內(nèi)置驅(qū)動(dòng)程序管理模塊,從內(nèi)置驅(qū)動(dòng)程序存儲(chǔ)模塊中讀取內(nèi)置驅(qū)動(dòng)程序內(nèi)容通過(guò)計(jì)算機(jī)接口發(fā)送給計(jì)算機(jī);或根據(jù)接收的命令,由內(nèi)置驅(qū)動(dòng)程序管理模塊刪除內(nèi)置驅(qū)動(dòng)程序存儲(chǔ)模塊中存儲(chǔ)的內(nèi)置驅(qū)動(dòng)程序;或?qū)⒔邮盏臄?shù)據(jù)發(fā)送給設(shè)備功能模塊實(shí)現(xiàn)設(shè)備功能。
2.如權(quán)利要求1所述的外圍設(shè)備,其特征在于所述的可讀可寫存儲(chǔ)器為閃存Flash ROM。
3.如權(quán)利要求1所述的外圍設(shè)備,其特征在于所述的計(jì)算機(jī)接口包含標(biāo)準(zhǔn)并行通信接口電路;該并行通信接口電路與主控制器相連;主控制器通過(guò)并行通信接口電路接收計(jì)算機(jī)發(fā)送的命令、數(shù)據(jù)和內(nèi)置驅(qū)動(dòng)程序內(nèi)容;或根據(jù)接收的命令,經(jīng)過(guò)內(nèi)置驅(qū)動(dòng)程序管理模塊,從內(nèi)置驅(qū)動(dòng)程序存儲(chǔ)模塊中讀取內(nèi)置驅(qū)動(dòng)程序內(nèi)容通過(guò)并行通信接口電路發(fā)送給計(jì)算機(jī)。
4.如權(quán)利要求1所述的外圍設(shè)備,其特征在于所述的計(jì)算機(jī)接口包含串行通信接口電路;該串行通信接口電路與主控制器相連;主控制器通過(guò)串行通信接口電路接收計(jì)算機(jī)發(fā)送的命令、數(shù)據(jù)和內(nèi)置驅(qū)動(dòng)程序內(nèi)容;或根據(jù)接收的命令,經(jīng)過(guò)內(nèi)置驅(qū)動(dòng)程序管理模塊,從內(nèi)置驅(qū)動(dòng)程序存儲(chǔ)模塊中讀取內(nèi)置驅(qū)動(dòng)程序內(nèi)容通過(guò)串行通信接口電路發(fā)送給計(jì)算機(jī)。
5.如權(quán)利要求1所述的外圍設(shè)備,其特征在于所述的串行通信接口電路為USB接口電路。
6.如權(quán)利要求1所述的外圍設(shè)備,其特征在于該外圍設(shè)備進(jìn)一步包含網(wǎng)絡(luò)接口電路,該網(wǎng)絡(luò)接口電路與主控制器相連;主控制器通過(guò)網(wǎng)絡(luò)接口電路接收網(wǎng)絡(luò)發(fā)送的命令、數(shù)據(jù)和內(nèi)置驅(qū)動(dòng)程序內(nèi)容;或根據(jù)接收的命令,經(jīng)過(guò)內(nèi)置驅(qū)動(dòng)程序管理模塊,從內(nèi)置驅(qū)動(dòng)程序存儲(chǔ)模塊中讀取內(nèi)置驅(qū)動(dòng)程序內(nèi)容通過(guò)網(wǎng)絡(luò)接口電路發(fā)送給網(wǎng)絡(luò)。
7.如權(quán)利要求6所述的外圍設(shè)備,其特征在于所述的網(wǎng)絡(luò)接口電路包含以太網(wǎng)收發(fā)器和網(wǎng)絡(luò)接口連接器;該網(wǎng)絡(luò)接口連接器與網(wǎng)絡(luò)相連,該以太網(wǎng)收發(fā)器與主控制器相連。
8.一種內(nèi)置驅(qū)動(dòng)程序的管理方法,計(jì)算機(jī)外圍設(shè)備的內(nèi)置驅(qū)動(dòng)程序進(jìn)行管理,其特征在于,該方法包括以下步驟1)將內(nèi)置驅(qū)動(dòng)程序存儲(chǔ)在外圍設(shè)備的可讀可寫存儲(chǔ)器中;2)計(jì)算機(jī)向外圍設(shè)備發(fā)送驅(qū)動(dòng)程序管理操作命令;3)外圍設(shè)備收到操作命令后,根據(jù)操作命令對(duì)存儲(chǔ)在外圍設(shè)備的可讀可寫存儲(chǔ)器中的內(nèi)置驅(qū)動(dòng)程序進(jìn)行管理操作。
9.如權(quán)利要求8所述的管理方法,其特征在于所述的可讀可寫存儲(chǔ)器為閃存FlashROM。
10.如權(quán)利要求8所述的管理方法,其特征在于所述的驅(qū)動(dòng)程序管理操作命令為驅(qū)動(dòng)程序下載命令、驅(qū)動(dòng)程序上載命令或驅(qū)動(dòng)程序刪除命令。
11.如權(quán)利要求10所述的管理方法,其特征在于所述的步驟3)包括以下步驟31)外圍設(shè)備判斷操作命令類型,如果是驅(qū)動(dòng)程序上載命令,則執(zhí)行步驟32);如果是驅(qū)動(dòng)程序下載命令,則執(zhí)行步驟33);如果是驅(qū)動(dòng)程序刪除命令,則執(zhí)行步驟34);步驟32)接收計(jì)算機(jī)發(fā)送的內(nèi)置驅(qū)動(dòng)程序內(nèi)容,先將該內(nèi)置驅(qū)動(dòng)程序內(nèi)容上載到外圍設(shè)備的數(shù)據(jù)存儲(chǔ)器,然后寫入到可讀可寫存儲(chǔ)器中;結(jié)束流程;步驟33)根據(jù)驅(qū)動(dòng)程序下載命令,在可讀可寫存儲(chǔ)器中搜索匹配的驅(qū)動(dòng)程序,如果有匹配的驅(qū)動(dòng)程序,則將該驅(qū)動(dòng)程序內(nèi)容下載到計(jì)算機(jī);結(jié)束流程;否則,向計(jì)算機(jī)返回下載失敗信息;結(jié)束流程;步驟34)根據(jù)驅(qū)動(dòng)程序刪除命令,在可讀可寫存儲(chǔ)器中搜索匹配的驅(qū)動(dòng)程序,如果有匹配的驅(qū)動(dòng)程序,則將該驅(qū)動(dòng)程序內(nèi)容刪除;結(jié)束流程;否則,向計(jì)算機(jī)返回刪除失敗信息;結(jié)束流程。
12.如權(quán)利要求11所述的管理方法,其特征在于,該方法進(jìn)一步包括外圍設(shè)備接收驅(qū)動(dòng)程序管理操作命令前,等待接收數(shù)據(jù),當(dāng)有信息輸入時(shí)先判斷該信息是否為驅(qū)動(dòng)程序管理操作命令;如果是操作命令則執(zhí)行步驟31),否則按照外圍設(shè)備本身的功能進(jìn)行后續(xù)的處理。
13.如權(quán)利要求11所述的管理方法,其特征在于,該方法進(jìn)一步包括在計(jì)算機(jī)中建立驅(qū)動(dòng)程序列表,記錄該外圍設(shè)備的可讀可寫存儲(chǔ)器中存儲(chǔ)的所有驅(qū)動(dòng)程序的版本,該驅(qū)動(dòng)程序列表在外圍設(shè)備的驅(qū)動(dòng)程序上載、下載或刪除操作后由計(jì)算機(jī)刷新。
14.如權(quán)利要求11所述的管理方法,其特征在于,該方法進(jìn)一步包括外圍設(shè)備收到驅(qū)動(dòng)程序上載命令后,檢查可讀可寫存儲(chǔ)器是否有足夠的空間,如果有則將驅(qū)動(dòng)程序先上載到外圍設(shè)備的數(shù)據(jù)存儲(chǔ)器,然后寫入到可讀可寫存儲(chǔ)器中;否則,向計(jì)算機(jī)返回上載失敗信息。
15.如權(quán)利要求11或14所述的管理方法,其特征在于,該方法進(jìn)一步包括外圍設(shè)備對(duì)上載到數(shù)據(jù)存儲(chǔ)器中的驅(qū)動(dòng)程序進(jìn)行數(shù)據(jù)校驗(yàn),如果校驗(yàn)成功則將驅(qū)動(dòng)程序?qū)懭氲娇勺x可寫存儲(chǔ)器;否則向計(jì)算機(jī)返回校驗(yàn)失敗信息;驅(qū)動(dòng)程序下載到計(jì)算機(jī)后,計(jì)算機(jī)對(duì)對(duì)該驅(qū)動(dòng)程序進(jìn)行數(shù)據(jù)校驗(yàn),如果校驗(yàn)成功則直接安裝該驅(qū)動(dòng)程序;否則向外圍設(shè)備返回校驗(yàn)失敗信息。
16.如權(quán)利要求15所述的管理方法,其特征在于,所述的校驗(yàn)方法為使用累加和算法進(jìn)行校驗(yàn)。
17.如權(quán)利要求11所述的管理方法,其特征在于,所述步驟1)為將內(nèi)置驅(qū)動(dòng)程序按照寫入順序從前向后依次存儲(chǔ)到可讀可寫存儲(chǔ)器中。
18.如權(quán)利要求17所述的管理方法,其特征在于,所述步驟34)進(jìn)一步包括判斷被刪除的驅(qū)動(dòng)程序是否在可讀可寫存儲(chǔ)器的末尾,如果是則結(jié)束流程;否則,將存儲(chǔ)在被刪除的驅(qū)動(dòng)程序后的驅(qū)動(dòng)程序向前移動(dòng)。
19.如權(quán)利要求8所述的管理方法,其特征在于,所述外圍設(shè)備的計(jì)算機(jī)接口為標(biāo)準(zhǔn)并行通信接口或/和USB接口,計(jì)算機(jī)通過(guò)并行通信接口或/和USB接口向外圍設(shè)備發(fā)送驅(qū)動(dòng)程序管理操作命令,并通過(guò)并行通信接口或/和USB接口進(jìn)行驅(qū)動(dòng)程序的上載和下載。
20.如權(quán)利要求8所述的管理方法,其特征在于,該方法進(jìn)一步包括在所述的外圍設(shè)備上設(shè)置網(wǎng)絡(luò)接口,該網(wǎng)絡(luò)接口將外圍設(shè)備連接到網(wǎng)絡(luò)上;計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)向外圍設(shè)備發(fā)送驅(qū)動(dòng)程序管理操作命令,并通過(guò)網(wǎng)絡(luò)對(duì)網(wǎng)絡(luò)上的外圍設(shè)備進(jìn)行驅(qū)動(dòng)程序的上載和下載。
全文摘要
本發(fā)明的這種具有內(nèi)置驅(qū)動(dòng)程序管理功能的外圍設(shè)備及其管理方法將驅(qū)動(dòng)程序存儲(chǔ)在外圍設(shè)備中可讀可寫的存儲(chǔ)器中,并在外圍設(shè)備中設(shè)置內(nèi)置驅(qū)動(dòng)程序管理模塊,通過(guò)計(jì)算機(jī)與該管理模塊的互相配合,對(duì)外圍設(shè)備中內(nèi)置驅(qū)動(dòng)程序進(jìn)行上載、下載、刪除等管理操作,使得內(nèi)置驅(qū)動(dòng)程序的外圍設(shè)備能夠避免因操作系統(tǒng)和驅(qū)動(dòng)版本升級(jí)而導(dǎo)致內(nèi)置驅(qū)動(dòng)數(shù)據(jù)包失效的問(wèn)題,而且具有較高的擴(kuò)展性和兼容性。
文檔編號(hào)G06F15/16GK1601499SQ0315756
公開日2005年3月30日 申請(qǐng)日期2003年9月24日 優(yōu)先權(quán)日2003年9月24日
發(fā)明者宋欣, 金仲晟 申請(qǐng)人:聯(lián)想(北京)有限公司