通常,一旦建立
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 ces专业许可中。
- 编写用于语音通信的定制应用程序以及使用unimodem进行数据通信
- 将具有成本效益。