国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      固件更新方法以及固件架構(gòu)的制作方法

      文檔序號:6461804閱讀:246來源:國知局
      專利名稱:固件更新方法以及固件架構(gòu)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明有關(guān)于通用串行總線(universal serial bus, USB)接口,尤有關(guān)于 一種具USB接口的人性化接口裝置(human interface device, HID)的固件 Cfirmware)更新方法以及固件架構(gòu)。
      背景技術(shù)
      傳統(tǒng)上,計(jì)算機(jī)主機(jī)(host)若要對一USBHID進(jìn)行固件更新有二種實(shí) 施方式第一種方式是,必須先將操作系統(tǒng)(operatingsystem)所提供的標(biāo)準(zhǔn)驅(qū) 動(dòng)程序卸載(uninstall),操作系統(tǒng)再掃描該欲更新固件的USB HID,以執(zhí) 行一次總線列舉(enumeration);接著,安裝一個(gè)燒錄用的驅(qū)動(dòng)程序,最后, 透過該燒錄用驅(qū)動(dòng)程序?qū)υ揢SB HID進(jìn)行所有燒錄動(dòng)作。利用此種方式的好 處是,該燒錄用驅(qū)動(dòng)程序可以完全掌控該USB HID,并通過控制型傳輸 (control transfer)、中斷型傳輸(interrupt transfer)或巨量型傳輸(bulk transfer) 來傳遞燒錄的讀寫指令。然而,在部分實(shí)作與應(yīng)用上,該燒錄用驅(qū)動(dòng)程序與 個(gè)人計(jì)算機(jī)(或操作系統(tǒng))間會(huì)有兼容性的問題產(chǎn)生。
      第二種方式主要是利用操作系統(tǒng)所提供的標(biāo)準(zhǔn)USB HID驅(qū)動(dòng)程序來進(jìn) 行燒錄動(dòng)作,此種方式雖然可避免兼容性的問題,但如果該連接的USBHID 是鼠標(biāo)或鍵盤的話,則用來控制該USB HID的控制處置器(control handler) 會(huì)被某些操作系統(tǒng)(例如Windows XP以及Windows Vista等)給阻擋。此時(shí), 程序開發(fā)者只能宣告(declare)另一個(gè)不屬于鼠標(biāo)及鍵盤的接口 ,而這也意 謂著有至少一個(gè)端點(diǎn)(endpoint)被消耗掉了。
      另一方面,對一般USB HID的固件流程而言,從普通工作模式(general working mode)切換至lj燒錄模式(in system programming mode)時(shí),必須再重作 一次總線列舉,理由如下。第一固件運(yùn)作在燒錄模式時(shí),連接的主機(jī)需要安裝另一個(gè)USB驅(qū)動(dòng)程序來進(jìn)行燒錄動(dòng)作。第二燒錄模式所使用的傳輸管
      線(tmnsferpipe)無法和普通工作模式所使用的傳輸管線并存。由于執(zhí)行一 次總線列舉大約需費(fèi)時(shí)幾百個(gè)毫秒(milliseccmd),無形中拉長了整個(gè)燒錄固件 的總時(shí)間,若量產(chǎn)時(shí)仍采用此方式來更新固件,則總線列舉時(shí)間就會(huì)占據(jù)整 個(gè)更新固件時(shí)間中很大的比重,大幅增加時(shí)間成本。為解決上述問題,因此 提出本發(fā)明。

      發(fā)明內(nèi)容
      有鑒于上述問題,本發(fā)明的目的之一是提供一種固件更新方法,能夠透 過標(biāo)準(zhǔn)USB HID驅(qū)動(dòng)程序來存取一 USB HID裝置,更可以將該USB HID裝 置從普通工作模式切換至燒錄模式,而無須作軟件或硬件的重置。
      為達(dá)成上述目的,本發(fā)明的固件更新方法,應(yīng)用于一計(jì)算機(jī)主機(jī)(host) 與一人性化接口裝置之間,該計(jì)算機(jī)主機(jī)具有一應(yīng)用程序并透過一通用序列 總線接口連接至該人性化接口裝置,該人性化接口裝置具有一第一固件,該
      方法包含以下步驟 一啟動(dòng)步驟,經(jīng)由該應(yīng)用程序呼叫一寫入報(bào)告請求
      (Set—Report),以傳遞一輸出特征報(bào)告(feature report)給該第一固件;一 決定步驟,根據(jù)該第一固件接收到的該特征輸出報(bào)告內(nèi)容,決定是否要從一 普通工作模式切換至一燒錄模式;以及, 一燒錄步驟,當(dāng)該第一固件切換至 該燒錄模式后,該應(yīng)用程序呼叫該寫入報(bào)告請求,用以通過該輸出特征報(bào)告 的裝載,對該人性化接口裝置進(jìn)行燒錄。
      本發(fā)明還提供一種固件更新方法,應(yīng)用于一計(jì)算機(jī)主機(jī),所述的計(jì)算豐幾 主機(jī)具有一應(yīng)用程序,所述的方法包含以下步驟透過一通用序列總線接口 將所述的計(jì)算機(jī)主機(jī)連接至一人性化接口裝置,所述的人性化接口裝置具有 一第一固件;執(zhí)行一燒錄模式總線列舉;以及進(jìn)行燒錄,通過所述的應(yīng)用程 序呼叫一寫入報(bào)告請求,利用一輸出特征報(bào)告的裝載,對所述的人性化接口 裝置進(jìn)行燒錄。
      本發(fā)明另一目的是提供一種USB裝置的固件架構(gòu),包含 一燒錄模塊,
      7具有一第一USB傳輸功能,并利用一USB接口實(shí)現(xiàn)一燒錄功能,其中,當(dāng) 接收到一寫入報(bào)告請求(Set—Report)時(shí),根據(jù)該寫入報(bào)告請求的一第一報(bào)告 的內(nèi)容進(jìn)行燒錄; 一普通工作模塊,具有一第二USB傳輸功能,并利用該第 二USB傳輸功能實(shí)現(xiàn)一特定產(chǎn)品特性,其中,當(dāng)接收到一報(bào)告內(nèi)容等于一默 認(rèn)值時(shí),該普通工作模塊保存一 USB狀態(tài)并禁能所有與USB無關(guān)的中斷, 并切換至該燒錄模塊;以及, 一模式判斷模塊,用以根據(jù)一模式旗標(biāo),決定 啟動(dòng)該普通工作模塊或該燒錄模塊。
      茲配合下列圖示、實(shí)施例的詳細(xì)說明及權(quán)利要求范圍,將上述及本發(fā)明 的其它目的與優(yōu)點(diǎn)詳述于后。


      圖1顯示一計(jì)算機(jī)主機(jī)與一HID之間的數(shù)據(jù)流。
      圖2為本發(fā)明固件更新方法的第一實(shí)施例的流程圖。
      圖3A與圖3B為本發(fā)明HID的固件流程圖。
      圖4為本發(fā)明固件更新方法的第二實(shí)施例的流程圖。
      圖5A與圖5B為本發(fā)明USB裝置的固件流程圖。
      圖6為本發(fā)明固件架構(gòu)的一實(shí)施例的架構(gòu)示意圖。
      附圖標(biāo)號
      110計(jì)算機(jī)主機(jī) lll應(yīng)用程序 112標(biāo)準(zhǔn)USB HID驅(qū)動(dòng)程序 120人性化接口裝置 121 USB引擎 122固件 130 USB接口
      600固件架構(gòu) 610模式判斷模塊
      620燒錄模塊 630普通工作模塊
      具體實(shí)施方式
      本說明書中的操作系統(tǒng)系以windows XP作為范例說明,唯本發(fā)明的固 件更新方法亦可應(yīng)用于其它操作系統(tǒng),只要能支持或符合USB的規(guī)范即可。
      圖1顯示一計(jì)算機(jī)主機(jī)與一HID之間的數(shù)據(jù)流。參考圖l,有關(guān)計(jì)算機(jī) 主機(jī)110與HID120之間的通信架構(gòu),在計(jì)算機(jī)主機(jī)110內(nèi)分為二層應(yīng)用 程序111與標(biāo)準(zhǔn)USBHID驅(qū)動(dòng)程序112,在HID120內(nèi)亦區(qū)分為二層USB 引擎121與固件122。其中,USB通信的實(shí)際執(zhí)行者是驅(qū)動(dòng)程序112與USB 引擎121,它們負(fù)責(zé)建立傳輸封包、解封包及檢驗(yàn)通訊協(xié)議。
      在現(xiàn)有USB的規(guī)范中,Set—Report與Get—Report皆屬于類別特定請求 (class-specific request)指令,應(yīng)用程序111呼叫Set—Report指令之后,被 允許傳遞一報(bào)告給HID 120。而當(dāng)應(yīng)用程序111呼叫Get—Report指令之后, HID 120被允許通過控制型管線(control pipe)傳遞一報(bào)告給主機(jī)110。其中 的報(bào)告共有三種型態(tài)輸入(input)報(bào)告、輸出(output)報(bào)告與特征(feature)報(bào) 告。
      本發(fā)明的特色是利用標(biāo)準(zhǔn)USB HID驅(qū)動(dòng)程序所提供或支持的請求 Set—Report(Feature)以及Get—Report(Feature),用以在主機(jī)110與HID 120之 間傳遞固件更新所需的燒錄程序與數(shù)據(jù),如圖1所示。換言之,本發(fā)明利用 上述二個(gè)請求作為一組輸出/輸入管道,將下載的程序與數(shù)據(jù)偽裝成特征報(bào) 告,以進(jìn)行HID的固件更新動(dòng)作,即可成功地回避WindowsXP以及Windows Vista等操作系統(tǒng)的攔截,而無須再安裝額外的驅(qū)動(dòng)程序,大大增加了固件更 新的便利性。
      為方便稍后應(yīng)用程序111能順利利用Set—Report(Feature)以及 Get一Report(Feature)所傳遞的特征報(bào)告來裝載程序與相關(guān)信息,以進(jìn)行后續(xù)的 燒錄動(dòng)作,對HID120而言,為符合USB的規(guī)范與協(xié)議,有一些相關(guān)的信息 (如特征報(bào)告的長度等),必須事先宣告于報(bào)告描述元(report descriptor)內(nèi)的報(bào) 告尺寸(ReportSize)項(xiàng)目(item)與報(bào)告計(jì)數(shù)值(ReportCount)項(xiàng)目,例如假 設(shè)特征報(bào)告的長度等于8字節(jié)(bytes),則報(bào)告尺寸項(xiàng)目內(nèi)的數(shù)據(jù)與報(bào)告計(jì)數(shù)值項(xiàng)目內(nèi)的數(shù)據(jù)必須宣告為8,也就是Report Size(8), Report Count(8)。依 此,在稍后HID120連上主機(jī)110所執(zhí)行的總線列舉中,主機(jī)110就可以取 得HID 120的屬性與運(yùn)作方式,且稍后應(yīng)用程序111就能順利呼叫 Set—Report(Feature)以及Get—Report(Feature)。為避免混淆,應(yīng)用程序111呼 叫Set—Report(feature)時(shí)由主機(jī)110傳遞至HID 120的特征報(bào)告,以下稱之為 輸出特征報(bào)告。而應(yīng)用程序111呼叫Get一Report(feature)時(shí)由HID 120回傳至 主機(jī)110的特征報(bào)告,以下稱之為輸入特征報(bào)告,如圖1所示。在應(yīng)用上, 輸出特征報(bào)告與輸入特征報(bào)告的長度不一定要相同,當(dāng)然也必須在HID報(bào)告 描述元中分開宣告以茲分辨。
      圖2為本發(fā)明固件更新方法的第一實(shí)施例的流程圖。圖3A與圖3B為本 發(fā)明HID的固件流程圖。
      在本發(fā)明第一實(shí)施例開始進(jìn)行之前,首先介紹目前HID 120所處的狀態(tài)。 假設(shè)HID120的為一支鼠標(biāo),已連接上主機(jī)110并在正常使用(即在普通工 作模式)中,故目前是處于執(zhí)行普通工作模式USB程序的狀態(tài)(步驟S322, 圖3A)。當(dāng)然,在進(jìn)入步驟S322之前,HID 120的微控器(圖未示)已執(zhí)行過 模式旗標(biāo)判斷(步驟S310,模式旗標(biāo)MF的初始值為普通工作模式)、普通 工作模式初始化(步驟S320)與普通工作模式總線列舉(步驟S321)的工 作。而步驟S322中普通工作模式USB程序具有USB傳輸功能,并且能利用 該USB傳輸功能實(shí)現(xiàn)鼠標(biāo)的所有特性,同時(shí),也會(huì)響應(yīng)應(yīng)用程序111呼叫的 牛示準(zhǔn)i青求(standardrequest)與類另U特定i青求。
      以下,以圖2為主,圖3A與圖3B為輔,說明本發(fā)明固件更新方法。 步驟S210:應(yīng)用程序111呼叫Set—Report(feature),以傳遞特定內(nèi)容的輸 出特征報(bào)告(假設(shè)長度為8個(gè)字節(jié)),來啟動(dòng)整個(gè)固件更新程序。操作系統(tǒng) 收到此請求后,會(huì)透過USB EOD驅(qū)動(dòng)程序112檢查HID 120是否有輸出特 征報(bào)告的宣告以及其宣告的長度是否正確。若成功,由于輸出特征報(bào)告是透 過控制型傳輸(Control Transfer)來傳送,操作系統(tǒng)再透過下層的USB HID驅(qū)動(dòng)程序112,將此請求在設(shè)定階段(SetupStage)傳送至USB接口 130,接著, 再將8個(gè)字節(jié)的默認(rèn)值作為輸出特征報(bào)告的內(nèi)容,在數(shù)據(jù)階段(Data Stage)傳 送至USB接口 130。
      步驟S220: HID 120接收前述請求與輸出特征報(bào)告。
      步驟S230: HID 120決定是否切換至燒錄模式。對照圖3A來看,此時(shí) HID 120的微控器(圖未示)會(huì)連續(xù)判斷是否有接收到Set—Report(feature)請求
      (步驟S323),以及接收到的輸出特征報(bào)告內(nèi)容是否正確(步驟S324)。 若都正確的話,則跳到步驟S240,否則,回到步驟S220。
      步驟S240:切換至燒錄模式。對照圖3A來看,從普通工作模式進(jìn)入燒 錄模式之前,微控器會(huì)進(jìn)行USB的狀態(tài)初始化(步驟S325),其內(nèi)容包含 保存進(jìn)入燒錄模式之前的USB狀態(tài)以及禁能(disable)所有與USB無關(guān)的中斷 (interrupt)。其中,需保存的USB狀態(tài)包含輸出特征報(bào)告的長度、輸入特 征報(bào)告的長度、特征報(bào)告識(shí)別碼(report ID)存在于否、每一端點(diǎn)(endpoint) 的致能狀態(tài)與暫停(halt)狀態(tài)、USB地址以及組態(tài)狀態(tài)(configured state) 等等。
      本發(fā)明通過保存上述的USB狀態(tài),HID 120的微控器可以在主機(jī)110不 知情的狀況下順利地從普通工作模式進(jìn)入燒錄模式,大約只需花幾個(gè)微秒 (microsecond)的時(shí)間,相較于傳統(tǒng)作法還須重新執(zhí)行燒錄模式初始化(步驟 S330)以及燒錄模式總線列舉(步驟S340),大大縮減了整個(gè)固件更新的總 時(shí)間。
      步驟S250:進(jìn)行燒錄動(dòng)作。這里的燒錄動(dòng)作包含有關(guān)進(jìn)行固件更新的所 有燒錄命令,例如"取得固件版本"、"比較密碼"、"切換工作模式"、 "清除閃存(flash erase)"、"區(qū)段清除(sector erase)"、"程序化(program) 閃存"、"讀取閃存"等等燒錄命令。由于輸出特征報(bào)告的8個(gè)字節(jié)內(nèi)容由 接收的USB引擎121負(fù)責(zé)解譯(也就是制造商自行定義),因此,每一輸 出特征報(bào)告的內(nèi)容可以視需要由應(yīng)用軟件111置入一燒錄命令或相關(guān)數(shù)據(jù)。應(yīng)用程序111根據(jù)一待更新固件的長度與輸出特征報(bào)告的長度(在此假設(shè)是
      8字節(jié)),可重復(fù)呼叫Set一Report(feature),通過該輸出特征報(bào)告的裝載,將 該待更新固件載入到HID 120的非易失性內(nèi)存(圖未示)中。反之,若要讀取 HID 120的相關(guān)數(shù)據(jù)或狀態(tài)時(shí),則應(yīng)用程序111呼叫Get一Report(feature),通 過輸入特征報(bào)告的裝載,將數(shù)據(jù)或狀態(tài)回傳到主機(jī)110中。
      對照圖3B來看,從普通工作模式進(jìn)入燒錄模式之后,微控器開始執(zhí)行 燒錄模式USB程序(步驟S350),而該燒錄模式USB程序也具有USB傳 輸功能,并可利用USB接口 130來實(shí)現(xiàn)固件更新功能。當(dāng)微控器收到 Set一Report(feature)請求后(步驟S360),會(huì)去擷取輸出特征報(bào)告的燒錄命令, 判斷是否要程序化固件(步驟S362),若是的話,跳到步驟S364,以進(jìn)行 程序化動(dòng)作;否則,跳到步驟S366,以處理燒錄命令。當(dāng)微控器收到 Get一Report(feature)請求后(步驟S370),會(huì)去判斷是否要讀取本身的數(shù)據(jù)或 狀態(tài)(步驟S372),若是的話,跳到步驟S374,以進(jìn)行數(shù)據(jù)或狀態(tài)讀??; 否則,跳到步驟S376,以回應(yīng)請求。在燒錄過程中,微控器會(huì)判斷是否固件 更新程序已結(jié)束(步驟S380),若是的話,跳到步驟S382,以進(jìn)行USB卸 載(步驟S382);否則,回到步驟S350,繼續(xù)進(jìn)行燒錄。上述步驟S382所 進(jìn)行的USB卸載,主要是將HID 120的硬件USB功能禁能,讓主機(jī)110以 為HID 120已斷線。之后,微控器再將硬件USB功能致能(enable),讓主機(jī) 110以為HID 120已重新連接,微控器就可回到普通工作模式,重新執(zhí)行一 次普通工作模式初始化(步驟S320)與普通工作模式總線列舉(步驟S321), 同時(shí),也完成整個(gè)固件更新程序,使用者即能享受最新更新的固件功能。
      從上述整個(gè)固件更新過程可以看到本發(fā)明的二大優(yōu)點(diǎn)第一個(gè)優(yōu)點(diǎn)是省 時(shí),本發(fā)明通過直接從普通工作模式切換到燒錄模式,可以大幅節(jié)省硬件的 重置與插拔、以及軟件的初始化與總線列舉的時(shí)間。第二個(gè)優(yōu)點(diǎn)是使用的便 利性,無須額外安裝驅(qū)動(dòng)程序,就可一次安裝完成。
      另一方面,本發(fā)明固件更新方法不但可應(yīng)用于HID 120已連接至主機(jī)IIO且已進(jìn)入普通工作模式的情況,也同樣可應(yīng)用在HID 120與主機(jī)110尚未連 接的情況。
      圖4為本發(fā)明固件更新方法的第二實(shí)施例的流程圖。以下參考圖4說明
      本發(fā)明第二實(shí)施例的所有步驟。
      步驟S410:將HID 120連接至主機(jī)110。
      步驟S420:固件進(jìn)入燒錄模式。對照圖3B, HID 120開機(jī)之后會(huì)判斷模 式旗標(biāo)MF是否為燒錄模式(步驟S310)。若是,跳到步驟S320,固件進(jìn) 入燒錄模式并進(jìn)行燒錄模式初始化工作。例如在量產(chǎn)階段,上述模式旗摞 MF可預(yù)設(shè)等于燒錄模式,以方便載入固件。
      步驟S430:執(zhí)行燒錄模式總線列舉。如上所述,此時(shí),HID120必須將 輸出特征報(bào)告與輸入特征報(bào)告的長度,宣告于報(bào)告描述元(report descriptor) 內(nèi)的報(bào)告尺寸(ReportSize)項(xiàng)目(item)與報(bào)告計(jì)數(shù)值(ReportCount)項(xiàng)目中, 主機(jī)110就可以取得HID 120的屬性與運(yùn)作方式。
      步驟S440:進(jìn)行燒錄動(dòng)作。根據(jù)一待更新固件的長度與輸出特征報(bào)告的 長度,應(yīng)用程序lll可重復(fù)呼叫Set—Report(feature),以通過該輸出特征報(bào)告 的裝載,將燒錄命令或相關(guān)數(shù)據(jù)傳入HID120, USB引擎121再負(fù)責(zé)解譯并 執(zhí)行之。當(dāng)然,若要讀取HID 120的數(shù)據(jù)或狀態(tài)時(shí),應(yīng)用程序111呼叫 Get—Report(feature),通過輸入特征報(bào)告的裝載,將數(shù)據(jù)或狀態(tài)回傳到主機(jī)110 中。詳細(xì)狀況已在上述步驟S250中討論,這里不再贅述。
      如上所述,利用圖3A與圖3B的固件架構(gòu),主機(jī)110與HID120之間進(jìn) 行燒錄動(dòng)作時(shí),透過Get—Report(feature)與Set—Report(feature)二個(gè)管道來上 傳與下傳數(shù)據(jù),就可避免控制HID 120的控制處置器被Windows XP給阻擋。 請注意,當(dāng)圖3A與圖3B的固件架構(gòu)應(yīng)用在一般的USB裝置時(shí),就沒有操 作系統(tǒng)阻擋的問題。因此,在主機(jī)110與一般的USB裝置(非鼠標(biāo)與非鍵盤) 之間進(jìn)行燒錄動(dòng)作時(shí),除了可以透過Get—Report(feature)與Set—Report(feature) 的這一組管道之外,也可以透過另一組管道艮卩Get—Report(IN)與
      13Set—Report(OUT)來上傳與下傳數(shù)據(jù),如圖5A的步驟S523、 S524與圖5B 的步驟S560、 S570所示。
      圖6為本發(fā)明固件架構(gòu)的一實(shí)施例的架構(gòu)示意圖。參考圖6,本發(fā)明固 件架構(gòu)600適用于所有USB裝置,包含 一燒錄模塊620、 一普通工作模塊 630以及一模式判斷模塊610。
      USB裝置開機(jī)之后,模式判斷模塊610會(huì)判斷模式旗標(biāo)MF的初始值, 來決定啟動(dòng)普通工作模塊630或燒錄模塊620;假設(shè)MI^W時(shí),模式判斷模 塊610啟動(dòng)普通工作模塊630;而MF4時(shí),模式判斷模塊610啟動(dòng)燒錄模 塊620。燒錄模塊620具有一第一USB傳輸功能,用以利用一USB接口實(shí) 現(xiàn)一燒錄功能。在燒錄模塊620被啟動(dòng)后,當(dāng)接收到一 Set—Report(feature) 請求或一 Set—Report(OUT)請求時(shí),即根據(jù)相對應(yīng)的輸出特征報(bào)告或輸出報(bào)告 的內(nèi)容進(jìn)行燒錄;當(dāng)接收到一 GeLReport(feature)請求或一 Get—Report(IN)請 求時(shí),則通過輸入特征報(bào)告或輸入報(bào)告的裝載,將數(shù)據(jù)或狀態(tài)回傳到主機(jī)110 中。圖6中的虛線表示,燒錄動(dòng)作完成后并不一定要切換回普通工作模塊630, 完全視狀況或需求而定。例如,在量產(chǎn)階段,就不必切回普通工作模塊630; 而若是供使用者在線更新固件時(shí),則需切回普通工作模塊630,使用上會(huì)更 加便利。
      普通工作模塊630具有一第二 USB傳輸功能,用以利用該第二 USB傳 輸功能實(shí)現(xiàn)一特定產(chǎn)品特性(例如鼠標(biāo)或打印機(jī))。在普通工作模塊630被 啟動(dòng)后,當(dāng)接收到一Set—Report(feature)請求或一Set—Report(OUT)請求,而 且輸出特征報(bào)告或輸出報(bào)告的內(nèi)容等于一默認(rèn)值時(shí),普通工作模塊630隨即 保存目前USB狀態(tài)并禁能所有與USB無關(guān)的中斷,以切換至燒錄模塊620。
      在較佳實(shí)施例的詳細(xì)說明中所提出的具體實(shí)施例僅用以方便說明本發(fā)明 的技術(shù)內(nèi)容,而非將本發(fā)明狹義地限制于上述實(shí)施例,在不超出本發(fā)明的精 神及權(quán)利要求范圍的情況,所做的種種變化實(shí)施,皆屬于本發(fā)明的范圍。
      權(quán)利要求
      1.一種固件更新方法,應(yīng)用于一計(jì)算機(jī)主機(jī)與一人性化接口裝置之間,所述的計(jì)算機(jī)主機(jī)具有一應(yīng)用程序并透過一通用序列總線接口連接至所述的人性化接口裝置,所述的人性化接口裝置具有一第一固件,所述的方法包含以下步驟一啟動(dòng)步驟,經(jīng)由所述的應(yīng)用程序呼叫一寫入報(bào)告請求,以傳遞一輸出特征報(bào)告給所述的第一固件;一決定步驟,根據(jù)所述的第一固件接收到的所述的特征輸出報(bào)告內(nèi)容,決定是否要從一普通工作模式切換至一燒錄模式;以及一燒錄步驟,當(dāng)所述的第一固件切換至所述的燒錄模式后,所述的應(yīng)用程序呼叫所述的寫入報(bào)告請求,用以通過所述的輸出特征報(bào)告的裝載,對所述的人性化接口裝置進(jìn)行燒錄。
      2. 如權(quán)利要求1所述的固件更新方法,其中所述的燒錄步驟更包含 根據(jù)一第二固件的長度與所述的輸出特征報(bào)告的長度,所述的應(yīng)用程序以一相對應(yīng)的次數(shù)呼叫所述的寫入報(bào)告請求,用以通過所述的輸出特征報(bào)告 的裝載,將所述的第二固件載入所述的人性化接口裝置中。
      3. 如權(quán)利要求1所述的固件更新方法,其中所述的燒錄步驟更包含 所述的應(yīng)用程序透過呼叫一讀取報(bào)告請求,用以通過所述的讀取報(bào)告請求的一輸入特征報(bào)告的裝載,以回傳所述的人性化接口裝置的狀態(tài)或數(shù)據(jù)。
      4. 如權(quán)利要求3所述的固件更新方法,其中所述的輸入特征報(bào)告的內(nèi)容 為數(shù)據(jù)。
      5.執(zhí)行一普通工作模式總線列舉,用以在一 HID報(bào)告描述元中宣告所述的 輸入特征報(bào)告的長度。
      6. 如權(quán)利要求5所述的固件更新方法,其中所述的執(zhí)行步驟更包含根據(jù)所述的輸入特征報(bào)告的長度,宣告所述的HID報(bào)告描述元的一輸入特征報(bào)告尺寸項(xiàng)目與一輸入特征報(bào)告計(jì)數(shù)值項(xiàng)目。
      7. 如權(quán)利要求1所述的固件更新方法,其中在所述的啟動(dòng)步驟之前更包含以下步驟執(zhí)行一普通工作模式總線列舉,用以在一HID報(bào)告描述元中宣告所述的輸出特征報(bào)告的長度。
      8. 如權(quán)利要求7所述的固件更新方法,其中所述的執(zhí)行步驟更包含 根據(jù)所述的輸出特征報(bào)告的長度,宣告所述的HID報(bào)告描述元的一輸出特征報(bào)告尺寸項(xiàng)目與一輸出特征報(bào)告計(jì)數(shù)值項(xiàng)目。
      9. 如權(quán)利要求1所述的固件更新方法,其中所述的決定步驟還包含在進(jìn)入所述的燒錄模式之前,所述的第一固件保存一USB狀態(tài)。
      10. 如權(quán)利要求9所述的固件更新方法,其中所述的USB狀態(tài)包含所述 的輸出特征報(bào)告的長度、所述的輸入特征報(bào)告的長度、 一特征J艮告識(shí)別碼存 在于否、每一端點(diǎn)的致能狀態(tài)與暫停狀態(tài)、USB地址以及組態(tài)狀態(tài)其中之一 或其組合。
      11. 如權(quán)利要求1所述的固件更新方法,其中所述的決定步驟還包含 在進(jìn)入所述的燒錄模式之前,所述的第一固件禁能所有與USB無關(guān)的中斷。
      12. 如權(quán)利要求1所述的固件更新方法,其中所述的輸出特征報(bào)告的內(nèi)容 包含一燒錄命令以及一數(shù)據(jù)其中之一或其組合,且所述的燒錄命令為制造商 定義。
      13. —種固件更新方法,應(yīng)用于一計(jì)算機(jī)主機(jī),所述的計(jì)算機(jī)主機(jī)具有一 應(yīng)用程序,所述的方法包含以下步驟透過一通用序列總線接口將所述的計(jì)算機(jī)主機(jī)連接至一人性化接口裝 置,所述的人性化接口裝置具有一第一固件;執(zhí)行一燒錄模式總線列舉;以及進(jìn)行燒錄,通過所述的應(yīng)用程序呼叫一寫入報(bào)告請求,利用一輸出特征 報(bào)告的裝載,對所述的人性化接口裝置進(jìn)行燒錄。
      14. 如權(quán)利要求13所述的固件更新方法,其中所述的燒錄步驟更包含 根據(jù)一第二固件的長度與所述的輸出特征報(bào)告的長度,所述的應(yīng)用程序以一相對應(yīng)的次數(shù)呼叫所述的寫入報(bào)告請求,用以通過所述的輸出特征報(bào)告 的裝載,將所述的第二固件載入所述的人性化接口裝置中。
      15. 如權(quán)利要求13所述的固件更新方法,其中所述的燒錄步驟更包含所述的應(yīng)用程序透過呼叫一讀取報(bào)告請求,利用所述的讀取報(bào)告請求的 一輸入特征報(bào)告的裝載,以回傳所述的人性化接口裝置的狀態(tài)或數(shù)據(jù)。
      16. 如權(quán)利要求15所述的固件更新方法,其中所述的輸入特征報(bào)告的內(nèi) 容為數(shù)據(jù)。
      17. 如權(quán)利要求15所述的固件更新方法,其中所述的執(zhí)行所述的燒錄模式總線列舉步驟包含在一HID報(bào)告描述元中,宣告所述的輸入特征報(bào)告的長度。
      18. 如權(quán)利要求17所述的固件更新方法,其中所述的宣告步驟更包含 根據(jù)所述的輸入特征報(bào)告的長度,宣告所述的HID報(bào)告描述元的一輸入特征報(bào)告尺寸項(xiàng)目與一輸入特征報(bào)告計(jì)數(shù)值項(xiàng)目。
      19. 如權(quán)利要求13所述的固件更新方法,其中所述的執(zhí)行所述的燒錄模 式總線列舉步驟包含在一HID報(bào)告描述元中,宣告所述的輸出特征報(bào)告的長度。
      20. 如權(quán)利要求19所述的固件更新方法,其中所述的宣告步驟更包含 根據(jù)所述的輸出特征報(bào)告的長度,宣告所述的HID報(bào)告描述元的一輸出特征報(bào)告尺寸項(xiàng)目與一輸出特征報(bào)告計(jì)數(shù)值項(xiàng)目。
      21. 如權(quán)利要求13所述的固件更新方法,其中所述的輸出特征報(bào)告的內(nèi) 容包含一燒錄命令以及一數(shù)據(jù)其中之一或其組合,且所述的燒錄命令為制造商定義。
      22. —種USB裝置的固件架構(gòu),其特征在于,所述的USB裝置的固件架 構(gòu)包含一燒錄模塊,具有一第一USB傳輸功能,用以利用一USB接口實(shí)現(xiàn)一 燒錄功能,其中,當(dāng)接收到一寫入報(bào)告請求時(shí),所述的燒錄模塊根據(jù)所述的 寫入報(bào)告請求的一第一報(bào)告的內(nèi)容進(jìn)行燒錄;一普通工作模塊,具有一第二USB傳輸功能,用以利用所述的第二USB 傳輸功能實(shí)現(xiàn)一特定產(chǎn)品特性,其中,當(dāng)接收到一報(bào)告內(nèi)容等于一默認(rèn)值時(shí), 所述的普通工作模塊保存一 USB狀態(tài)并禁能所有與USB無關(guān)的中斷,并切 換至所述的燒錄模塊;以及一模式判斷模塊,用以根據(jù)一模式旗標(biāo),決定啟動(dòng)所述的普通工作模塊 或所述的燒錄模塊。
      23. 如權(quán)利要求22所述的USB裝置的固件架構(gòu),其特征在于,所述的燒 錄模塊更包含當(dāng)接收到一讀取報(bào)告請求時(shí),通過所述的讀取報(bào)告請求的一第二報(bào)告的 裝載,以回傳所述的USB裝置的狀態(tài)或數(shù)據(jù)。
      24. 如權(quán)利要求23所述的USB裝置的固件架構(gòu),其特征在于,所述的第 二報(bào)告為一輸入特征報(bào)告或一輸入報(bào)告,且所述的第二報(bào)告的內(nèi)容為數(shù)據(jù)。
      25. 如權(quán)利要求23所述的USB裝置的固件架構(gòu),其特征在于,所述的 USB狀態(tài)包含所述的第一報(bào)告的長度、所述的第二報(bào)告的長度、 一特征報(bào)告 識(shí)別碼存在于否、每一端點(diǎn)的致能狀態(tài)與暫停狀態(tài)、USB地址以及組態(tài)狀態(tài) 其中之一或其組合。
      26. 如權(quán)利要求22所述的USB裝置的固件架構(gòu),其特征在于,所述的第 一報(bào)告為一輸出特征報(bào)告或一輸出報(bào)告,且所述的第一報(bào)告的內(nèi)容包含一燒 錄命令以及一數(shù)據(jù)其中之一或其組合。
      27. 如權(quán)利要求22所述的USB裝置的固件架構(gòu),其特征在于,所述的燒 錄模塊完成所有燒錄動(dòng)作后,會(huì)切換至所述的普通工作模塊。
      全文摘要
      本發(fā)明提供一種固件更新方法以及固件架構(gòu),通過應(yīng)用程序呼叫一寫入報(bào)告請求與一讀取報(bào)告請求,透過特征報(bào)告的裝載,和一人性化接口裝置之間來進(jìn)行命令或數(shù)據(jù)的傳遞,以完成固件更新程序。
      文檔編號G06F13/14GK101539862SQ20081008674
      公開日2009年9月23日 申請日期2008年3月20日 優(yōu)先權(quán)日2008年3月20日
      發(fā)明者蔡昌德, 陳興倫 申請人:松翰科技股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1