Gobi QCMB-API MBIM M2M

具備開放/客製化特色 MBIM增進M2M應用互通性

2014-07-28
機器對機器(M2M)是一種以機器終端智慧互動為核心,經由網路實現的應用與服務;透過在機器內部嵌入無線通訊模組,以無線通訊等為接入手段,為客戶提供綜合的資訊化解決方案,滿足客戶對監控、指揮調度、資料獲取和測量等方面的資訊化需求。
傳統的M2M應用開發都是基於AT(Attention)指令集,但是隨著產業的發展日益蓬勃,愈來愈多新的應用程式開發介面(API)也相繼問世,例如高通Gobi QCMB-API(Qualcomm Gobi Connection Management API)和基於MBIM(Mobile Broadband Interface Model)協議的API。以下將介紹各種M2M API的基本架構,並著重探討新興的高通Gobi QCMB-API和基於MBIM協議的API。

AT指令集缺乏設備互通性

AT指令集是從終端設備(Terminal Equipment, TE)或資料終端設備(Data Terminal Equipment, DTE)向終端適配器(Terminal Adapter, TA)或資料電路終端設備(Data Circuit Terminal Equipment, DCE)發送的。AT指令可分為標準AT指令和廠商自訂AT指令兩種,使用者可透過一系列的AT指令進行呼叫、短訊、電話本、資料業務和傳真等方面的控制。

不過,AT指令集具有明顯的局限性,由於廠商自訂AT指令各不相同,所以基於AT指令而開發的應用,只能用於該廠商的設備,甚至是該廠商的某一款設備,無法做到相容其他廠家的設備,導致重複開發、維護,效率低的問題。

考量上述的問題,新一代M2M API工具遂導入許多新功能和設計概念。

QCMB-API強化開發環境支援

圖1 Gobi QCMB-API開發環境

Gobi QCMB-API為高通專有方案,用戶可利用這些API和相容Gobi系列處理器的設備進行通訊,同時,用戶亦可在高通網站下載軟體開發套件(SDK),支援Windows和Linux開發環境的應用程式設計。如圖1所示,Gobi QCMB-API使用Gobi API SDK提供的QMI(Qualcomm Messaging Interface)介面,這些介面定義在C/C++的一系列標頭檔裡,和一個庫檔。

下載Gobi API SDK後運行安裝檔,安裝完後將看見圖2所示目錄: 內容包括sample(GobiSampleDM)、Gobi API的說明文檔(GobiConnection MgmtAPI.pdf)、API的標頭檔(*.h)、庫檔(GobiConnectionMgmt)和開發檔實例代碼(Gobi3000Translation)。

圖2 Gobi API SDK目錄

後續進入Gobi QCMB-API開發階段,Gobi QCMB-API可涵蓋設備檢測連接和各個服務,如表1所示。Gobi QCMB-API的每個API都遵循可選的輸入/輸出參數、函數超時參數,以及輸入/輸出陣列等參數組合,這些陣列皆採用由一系列TLV三元組組成的QMI訊息結構(圖3~4)。

表1 Gobi QCMB-API支援服務

Gobi QCMB-API的函數原型,如圖5所示。相較於AT指令集,Gobi QCMB-API以函數介面的形式讓使用者更方便且容易使用,對採用該公司晶片的廠商來說,基於QCMB-API的應用性更廣一些,所有支援Gobi的設備都可使用,因而提高一定的工作效率;但是由於只能用在相容Gobi的設備上,無法做到其他系統通用的地步,還是有一定的局限性。

圖3 TLV三元組協議示意圖

MBIM提供標準化的M2M API

相較於單家廠商供應的API有其局限性,MBIM則是另一種更開放的解決方案。其為英特爾(Intel)、微軟(Microsoft)等多家通用序列匯流排開發者論壇(USB-IF)成員提出的一個新介面標準,伴隨著行動寬頻的發展,在一般筆電/超輕薄筆電(Ultrabook)、平板裝置等行動運算裝置中已廣泛應用。

