通常,一旦建立
GPRS通信,相應的串行端口就會變得繁忙,其他進程將無法訪問它,并且專用于單 DTU驅動程序。這是訪問GSM DTU的某些簡單功能(例如獲取信號強度,訪問電話簿等)的巨大障礙,除非有專用端口可訪問這些功能。不幸的是,并非所有 DTU都支持雙串行端口以同時訪問GPRS和其他
DTU功能。另外增加一個串行端口也會增加硬件開銷。
當代GSM / GPRS DTU的體系結構
每個GPRS / GSM DTU都有一個內部多路復用器,該多路復用器從串行端口接收命令,然后在內部傳遞到各個通道,例如電路交換數據,分組交換數據,狀態/控制,電話簿訪問等。基本上,客戶端應用程序與MUX通信(盡管這涉及以下幾個步驟)。大多數現代多路復用器均設計為支持CMUX協議(GSM07的一部分。10標準)在GSM / GPRS DTU和終端設備(TE)之間運行,并允許通過正常的串行異步接口同時進行多個會話(通道)。每個會話(通道)由字節流組成,這些字節流傳輸各種數據,例如語音、傳真、數據、SMS、CBS、電話簿維護、電池狀態、GPRS、USSD等。這允許將SMS和CBS在以下情況下傳輸到TE:數據連接正在進行中。許多其他組合也是可能的,包括數字語音。例如,可以結合SMS傳輸數字語音。每個通道都有自己的緩沖區管理和流控制機制。
Windows Embedded CE 6.0 GSM 7.10 MUX驅動程序
Windows Embedded CE 6.0支持GSM0710多路復用器驅動程序作為cellcore體系結構的組件,并且該多路復用器驅動程序是與cellcore體系結構可分離的組件。根據 DTU的功能,可以將通道作為虛擬串行端口訪問應用程序。通常,GSM DTU不會處于多路復用器模式。GPRS DTU多路復用器驅動程序將發送AT + CMUX命令以啟用多路復用器模式,然后驅動程序將發送SABM幀以請求通道。第一個通道是控制通道,其余通道是通信通道。這些通信通道公開為虛擬com端口。
將單DTU驅動程序與MUX集成
如上所述,一種在GSM DTU上執行多個同時操作的方法是使用MUX驅動程序公開的虛擬串行端口。進行GPRS數據通信有兩種方法。第一種方法是移植單 DTU驅動程序以通過虛擬串行端口建立GPRS數據通信,另一種方法是編寫自己的TSPI驅動程序來實現。對于這兩種情況,工程師都必須對 Windows Embedded CE 6.0驅動程序有很好的了解,并對TSPI驅動程序的工作原理有所了解。
開發專有的TSPI驅動程序
“ wince600 / public / common / oak / drivers / SAMPTSPI”目錄中提供了示例TSPI驅動程序。使用此驅動程序,可以開發專有的TSPI驅動程序。問題是開發時間,測試時間長。
移植Unimodem驅動程序
DTU驅動程序與MUX驅動程序集成在一起。由于MUX驅動程序可能不支持unimodem可能期望的某些IOCTL調用,因此需要移植unimodem驅動程序。移植單 DTU驅動程序不會花費時間,因為該驅動程序已經過開發和測試。
預期問題
多路復用器驅動程序提供虛擬串口。此多路復用器驅動程序被實現為普通的串行端口驅動程序,它必須處理來自單 DTU驅動程序的許多IOCTL調用。單 DTU將期待一個串行驅動程序,而有一個多路復用器驅動程序正在接受這些調用。可通過標準串行端口驅動程序API訪問這些IOCTL。不幸的是,多路復用器驅動程序不支持所有這些IOCTL調用。例如,考慮“ PurgeComm()” API。此功能可以丟棄指定通信資源的輸出或輸入緩沖區中的所有字符。但是這個API' 在多路復用器驅動程序中未實現相應的IOCTL。但是普通的串行端口驅動程序將支持此調用。因此,必須刪除unimodem驅動程序中的某些函數回調,或者必須在多路復用器驅動程序中實現某些API調用。
優點
- 同時進行數據連接,使用和訪問其他功能(例如SMS,地址簿等)。
- 可以編寫具有無縫語音和數據通信的自定義應用程序。
- cellcore體系結構上的語音通信支持在Windows CE專業許可中。
- 編寫用于語音通信的定制應用程序以及使用unimodem進行數據通信
- 將具有成本效益。