專利名稱:用于更新設備驅動程序的系統和方法
用于更新設備驅動程序的系統和方法
相關申請
本申請要求2007年6月15日提交的美國臨時專利申請60/944,227 的權利,本申請是共同待審的于2006年11月29日提交的美國申請 No. 1 1/564553和2007年8月15日提交的美國專利申請1 1/838930的部 分繼續申請。'227申請、'55 3申請和'930申請在本文中引作參考。
背景技術:
本發明總體涉及外圍設備,特別地涉及用于更新與這些外圍設備相 關聯的設備驅動程序的系統和方法。
一些主機(host)設備(比如膝上型計算機)可以使用通常被稱為 "PC卡"的插入式外圍設備來與無線網絡通信。PC卡可以經通用串行 總線(USB)連接而連接到計算機,PC卡包括射頻(RF)收發器和集 成天線。雖然性能一般不同,但是PC卡可以以大致相似于固定連接的 速度來從無線網絡接收數據且從無線網絡發送數據。因此,對于膝上型 計算機的用戶來說,可以與一個或多個遠程方通信、瀏覽因特網或從地 球上的任何地方發送和接收電子郵件。
PC卡和其他外圍設備包括各種硬件組件,其中一些包括被稱為"固 件,,的嵌入式軟件程序。 一般地,固件負責執行各種低級任務,并且可 以時常升級以處理瑕疵(bug)、添加或改變功能或者改進外圍設備的 性能和可靠性。然而,升級固件可能產生各種問題。
例如,膝上型計算機典型地需要它們自己的被稱為"設備驅動程序" 的軟件程序以允許用戶應用程序與PC卡通信。同樣,設備驅動程序應 當與在PC卡上運行的任何版本的固件兼容;然而,用新版本更新固件 可能引入這兩種版本之間的不兼容性。即,在固件升級之前曾經適合使 用的設備驅動程序可能與新的固件版本不兼容。這可能會產生問題,因 為不兼容性可以使得PC卡變得不能操作。
發明內容
當外圍設備上的固件被升級時,本發明自動地更新駐留在主機設備上的一個或多個設備驅動程序。在一個示范性實施例中,主機處理器確 定用于外圍設備的當前設備驅動程序是否與升級的固件兼容。如果二者 兼容,則主機繼續加載并使用用于外圍設備的當前驅動程序。如果二者 不兼容,則控制器利用存儲在外圍設備的存儲器中的升級的設備驅動程 序來自動更新當前安裝的設備驅動程序。 一旦安裝了升級的設備驅動程 序,外圍設備就被復位。這使主機將升級的設備驅動程序加載到存儲器 中,從而主機能夠使用這些升級的設備驅動程序與外圍設備通信。
圖1是根據本發明的 一個實施例的連接到主機設備的外圍設備的框圖。
圖2是示出根據本發明的 一個實施例的更新設備驅動程序的方法的 流程圖。
具體實施例方式
本發明涉及用于作為固件升級過程的 一部分而更新駐留在主機設 備上的設備驅動程序的系統和方法。特別地,外圍設備包括被升級到新 的或不同版本的固件。在升級過程中,主機自動檢查其當前安裝的設備 驅動程序以確定它們是否與升級的固件兼容。如果在主機上的當前設備 驅動程序是兼容的,則主機使用這些安裝的設備驅動程序簡單地與外圍 設備通信。如果不兼容,主機用存儲在外圍設備的存儲器中的升級的設 備驅動程序來自動替換過時的設備驅動程序。
圖1示出適合用于本發明的一個實施例的系統10。系統10包括外 圍設備20和主機設備40。 一般地,外圍設備20連接到主機設備40并 且在其控制下操作。在該實施例中,外圍設備20包括調制解調卡,并 且主機設備40包括計算設備。主機設備40和外圍設備20 —起為用戶 提供了經無線網絡(未示出)與遠程方通信的能力。然而,這些特別的 標記和它們的相關功能僅僅是為了說明的目的。外圍設備20可以包括 本領域已知的任何外圍設備,比如大容量存儲設備、MP3播放器等等。 類似地,主機設備40可以是任何類型的電子設備或計算設備,包括但 不限于膝上型計算機和筆記本計算機、蜂窩電話、衛星電話和個人數字 助理(PDA)。主機設備40包括主機處理器42、操作系統(OS) 44、 一個或多個設備驅動程序46以及通信地將主機設備40連接到外圍設備20的外圍設備接口 48。主機處理器42根據與OS44相關聯的指令和數據控制主機設備40的操作。主機處理器可以包括一個或多個微處理器、微控制器、硬件電路、固件或其組合。OS44包括存儲在主機設備40的存儲器中的一組計算機程序,其管理主機設備40的硬件和軟件資源。如本領域所已知的,OS44典型地處理系統輸入和用戶輸入,并且執行基本的計算任務。這樣的任務包括控制并分配內存、設置系統請求的優先次序、促進聯網以及管理文件系統。OS44可以是本領域中已知的任何操作系統;然而,最流行的操作系統中的一些包括WINDOWS、 NT、 LINUX、UNIX以及MAC OSX。
設備驅動程序46是存儲在存儲器中的允許主機設備40與外圍設備20通信并且控制外圍設備20的軟件程序。在示范性實施例中,外圍設備20可以起調制解調器30的作用。同樣,設備驅動程序46可以包括一個或多個調制解調設備驅動程序以與調制解調器30通信。在其他實施例中,外圍設備20可以仿真USB兼容的大容量存儲設備。因此,設備驅動程序46還可以包括大容量存儲設備的驅動程序以與作為大容量設備的外圍設備20通信。
外圍設備接口 48實現了主機設備40與外圍設備20之間的通信。外圍設備接口 48可以包括任何已知類型的接口 ,例如USB接口、FIREIWIRE或其他串行或并行接口 。
外圍設備20包括連接到接口 24的USB控制器22、文件系統管理器26、存儲器28和調制解調器30。存儲器28可以存儲一個或多個"升級的,,設備驅動程序32。如下面更詳細地描述的,"升級的,,設備驅動程序32對應于調制解調器30上的固件34的版本。如下面所描述的,只要當固件34被升級,設備驅動程序32便可以被發送到主機設備40。這有助于確保主機設備40總是具有最新的設備驅動程序。
USB控制器22控制外圍設備20的操作。USB控制器22可以包括微處理器、微控制器、硬件電路或其組合。USB控制器22的一個功能是改變外圍設備20的配置。例如,當外圍設備20首次連接到主機設備40時,外圍設備20可以初始地將其本身表現為大容量存儲設備,以避免未知設備錯誤,直到安裝了合適的驅動程序。存儲在存儲器28中的"自動運行,,程序可以被發送到主機設備40,并且自動地執行以將設備 驅動程序安裝在主機設備40上。 一旦安裝了正確的驅動程序,USB控 制器22可以從缺省配置(例如,大容量存儲設備)改變為標準配置(例 如,調制解調器配置)。
文件系統管理器26是控制對存儲器2 8的訪問的軟件模塊。特別地, 文件系統管理器26接收并處理來自主機設備40的文件存取命令。文件 系統管理器26可以以常規方式操作,以打開和關閉文件、讀取文件、 寫入文件、刪除文件等等。
調制解調器30允許用戶經通信網絡(未示出)與一個或多個遠程 方和/或服務器通信。如果主機設備40安裝了合適的調制解調設備驅動 程序46,則主機設備40可以經USB控制器22利用調制解調器30發送 并接收數據。調制解調器30包括固件34,其可以時常被升級以處理瑕 疵、添加功能或改進調制解調器30的性能和可靠性。這些改變可以從 負面影響主機設備40的與外圍設備20通信的能力。特別地,升級的固 件34可以引入當前安裝在主機設備40上的設備驅動程序46與固件34 之間的不兼容性。這樣的不兼容性是成問題的,因為它們可以使得調制 解調器30不能操作。
根據本發明,用于調制解調器30的設備驅動程序46包括代碼以自 動檢查當前安裝的固件34的最低驅動程序版本并且在必要時啟動安裝 過程來安裝存儲在外圍設備20的存儲器中的合適的設備驅動程序46。 在一個示范性實施例中,主機處理器42在每次加載設備驅動程序時檢 查其當前安裝的設備驅動程序46的兼容性。在開始加載過程之后,主 機處理器42確定與當前安裝的固件34 —起操作時需要的最低驅動程序 版本,并且將安裝的設備驅動程序46的當前驅動程序版本與當前安裝 的固件34的最低驅動程序版本相比較。用于執行該兼容性檢查的代碼 可以包括在設備驅動程序46中。
如果當前安裝的設備驅動程序46的驅動程序版本高于或等于固件 34的最低驅動程序版本,則設備驅動程序46可以被加載或繼續操作。 如果當前安裝的設備驅動程序46的驅動程序版本低于固件34的最低驅 動程序版本,則主機處理器42自動地啟動安裝程序以安裝存儲在外圍 設備20的存儲器中的合適的設備驅動程序46。用于啟動新驅動程序安 裝的代碼也可以包括在設備驅動程序46中。 一旦主機處理器42用新設
7備驅動程序取代了當前安裝的設備驅動程序46,自動重啟外圍設備20以使得主機處理器42可以加載升級的設備驅動程序32。
可以使用各種技術來確定調制解調器30的當前安裝的固件34的最低驅動程序版本。 一種方法是硬編碼(hard code)最4氏驅動程序版本到固件34中,然后由主機處理器42對其進行詢問。主機處理器42可以例如向調制解調器30發布預定的AT命令以得到當前安裝的固件34的最低驅動程序版本。固件34可以將最低驅動程序版本報告為定制(custom) USB描述符。可替4戈地,最^氐驅動程序版本可以存儲在可由主機處理器42通過文件系統管理器26訪問的外圍設備存儲器28中的地址或預定文件中。該方法的一個優點是固件代碼本身不必改變以更新最低驅動程序版本;僅僅需要更新預定文件或存儲器地址。
圖2示出作為針對固件34的升級過程的一部分來更新主機設備40上的設備驅動程序46的方法50。方法50在調制解調器30上的固件34被升級時開始(方框52)。在固件升級期間,與升級的固件34兼容的新設備驅動程序可以被拷貝到外圍設備20的存儲器28中。在升級之后,用戶重啟外圍設備20 (方框54)。例如,這可以響應于由主才幾處理器42發送的信號自動地來完成,或者通過循環到主機設備40或外圍設備20的功率或將外圍設備20與主機設備40斷開連接/重新連接來完成。在每一種情況下,OS44將自動檢測外圍設備20的存在并且開始加載用于外圍設備20的設備驅動程序46 (方框56)。在該實施例中,外圍設備20包括調制解調器30。因此,設備驅動程序46包括由主機設備40所使用的那些以與調制解調器30通信。
因為固件升級可以從負面影響主機設備40與調制解調器30通信的能力,所以主機處理器42接下來確定用于調制解調器30的當前安裝的設備驅動程序46是否也需要升級。更特別地,主機處理器42確定調制解調器30上的當前安裝的固件34所需的最低驅動程序版本(方框58 )。主機處理器42可以詢問固件34以獲得最低驅動程序版本。可替代地,主機處理器42可以從外圍設備20的存儲器28中的地址或預定文件中讀取最低驅動程序版本。
在確定最低驅動程序版本之后,主機處理器42檢查當前安裝的設備驅動程序46是否與升級的固件34兼容(方框60)。如果當前安裝的設備驅動程序46的驅動程序版本等于或超過最低驅動程序版本,則不
8需要更新設備驅動程序46。在這個情況下,主機處理器42將繼續加載當前設備驅動程序46,過程結束(方框62)。相反地,如果當前安裝的設備驅動程序46的驅動程序版本低于最低驅動程序版本,則主機處理器42將上載并安裝存儲在外圍設備20的存儲器中的新設備驅動程序46 (方框64和66)。在共同待審的于2006年11月29日提交的名稱為"Methods, Devices and Computer Program Products for AutomaticallyInstalling Device Drivers from a Peripheral Device Onto A Host Computer"的申請11/564, 553中描述了用于安裝設備驅動程序的示范性過程,該文獻通過引用而全部合并于此。
在新設備驅動程序安裝在主機設備40中之后,如前所述,外閨設備20然后一皮復位(方框54)。然而,在該過程( pass)中,主機處理器42將確定主機設備40上的設備驅動程序46是升級的設備驅動程序,并且因此與升級的固件34兼容(方框56-60)。同樣,主機處理器42將配置主機設備40以與調制解調器30—起操作(方框62)。
實施,而不脫離本發明的本質特征。本發明的實施例在各個方面被認為是說明性而非限制性的,并且在所附權利要求的意義和等價范圍內的所有變化都旨在包含在權利要求中。
9
權利要求
1.一種更新主機設備(40)上的設備驅動程序的方法,包括確定所述主機設備(40)上當前安裝的設備驅動程序(46)是否與外圍設備(20)的升級的固件(34)兼容;以及如果當前安裝的設備驅動程序(46)與升級的固件(34)不兼容,則將升級的設備驅動程序(32)從所述外圍設備(20)下載到所述主機(40)。
2. 權利要求1的方法,其中確定主機設備(40)上當前安裝的設備 驅動程序(46)是否與外圍設備(20)的升級的固件(34)兼容包括確 定升級的固件(34)的最低驅動程序版本。
3. 權利要求2的方法,其中確定主機設備(40)上當前安裝的設備 驅動程序(46)是否與外圍設備(20)的升級的固件(34)兼容還包括 將當前安裝的驅動程序(46)的當前驅動程序版本與升級的固件(34) 的最低驅動程序版本相比較。
4. 權利要求3的方法,其中如果當前驅動程序版本低于固件(34) 的最低驅動程序版本,則下載升級的設備驅動程序(32)。
5. 權利要求2的方法,其中確定升級的固件(34)的最低驅動程序 版本包括從存儲在所述外圍設備(20)的存儲器(28)中的文件中讀取 最低驅動程序版本。
6. 權利要求2的方法,其中確定升級的固件(34)的最低驅動程序 版本包括向所述固件(34)詢問最低驅動程序版本。
7. 權利要求1的方法,進一步包括在所述主機(40)處安裝升級的 設備驅動程序(32)。
8. 權利要求7的方法,進一步包括在已將升級的設備驅動程序(32) 安裝在主機(40)處之后生成信號以復位外圍設備(20)。
9. 一種主才幾設備,包4舌接口 (48),其將主機設備(40)連接到外圍設備(20);以及 主機處理器(42),其被配置為確定所述主機設備(40)上當前安裝的設備驅動程序(46)與 所述外圍設備(20)的升級的固件(34)的兼容性;以 及如果當前安裝的設備驅動程序(46)與升級的固件(34)不兼容,則將升級的設備驅動程序(32 )從所述外圍設備(20 )下載到所述主機設備(40)。
10. 權利要求9的主機設備,其中所述主機處理器(42)被配置為通過比較當前驅動程序版本與升級的固件(34)的最低驅動程序版本來確定當前安裝的設備驅動程序(46)的兼容性。
11. 權利要求10的主機設備,其中所述主機處理器(42)還被配置為如果所述當前驅動程序版本低于升級的固件(34)的最低驅動程序版本,則從所述外圍設備(20)下載升級的設備驅動程序(32)。
12. 權利要求10的主機設備,其中所述主機處理器(42)被配置為通過從存儲在所述外圍設備(20)的存儲器(28)中的預定文件中讀取升級的固件(34)的最低驅動程序版本來確定升級的固件(34)的最低驅動程序版本。
13. 權利要求10的主機設備,其中所述主機處理器(42)被配置為通過詢問升級的固件(34)來確定升級的固件(34)的最低驅動程序版本。
14. 權利要求9的主機設備,其中所述主機處理器(42)被進一步配置為將升級的設備驅動程序(32)安裝在所述主機設備(40)上。
15. 權利要求14的主機設備,其中所述主機處理器(42)被進一步配置為在安裝了升級的設備驅動程序(32)之后生成信號以復位所述外圍設備(20)。
16. —種外圍設備(20),包括接口 (24),其將所述外圍設備(20)連接到主機設備(40);外圍設備固件(34),用于控制所述外圍設備(20)的操作;以及存儲器(28),其可被主機設備(40)訪問,并且包括預定文件,該預定文件包含所述固件(34)的最低驅動程序版本。
17.一種外圍設備(20),包括接口 (24),其將所述外圍設備(20)連接到主機設備(40);外圍設備固件(34),用于控制所述外圍設備(20)的操作;所述外圍設備固件(34)包括含有所述固件(34)的最低驅動程序版本的代碼和用于將所述最低驅動程序版本報告給主機設備(40 )的代碼。
全文摘要
一種主機(40)連接到具有升級的固件(34)的外圍設備(20)。該主機(40)還包括設備驅動程序(46)以與外圍設備(20)通信。如果當前安裝在主機(40)上的設備驅動程序(46)與升級的固件(34)不兼容,則升級的設備驅動程序(32)被自動地從外圍設備(20)下載到主機(40)。一旦外圍設備(20)安裝在主機(40)上,外圍設備(20)就被復位并且升級的設備驅動程序(32)被用于與外圍設備(20)通信。
文檔編號G06F9/445GK101689116SQ200880020136
公開日2010年3月31日 申請日期2008年3月19日 優先權日2007年8月15日
發明者P·艾肯, S·穆利斯二世 申請人:索尼愛立信移動通訊股份有限公司