本發(fā)明涉及智能網(wǎng)關(guān)嵌入式系統(tǒng)中的usb設(shè)備的控制技術(shù)領(lǐng)域,具體涉及一種usb設(shè)備的控制系統(tǒng)及控制方法。
背景技術(shù):
通用串行總線(usb)由于其高速的傳輸速度以及在行業(yè)內(nèi)的通用性,已經(jīng)成為嵌入式設(shè)備與其他設(shè)備通信的極為重要的方式。如手機通過usb與上位機連接后,可以高速的傳遞數(shù)據(jù),又可以用來充電等,使手持設(shè)備可以發(fā)揮存儲設(shè)備,無線網(wǎng)卡以及調(diào)試等多種功能。但是在智能網(wǎng)關(guān)嵌入式系統(tǒng)中的usb設(shè)備只能實現(xiàn)usb設(shè)備的掛載,不能實現(xiàn)諸如識別掛載的設(shè)備類型,卷標的讀取寫入,上報拔插時間給感興趣的模塊等其他的功能,不能夠滿足用戶需求,例如光貓只能對usb設(shè)備進行掛載,并不能進行過多的處理,而隨著光貓越來越智能化,用戶有更多智能化的需求,對usb設(shè)備的控制要求越高。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種usb設(shè)備的控制系統(tǒng)及控制方法,能夠?qū)崿F(xiàn)usb設(shè)備的控制管理功能。
為達到以上目的,本發(fā)明采取的技術(shù)方案是:
一種usb設(shè)備的控制系統(tǒng),包括:
底層驅(qū)動模塊,用于捕捉底層的usb事件,并根據(jù)usb事件的類型上報對應(yīng)的關(guān)鍵字,所述usb事件的類型包括設(shè)備類型識別、卷標讀寫、容量讀取和熱插拔事件;
監(jiān)控進程模塊,用于接收所述關(guān)鍵字,判斷所述關(guān)鍵字對應(yīng)的usb事件的類型,響應(yīng)所述usb事件,根據(jù)所述usb事件的類型與對應(yīng)模塊進行交互。
在上述技術(shù)方案的基礎(chǔ)上,所述底層驅(qū)動模塊捕捉到所述usb事件的類型是設(shè)備類型識別,則向所述監(jiān)控進程模塊發(fā)送存儲設(shè)備關(guān)鍵字或串口設(shè)備關(guān)鍵字,所述監(jiān)控進程模塊根據(jù)存儲設(shè)備關(guān)鍵字或串口設(shè)備關(guān)鍵字識別出設(shè)備類型是存儲設(shè)備或串口設(shè)備,并將設(shè)備類型發(fā)送給顯示設(shè)備。
在上述技術(shù)方案的基礎(chǔ)上,所述底層驅(qū)動模塊捕捉到所述usb事件的類型是卷標讀寫,則向所述監(jiān)控進程模塊發(fā)送卷標讀取關(guān)鍵字,所述監(jiān)控進程模塊根據(jù)卷標讀取關(guān)鍵字調(diào)用開源軟件讀取卷標的格式,根據(jù)卷標的格式調(diào)用移植軟件實現(xiàn)卷標的寫入。
在上述技術(shù)方案的基礎(chǔ)上,所述底層驅(qū)動模塊捕捉到所述usb事件的類型是容量讀取,則向所述監(jiān)控進程模塊發(fā)送容量讀取關(guān)鍵字,所述監(jiān)控進程模塊根據(jù)容量讀取關(guān)鍵字調(diào)用xml文件,寫入usb設(shè)備的容量信息、設(shè)備名稱信息和格式化類型信息。
在上述技術(shù)方案的基礎(chǔ)上,所述底層驅(qū)動模塊捕捉到所述usb事件的類型是熱插拔事件,則向所述監(jiān)控進程模塊發(fā)送熱插拔事件關(guān)鍵字,所述監(jiān)控進程模塊根據(jù)熱插拔事件關(guān)鍵字調(diào)用通信接口,上報所述熱插拔事件給感興趣的模塊。
一種usb設(shè)備的控制方法,具體步驟如下:
s1,底層驅(qū)動模塊捕捉底層的usb事件,所述usb事件的類型包括設(shè)備類型識別、卷標讀寫、容量讀取和熱插拔事件,根據(jù)usb事件的類型上報對應(yīng)的關(guān)鍵字;
s2,監(jiān)控進程模塊接收所述底層驅(qū)動模塊上報的關(guān)鍵字判斷usb事件的類型,根據(jù)usb事件的類型,調(diào)用相關(guān)模塊,執(zhí)行與usb事件對應(yīng)的功能。
在上述技術(shù)方案的基礎(chǔ)上,若所述usb事件的類型是設(shè)備類型識別,所述監(jiān)控進程模塊調(diào)用web顯示設(shè)備,顯示設(shè)備類型。
在上述技術(shù)方案的基礎(chǔ)上,若所述usb事件的類型是卷標讀寫,所述監(jiān)控進程模塊調(diào)用開源軟件和移植軟件,實現(xiàn)卷標的讀寫。
在上述技術(shù)方案的基礎(chǔ)上,若所述usb事件的類型是容量讀取,所述監(jiān)控進程模塊調(diào)用xml文件,將usb設(shè)備的容量信息、設(shè)備名稱信息和格式化類型信息寫入xml文件中。
在上述技術(shù)方案的基礎(chǔ)上,若所述usb事件的類型是熱插拔事件,所述監(jiān)控進程模塊調(diào)用socket通信接口,上報所述熱插拔事件給感興趣的模塊。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點在于:
本發(fā)明通過在usb設(shè)備中啟動一個監(jiān)控進程,對底層的usb事件進行監(jiān)控,對底層驅(qū)動上報的usb事件進行處理,相較于傳統(tǒng)嵌入式設(shè)備只能實現(xiàn)usb設(shè)備的掛載功能,本發(fā)明能夠?qū)崿F(xiàn)對usb設(shè)備的設(shè)備類型識別、卷標讀寫、容量讀取、熱插拔事件的控制管理功能,滿足用戶需要,適用范圍廣,操作方面。
附圖說明
圖1為本發(fā)明實施例中控制系統(tǒng)的結(jié)構(gòu)框圖;
圖2為本發(fā)明實施例中控制方法的流程圖。
具體實施方式
以下結(jié)合附圖及實施例對本發(fā)明作進一步詳細說明。
參見圖1所示,本發(fā)明實施例提供一種usb設(shè)備的控制系統(tǒng),包括:
底層驅(qū)動模塊,底層驅(qū)動模塊用于捕捉底層的usb事件,usb事件的類型包括設(shè)備類型識別、卷標讀寫、容量讀取和熱插拔事件,根據(jù)usb事件的類型上報對應(yīng)的關(guān)鍵字;
監(jiān)控進程模塊,監(jiān)控進程模塊用于接收關(guān)鍵字判斷出對應(yīng)的usb事件的類型,并響應(yīng)usb事件,根據(jù)usb事件的類型與對應(yīng)模塊進行交互。能夠?qū)崿F(xiàn)對usb設(shè)備的設(shè)備類型識別、卷標讀寫、容量讀取、熱插拔事件的控制管理功能,滿足用戶需要,適用范圍廣,操作方面。
底層驅(qū)動模塊捕捉到usb事件的類型是設(shè)備類型識別,則向監(jiān)控進程模塊發(fā)送存儲設(shè)備關(guān)鍵字或串口設(shè)備關(guān)鍵字,其中存儲設(shè)備關(guān)鍵字包括“ttyacm”,串口設(shè)備關(guān)鍵字包括“ttyusb”,監(jiān)控進程模塊根據(jù)“ttyacm”識別出設(shè)備類型是存儲設(shè)備,根據(jù)“ttyusb”識別出設(shè)備類型是串口設(shè)備,并將識別出的設(shè)備類型發(fā)送給web顯示設(shè)備呈現(xiàn)給用戶。
底層驅(qū)動模塊捕捉到usb事件的類型是卷標讀寫,則向監(jiān)控進程模塊發(fā)送卷標讀取關(guān)鍵字,卷標讀取關(guān)鍵字包括“l(fā)abel”,監(jiān)控進程模塊調(diào)用開源軟件blkid,開源軟件blkid實現(xiàn)卷標的讀取,識別出是fat32或ntfs格式的設(shè)備,對于fat32格式的設(shè)備,則調(diào)用移植軟件mlable來完成卷標的寫入,對于ntfs格式的設(shè)備,則調(diào)用移植軟件ntfslablee來完成卷標的寫入。
底層驅(qū)動模塊捕捉到usb事件的類型是容量讀取,則向監(jiān)控進程模塊發(fā)送容量讀取關(guān)鍵字,容量讀取關(guān)鍵字包括“storage”,監(jiān)控進程模塊根據(jù)容量讀取關(guān)鍵字調(diào)用xml文件,xml文件寫入usb設(shè)備的容量信息、設(shè)備名稱信息和格式化類型信息,供其他模塊使用。
底層驅(qū)動模塊捕捉到usb事件的類型是熱插拔事件,則向監(jiān)控進程模塊發(fā)送熱插拔事件關(guān)鍵字,熱插拔事件關(guān)鍵字包括“hotplus”,監(jiān)控進程模塊根據(jù)熱插拔事件關(guān)鍵字調(diào)用socket通信接口,上報熱插拔事件給感興趣的模塊。
一種usb設(shè)備的控制方法,具體步驟如下:
s1,底層驅(qū)動模塊捕捉底層的usb事件,usb事件的類型包括設(shè)備類型識別、卷標讀寫、容量讀取和插拔事件,根據(jù)usb事件的類型上報對應(yīng)的關(guān)鍵字;底層驅(qū)動模塊捕捉到usb事件的類型是設(shè)備類型識別,則向監(jiān)控進程模塊發(fā)送包括“ttyacm”或“ttyusb”的關(guān)鍵字;底層驅(qū)動模塊捕捉到usb事件的類型是卷標讀寫,則向監(jiān)控進程模塊發(fā)送包括“l(fā)abel”的關(guān)鍵字;底層驅(qū)動模塊捕捉到usb事件的類型是容量讀取,則向監(jiān)控進程模塊發(fā)送包括“storage”的關(guān)鍵字;底層驅(qū)動模塊捕捉到usb事件的類型是熱插拔事件,則向監(jiān)控進程模塊發(fā)送包括“hotplus”的關(guān)鍵字;
s2,監(jiān)控進程模塊接收底層驅(qū)動模塊上報的關(guān)鍵字判斷usb事件的類型,根據(jù)usb事件的類型,調(diào)用相關(guān)模塊,執(zhí)行與usb事件對應(yīng)的功能。若usb事件的類型是設(shè)備識別,則監(jiān)控進程模塊調(diào)用web顯示設(shè)備,顯示設(shè)備類型;若usb事件的類型是卷軸讀寫,則監(jiān)控進程模塊調(diào)用開源軟件識別卷標的格式,根據(jù)卷標的格式調(diào)用相應(yīng)的移植軟件,實現(xiàn)卷標的寫入;若usb事件的類型是容量讀取,則監(jiān)控進程模塊調(diào)用xml文件,將usb設(shè)備的容量信息、設(shè)備名稱信息和格式化類型信息寫入xml文件中;若usb事件的類型是熱插拔事件,則監(jiān)控進程模塊調(diào)用socket通信接口,上報熱插拔事件給感興趣的模塊。
本發(fā)明不局限于上述實施方式,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發(fā)明的保護范圍之內(nèi)。本說明書中未作詳細描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。