專利名稱:更新數(shù)據(jù)傳輸方法、主機(jī)設(shè)備和固件寫入系統(tǒng)的制作方法
購(gòu)自 E. I. du Pont de Nemours and Company (Wilmington, DE)的 Appeel⑧樹脂??衫帽绢I(lǐng)域已知的方法將熱封層涂布于罩組件的阻 擋層上,所述方法包括但不限于輥涂、凹版涂布、噴涂和擠出涂布。 在剝離開口包裝中,優(yōu)選使用不可剝離的粘合劑粘結(jié)層連接壓延片 材層與阻擋層,從而使壓延片材和阻擋層緊密粘合在一起,進(jìn)而可 自泡組件完全剝離多層罩,而不會(huì)在壓延片材和阻擋層之間發(fā)生分 層。適用于本發(fā)明剝離開口包裝中的罩的不可剝離粘合劑粘結(jié)層包 括溶劑基二組分干粘結(jié)粘合劑組合物,例如聚酯基聚氨酯粘合劑, 例如購(gòu)自Rohm & Haas(Philadelphia, PA)的Adcote⑧聚氨酯基粘合 劑。在干粘結(jié)粘合過(guò)程中,將粘合劑涂布在阻擋層或非織造層或兩 者上,將二層粘合在一起,而粘合劑是"干"的或基本沒(méi)有溶劑。如 果初始粘合劑組合物包含溶劑,則在將非織造層層壓至阻擋層之前 對(duì)其進(jìn)行干燥。其他提供不可剝離粘結(jié)層的粘合劑組合物包括可擠 出樹脂,例如改性的乙烯乙酸乙烯酯、乙烯乙酸乙烯酯和乙烯丙烯 酸曱酯基樹月旨,例如購(gòu)自E. I. du Pont de Nemours and Company (Wilmington, DE)的Bynel⑧和Nucrel⑧改性的乙烯乙酸乙烯酯和改性 的乙烯丙烯酸曱酯樹脂。在本發(fā)明泡罩包裝的另 一個(gè)實(shí)施方案中,所述泡罩包裝為剝離-推出包裝,其中所述罩組件包括例如圖3A所示的多層層壓材^K外 層重壓延片材層9通過(guò)可剝離粘結(jié)層13與易碎阻擋層11粘合,將 其從所述包裝剝離以暴露易碎阻擋層,通過(guò)該阻擋層將被包裝物質(zhì) 推出。如果通過(guò)向泡空穴外表面施壓破壞層而移出被包裝物質(zhì),則 認(rèn)為所述層易碎。可在重壓延片材層9和粘合劑粘結(jié)層13之間或粘 合劑粘結(jié)層13和阻擋層11之間發(fā)生剝離。優(yōu)選對(duì)粘合劑粘結(jié)層進(jìn) 行選擇從而當(dāng)打開包裝而沒(méi)有撕去或以其他方式破壞阻擋層時(shí)使其 與重壓延片材層保持粘連并自阻擋層完全剝離。即優(yōu)選粘合劑粘結(jié) 層對(duì)壓延片材層具有高粘性,而對(duì)易碎的阻擋層的粘性相對(duì)較低。 如果在非織造層和粘合劑粘結(jié)層之間發(fā)生剝離,則該粘合劑粘結(jié)層
和其中存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)區(qū)域,并通過(guò)硬件操作將存儲(chǔ)在報(bào)頭區(qū)域中的 報(bào)頭鏈接到存儲(chǔ)在數(shù)據(jù)區(qū)域中的數(shù)據(jù),來(lái)輸出傳輸分組。外圍設(shè)備中增加的功能也增加了固件的尺寸,增加了在更新固件時(shí)要發(fā)送和接收的記錄的數(shù)目(數(shù)據(jù)單元的數(shù)目)。在諸如USB、并行 接口或以太網(wǎng)(R)的高速通信接口將計(jì)算機(jī)和外圍設(shè)備相連時(shí),發(fā)送 和接收大量更新數(shù)據(jù)并不是一個(gè)突出問(wèn)題,但是如果使用RS-232C或 其它低速通信接口,發(fā)送更新數(shù)據(jù)將花費(fèi)較長(zhǎng)時(shí)間。例如,以19,200 bps發(fā)送6MB數(shù)據(jù)大約需要45分鐘,以9600 bps發(fā)送6MB數(shù)據(jù)大約 需要90分鐘。此外,通常在接收固件更新數(shù)據(jù)的同時(shí)不能夠使用外圍 設(shè)備,因此,在通常一天24小時(shí)使用外圍設(shè)備的情況下,尤其希望在 最短可能的時(shí)間內(nèi)完成數(shù)據(jù)傳輸。日本未審專利申請(qǐng)公開JP-A-H11-212908通過(guò)教導(dǎo)了一種接口 盒,用于暫時(shí)在存儲(chǔ)器中存儲(chǔ)使用RS-232C (例如9600bps)從計(jì)算機(jī) 接收到的數(shù)據(jù),然后使用更快的(例如50,000bps)串行或并行接口 將數(shù)據(jù)從存儲(chǔ)器傳送到移動(dòng)信息設(shè)備,解決了此問(wèn)題。因此,移動(dòng)信 息設(shè)備可減少數(shù)據(jù)通信所需的時(shí)間。還可通過(guò)減少傳送數(shù)據(jù)的量來(lái)縮短通信時(shí)間。例如,日本未審專 利申請(qǐng)公開JP-A-H06-242894教導(dǎo)了一種方法,用于對(duì)要發(fā)送到打印 機(jī)的打印數(shù)據(jù)中的連續(xù)空值(0x20)的數(shù)目進(jìn)行計(jì)數(shù),如果該數(shù)目大 于或等于預(yù)定基準(zhǔn)值,則發(fā)送控制數(shù)據(jù)而不是連續(xù)空值字符,以便一 步將打印機(jī)的打印位置(打印頭)移動(dòng)與連續(xù)空值的數(shù)目相等的距離。然而,日本未審專利申請(qǐng)公開JP-A-H11-212908教導(dǎo)的技術(shù)所涉 及的問(wèn)題在于,除了需要接口盒之外,還必須使外圍設(shè)備與接口盒兼 容,并因此接口盒不具有通用性。此外,由于計(jì)算機(jī)和接口塊之間的 數(shù)據(jù)傳送速率是瓶頸,所以從整體系統(tǒng)來(lái)看,并未縮短更新數(shù)據(jù)通信 時(shí)間。發(fā)明內(nèi)容根據(jù)本發(fā)明的一種更新數(shù)據(jù)傳輸方法、主機(jī)設(shè)備和固件寫入系統(tǒng) 能夠在從計(jì)算機(jī)向外圍設(shè)備傳送外圍設(shè)備的固件更新數(shù)據(jù)時(shí)縮短通信時(shí)間,而不會(huì)改變數(shù)據(jù)傳送速率。主機(jī)設(shè)備使用根據(jù)本發(fā)明第一方面的更新數(shù)據(jù)傳輸方法,將用 于更新外圍設(shè)備中的固件的更新數(shù)據(jù)發(fā)送到外圍設(shè)備。所述更新數(shù)據(jù) 傳輸方法包括步驟(a)依次讀取第一格式的記錄,所述第一格式的 源記錄包括源目標(biāo)數(shù)據(jù)和源管理數(shù)據(jù);(b)將所述源記錄轉(zhuǎn)換為第二 格式的目的記錄,所述第二格式的目的記錄包括目的目標(biāo)數(shù)據(jù)和目的 管理數(shù)據(jù);以及(C)向所述外圍設(shè)備發(fā)送所述目的記錄;所述步驟(b) 包括步驟(bl)產(chǎn)生將所述源目標(biāo)數(shù)據(jù)連接為預(yù)定長(zhǎng)度后的目標(biāo)數(shù)據(jù) 塊;(b2)在執(zhí)行所述步驟(bl)時(shí),檢測(cè)所述源目標(biāo)數(shù)據(jù)中是否有在 所述目的管理數(shù)據(jù)的長(zhǎng)度以上的空值數(shù)據(jù)塊,當(dāng)存在所述空值數(shù)據(jù)塊 時(shí),產(chǎn)生以所述空值數(shù)據(jù)塊的緊前面的數(shù)據(jù)結(jié)束的目標(biāo)數(shù)據(jù)、和從所 述空值數(shù)據(jù)塊的緊后面的數(shù)據(jù)開始的目標(biāo)數(shù)據(jù),使得不包含所述空值 數(shù)據(jù)塊;以及(b3)產(chǎn)生與所述步驟(bl)和(b2)中產(chǎn)生的目標(biāo)數(shù) 據(jù)對(duì)應(yīng)的管理數(shù)據(jù),并產(chǎn)生將這些目標(biāo)數(shù)據(jù)和管理數(shù)據(jù)分別作為所述 目的目標(biāo)數(shù)據(jù)和所述目的管理數(shù)據(jù)的所述目的記錄。根據(jù)本發(fā)明另一方面的主機(jī)設(shè)備是一種主機(jī)設(shè)備,將用于更新外圍設(shè)備中的固件的更新數(shù)據(jù)發(fā)送到外圍設(shè)備。該主機(jī)設(shè)備具有控制單元,用于依次讀取包括源目標(biāo)數(shù)據(jù)和源管理數(shù)據(jù)的第一格式的源記 錄,將所讀取的所述源記錄轉(zhuǎn)換為包括目的目標(biāo)數(shù)據(jù)和目的管理數(shù)據(jù)的第二格式的目的記錄,向所述外圍設(shè)備發(fā)送轉(zhuǎn)換后的所述目的記錄; 所述控制單元包括數(shù)據(jù)連接單元,用于產(chǎn)生將所述源目標(biāo)數(shù)據(jù)連接 為預(yù)定長(zhǎng)度后的目標(biāo)數(shù)據(jù)塊;空值數(shù)據(jù)檢測(cè)單元,用于檢測(cè)所述源目 標(biāo)數(shù)據(jù)中是否有在所述目的管理數(shù)據(jù)的長(zhǎng)度以上的空值數(shù)據(jù)塊;以及 記錄產(chǎn)生單元,用于產(chǎn)生與由所述數(shù)據(jù)連接單元產(chǎn)生的目標(biāo)數(shù)據(jù)對(duì)應(yīng) 的管理數(shù)據(jù),并產(chǎn)生所述目的記錄,所述目的記錄將這些目標(biāo)數(shù)據(jù)和 管理數(shù)據(jù)分別作為所述目的目標(biāo)數(shù)據(jù)和所述目的管理數(shù)據(jù);所述數(shù)據(jù) 連接單元,當(dāng)由所述空值數(shù)據(jù)檢測(cè)單元檢測(cè)到所述空值數(shù)據(jù)塊時(shí),產(chǎn) 生以所述空值數(shù)據(jù)塊的緊前面的數(shù)據(jù)結(jié)束的目標(biāo)數(shù)據(jù)、和從所述空值 數(shù)據(jù)塊的緊后面的數(shù)據(jù)開始的目標(biāo)數(shù)據(jù),使得不包含所述空值數(shù)據(jù)塊。 將目標(biāo)數(shù)據(jù)鏈接在一起減少了記錄的數(shù)目(傳輸數(shù)據(jù)單元),并
因此還減少了記錄所需的管理數(shù)據(jù)的量。這還減少了傳輸數(shù)據(jù)的總量, 從而縮短了數(shù)據(jù)通信時(shí)間。此外,通過(guò)向所鏈接的數(shù)據(jù)的長(zhǎng)度運(yùn)用上 限,可檢測(cè)通信誤差,并且可更加快速地重試數(shù)據(jù)傳輸,并且可避免 不必要的數(shù)據(jù)通信。通過(guò)刪除超過(guò)管理數(shù)據(jù)長(zhǎng)度的連續(xù)空值數(shù)據(jù)塊, 可進(jìn)一步減少要傳輸?shù)臄?shù)據(jù)總量。另外,以下說(shuō)明中的"空值數(shù)據(jù)" 是表示已對(duì)非易失性存儲(chǔ)器(例如閃存)進(jìn)行初始化或數(shù)據(jù)擦除時(shí)的值。 一般,該值為0xFF,但在本發(fā)明中并不限定于OxFF。優(yōu)選地,所述源記錄是ASCII編碼格式,所述目的記錄是二進(jìn)制 格式。通過(guò)將Ascn轉(zhuǎn)換為二進(jìn)制,可將傳輸數(shù)據(jù)的總量近似減半, 并因此使數(shù)據(jù)通信時(shí)間近似減半。與相關(guān)現(xiàn)有技術(shù)一樣,同樣不需要 在外圍設(shè)備一側(cè)進(jìn)行二進(jìn)制轉(zhuǎn)換,并且在外圍設(shè)備一側(cè)減少了固件更 新過(guò)程的處理器負(fù)擔(dān)。由于外圍設(shè)備中使用的CPU通常比計(jì)算機(jī)所使 用的CPU性能差,因此減少外圍設(shè)備的處理器負(fù)擔(dān)提高了包括主計(jì)算 機(jī)和外圍設(shè)備的整個(gè)系統(tǒng)的固件更新過(guò)程的性能。此外,優(yōu)選地,所述預(yù)定長(zhǎng)度設(shè)置成用于存儲(chǔ)外圍設(shè)備固件的閃 存的數(shù)據(jù)寫入單元的長(zhǎng)度以下。如果所述預(yù)定長(zhǎng)度長(zhǎng)于數(shù)據(jù)寫入單元 的長(zhǎng)度(扇區(qū)容量),則外圍設(shè)備需要將目標(biāo)數(shù)據(jù)分段成數(shù)據(jù)寫入單元 的長(zhǎng)度。這增加了外圍設(shè)備的處理器負(fù)擔(dān),并因此降低了整個(gè)系統(tǒng)的 固件寫入過(guò)程的性能。此外,優(yōu)選地,根據(jù)外圍設(shè)備所連接的接口的類型來(lái)設(shè)置所述預(yù) 定長(zhǎng)度。此外,優(yōu)選地,測(cè)量與外圍設(shè)備之間的通信速度,并且根據(jù) 所測(cè)量的通信速度來(lái)設(shè)置所述預(yù)定長(zhǎng)度。通過(guò)根據(jù)通信接口或通信速 度來(lái)改變所述預(yù)定長(zhǎng)度,可更有效地傳輸數(shù)據(jù),并且可縮短通信時(shí)間。本發(fā)明的另一方面是一種程序,用于使計(jì)算機(jī)執(zhí)行本發(fā)明的更新 數(shù)據(jù)傳輸方法的各個(gè)步驟。此外,本發(fā)明的另一方面是一種記錄該程 序的記錄介質(zhì)。通過(guò)參考以下說(shuō)明和權(quán)利要求,結(jié)合附圖,本發(fā)明的其它目的、 和成就將顯而易見,并可實(shí)現(xiàn)對(duì)本發(fā)明的更完整的理解。
圖1是根據(jù)本發(fā)明的系統(tǒng)的示意框圖。圖2是更新數(shù)據(jù)的數(shù)據(jù)單元的格式。 圖3是服務(wù)器和打印機(jī)的控制框圖。 圖4是更新數(shù)據(jù)傳輸過(guò)程的流程圖。 圖5是固件寫入過(guò)程的流程圖。圖6是根據(jù)本發(fā)明另一方面的更新數(shù)據(jù)傳輸過(guò)程的流程圖。
具體實(shí)施方式
下面參考附圖來(lái)描述本發(fā)明的優(yōu)選實(shí)施例。 *系統(tǒng)配置根據(jù)本發(fā)明實(shí)施例的固件寫入系統(tǒng)1包括主計(jì)算機(jī)1;多個(gè)服務(wù) 器12a、 12b、 12c;以及多個(gè)打印機(jī)13al、 13a2、 13b、 13c和13d,作為外圍設(shè)備的示例。主計(jì)算機(jī)1和服務(wù)器12a至12c通過(guò)網(wǎng)絡(luò)14相連。打印機(jī)13al 和13a2分別通過(guò)接口 15al和15a2與服務(wù)器12a相連。打印機(jī)13b 通過(guò)接口 15b與服務(wù)器12b相連,打印機(jī)13c通過(guò)接口 15c與服務(wù)器 2c相連。打印機(jī)13d通過(guò)接口 15d連接到網(wǎng)絡(luò)14,并可由同樣與網(wǎng)絡(luò) 14相連的主計(jì)算機(jī)11和服務(wù)器12a至12c控制??墒褂闷胀▊€(gè)人計(jì)算機(jī)或諸如P0S終端之類的專用信息設(shè)備來(lái)實(shí) 現(xiàn)服務(wù)器12a至12c。網(wǎng)絡(luò)14可以是例如以太網(wǎng)的局域網(wǎng)(LAN)或者例如專用線路、 互聯(lián)網(wǎng)、虛擬專業(yè)網(wǎng)(VPN)的廣域網(wǎng)(WAN)。如果網(wǎng)絡(luò)14是WAN, 則主計(jì)算機(jī)11可以命令遠(yuǎn)程服務(wù)器12a至12c更新所連接的打印機(jī) 13al至13c的固件。主計(jì)算機(jī)11還可命令直接與網(wǎng)絡(luò)14相連的打印 機(jī)13d更新固件。單個(gè)主計(jì)算機(jī)11因此可控制多個(gè)遠(yuǎn)程打印機(jī)13al 至13d的固件的更新。接口 15al至15d可以是例如RS-232C (14.4kbps最大數(shù)據(jù)傳送 速率)或USB (USB 2.0是60Mbps最大數(shù)據(jù)傳送速率)的串行接口, 或者例如SCSI (320Mbps最大數(shù)據(jù)傳送速率)的并行接口。服務(wù)器12a至12c可使用不同的數(shù)據(jù)傳送速率,通過(guò)網(wǎng)絡(luò)14連
接到主計(jì)算機(jī)11。打印機(jī)13al和13a2還可以以不同的數(shù)據(jù)傳送速率 與服務(wù)器12a相連。該固件寫入系統(tǒng)1中的主計(jì)算機(jī)11將固件更新數(shù)據(jù)發(fā)送到打印 機(jī)13al至13d,并且各個(gè)打印機(jī)相應(yīng)地更新其自身的固件??蛇x地, 服務(wù)器12a至12c可將固件更新數(shù)據(jù)發(fā)送到所連接到的打印機(jī)13al 至13c,并且各個(gè)打印機(jī)相應(yīng)地更新其自身的固件。下面以服務(wù)器12b (計(jì)算機(jī))和打印機(jī)13b (外圍設(shè)備)作為根據(jù)本發(fā)明的固件寫入系 統(tǒng)的示例,描述更新打印機(jī)13b中的固件的過(guò)程,來(lái)進(jìn)行描述本發(fā)明。*Motorola S3格式打印機(jī)13b的固件以編程語(yǔ)言寫出,并且編譯源代碼并將其以 Motorola S3格式提供給服務(wù)器12b, Motorola S3格式是十六進(jìn)制文 本格式??蓪⒐碳创a提供給服務(wù)器12b,并且服務(wù)器12b可將源 代碼轉(zhuǎn)換為Motorola S3格式。參考圖2A, Motorola S3格式的一個(gè)記錄20a (數(shù)據(jù)單元)包括 類型字段21、數(shù)據(jù)長(zhǎng)度字段22、地址字段23、數(shù)據(jù)字段24和校驗(yàn)和 字段25。類型字段21是表示Motorola S格式類型(記錄類型)的值,并 且長(zhǎng)度為2個(gè)字節(jié)。本發(fā)明的該方面使用S3格式,但是其它Motorola S格式包括Sl和S2格式。類型S7至S9同樣被定義為Sl至S3結(jié)束符。數(shù)據(jù)長(zhǎng)度字段22是表示接下來(lái)的數(shù)據(jù)量(即記錄長(zhǎng)度)的2字 節(jié)值。地址字段23是表示數(shù)據(jù)字段24中封裝的數(shù)據(jù)的第一字節(jié)所存儲(chǔ) 的地址的8字節(jié)值。數(shù)據(jù)字段24長(zhǎng)度為從2至500字節(jié),并且包括要寫入打印機(jī)13b 的閃存132的實(shí)際數(shù)據(jù)(目標(biāo)數(shù)據(jù))。校驗(yàn)和25包含根據(jù)數(shù)據(jù)長(zhǎng)度字段22、地址字段23和數(shù)據(jù)字段 24中的字節(jié)值所計(jì)算的2字節(jié)校驗(yàn)和。下面將數(shù)據(jù)字段24中目標(biāo)數(shù)據(jù)之外的其它數(shù)據(jù),即記錄類型、 記錄長(zhǎng)度、地址和校驗(yàn)和值,稱為"管理數(shù)據(jù)",并且目標(biāo)數(shù)據(jù)和管 理數(shù)據(jù)共同構(gòu)成一個(gè)記錄(數(shù)據(jù)單元)。 *服務(wù)器設(shè)置如圖3所示,服務(wù)器12b具有通過(guò)總線116彼此相連的控制單元 (CPU) 111、存儲(chǔ)單元112、通信接口 113、輸入單元114和顯示單元 115??刂茊卧?11讀取控制服務(wù)器12b所需的存儲(chǔ)單元112中存儲(chǔ)的 程序??刂茊卧?11包括數(shù)據(jù)讀取單元111a、空值數(shù)據(jù)檢測(cè)單元lllb、 數(shù)據(jù)長(zhǎng)度比較器lllc、數(shù)據(jù)鏈接單元llld、記錄(數(shù)據(jù)單元)產(chǎn)生器 llle和數(shù)據(jù)轉(zhuǎn)換單元lllf。數(shù)據(jù)讀取單元llla響應(yīng)于來(lái)自主計(jì)算機(jī)11或來(lái)自服務(wù)器12b的 操作員的固件更新命令,從存儲(chǔ)單元112中依次讀取打印機(jī)13b的固 件更新數(shù)據(jù)(Motorola S3格式)的每個(gè)記錄(源記錄)。更新數(shù)據(jù)可 由服務(wù)器12b上的操作員提供,或者更新數(shù)據(jù)可通過(guò)網(wǎng)絡(luò)14從主計(jì)算 機(jī)11接收到。空值數(shù)據(jù)檢測(cè)單元lllb確定在數(shù)據(jù)讀取單元llla所讀取的更新 數(shù)據(jù)的數(shù)據(jù)部分中是否包含預(yù)定個(gè)數(shù)的連續(xù)空值(0xFF)。數(shù)據(jù)長(zhǎng)度比較器lllc將所鏈接的實(shí)際數(shù)據(jù)部分的長(zhǎng)度(所鏈接 的數(shù)據(jù)長(zhǎng)度)與預(yù)定最大允許鏈接數(shù)據(jù)長(zhǎng)度相比較。數(shù)據(jù)鏈接單元llld依次鏈接源記錄的實(shí)際數(shù)據(jù)的塊,以便不會(huì) 超過(guò)預(yù)定最大允許鏈接數(shù)據(jù)長(zhǎng)度。如果空值數(shù)據(jù)檢測(cè)單元lllb在記錄 的數(shù)據(jù)部分中檢測(cè)到預(yù)定個(gè)數(shù)的連續(xù)空值,則數(shù)據(jù)鏈接單元llld在空 值前后將數(shù)據(jù)有效載荷分段,以刪除空值。因?yàn)殚W存132存儲(chǔ)了空值 (0xFF),所以可刪除空值數(shù)據(jù)。記錄產(chǎn)生器llle將與數(shù)據(jù)鏈接單元llld所鏈接的實(shí)際數(shù)據(jù)(所 鏈接的數(shù)據(jù))相對(duì)應(yīng)的管理數(shù)據(jù)添加到所鏈接的數(shù)目,以輸出新的記 錄(目的記錄)20c或20d。更具體地,記錄產(chǎn)生器llle根據(jù)所鏈接 的數(shù)據(jù)長(zhǎng)度,確定記錄長(zhǎng)度,規(guī)定所鏈接的數(shù)據(jù)的第一字節(jié)所存儲(chǔ)的 地址,并計(jì)算校驗(yàn)和。這樣,在未檢測(cè)到連續(xù)規(guī)定長(zhǎng)度以上的空值數(shù)據(jù)時(shí),數(shù)據(jù)鏈接單 元llld鏈接源記錄的實(shí)際數(shù)據(jù)直至達(dá)到鏈接數(shù)據(jù)長(zhǎng)最大值,由此產(chǎn)生 目的記錄的實(shí)際數(shù)據(jù)。此外,在檢測(cè)到連續(xù)規(guī)定長(zhǎng)度以上的空值數(shù)據(jù) 時(shí),數(shù)據(jù)鏈接單元llld將到該連續(xù)空值數(shù)據(jù)的緊前面為止的實(shí)際數(shù)據(jù) 鏈接到此前所鏈接的實(shí)際數(shù)據(jù)上,作為目的記錄的實(shí)際數(shù)據(jù),將該連 續(xù)空值數(shù)據(jù)的緊后面的實(shí)際數(shù)據(jù)作為下一目的記錄的實(shí)際數(shù)據(jù)的起始 數(shù)據(jù)。另外,使得將連續(xù)空值數(shù)據(jù)的緊前面的實(shí)際數(shù)據(jù)鏈接到此前所 鏈接的實(shí)際數(shù)據(jù)上時(shí)也不會(huì)超過(guò)鏈接數(shù)據(jù)長(zhǎng)最大值(在超過(guò)鏈接數(shù)據(jù) 長(zhǎng)最大值的情況下,將該超過(guò)部分的實(shí)際數(shù)據(jù)作為下一 目的記錄的實(shí) 際數(shù)據(jù))。數(shù)據(jù)轉(zhuǎn)換單元lllf將由數(shù)據(jù)讀取單元llla所讀取的記錄20a組 成的更新數(shù)據(jù),或者由記錄產(chǎn)生器111e所輸出的記錄20d組成的更新 數(shù)據(jù),從ASCII格式轉(zhuǎn)換為二進(jìn)制格式。存儲(chǔ)單元112用作控制單元111的內(nèi)存儲(chǔ)器,并且可包括本地存 儲(chǔ)器和高速緩沖存儲(chǔ)器。存儲(chǔ)單元112可以電、磁或光方式讀取和寫 入數(shù)據(jù),并且可以是半導(dǎo)體存儲(chǔ)設(shè)備(硬盤和存儲(chǔ)器)、磁帶、軟盤、 磁光盤或光盤等。通信接口 113可以是用于連接打印機(jī)13b的串行接口或并行接 口。通信接口 113還包括用于通過(guò)網(wǎng)絡(luò)14連接主計(jì)算機(jī)11的以太網(wǎng) 適配器或調(diào)制解調(diào)器。輸入單元114用于操作員輸入,并且包括鍵盤和定向設(shè)備。顯示單元115可以是LCD或其它類型的監(jiān)視器,用于顯示屏幕以 獲得操作員輸入的數(shù)據(jù),并且顯示服務(wù)器12b操作的結(jié)果和進(jìn)展報(bào)告。*打印機(jī)設(shè)置同樣如圖3所示,打印機(jī)13b主要包括與公共總線138相連的控 制單元(CPU) 131、閃存132、 RAM 133、通信接口 134、操作按鈕135、 顯示單元136和打印機(jī)單元137??刂茊卧?31按照需要從閃存132中讀取程序和固件并執(zhí)行,從 而控制打印機(jī)13b。控制單元131包括固件寫入單元131a,固件寫入 單元131a響應(yīng)于來(lái)自服務(wù)器12b的命令,或者在接收到固件更新數(shù)據(jù) 時(shí),讀取并執(zhí)行固件更新程序以更新固件。閃存132是非易失性存儲(chǔ)器,能夠以扇區(qū)為單位(例如64KB單
元)批量擦除和覆寫數(shù)據(jù)。在運(yùn)行程序時(shí),RAM 133用作控制單元131使用的本地存儲(chǔ)器和高速緩沖存儲(chǔ)器。通信接口 134是RS-232SC、 USB或其它串行接口,或者SCSI或 其它并行接口以連接服務(wù)器12b。操作按鈕135用于從操作員獲得用戶輸入。顯示單元136可以是LCD或LED面板或其它類型的監(jiān)視器,用于 顯示屏幕以獲得從操作員輸入的數(shù)據(jù),并顯示打印機(jī)13b操作的結(jié)果、進(jìn)展報(bào)告和狀態(tài)報(bào)告。打印機(jī)單元137包括打印頭和紙張傳送機(jī)構(gòu),并且在控制單元131控制時(shí)在記錄紙上打印。 *更新數(shù)據(jù)傳輸過(guò)程接下來(lái)參考圖4的流程圖來(lái)描述從服務(wù)器12b向打印機(jī)13b發(fā)送 用于更新存儲(chǔ)在打印機(jī)13b的閃存132中的固件的更新數(shù)據(jù)的過(guò)程。在啟動(dòng)固件更新數(shù)據(jù)傳輸過(guò)程之前,服務(wù)器12b首先執(zhí)行預(yù)處理 步驟(S101)。例如,這包括控制單元lll停止駐留的假脫機(jī)打印程序。數(shù)據(jù)讀取單元111a然后從存儲(chǔ)單元112中依次讀取Motorola S3 格式的打印機(jī)13b的固件更新數(shù)據(jù),每次一個(gè)記錄(S102)。當(dāng)讀取了 表示更新數(shù)據(jù)結(jié)尾的S7記錄時(shí)(S103返回"是"),數(shù)據(jù)讀取單元llla 將記錄從所讀取的S3格式轉(zhuǎn)換為如圖2B所示的二進(jìn)制格式(S104)。通過(guò)二進(jìn)制轉(zhuǎn)換,分別將ASCII代碼0x30( "0")至0x39( "9") 和0x41 ( "A")至0x46 ( "F")轉(zhuǎn)換為0x0至0x9和OxA至OxF。 從ASCII至二進(jìn)制代碼的轉(zhuǎn)換因此將數(shù)據(jù)量減半。如圖2所示,將字 段22至24中的數(shù)據(jù)(而不是類型字段21中的數(shù)據(jù))進(jìn)行二進(jìn)制轉(zhuǎn)換, 并根據(jù)字段22至24的二進(jìn)制來(lái)計(jì)算校驗(yàn)和。因此,如圖2B所示,二 進(jìn)制記錄20b包括8字節(jié)的管理數(shù)據(jù)和最大250字節(jié)的數(shù)據(jù)字段29, 8字節(jié)的管理數(shù)據(jù)包括2字節(jié)的類型字段26、 1字節(jié)的數(shù)據(jù)長(zhǎng)度字段 27、 4字節(jié)的地址字段28以及1字節(jié)的校驗(yàn)和。下面將圖2A所示的 數(shù)據(jù)格式稱為S3ASCII格式,將圖2B所示的格式稱為S3 二進(jìn)制格式。在讀取更新數(shù)據(jù)記錄時(shí),空值數(shù)據(jù)檢測(cè)單元lllb檢測(cè)每個(gè)記錄
的數(shù)據(jù)字段29中的目標(biāo)數(shù)據(jù)是否包含10個(gè)或更多個(gè)字節(jié)的連續(xù)空值 的塊(S105)。對(duì)連續(xù)空值的塊的檢測(cè)并不局限于每個(gè)記錄,而是優(yōu)選 地檢測(cè)連續(xù)記錄的目標(biāo)數(shù)據(jù)中的連續(xù)空值的存在。例如,如果一個(gè)記 錄的目標(biāo)數(shù)據(jù)中的最后5個(gè)字節(jié)是空值,并且下一個(gè)記錄的目標(biāo)數(shù)據(jù) 中的前5個(gè)字節(jié)也是空值,則優(yōu)選地檢測(cè)到10個(gè)或更多個(gè)連續(xù)空值的 塊。如果未檢測(cè)到10個(gè)或更多個(gè)字節(jié)的連續(xù)空值的塊(S105返回 "否"),則數(shù)據(jù)長(zhǎng)度比較器lllc確定在將目標(biāo)數(shù)據(jù)串起時(shí)所鏈接的 數(shù)據(jù)長(zhǎng)度是否超過(guò)最大鏈接數(shù)據(jù)長(zhǎng)度(在本發(fā)明的該實(shí)施例中是2KB)(5106) 。更具體地,數(shù)據(jù)長(zhǎng)度比較器lllc確定此時(shí)所讀取的目標(biāo)數(shù) 據(jù)的長(zhǎng)度是否超過(guò)最大鏈接數(shù)據(jù)長(zhǎng)度。如果所鏈接的數(shù)據(jù)長(zhǎng)度未超過(guò) 本示例的最大鏈接數(shù)據(jù)長(zhǎng)度2KB(S106返回"否"),則數(shù)據(jù)鏈接單元 llld將先前讀取的(所鏈接的)目標(biāo)數(shù)據(jù)與剛剛讀取的數(shù)據(jù)相連(5107) 。通過(guò)使用記錄長(zhǎng)度作為參數(shù),測(cè)量傳輸預(yù)定大小的數(shù)據(jù)所需的時(shí) 間,在實(shí)驗(yàn)上確定最大鏈接數(shù)據(jù)長(zhǎng)度,以找到有用且高效的記錄長(zhǎng)度, 實(shí)現(xiàn)短傳輸時(shí)間和不太長(zhǎng)的記錄長(zhǎng)度。簡(jiǎn)單地增加記錄長(zhǎng)度并不有效 地縮短傳輸時(shí)間,并且因?yàn)樵谕ㄐ艜r(shí)需要更長(zhǎng)的時(shí)間來(lái)進(jìn)行錯(cuò)誤檢查, 因此相反地是低效的。記錄長(zhǎng)度還優(yōu)選地短于或等于打印機(jī)13b中所 使用的閃存132的扇區(qū)大小。如果例如,RS-232C或USB串行接口用 于通信接口 113和134,則測(cè)試表明最大鏈接數(shù)據(jù)長(zhǎng)度優(yōu)選地是大約 2KB。在這種情況下,優(yōu)選地針對(duì)每個(gè)接口或數(shù)據(jù)通信速率,將預(yù)定最 大鏈接數(shù)據(jù)長(zhǎng)度存儲(chǔ)在服務(wù)器12b上的査找表中,以便可按照需要選 擇最大鏈接數(shù)據(jù)長(zhǎng)度??蛇x地,可測(cè)量服務(wù)器12b和打印機(jī)13b之間 的通信速度,并且根據(jù)所測(cè)量的速度從查找表中選擇最大鏈接數(shù)據(jù)長(zhǎng) 度。例如,可通過(guò)將已知量的數(shù)據(jù)從服務(wù)器12b發(fā)送到打印機(jī)13b, 打印機(jī)13b在接收結(jié)束時(shí)向服務(wù)器12b報(bào)告,服務(wù)器12b然后計(jì)算從 傳輸開始直到接收到接收?qǐng)?bào)告結(jié)束為止的時(shí)間,來(lái)測(cè)量通信速度。然后確定讀取更新數(shù)據(jù)是否結(jié)束(S108)。更具體地,確定是否
讀取了結(jié)束S7記錄,并且重復(fù)步驟S105至S108,直到讀取了結(jié)束符 記錄為止。該過(guò)程繼續(xù),以連接目標(biāo)數(shù)據(jù)塊,直到所鏈接的數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度 達(dá)到2KB為止。然后將圖2B所示的S3 二進(jìn)制格式的記錄20b轉(zhuǎn)換為 圖2C所示的SC二進(jìn)制格式的記錄20c。注意,該SC二進(jìn)制格式是Seiko Epson公司的專用數(shù)據(jù)格式,并且包括2字節(jié)的類型字段31 (SC)、包 括高字節(jié)32a和低字節(jié)32b的2字節(jié)的數(shù)據(jù)長(zhǎng)度字段32、 4字節(jié)的地 址字段33、最大2KB的數(shù)據(jù)字段34以及1字節(jié)的校驗(yàn)和字段35。根 據(jù)所鏈接的目標(biāo)數(shù)據(jù),產(chǎn)生管理數(shù)據(jù)(字段32、 33和35)。將Motorola S3格式的結(jié)束符,即S7記錄,轉(zhuǎn)換為SX記錄,以作為SC格式的結(jié) 束符。如果在步驟S105中檢測(cè)到10個(gè)或更多個(gè)字節(jié)的連續(xù)空值的塊 (S105返回"是"),則數(shù)據(jù)鏈接單元llld刪除連續(xù)空值,并且將連 續(xù)空值之前的目標(biāo)數(shù)據(jù)連接到先前鏈接的目標(biāo)數(shù)據(jù)(S109)。將被刪除 的空值之后的目標(biāo)數(shù)據(jù)包含在下一記錄中。記錄產(chǎn)生器llle然后產(chǎn)生 與所鏈接的目標(biāo)數(shù)據(jù)相對(duì)應(yīng)的管理數(shù)據(jù),并將管理數(shù)據(jù)添加到所鏈接 的目標(biāo)數(shù)據(jù),并輸出SC二進(jìn)制格式的記錄20c (S110)。如果步驟S106中的目標(biāo)數(shù)據(jù)長(zhǎng)度超過(guò)2KB (S106返回"是"), 則記錄產(chǎn)生器llle產(chǎn)生與所鏈接的目標(biāo)數(shù)據(jù)相對(duì)應(yīng)的管理數(shù)據(jù),并將 管理數(shù)據(jù)添加到所鏈接的目標(biāo)數(shù)據(jù),并輸出SC 二進(jìn)制格式的記錄20c (SllO)。盡管圖中未示出,但是如果根據(jù)地址字段中規(guī)定的地址,確 定兩個(gè)記錄不是連續(xù)的,則還創(chuàng)建新的記錄。這樣創(chuàng)建記錄,使得一 個(gè)記錄中所包含的目標(biāo)數(shù)據(jù)總是連續(xù)的。如果步驟S108確定讀取更新數(shù)據(jù)結(jié)束(S108返回"是"),則服 務(wù)器12b準(zhǔn)備與打印機(jī)13b通信(Slll)。服務(wù)器12b因此打開接口 15b,并確定通信信道是否打開(通信信道是否忙)。服務(wù)器12b還獲 取打印機(jī)13b的型號(hào)標(biāo)識(shí)符和固件版本,并確定所連接的打印機(jī)13b 是否是應(yīng)該向其發(fā)送更新數(shù)據(jù)的打印機(jī)。 一旦通信信道打開,則服務(wù) 器12b依次向打印機(jī)13b發(fā)送SC 二進(jìn)制格式的記錄20c序列(S112)。當(dāng)服務(wù)器12b結(jié)束了更新數(shù)據(jù)的發(fā)送時(shí),服務(wù)器12b等待,直到
打印機(jī)13b結(jié)束了固件更新過(guò)程為止,然后從打印機(jī)獲取固件版本以確定是否正確地更新了固件(S113)。因此通過(guò)將目標(biāo)數(shù)據(jù)鏈接,創(chuàng)建新的記錄20c,減少了記錄的總 數(shù),使得最大鏈接數(shù)據(jù)長(zhǎng)度不超過(guò)2KB。通過(guò)減少記錄的個(gè)數(shù),減少 了每個(gè)記錄所需的管理數(shù)據(jù)的量,因此減少了要傳輸?shù)臄?shù)據(jù)總量,并 因此縮短了將固件更新數(shù)據(jù)發(fā)送到打印機(jī)13b所需的通信時(shí)間。此外,刪除長(zhǎng)于管理數(shù)據(jù)長(zhǎng)度的連續(xù)空值塊也減少了傳輸數(shù)據(jù)的 總量。在所連接的目標(biāo)數(shù)據(jù)塊長(zhǎng)度達(dá)到最大鏈接數(shù)據(jù)長(zhǎng)度之前,作為 創(chuàng)建新記錄20c的結(jié)果,記錄個(gè)數(shù)可增加,并且管理數(shù)據(jù)量可增加, 但是數(shù)據(jù)可減少每個(gè)記錄至少一個(gè)字節(jié),因?yàn)閯h除了超過(guò)管理數(shù)據(jù)長(zhǎng) 度的連續(xù)空值塊。本發(fā)明的該實(shí)施例在讀取了所有S3ASCII格式更新數(shù)據(jù)之后,進(jìn) 行二進(jìn)制轉(zhuǎn)換過(guò)程、空值刪除過(guò)程和目標(biāo)數(shù)據(jù)鏈接過(guò)程,但是可在每 次讀取一個(gè)記錄時(shí)進(jìn)行這些過(guò)程。*固件寫入過(guò)程接下來(lái)參考圖5的流程圖來(lái)描述在從服務(wù)器12b接收到固件更新 數(shù)據(jù)之后打印機(jī)13b要進(jìn)行的固件寫入過(guò)程。打印機(jī)13b在服務(wù)器12b準(zhǔn)備發(fā)送數(shù)據(jù)(Sill)的同時(shí)準(zhǔn)備接收 數(shù)據(jù)(S201)。打印機(jī)13b還將RAM133中創(chuàng)建了閃存圖像的區(qū)域(下 面稱為"圖像區(qū)域")初始化為OxFF。打印機(jī)13b然后依次讀取從服 務(wù)器12b發(fā)送來(lái)的SC二進(jìn)制格式更新數(shù)據(jù), 一次一個(gè)記錄(S202)。 打印機(jī)13b然后根據(jù)所接收的數(shù)據(jù)來(lái)計(jì)算校驗(yàn)和,并確定所計(jì)算的校 驗(yàn)和是否與所接收到的記錄中包含的校驗(yàn)和匹配,以確定通信是否成 功(S203)。如果校驗(yàn)和并不匹配(S203返回"否"),則打印機(jī)13b 向服務(wù)器12b返回錯(cuò)誤(S204)。如果校驗(yàn)和匹配且所接收到的記錄是正確的(S203返回"是"), 則確定所讀取的記錄20c是否是SX結(jié)束符記錄(S205)。如果所接收 的記錄20c不是SX記錄,則將數(shù)據(jù)字段34中包含的數(shù)據(jù)寫入與地址 字段33中的地址相對(duì)應(yīng)的RAM 133中的圖像區(qū)域中(S206)。重復(fù)這 些步驟S02至S206,直到接收到所有記錄為止。 如果所讀取的記錄20c是結(jié)束符(SX)記錄(S205返回"是"), 則擦除閃存132中固件存儲(chǔ)區(qū)域中的數(shù)據(jù),并且將RAM 133中圖像區(qū) 域中所存儲(chǔ)的數(shù)據(jù)寫入閃存132中固件存儲(chǔ)區(qū)域(S208)。在固件寫入 結(jié)束時(shí),打印機(jī)13b使用所更新的固件來(lái)復(fù)位并重啟(S209)。在服務(wù) 器12b詢問(wèn)時(shí),打印機(jī)13b則返回固件版本。*更新數(shù)據(jù)傳輸過(guò)程的變化圖4的流程圖中所示的過(guò)程首先將S3 ASCII格式數(shù)據(jù)轉(zhuǎn)換為S3 二進(jìn)制格式,然后轉(zhuǎn)換為SC二進(jìn)制格式,但是可首先將S ASCII格式 轉(zhuǎn)換為SC ASCII格式,然后從SC ASCII格式轉(zhuǎn)換為SC 二進(jìn)制格式。 更具體地,ASCII-二進(jìn)制轉(zhuǎn)換可在將S3格式轉(zhuǎn)換為SC格式之前進(jìn)行, 或者在將S3格式轉(zhuǎn)換為SC格式之前進(jìn)行。接下來(lái)參考圖6來(lái)描述在后一情況下的更新數(shù)據(jù)傳輸過(guò)程。這里 省略與圖4和圖6中相同的進(jìn)一步描述。通過(guò)將圖4與圖6進(jìn)行比較 可知,二進(jìn)制轉(zhuǎn)換過(guò)程(步驟S309和S104)的時(shí)序是不同的。此外,由于二進(jìn)制轉(zhuǎn)換時(shí)序的不同,最大鏈接數(shù)據(jù)長(zhǎng)度也不同。更具體地, 在上述第一實(shí)施例中最大鏈接數(shù)據(jù)長(zhǎng)度是2KB (S106),但是在本發(fā)明 的該方面最大鏈接數(shù)據(jù)長(zhǎng)度是4KB (步驟S304)??刂茊卧?11首先執(zhí)行預(yù)處理步驟(S301),然后從存儲(chǔ)單元112 讀取Motorola S3格式的打印機(jī)13b的固件更新數(shù)據(jù), 一次一個(gè)記錄(S302)。然后確定數(shù)據(jù)字段24中的目標(biāo)數(shù)據(jù)中是否包含10個(gè)或更多 個(gè)字節(jié)的連續(xù)空值的塊(S303)。如果沒(méi)有10個(gè)或更多個(gè)字節(jié)的連續(xù) 空值的塊(S303返回"否"),則確定所鏈接的數(shù)據(jù)長(zhǎng)度是否超過(guò)最 大鏈接數(shù)據(jù)長(zhǎng)度(在本示例中是4KB) (S304)。如果所鏈接的數(shù)據(jù)長(zhǎng) 度未超過(guò)4KB的最大鏈接數(shù)據(jù)長(zhǎng)度(S304返回"否"),則數(shù)據(jù)鏈接 單元llld將先前讀取的目標(biāo)數(shù)據(jù)與剛剛讀取的目標(biāo)數(shù)據(jù)連接(S305)。 另外,按每個(gè)記錄來(lái)讀取固件更新用數(shù)據(jù),但實(shí)際數(shù)據(jù)的鏈接處理(S305)和鏈接數(shù)據(jù)長(zhǎng)的確認(rèn)處理(S304)按字節(jié)單位進(jìn)行,在鏈接 實(shí)際數(shù)據(jù)時(shí),使該鏈接數(shù)據(jù)長(zhǎng)度不會(huì)超過(guò)鏈接數(shù)據(jù)長(zhǎng)最大值。然后確 定是否讀取了所有更新數(shù)據(jù),即是否讀取了結(jié)束符(S7記錄)(S306), 并且重復(fù)步驟S303至S306,直到讀取了結(jié)束符為止。因此該操作將
目標(biāo)數(shù)據(jù)重組為4KB單位。如果檢測(cè)到IO個(gè)或更多個(gè)連續(xù)空值的塊(S303返回"是"),則 刪除連續(xù)空值塊,并將空值塊之前的目標(biāo)數(shù)據(jù)鏈接到先前鏈接的目標(biāo) 數(shù)據(jù)(S307)。然后針對(duì)目標(biāo)數(shù)據(jù)產(chǎn)生管理數(shù)據(jù),并將其添加到所鏈接 的數(shù)據(jù),以創(chuàng)建新的SC ASCII格式的記錄20d (S308)。注意,該SC 二進(jìn)制格式是Seiko Epson公司專用的數(shù)據(jù)格式, 其將S3 ASCII格式的目標(biāo)數(shù)據(jù)長(zhǎng)度擴(kuò)展為4KB,并且包括2字節(jié)的類 型字段36 (SC)、包括高字節(jié)37a和低字節(jié)37b的4字節(jié)的數(shù)據(jù)長(zhǎng)度 字段37、 8字節(jié)的地址字段38、最大4KB的數(shù)據(jù)字段39以及2字節(jié) 的檢驗(yàn)和字段40。如果在步驟S304中所鏈接數(shù)據(jù)長(zhǎng)度超過(guò)4KB(S304返回"是"), 則根據(jù)先前所鏈接的目標(biāo)數(shù)據(jù)(長(zhǎng)度為4KB),創(chuàng)建管理數(shù)據(jù),并添加 到目標(biāo)數(shù)據(jù),以創(chuàng)建SC ASCII格式的記錄20d (S309)。如果步驟S306確定讀取更新數(shù)據(jù)結(jié)束(S06返回"是"),則將 SC ASCII格式記錄20d序列轉(zhuǎn)換為SC 二進(jìn)制格式記錄20c序列(5309) 。當(dāng)二進(jìn)制轉(zhuǎn)換結(jié)束時(shí),服務(wù)器12b準(zhǔn)備與打印機(jī)13b通信(5310) ,然后將SC 二進(jìn)制格式的記錄20c序列發(fā)送到打印機(jī)13b(5311) 。當(dāng)服務(wù)器12b完成了更新數(shù)據(jù)的發(fā)送時(shí),服務(wù)器12b等待,直到 打印機(jī)13b完成了固件更新過(guò)程為止,然后從打印機(jī)獲取固件版本, 以確定是否正確地更新了固件(S312)??蛇x地,本發(fā)明可使服務(wù)器12b進(jìn)行整個(gè)過(guò)程,即編譯以編程語(yǔ) 言寫出的固件的源代碼、產(chǎn)生S3 ASCII格式數(shù)據(jù)、將S3 ASCII格式 數(shù)據(jù)轉(zhuǎn)換為SC 二進(jìn)制格式數(shù)據(jù)、以及將SC 二進(jìn)制格式數(shù)據(jù)發(fā)送到外 圍設(shè)備。此外,可選地,主計(jì)算機(jī)ll可進(jìn)行相同的過(guò)程,并且通過(guò)服 務(wù)器12b將二進(jìn)制格式的數(shù)據(jù)發(fā)送到打印機(jī)13b。外圍設(shè)備通過(guò)單個(gè)批處理來(lái)蓋寫存儲(chǔ)固件的所有扇區(qū),來(lái)更新固 件,但是可選地,可以扇區(qū)為單位來(lái)蓋寫固件。盡管結(jié)合本發(fā)明的優(yōu)選實(shí)施例,參考附圖,描述了本發(fā)明,但是 要注意,各種改變和修改對(duì)于本領(lǐng)域的技術(shù)人員是顯而易見的。這種改變和修改應(yīng)該被理解為包括在由所附權(quán)利要求所限定的本發(fā)明的范 圍內(nèi),除非這些改變和修改背離了本發(fā)明的范圍。
權(quán)利要求
1.一種由主機(jī)設(shè)備使用的更新數(shù)據(jù)傳輸方法,將用于更新外圍設(shè)備中的固件的更新數(shù)據(jù)發(fā)送到外圍設(shè)備,所述更新數(shù)據(jù)傳輸方法包括步驟(a)依次讀取第一格式的源記錄,所述第一格式的源記錄包括源目標(biāo)數(shù)據(jù)和源管理數(shù)據(jù);(b)將所述源記錄轉(zhuǎn)換為第二格式的目的記錄,所述第二格式的目的記錄包括目的目標(biāo)數(shù)據(jù)和目的管理數(shù)據(jù);以及(c)向所述外圍設(shè)備發(fā)送所述目的記錄;所述步驟(b)包括步驟(b1)產(chǎn)生將所述源目標(biāo)數(shù)據(jù)連接為預(yù)定長(zhǎng)度后的目標(biāo)數(shù)據(jù)塊;(b2)在執(zhí)行所述步驟(b1)時(shí),檢測(cè)所述源目標(biāo)數(shù)據(jù)中是否有在所述目的管理數(shù)據(jù)的長(zhǎng)度以上的空值數(shù)據(jù)塊,當(dāng)存在所述空值數(shù)據(jù)塊時(shí),產(chǎn)生以所述空值數(shù)據(jù)塊的緊前面的數(shù)據(jù)結(jié)束的目標(biāo)數(shù)據(jù)、和從所述空值數(shù)據(jù)塊的緊后面的數(shù)據(jù)開始的目標(biāo)數(shù)據(jù),使得不包含所述空值數(shù)據(jù)塊;以及(b3)產(chǎn)生與所述步驟(b1)和(b2)中產(chǎn)生的目標(biāo)數(shù)據(jù)對(duì)應(yīng)的管理數(shù)據(jù),并產(chǎn)生將這些目標(biāo)數(shù)據(jù)和管理數(shù)據(jù)分別作為所述目的目標(biāo)數(shù)據(jù)和所述目的管理數(shù)據(jù)的所述目的記錄。
2. 根據(jù)權(quán)利要求1所述的更新數(shù)據(jù)傳輸方法,其中 所述第一格式是ASCII編碼格式,所述第二格式是二進(jìn)制格式; 所述更新數(shù)據(jù)傳輸方法還包括步驟(d) 將所述源記錄轉(zhuǎn)換為二進(jìn)制格式的源記錄。
3. 根據(jù)權(quán)利要求1所述的更新數(shù)據(jù)傳輸方法,其中所述第一 和第二格式是ASCII編碼格式;所述步驟(b)還包括步驟 (b4)將通過(guò)所述步驟(b3)產(chǎn)生的所述目的記錄轉(zhuǎn)換為二進(jìn)制格式的目的記錄。
4. 根據(jù)權(quán)利要求1至3之一所述的更新數(shù)據(jù)傳輸方法,其中所 述預(yù)定長(zhǎng)度設(shè)置成用于存儲(chǔ)所述外圍設(shè)備固件的閃存的數(shù)據(jù)重寫單元 的長(zhǎng)度以下。
5. 根據(jù)權(quán)利要求1至3之一所述的更新數(shù)據(jù)傳輸方法,其中根 據(jù)所述外圍設(shè)備所連接的接口的類型來(lái)設(shè)置所述預(yù)定長(zhǎng)度。
6. 根據(jù)權(quán)利要求1至3之一所述的更新數(shù)據(jù)傳輸方法,還包括 步驟(e)測(cè)量與所述外圍設(shè)備之間的通信速度,并且根據(jù)所測(cè)量的 通信速度來(lái)設(shè)置所述預(yù)定長(zhǎng)度。
7. —種主機(jī)設(shè)備,將用于更新外圍設(shè)備中的固件的更新數(shù)據(jù)發(fā) 送到外圍設(shè)備,所述主機(jī)設(shè)備包括控制單元,用于依次讀取包括源目標(biāo)數(shù)據(jù)和源管理數(shù)據(jù)的第一格 式的源記錄,將所讀取的所述源記錄轉(zhuǎn)換為包括目的目標(biāo)數(shù)據(jù)和目的 管理數(shù)據(jù)的第二格式的目的記錄,向所述外圍設(shè)備發(fā)送轉(zhuǎn)換后的所述 目的記錄;所述控制單元包括-數(shù)據(jù)連接單元,用于產(chǎn)生將所述源目標(biāo)數(shù)據(jù)連接為預(yù)定長(zhǎng)度后的 目標(biāo)數(shù)據(jù)塊;空值數(shù)據(jù)檢測(cè)單元,用于檢測(cè)所述源目標(biāo)數(shù)據(jù)中是否有 在所述目的管理數(shù)據(jù)的長(zhǎng)度以上的空值數(shù)據(jù)塊;以及記錄產(chǎn)生單元,用于產(chǎn)生與由所述數(shù)據(jù)連接單元產(chǎn)生的目標(biāo)數(shù)據(jù) 對(duì)應(yīng)的管理數(shù)據(jù),并產(chǎn)生所述目的記錄,所述目的記錄將這些目標(biāo)數(shù) 據(jù)和管理數(shù)據(jù)分別作為所述目的目標(biāo)數(shù)據(jù)和所述目的管理數(shù)據(jù);所述數(shù)據(jù)連接單元,當(dāng)由所述空值數(shù)據(jù)檢測(cè)單元檢測(cè)到所述空值 數(shù)據(jù)塊時(shí),產(chǎn)生以所述空值數(shù)據(jù)塊的緊前面的數(shù)據(jù)結(jié)束的目標(biāo)數(shù)據(jù)、 和從所述空值數(shù)據(jù)塊的緊后面的數(shù)據(jù)開始的目標(biāo)數(shù)據(jù),使得不包含所 述空值數(shù)據(jù)塊。
8. 根據(jù)權(quán)利要求7所述的主機(jī)設(shè)備,其中-所述第一格式是ASCII編碼格式,所述第二格式是二進(jìn)制格式;以及所述主機(jī)設(shè)備還包括數(shù)據(jù)轉(zhuǎn)換單元,用于將所述源記錄轉(zhuǎn)換為 二進(jìn)制格式的源記錄。
9. 根據(jù)權(quán)利要求7所述的主機(jī)設(shè)備,其中 所述第一和第二格式是二進(jìn)制格式;以及所述控制單元還包括數(shù)據(jù)轉(zhuǎn)換單元,用于將由所述記錄產(chǎn)生單 元產(chǎn)生的所述目的記錄轉(zhuǎn)換為二進(jìn)制格式的目的記錄。
10. 根據(jù)權(quán)利要求7至9之一所述的主機(jī)設(shè)備,其中所述預(yù)定長(zhǎng) 度設(shè)置成用于存儲(chǔ)所述外圍設(shè)備固件的閃存的數(shù)據(jù)重寫單元的長(zhǎng)度以 下。
11. 根據(jù)權(quán)利要求7至9之一所述的主機(jī)設(shè)備,其中根據(jù)所述外圍設(shè)備所連接的接口的類型來(lái)設(shè)置所述預(yù)定長(zhǎng)度。
12. —種系統(tǒng),包括根據(jù)權(quán)利要求7至9之一所述的主機(jī)設(shè)備;以及與所述主機(jī)設(shè)備相連的外圍設(shè)備;其中所述外圍設(shè)備包括接收單元,用于接收由所述第二格式的記錄組成、且從所述主機(jī)設(shè)備發(fā)送過(guò)來(lái)的更新數(shù)據(jù);以及重寫單元,用于根據(jù)所述接收單元所接收的所述更新數(shù)據(jù),重寫 閃存中存儲(chǔ)的固件。
13. 根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述外圍設(shè)備在通過(guò)所述重寫單元重寫固件結(jié)束之后,通過(guò)自復(fù) 位而更新的固件來(lái)重新起動(dòng),根據(jù)來(lái)自所述主機(jī)設(shè)備的請(qǐng)求,發(fā)送所 述固件的版本信息。
全文摘要
本發(fā)明涉及一種更新數(shù)據(jù)傳輸方法、主機(jī)設(shè)備和固件寫入系統(tǒng),縮短了將固件更新數(shù)據(jù)發(fā)送到打印機(jī)或其它外圍設(shè)備所需的時(shí)間,而不改變通信速度。服務(wù)器(12b)依次讀取第一格式的記錄,刪除包含在第一格式的記錄的目標(biāo)數(shù)據(jù)中、且長(zhǎng)于第二格式的管理數(shù)據(jù)的連續(xù)空值數(shù)據(jù)塊,并在空值前后,對(duì)目標(biāo)數(shù)據(jù)進(jìn)行分段,將第一格式的記錄中的目標(biāo)數(shù)據(jù)連接為預(yù)定長(zhǎng)度的單元,產(chǎn)生所分段的目標(biāo)數(shù)據(jù)的管理數(shù)據(jù),并產(chǎn)生所連接的目標(biāo)數(shù)據(jù)的管理數(shù)據(jù),以產(chǎn)生第二格式的記錄,并將由第二格式的記錄組成的更新數(shù)據(jù)發(fā)送到打印機(jī)(13b)。對(duì)以ASCII代碼寫出的第一格式的記錄進(jìn)行二進(jìn)制轉(zhuǎn)換,并且將第二格式的二進(jìn)制記錄發(fā)送到打印機(jī)(13b)。
文檔編號(hào)G06F9/445GK101118530SQ20071013824
公開日2008年2月6日 申請(qǐng)日期2007年7月31日 優(yōu)先權(quán)日2006年7月31日
發(fā)明者中川雅幸, 高本明男 申請(qǐng)人:精工愛(ài)普生株式會(huì)社