`

原创翻译 通过拨号上网的Windows CE6.0 GPRS连接II

阅读更多

介绍
Windows Embedded CE可以通过CellCore架构(蜂窝无线通信系统TAPI服务提供者)和Telephony API(TAPI 2.0 Unimodem 驱动)提供GPRS通信。CellCore架构是一个高级特性的架构,它对GSM调制解调器的功能要求较高。不幸的是,不是所有的调制解调器都支持CellCore架构要求的所有特性。并且由于软硬件的价格限制,一些应用并不倾向采用具有高级特性的调制解调器。在这些情况下,CellCore架构不是一个好选择,应用可以使用Windows CE提供的Telephony API做为替代。使用TAPI不是直接了当的,它有一些限制需要解决。本文着重于解决这些限制。

面向的读者
GPRS连接文章的第一部分(在Windows CE 6.0中使用GPRS连接)着重说明了如何通过拨号网络来建立GPRS数据连接。
该文章的读者提出了一些问题,比如:
在数据连接有效时如何发送短消息?
如何访问SIM卡上的地址簿或者如何获取信号强度?
对于以上所有问题和类似的问题,有一个单一的解决方法。本文将着重说明此方法及其实现。本文适合于许多类型的读者,包括工程师、经理和wince爱好者,如果他们希望在数据连接有效时同时进行一些并行的工作,例如信号强度检测、地址簿查询等。
如果工程师只对通过拨号网络的GPRS数据通信感兴趣,则可以阅读在Windows CE 6.0中使用GPRS连接这篇文章。

范围
本文的范围限于支持CMUX规约(GSM07.10标准的一部分)的调制解调器。

Telephony API
Telephony API(TAPI 2.0)被开发出来的目的是通过基于AT命令的调制解调器建立数据连接。由于GSM调制解调器基于AT命令,TAPI被用于建立GPRS数据连接。通过使用RAS API,GPRS连接可以被建立。

图1. TAPI结构


Telephony API使用通用调制解调器驱动(AT命令调制解调器的TSP)来建立GPRS连接。Unimodem使用串口驱动来访问调制解调器。请参考在Windows CE 6.0中使用GPRS连接这篇文章来获得关于使用Telephony API的GPRS数据通信方面的更多信息。

Unimodem结构的限制
通常当GPRS通信被建立后,其相应的串口状态为忙,其它进程不能对它访问,该串口只被用于unimodem驱动。这对于使用GSM调制解调器的一些简单功能,像获取信号强度、访问电话本等来说是一个大障碍,除非有一个专用的端口用于这些功能。不幸的是不是所有的调制解调器都有双串口来支持同时使用GPRS和其它的一些调制解调器功能。并且添加一个串口将增加硬件的费用开销。以下部分将说明现在的GPRS调制解调器的结构和如何使用调制解调器内提供的内部多路复用器来解决这些限制问题。

目前的GSM/GPRS调制解调器结构

图2. GSM调制解调器的多路复用器


图2绘出了GSM/GPRS调制解调器的结构。如上所示,每个GPRS/GSM调制解调器都有一个内部多路复用器,该复用器从串口获取命令并传送到对应的信道,如电路交换数据、包交换数据、状态/控制和访问电话号码簿等。基本上,客户应用程序和MUX进行通信(下面将说明其中涉及到的一些步骤)。现在大多数的多路复用器都被设计成支持CMUX协议(GSM07.10标准的一部分),它们在GSM/GPRS调制解调器和终端设备(TE)之间运作,允许在一个通常的异步串行接口上同时存在一些过程(信道)。每个过程(信道)包含有字节流来传送各种数据,例如语音、传真、短信、信元广播服务、电话号码簿的维护、电池状态、GPRS和USSD等。这将允许在保持数据连接的同时将短信和信元广播服务传送给终端设备。许多其它组合也是可能的,包括数字语音。例如可以传送数字语音和短信的组合。每个信道都有自己的缓冲区管理和流控制机制。CMUX规约最多支持64个这样的信道。

Windows Embedded CE 6.0 GSM 7.10 MUX驱动
Windows Embedded CE 6.0在CellCore架构中支持GSM 7.10多路复用器驱动组件,此驱动对于CellCore架构来说是可分离的。对于应用程序来说,根据调制解调器的功能,这些信道可以被当作虚拟串口来访问。通常GSM调制解调器不在多路复用器模式下工作。GSM0710多路复用器驱动会发送AT+CMUX命令使多路复用器模式可用,之后驱动会发送SABM帧来请求信道。第一个信道是控制信道,剩下的信道是通信信道。这些信道被视为虚拟COM口。图3显示了多路复用器可用的GSM调制解调器和Windows CE设备之间的接口。



图3. GSM调制解调器和Windows CE多路复用器驱动的接口

将unimodem驱动和MUX集成
在GSM调制解调器上同时进行若干上面提到的操作的一种方法,就是使用MUX驱动提供的虚拟串口。有两种方式可以进行GPRS数据通信。第一种方法是移植unimodem驱动来用虚拟串口建立GPRS数据通信,另一种方法是写自己的TSPI驱动来做同样的事。两种情形都需要工程师较好地理解Windows Embedded CE 6.0的GSM07.10驱动和TSPI驱动的工作原理。

开发自有的TSPI驱动
在wince600/public/common /oak/ drivers /SAMPTSPI目录下可以找到TSPI的示例驱动程序。自己的TSPI驱动可以在此驱动上开发。问题是开发和测试时间会很长。

移植Unimodem驱动
图4显示了如何可以将Unimodem驱动与MUX驱动结合。因为MUX驱动可能不支持unimodem可能会需要的一些IOCTL调用,所以unimodem驱动需要被移植。移植unimodem驱动不需要花很多时间,因为这个驱动是已开发好并被测试过的。

将会遇到的问题
GSM7.10多路复用器驱动提供了虚拟串行端口。此驱动被实现为一个通常的串口驱动,并需要处理许多来自unimodem驱动的IOCTL调用。Unimodem期望打交道的对象是个串口驱动,而实际上是多路复用器驱动接收了这些调用。这些IOCTL被通过标准的串口驱动API访问。不幸的是多路复用器驱动不支持所有的这些IOCTL调用。例如urgeComm()这个API。此函数会丢弃指定的通信资源中的所有输入和输出缓冲区的字符。但是与此API对应的IOCTL在多路复用器驱动中没有实现。而通常的串口驱动会支持此调用。所以unimodem驱动的一些函数要被移除,或者多路复用器驱动要实现一些API调用。



图4. 多路复用器上的TAPI

收益
数据传输和其它一些功能,如短信、地址簿等,可以同时进行。


可以写定制化的应用程序来实现无缝化的语音和数据通信。

CellCore架构中的语音通信支持被包含在Windows CE professional license里。


为语音通信写定制化的应用程序并用unimodem实现数据传输将会节省费用开销。


总结
如上所述一个多路复用器可用的GPRS调制解调器可以在被用于发送数据的同时也被用于发送短信,访问电话号码簿等。

分享到:
评论

相关推荐

    拨号上网 源码 in vc6.0

    拨号上网技术在计算机网络发展初期占据着重要地位,它是一种通过电话线连接到互联网的服务。在本项目中,我们关注的是使用Visual C++ 6.0(VC6.0)进行拨号上网的源码实现。Visual C++ 6.0是微软推出的一款经典集成...

    GPRS+蓝牙拨号上网

    标题 "GPRS+蓝牙拨号上网" 涉及到的是早期移动通信技术中的两种关键技术:GPRS(General Packet Radio Service)和蓝牙(Bluetooth),它们共同用于实现通过手机连接计算机进行互联网访问。以下是对这两个技术及其...

    gprs拨号上网具体步骤

    通过上述步骤,你应该能成功设置并使用GPRS拨号上网。尽管现代技术已远超GPRS,但了解这一历史性的移动数据技术仍然有其价值,特别是在理解移动通信演进的过程中。希望这个文档能为你提供必要的指导。

    GPRS拨号上网配置详细过程

    在Windows CE(简称WinCE)操作系统中,GPRS(General Packet Radio Service)拨号上网是一项重要的功能,允许设备通过移动网络连接到互联网。本详细过程将深入探讨如何配置GPRS拨号上网,以及如何解决可能出现的...

    sms.rar_RIL wince S_ce6.0 s_sms_wince_wince ril

    标题中的“sms.rar_RIL wince S_ce6.0 s_sms_wince_wince ril”表明这是一个关于Windows CE 6.0系统下使用RIL(Radio Interface Layer)进行短信服务(SMS)操作的示例项目。RIL是操作系统与无线通信模块之间的一个...

    WinCE6.0华为3G模块MC509驱动拨号上网实现步骤

    在Windows CE 6.0(简称WinCE6.0)操作系统环境下,集成华为3G模块MC509并实现拨号上网的过程是一项重要的系统集成工作。这个过程涉及到多个环节,包括驱动程序的安装、注册表配置以及网络连接的设置。下面将详细...

    GPRS拨号网络连接

    在"Wince"(Windows CE)系统下,GPRS拨号连接是通过特定的软件或驱动程序实现的,这些软件或驱动程序可以模拟拨号调制解调器,与移动网络运营商的GPRS服务进行交互。 描述中提到的“支持联通和移动”意味着该...

    gprs.zip_gprs 上网_gprs 拨号上网_linux 拨号

    标题 "gprs.zip_gprs 上网_gprs 拨号上网_linux 拨号" 提供的信息表明,这个压缩包包含的是与GPRS(General Packet Radio Service)拨号上网相关的资源,特别关注的是在Linux系统中如何进行拨号连接。GPRS是一种基于...

    GPRS.tar.gz_GPRS LINUX_MC39I_gprs 拨号上网_linux GPRS_拨号

    标题中的"GPRS.tar.gz_GPRS LINUX_MC39I_gprs 拨号上网_linux GPRS_拨号"表明这是一个关于在Linux系统上使用MC39I模块进行GPRS(通用分组无线服务)拨号上网的源代码压缩包。GPRS是一种基于GSM网络的数据通信技术,...

    GPRS拨号上网源代码

    通过分析并理解这些源代码,开发者可以学习到如何在WINCE系统上实现GPRS拨号连接,并以此为基础开发出更丰富的移动通信应用。对于希望深入理解GPRS通信和嵌入式系统开发的工程师来说,这是一个非常有价值的资源。

    VC写的拨号上网实例

    总结来说,"VC写的拨号上网实例"是一个结合了C++编程、Windows API调用和网络连接技术的项目。通过这样的实例,开发者能够提高自己的系统级编程能力,同时了解拨号上网的工作原理。在实际开发中,这样的技能可以应用...

    ADSL宽带拨号王_V6.0

    功能强大,运行稳定的国产adsl宽带...能以服务方式运行,Windows启动以后在后台自动拨号连接上互联网,无需用户登录。 7.成功连接到互联网以后,能启动用户预先设置的程序,打开用户预先设置的网页,给用户带来方便。

    笔记本电脑通过usb连接手机GPRS拨号上网

    "笔记本电脑通过usb连接手机GPRS拨号上网" 本篇文章介绍了如何使用笔记本电脑通过USB连接手机GPRS拨号上网的方法。该方法使用PhoneSuite软件,通过将手机连接到电脑,并使用GPRS网络实现上网。 首先,需要开通GPRS...

    MSComm1应用实例电话拨号程序,VB6.0源代码

    在VB6.0中,我们可以通过设计界面直接将MSComm1控件拖放到窗体上,然后通过编程对其进行配置和操作。 电话拨号程序的实现主要依赖于MSComm1控件的两个关键属性:PortOpen和CommPort。PortOpen用于打开或关闭串口,...

    gprs自动拨号

    在Windows CE(通常简称为WinCE)操作系统下,GPRS自动拨号是一项关键功能,它允许设备通过通用分组无线服务(GPRS)连接到互联网。GPRS是一种2.5G移动通信技术,用于提供持续的数据连接,适用于移动设备如智能手机...

    拨号上网用户名和密码显示工具

    拨号上网,也称为ADSL(Asymmetric Digital Subscriber Line)或PPPoE(Point-to-Point Protocol over Ethernet),是互联网连接的一种方式,尤其在宽带普及之前较为常见。它通过电话线利用模拟信号来传输数字数据,...

    wince+gprs拨号上网总结 移动开发 - 其它 - wince+gprs拨号上网总结.zip

    在移动设备开发领域,Windows CE(简称WinCE)操作系统经常被用于嵌入式系统,特别是在工业设备和早期的智能手机中。GPRS(General Packet Radio Service)是2G网络中的数据传输技术,允许设备通过移动通信网络进行...

    通过拨号上网的软件

    标题中的“通过拨号上网的软件”指的是使用特定的程序来建立通过电话线或DSL等传统方式连接到互联网的应用。这种技术在宽带互联网普及之前非常常见,允许个人计算机通过调制解调器与ISP(互联网服务提供商)进行通信...

    lwip pppos拨号上网,通过串口ppp拨号上网

    在嵌入式系统开发中,实现通过串口进行PPP(Point-to-Point Protocol)拨号上网是一项常见的任务,尤其在物联网设备中。本教程将详细讲解如何利用lwIP网络库,结合FreeRTOS实时操作系统,以及pppos库来实现在STM32...

Global site tag (gtag.js) - Google Analytics