專利名稱:一種移動寬帶設備的通用驅動方法及驅動器的制作方法
技術領域:
本發明涉及移動通訊技術領域,特別是涉及一種移動寬帶設備的通用驅動方法及 驅動器。
背景技術:
當今,寬帶互聯網已經為人們提供了家庭娛樂,商務辦公等固定寬帶業務。但人們 對在任何地方,任何時間都能提供移動寬帶業務的需求越來越大。由于2G網絡存在帶寬窄 的問題,造成移動寬帶業務沒有大規模的推廣。現在,隨著3G網絡的發展,基于其高帶寬的 特性,移動寬帶業務已能夠滿足人們出行、移動辦公等日常工作和生活服務中的使用要求。目前,為移動寬帶業務提供的WWAN(Wireless Wide Area Network,無線廣域 網)設備終端通常采用 TD-SCDMA(Time Division-Synchronous CodeDivision Multiple Access,時分同步碼分多址)、WCDMA (Wideband CodeDivision Multiple Access,寬帶碼分 多址)和 CDMA2000 (Code Division MultipleAccess 2000,碼分多址 2000)三種不同制式 (標準)。對于呼叫、短信、電話本、數據業務等方面的業務控制,每種制式都為用戶提供一 套AT (Attention)指令集,和其WWAN設備交互進行業務控制;但這三套AT命令集是不完全 一樣的。另外,有時候,IHV(Ind印endent hardware vendor獨立硬件供應商)設備還可能 增加自己獨有的AT命令。這樣,三套不同的AT命令集,造成目前需要三套不同的設備驅動 (驅動器),使設備驅動缺乏通用性。因為要完成WWAN服務請求和應答,必須對每個WWAN 業務的0ID (Object Identifier,對象標識符)命令進行解析,映射成一個或者多個相應制 式的AT指令,另外,又要實現對一個或者多個AT命令響應數據進行組合,轉成符合WWAN服 務器的0ID響應。而目前0ID命令與AT命令之間的相互轉化工作是由設備驅動來完成的, 這樣設備驅動必然會對三種制式做三種不同的處理,也就無法保證設備通用性。圖1是現有設備驅動的驅動方法和系統,為了實現0ID業務的處理,在保證WWAN 設備不變的情況下,在設備驅動(驅動器)和WWAN設備之間增加一個AT端口來通訊,設備 驅動對0ID業務請求進行解析,把0ID業務分成單個或者多個的AT命令下發,然后同步等 待AT數據返回,最后把所收集的數據返回給WWAN服務器。另外,由于設備驅動器中的AT模塊和WWAN設備采用同步通訊方式,處理器需要等 待WWAN設備的同步響應,這樣就會造成設備驅動處理能力的降低。特別是在并發0ID處理 時,AT模塊的1/0處理有時候會發生阻塞情況。另外,AT模塊不僅要處理WWAN設備的響 應,而且要及時處理WWAN設備的主動上報,經常出現AT交錯問題,另外,還需要及時保證操 作系統狀態和WWAN設備狀態的一致。總之,AT方式的設備驅動系統穩定性差。
發明內容
本發明要解決的技術問題是提供一種移動寬帶設備的通用驅動方法及驅動器,用 以解決現有技術中設備驅動存在的通用性差、穩定性差的問題。為解決上述技術問題,一方面,本發明提供一種移動寬帶設備的通用驅動方法,所
3述方法包括以下步驟WWAN服務器發送0ID業務請求給驅動器;所述驅動器將所述0ID業務請求發送給WWAN設備;所述WWAN設備對所述0ID業務請求解析后進行響應,并將響應結果發送給所述驅 動器,由所述驅動器將所述響應結果發送給所述WWAN服務器。進一步,所述驅動器和WWAN設備之間的通訊方式為異步通訊。進一步,所述0ID業務請求包括同步0ID業務請求和異步0ID業務請求。進一步,當所述0ID業務請求為同步0ID業務請求時,所述驅動器從其適配器上獲 取所述0ID業務請求所需要的數據,并將該數據發送給所述WWAN服務器。進一步,當所述0ID業務請求為異步0ID業務請求時,所述驅動器通過異步通訊的 方式將所述0ID業務請求發送給WWAN設備。另一方面,本發明還提供一種移動寬帶設備的通用驅動器,所述驅動器包括WWAN服務模塊,用于接收WWAN服務器發送的0ID業務請求,以及將WWAN設備對所 述0ID業務請求的響應結果發送給所述WWAN服務器;協議轉換模塊,用于對接收到的所述0ID業務請求進行組包,以及對所述響應結 果進行解包;I/O管理模塊,用于所有I/O數據的緩存管理和狀態維護,實現所述驅動器和WWAN 設備之間的異步通訊。進一步,所述I/O管理模塊還包括并發控制子模塊,用于協調所述驅動器的并發下發能力和WWAN設備接收能力。進一步,所述0ID業務請求包括同步0ID業務請求和異步0ID業務請求。進一步,當所述0ID業務請求為同步0ID業務請求時,所述驅動器從其適配器上獲 取所述0ID業務請求所需要的數據,并將該數據發送給所述WWAN服務器。進一步,當所述0ID業務請求為異步0ID業務請求時,所述驅動器通過異步通訊的 方式將所述0ID業務請求發送給WWAN設備。本發明有益效果如下本發明通過把0ID業務的解析處理交給WWAN設備來實現,驅動器只具備透傳功 能,驅動器具備通用性,能夠適應不同制式的WWAN設備;刪除AT模塊,其I/O功能利用已有 的讀寫線程,簡化了已有的AT模塊中復雜的處理流程,保證設備驅動的穩定性和健壯性。
圖1是現有技術中移動寬帶設備驅動器的系統組成示意圖;圖2是本發明實施例中一種移動寬帶設備的通用驅動方法的流程圖;圖3是本發明實施例中一種移動寬帶設備的通用驅動方法實現自定義協議數據 下傳流程示意圖;圖4是本發明實施例中一種移動寬帶設備的通用驅動方法實現自定義協議數據 上傳流程示意圖;圖5是本發明實施例中一種移動寬帶設備的通用驅動器的結構示意圖。
具體實施例方式為了解決現有技術中設備驅動存在的通用性差、穩定性差的問題,本發明提供了 一種移動寬帶設備的通用驅動方法及驅動器,以下結合附圖以及實施例,對本發明進行進 一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不限定本發 明。本發明的基本思想是擯棄AT端口傳輸,利用已有的NDIS (Network Driverlnterface Specification,網絡驅動接口規范)端口,把0ID業務請求傳遞給WWAN 設備,讓WWAN設備去解析0ID業務請求并將響應結果異步返回。這樣,設備驅動(驅動 器)就不需要關心0ID的解析,只是作為0ID業務請求和響應的數據中轉器,在WWAN設備 和WWAN服務器之間構造了一個虛擬的透傳通道。為了實現這樣一個虛擬的透傳通道,增加 協議轉換模塊來保證設備驅動和WWAN設備之間的通信。另外,設備驅動器和WWAN設備之 間有關0ID數據業務的通訊方式從同步改為異步,并增加一種自定義的通訊協議協調異步 通訊機制,把需要維護的一些數據傳遞給WWAN設備保存,在響應時同時返回,減少設備驅 動代碼的耦合度,增加了設備驅動的穩定性和健壯性。如圖2所示,本發明實施例涉及一種移動寬帶設備的通用驅動方法,包括以下步 驟步驟S201,WWAN服務器發送0ID業務請求給驅動器。步驟S202,驅動器將0ID業務請求發送給WWAN設備。由于WWAN服務器與驅動器、 驅動器與WWAN設備之間的通信協議并不相同,因此,驅動器在接收到0ID業務請求數據之 后,會對該數據進行組包,組包后的數據符合驅動器與WWAN設備之間的通信協議要求,然 后將組包后的數據發送給WWAN設備。步驟S203,WWAN設備對0ID業務請求解析后進行響應,并將響應結果發送給驅動 器,由驅動器將響應結果發送給WWAN服務器。WWAN設備對0ID業務請求解析,是指WWAN 設備根據其采用的標準對0ID業務請求進行處理,獲取相應的數據,例如,采用TD-SCDMA的 WWAN設備,將0ID業務請求映射成一個或者多個相應制式的AT指令。WWAN設備對解析后 的0ID業務請求進行響應,是指將解析后得到的數據進行組合,得到響應結果。例如采用 TD-SCDMA的WWAN設備,根據解析后的AT指令,獲取各個AT指令相應的數據,并對一個或 者多個AT命令響應數據進行組合,得到響應結果。WWAN設備將響應結果發送給驅動器,由 驅動器將其轉成符合與WWAN服務器通信要求的0ID響應,發給WWAN服務器。本實施例的 WWAN設備是指具有對0ID業務請求進行解析功能的WWAN設備。本實施例中,實際上包括數據下傳和數據上傳兩個流程,下面結合圖3、圖4分別 進行詳細說明。如圖3所示,本實施例中一種移動寬帶設備的通用驅動方法實現自定義協議數據 下傳流程包括以下步驟步驟S301,驅動器接收WWAN服務器發送0ID業務請求。步驟S302,判斷接收數據的數據類型,若為0ID數據,則轉步驟S304,若為IP數據 包,則轉步驟S303。 步驟S303,對于IP數據包,驅動器只傳輸,不響應,因此,將IP數據包發送給IP數 據過濾模塊,然后轉步驟S308。
步驟S304,對于0ID數據,進一步判斷是否為同步0ID數據,即判斷接收的0ID業 務請求是同步0ID業務請求,還是異步0ID業務請求,若為同步0ID業務請求,則轉步驟 S305 ;若為異步0ID業務請求,則轉步驟S307。步驟S305,由于同步0ID業務請求所需要的數據通常不具有實時性,比較固定,不 變。因此,同步0ID業務請求所需要的數據是在設備驅動本地進行維護,可以從適配器維護 的內存填入例程返回參數。步驟S306,在結束例程時,將同步響應0ID業務請求的數據同步返回給WWAN服務 器,實現WWAN服務器和驅動器之間的狀態交互。步驟S307,對于異步0ID業務請求,在異步響應0ID業務請求后,由于其所申請的 數據需要從WWAN設備中獲取,一般不可能在例程結束時返回所需的數據,比如查詢網絡操 作。因此,只是在例程結束時,返回一個消息,而不返回0ID業務請求所需的數據,實現WWAN 服務器和驅動器之間的狀態交互。然后,對異步響應0ID業務請求進行自定義協議組包,本 實施例的自定義協議組包是指將異步響應0ID業務請求轉換為符合驅動器與WWAN設備進 行通信要求的數據格式。步驟S308,對異步響應0ID業務請求進行自定義協議組包之后,直接傳遞給I./0 管理模塊,讓其實現異步發送和異步響應。另外,對于接收到IP數據過濾模塊發送的IP數 據包,I. /0管理模塊直接將其發送給WWAN設備。如圖4所示,本實施例中一種移動寬帶設備的通用驅動方法實現自定義協議數據 上傳流程包括以下步驟步驟S401,WWAN設備對0ID業務請求解析后進行響應,并將響應結果發送給驅動 器。對于WWAN設備的任何返回(響應結果),驅動器都需要盡快的讀取并處理,所以創建一 個單獨內核系統線程實現該任務。在讀取WWAN設備的0ID業務數據時,用內核的系統線程 來替代內核的循環讀取AT端口,具有及時性的優點。由于系統線程的調度優先級比較高, 所以0ID業務數據的響應對于WWAN服務器來說也更為及時,這能夠更好的實現WWAN設備 和WWAN服務器之間的狀態維護。步驟S402,驅動器先通過讀線程讀取數據,根據數據的狀態存入內存內,由I/O管 理模塊進行統一調度。I/O管理模塊為每個I/O數據申請一塊內存,組成一個I/O鏈表進行 緩存維護。每一塊內存都對應有以下五種狀態的一種,I/O管理模塊根據各個內存的狀態 對其進行統一調度,實現異步發送和異步響應。五種狀態具體為1)空狀態,表明鏈表成員空還沒有使用;2)并發控制狀態,表明鏈表成員被使用,但是還于并發控制子模塊調度狀態;判 斷發送的并發數有沒有超過設置的并發數;3)等待USB發送狀態,表明鏈表成員被使用,且被并發控制子模塊調度,現等待寫 線程調度;4)發送完畢等待響應狀態,表明鏈表成員等待和響應數據進行匹配;5)匹配完成狀態,表明鏈表成員的數據和響應數據匹配成功。步驟S403,由于WWAN設備返回的數據有IP返回包,服務控制數據和0ID響應數 據,對這些不同的數據類型需要進行分類處理。因此,還需要判斷WWAN設備的返回數據是 否屬于0ID響應數據,如果是,則轉步驟S404,如果否,則轉步驟S405。
6
步驟S404,由于0ID響應數據的格式是基于驅動器和WWAN設備進行通信的一種自 定義的通訊協議,因此,需要對0ID響應數據進行解包處理。此處的自定義的通訊協議是指 滿足驅動器和WWAN設備進行通信的任何一種協議。步驟S405,對相應數據進行相應的處理,是指對IP返回包,服務控制數據進行相 應的處理,具體為對于IP返回包,直接上傳給WWAN服務器;對于服務控制數據,啟動與服 務控制數據對應的服務,與WWAN設備進行通信。步驟S406,解包之后的0ID響應數據還需要對主動上報數據和異步響應數據進行 分類處理。對異步響應數據,需要判斷是否在預先設定的異步響應處理時間范圍內,如果 在,則將數據組包后發送給WWAN服務器;如果超時,則將內存直接變為空狀態。對主動上報 數據,WWAN設備按照該自定義協議返回響應結果后,返回信息加上本地網絡適配器的指針 信息(WWAN服務器的地址信息)就可以滿足設備驅動主動向WWAN服務器發送主動請求的 所有信息了。設備驅動主動向WWAN服務器發送主動請求,是指WWAN設備有時需要主動向 WWAN服務器發送0ID數據,而不是響應WWAN服務器發送的0ID業務請求,這種情況下,WWAN 設備發送0ID數據給驅動器,驅動器接收0ID數據之后,進行解包,解包后,將接收到的信息 加上WWAN服務器的地址信息,進行組包,然后發送給WWAN服務器。為實現上述驅動方法,本發明還涉及一種移動寬帶設備的通用驅動器,如圖5所 示,所述驅動器包括WWAN服務模塊501,用于接收WWAN服務器發送的0ID業務請求,以及將WWAN設備 對0ID業務請求的響應結果發送給WWAN服務器;協議轉換模塊502,用于對接收到的0ID業務請求進行組包,以及對響應結果進行 解包;I/O管理模塊503,用于所有I/O數據的緩存管理和狀態維護,實現驅動器和WWAN 設備之間的異步通訊。WWAN服務模塊501,作為設備驅動器與WWAN服務器之間的I/O接口,負責接收 WWAN服務器的服務請求,以及及時向WWAN服務器發送接收到的WWAN設備數據的異步響應, 或者主動上報0ID數據給WWAN服務器。該模塊處理數據有發送的IP包、接收的IP包,同 步0ID請求、異步0ID請求以及WWAN設備返回的數據等等。NDIS6. 2驅動接口為設備驅動中的IP數據和0ID業務數據提供了相應的處理例 程,但是并沒有區分同步0ID業務請求和異步0ID業務請求,該區分處理由I/O管理模塊 503實現。協議轉換模塊502,用于對WWAN服務器請求中的異步0ID業務請求數據的組包和 對WWAN設備返回有關異步0ID數據返回包的解包。對WWAN服務器請求中的異步0ID業務 請求數據的組包,是指將異步0ID業務請求數據轉換成WWAN設備可讀的數據格式;對WWAN 設備返回有關異步0ID數據返回包(響應結果)的解包是指提取WWAN服務器的地址信息, 并將異步0ID數據返回包轉化成WWAN服務器可以讀取的數據格式。0ID業務請求數據涉及兩部分內容,即具體的業務請求實體和表明該業務請求 的相關信息。一個0ID的業務請求實體對應一個0ID結構體,用于保存某個具體0ID業務 的狀態和數據。業務請求的相關信息具體有Requestld,RequestHandle等等。Requestld 和RequestHandle這些信息表明業務請求實體的數據源地址,在設備驅動收到WWAN設備的
7返回后,設備驅動主動向WWAN服務器發起一個主動的消息請求時,需要用到上述的相關信 息作為主動發起的目的地址。WWAN設備需要解析和返回數據,只需上述的業務請求實體和簡單的0ID信息,如 0ID類型,0ID RequestType,就可以實現WWAN設備和設備驅動之間的數據交互。Requestld 和RequestHandle也作為通訊協議的一部分下發給WWAN設備進行保存和維護返回。這樣 在設備驅動中就無需為每個0ID業務請求維護任何信息,簡化了設備驅動的I/O處理邏輯, 減少了代碼耦合度。另外考慮到32位系統和64位系統的兼容性,在自定義協議中,特別規定為指針 (WWAN服務器的地址信息)統一申請8字節大小的空間進行數據保存。同時,WWAN設備按 照該自定義協議返回響應結果后,返回信息加上本地網絡適配器的指針信息(WWAN服務器 的地址信息)就可以滿足設備驅動主動向WWAN服務器發送主動請求的所有信息了。I/O管理模塊503,用于功能設備驅動中所有I/O數據緩存管理和狀態維護。該模 塊自定義一個有序的結構體(包括0ID的業務請求實體對應得0ID結構體和指針信息),或 者說是模型,為每個I/O數據申請一塊內存,組成一個I/O鏈表進行緩存維護。在上述的這 個自定義結構體中自定義一套狀態,并進行相應的狀態維護,實現I/O隊列中每個成員的 有效管理。對于自定義協議包裝的0ID數據,其I/O處理完全可以利用已有的讀寫線程來實 現,緩存處理和狀態維護可以交給I/O管理模塊503。但已有的I/O管理模塊在維護下發數 據狀態時,是按照最大并發能力設計的。為了能夠適應各種并發0ID處理能力不同的WWAN 設備,為此,在該I/O管理模塊503內部增加0ID并發處理的并發控制子模塊5031,用來協 調驅動器的并發下發能力和WWAN設備接收能力之間的不同。例如,調驅動器的并發下發 能力為30,而WWAN設備接收能力為10,如果驅動器以最大并發能力發送0ID數據,就會形 成數據阻塞情況。而本實施例中,并發控制子模塊5031的相關配置參數在INF (Device IN Formation File)文件中配置。就可以實現驅動器的并發下發能力和WWAN設備接收能力的 統一。這樣也就不會在需要更改0ID并發處理能力時,需要重新編譯設備驅動程序。目前,最大并發能力處理系統,內存內各個數據塊的狀態包括以下幾種狀態1)空狀態,表明鏈表成員空還沒有使用;2)等待USB發送狀態,表明鏈表成員被使用,等待寫線程調度;3)發送完畢等待響應狀態,表明鏈表成員等待和響應數據進行匹配;4)匹配完成狀態,表明鏈表成員的數據和響應數據匹配成功。由于增加了并發能力的控制,因此,需要增加一種狀態用于維護,加在上述狀態 ⑴和⑵之間,最后內存內各個數據塊的狀態有1)空狀態,表明鏈表成員空還沒有使用;2)并發控制狀態,表明鏈表成員被使用,但是還處理并發控制子模塊調度狀態; 判斷發送的并發數有沒有超過設置的并發數。3)等待USB發送狀態,表明鏈表成員被使用,且被并發控制子模塊調度,現等待寫 線程調度;4)發送完畢等待響應狀態,表明鏈表成員等待和響應數據進行匹配;5)匹配完成狀態,表明鏈表成員的數據和響應數據匹配成功。
I/O管理模塊503根據內存內各個數據塊的狀態對其進行調度,例如,對于空狀態 的數據塊,在接收0ID數據時,調度使用該數據塊;對于并發控制狀態的數據塊,判斷發送 的并發數有沒有超過設置的并發數,根據設置的并發數調整其狀態;對于等待USB發送狀 態的數據塊,在寫線程時對其進行調度,發送0ID數據;對于發送完畢等待響應狀態的數據 塊,在發送完數據后,將其狀態修改為匹配完成狀態;對于匹配完成狀態的數據塊,將其狀 態修改為空狀態。由上述實施例可以看出,本發明通過把0ID業務的解析處理交給WWAN設備來實 現,驅動器只具備透傳功能,驅動器具備通用性,能夠適應不同制式的WWAN設備;刪除AT模 塊,其I/O功能利用已有的讀寫線程,簡化了已有的AT模塊中復雜的處理流程,保證設備驅 動的穩定性和健壯性;在增加并發能力控制子模塊后,通過協調驅動器的并發下發能力和 WWAN設備接收能力,可以不用擔心WWAN設備的并發接收能力,并且,保證WWAN設備作出的 響應或者主動上報及時返回到WWAN服務器上。盡管為示例目的,已經公開了本發明的優選實施例,本領域的技術人員將意識到 各種改進、增加和取代也是可能的,因此,本發明的范圍應當不限于上述實施例。
權利要求
一種移動寬帶設備的通用驅動方法,其特征在于,所述方法包括以下步驟WWAN服務器發送OID業務請求給驅動器;所述驅動器將所述OID業務請求發送給WWAN設備;所述WWAN設備對所述OID業務請求解析后進行響應,并將響應結果發送給所述驅動器,由所述驅動器將所述響應結果發送給所述WWAN服務器。
2.如權利要求1所述的移動寬帶設備的通用驅動方法,其特征在于,所述驅動器和 WWAN設備之間的通訊方式為異步通訊。
3.如權利要求1所述的移動寬帶設備的通用驅動方法,其特征在于,所述OID業務請求 包括同步OID業務請求和異步OID業務請求。
4.如權利要求3所述的移動寬帶設備的通用驅動方法,其特征在于,當所述OID業務請 求為同步OID業務請求時,所述驅動器從其適配器上獲取所述OID業務請求所需要的數據, 并將該數據發送給所述WffAN服務器。
5.如權利要求3所述的移動寬帶設備的通用驅動方法,其特征在于,當所述OID業務 請求為異步OID業務請求時,所述驅動器通過異步通訊的方式將所述OID業務請求發送給 WffAN設備。
6.一種移動寬帶設備的通用驅動器,其特征在于,所述驅動器包括WWAN服務模塊,用于接收WffAN服務器發送的OID業務請求,以及將WffAN設備對所述 OID業務請求的響應結果發送給所述WffAN服務器;協議轉換模塊,用于對接收到的所述OID業務請求進行組包,以及對所述響應結果進 行解包;I/O管理模塊,用于所有I/O數據的緩存管理和狀態維護,實現所述驅動器和WffAN設備 之間的異步通訊。
7.如權利要求6所述的移動寬帶設備的通用驅動器,其特征在于,所述I/O管理模塊還 包括并發控制子模塊,用于協調所述驅動器的并發下發能力和WWAN設備接收能力。
8.如權利要求6所述的移動寬帶設備的通用驅動器,其特征在于,所述OID業務請求包 括同步OID業務請求和異步OID業務請求。
9.如權利要求8所述的移動寬帶設備的通用驅動器,其特征在于,當所述OID業務請求 為同步OID業務請求時,所述驅動器從其適配器上獲取所述OID業務請求所需要的數據,并 將該數據發送給所述WWAN服務器。
10.如權利要求8所述的移動寬帶設備的通用驅動器,其特征在于,當所述OID業務 請求為異步OID業務請求時,所述驅動器通過異步通訊的方式將所述OID業務請求發送給 WffAN設備。
全文摘要
本發明公開了一種移動寬帶設備的通用驅動方法及驅動器,所述方法包括以下步驟WWAN服務器發送OID業務請求給驅動器;所述驅動器將所述OID業務請求發送給WWAN設備;所述WWAN設備對所述OID業務請求解析后進行響應,并將響應結果發送給所述驅動器,由所述驅動器將所述響應結果發送給所述WWAN服務器。本發明通過把OID業務的解析處理交給WWAN設備來實現,驅動器只具備透傳功能,驅動器具備通用性,能夠適應不同制式的WWAN設備;刪除AT模塊,其I/O功能利用已有的讀寫線程,簡化了已有的AT模塊中復雜的處理流程,保證設備驅動的穩定性和健壯性。
文檔編號G06F9/44GK101867565SQ201010145288
公開日2010年10月20日 申請日期2010年4月13日 優先權日2010年4月13日
發明者左釗, 田治兵, 白潔, 郭慶吉, 陳飛雄, 馬少峰 申請人:中興通訊股份有限公司