MBIM統一行動寬頻設備(USB資料卡/上網卡、NGFF資料卡等)和個人電腦(PC)端的介面標準,數據機(Modem)開發廠商將不用再提供驅動程式,如目前Windows 8作業系統已經原生支援,而Linux在3.8版本之後也會支持。

事實上,自Windows 7作業系統開始,微軟就引進系統內建的行動寬頻設備管理工具,即WWAN管理介面,安裝WWAN並驅動後,系統WWAN管理介面會映射出該資料卡對應WWAN的Profile,使用者從這個系統管理介面可發起WWAN撥號或進行PIN碼管理。

Windows 8則擴展這個系統內建管理介面的功能,允許更多的操作,如SMS、Phonebook、STK、USSD管理等,還允許協力廠商開發自有功能,並顯示到這個管理介面,MBIM模型就是針對這種情況定義的新介面規範。

MBIM基於通訊類網路控制模型的子類,可做為主機和USB設備之間的協定,進而延伸網路控制模型。

MBIM API可從微軟官網下載,其在整個開發架構中所處的位置如圖6所示。MBIM API提供多種功能,不僅能滿足基本開發需求,也可支援廠商自訂的功能,如以下例子:

設備管理:短訊的設備支援、SIM卡訂閱的詳細資訊和設備到達/刪除通知。
無線狀態管理:查詢軟硬體無線狀態、軟體無線開關和訊號強度通知。
連接管理:連接/斷開操作、手動註冊/掃描和配置上下文。
配置管理:支援其他品牌。
短訊、電話本操作:包括增加、刪除和修改等。
PIN碼管理:PIN碼開啟、關閉與狀態查詢。
特定服務:透過API啟用供應商的特定服務。td>
供應商自訂功能:提供API實現供應商自訂功能,WWAN服務提供和行動寬頻驅動通訊的通道如圖7所示;MBIM API物件模型則如圖8所示。從圖8可發現,行動寬頻API庫做為應用程式的一部分運行,API定義三種類型的介面,設計人員可組織並實現自己想要的功能。
管理物件介面:此為物件結構的基礎節點,提供枚舉物件的方法和變更通知的註冊機制。代碼示例如下:

//初始化介面管理 hr=CoCreateInstance(CLSID_MbnInterfaceManager, NULL, CLSCTX _ALL, IID_IMbnInterfaceManager, (void**)&pMbnInterfaceMgr); //枚舉對象 hr=pMbnInterfaceMgr->GetInterface (InterfaceID, &pMbnInterface); //註冊通知的回檔介面 hr=pMbnInterfaceMgr->QueryInterface (IID_IConnectionPointContainer, reinterpret_cast(&pcpc)); hr=pcpc->FindConnectionPoint(IID_IMbnRegistrationEvents, &pcp); hr=pcp->Advise(pCTestMbnSinks, &dwCookie);

函數物件介面:提供管理行動寬頻功能的方法,基於功能分為多個介面,示例代碼如下:

// Get and Set method call pMbnRegister ->GetRegisterState(&RegisterState); pMbnRegister->SetRegisterMode (MBN_REGISTER_MODE_MANUAL, providerID, 0, &ReqId);

回檔介面:主要由接收通知的程式來實現回檔介面,處理非同步作業執行完成和一些狀態的改變通知,示例代碼如下:

// Callback functions OnSetRegisterModeComplete(newObject, reqID, Status) {// Call back function on set operation completion} OnRegisterStateChange(newObject) {//Callback function to notify about register state change}

基於MBIM協定開發出的程式,可用於所有支援MBIM協定的模組,對於使用者來說,不僅能大幅減少適應不同廠家模組的時間,提高工作效率,亦可為終端使用者提供統一的用戶體驗。隨著Windows 7和Windows 8的普及,以及MBIM協定愈來愈高的支援能力,基於此種開發介面的M2M應用可望與日俱增。

綜上所述,基於AT指令集的應用開發局限性最大,而基於MBIM協議的開發應用性更廣,相信在愈來愈多的廠商支援MBIM協定的請況下,基於MBIM協定應用開發將日益普遍,真正實現開發一套應用適用所有設備的概念,而這也是推展M2M應用的一個重要趨勢。

(本文作者任職於芯訊通)

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!