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