實時識別插拔usb設備的方法
2023-05-24 05:24:21 5
專利名稱:實時識別插拔usb設備的方法
技術領域:
本發明涉及一種實時識別插拔USB設備的方法,尤其涉及一種Linux系統下USB設備插拔的實時識別方法。
背景技術:
在電子計算機技術領域,Linux是一種自由和開放原始碼的計算機作業系統,從手機、平板電腦、路由器、視頻遊戲控制臺,到臺式計算機和伺服器中都得到應用,尤其是在機頂盒、家庭網關和行動裝置等嵌入式設備中更是得到廣泛應用。USB接口具有支持熱插拔的特性,因其結構簡單、成本低廉且具有良好的性能而在計算機外設和各種儀器中得到廣泛應用,USB接口的設備已成為有線傳輸的主流選擇。目前,Linux系統下完成USB設備的數據採集一般採用人工的方式完成設備的配置,這種方式由於需要人的參與而不利於實現自動化的採集,且採集程序一般是針對某款設備而開發不具有通用性,人工的參與為設備數據採集帶來不便,單一用途的採集軟體不利於設備的整合。所以,探索和研發一種新的技術手段以實現USB設備的實時發現與識別,獲取到足夠多的設備信息,並利用這些信息結合設備的實際情況將可以開發出兼容多種設備的數據採集程序,且可以自動完成數據採集已成為電子信息處理技術中正在尋求解決的技術需求。
發明內容
本發明的技術效果能夠克服上述缺陷,提供一種實時識別插拔USB設備的方法,其尋求設計一種能夠實時識別USB設備的插入或拔出,提供足夠多的信息,從而可以針對不同設備採用不同的處理方法。為了實現上述目的,本發明採用如下技術方案:其包括實時發現有設備接入或拔出、確定接入或拔出的是USB設備和確定接入或拔出的USB設備的設備名稱、廠家信息和設備節點三個功能部分,其具體步驟為:(I)Linux USB文件系統(usbfs):Linux系統有了 USB文件系統的支持,將會產生一個記錄系統中USB設備信息的文件,該文件以特定的格式與含義來描述系統中的USB設備,信息中本方法關注的是廠商與設備名稱,該文件在Linux系統中的路徑為/dev/bus/usb/devices ;(2) udev:選用Linux2.6以上版本的設備管理器,其功能是管理/dev目錄底下的設備節點,能夠動態提供系統中實際存在的設備節點,設備節點支持Linxu作業系統的設備操作,因為設備操作是以節點為基礎的;(3) Netlink:Linux內核提供的一種通訊方式,使用該技術可以實現Linux內核和應用程式間的雙向通訊,支持多種協議類型,接收Linux內核提供的設備接入或拔出時的信息,能發現設備接入或拔出的實時性;(4)內核信息處理:初步判斷接入或拔出的設備是否為USB設備,如果是USB設備則根據信息格式取出設備節點,完成設備識別的部分工作;
(5) USB設備文件匹配:比較設備接入或拔出前後USB設備信息文件的變化,找到接入或拔出的設備,取出設備名稱及廠家信息等有效內容,進行列印或顯示輸出。完成Linux系統下多種設備的實時數據採集的方法。實時識別出設備的廠商和名稱信息內容,並採集設備的節點信息,從而完成實時識別任務。本發明與現有技術相比具有以下優點:一是實現USB設備插拔的實時識別,獲取到足夠多的設備信息;二是結合多種健康設備的實際情況,開發兼容多種設備的數據採集程序;其整體工藝過程簡單,識別原理可靠,信息數據採集準確,處理效果先進,可以應用於多種電子設備及電視機數位化設備中的USB插拔場合。
圖1為本發明方法的工作流程原理示意框圖。
具體實施例方式本實施例的主要功能包括實時發現有USB設備接入或拔出、確定接入或拔出的是USB設備和確定接入或拔出的USB設備的設備名稱、廠家信息和設備節點三個功能部分,其具體步驟為:(I)Linux USB文件系統(usbfs) =Linux系統有了 USB文件系統的支持,將會產生一個記錄系統中USB設備信息的文件,該文件以特定的格式與含義來描述系統中的USB設備,信息中本方法關注的是廠商與設備名稱,該文件在Linux系統中的路徑為/dev/bus/usb/devices ;(2) udev:Linux2.6以上版本的設備管理器,功能是管理Linux系統/dev目錄底下的設備節點,能夠動態提供系統中實際存在的設備節點,而設備節點對Linxu作業系統的設備操作至關重要,因為設備操作是以節點為基礎的;(3) Netlink:Linux內核提供的一種通訊方式,使用該技術可以實現Linux內核和應用程式間的雙向通訊,它支持多種協議類型,在本方法中使用該技術接收Linux內核提供的設備接入或拔出時的信息,由於Linux內核實時提供這些信息,該技術將能保證發現設備接入或拔出的實時性;(4)內核信息處理:初步判斷接入或拔出的設備是否為USB設備,如果是USB設備則根據信息格式取出設備節點,完成設備識別的部分工作;(5) USB設備文件匹配:比較設備接入或拔出前後USB設備信息文件的變化,找到接入或拔出的設備,取出設備名稱及廠家信息等有效內容。本實施例結合多種技術實現USB設備插拔的實時識別,最終獲得設備名稱、廠家信息及設備節點等關注的設備信息內容;當有USB設備接入或拔出時首先使用netlink接收Linux內核發送的信息,實時發現設備的接入或拔出,並通過該信息初步判斷接入的是否為USB設備。如果是USB設備,先取出設備節點,然後提取設備接入或拔出前後USB設備記錄文件中的設備信息,通過比較設備接入或拔出前後的設備信息,得到接入或拔出設備的名稱和廠家信息,而設備名稱與廠家信息都是在USB設備描述符中描述的。
權利要求
1.一種實時識別插拔USB設備的方法,其特徵在於,包括實時發現有設備接入或拔出、確定接入或拔出的是USB設備和確定接入或拔出的USB設備的設備名稱、廠家信息和設備節點三個功能部分,其具體步驟為: (1)LinuxUSB文件系統=Linux系統有了 USB文件系統的支持,將會產生一個記錄系統中USB設備信息的文件,該文件以特定的格式與含義來描述系統中的USB設備,信息中本方法關注的是廠商與設備名稱,該文件在Linux系統中的路徑為/dev/busAisb/devices ; (2)udev:選用Linux2.6以上版本的設備管理器,其功能是管理/dev目錄底下的設備節點,能夠動態提供系統中實際存在的設備節點,設備節點支持Linxu作業系統的設備操作,因為設備操作是以節點為基礎的; (3)Netlink:Linux內核提供的一種通訊方式,使用該技術可以實現Linux內核和應用程式間的雙向通訊,支持多種協議類型,接收Linux內核提供的設備接入或拔出時的信息,能發現設備接入或拔出的實時性; (4)內核信息處理:初步判斷接入或拔出的設備是否為USB設備,如果是USB設備則根據信息格式取出設備節點,完成設備識別的部分工作; (5)USB設備文件匹配:比較設備接入或拔出前後USB設備信息文件的變化,找到接入或拔出的設備,取出設備名稱及廠家信息等有效內容,進行列印或顯示輸出。
全文摘要
本發明涉及一種實時識別插拔USB設備的方法,尤其涉及一種Linux系統下USB設備插拔的實時識別方法。本發明的實時識別插拔USB設備的方法,包括實時發現有設備接入或拔出、確定接入或拔出的是USB設備和確定接入或拔出的USB設備的設備名稱、廠家信息和設備節點三個功能部分。本發明與現有技術相比具有以下優點一是實現USB設備插拔的實時識別,獲取到足夠多的設備信息;二是結合多種健康設備的實際情況,開發兼容多種設備的數據採集程序;其整體工藝過程簡單,識別原理可靠,信息數據採集準確,處理效果先進,可以應用於多種電子設備及電視機數位化設備中的USB插拔場合。
文檔編號G06F13/10GK103186487SQ20111045606
公開日2013年7月3日 申請日期2011年12月31日 優先權日2011年12月31日
發明者王金龍, 於忠清, 卜祥峰, 邵峰晶, 劉偉國, 王豔青 申請人:青島海爾軟體有限公司