Microsoft Windows CE 通信模型
Guy Smith
September 1997
目录
·
总结
介绍
本文用以介绍
Microsoft Windows CE
操作系统的通信模型。因为应用程序和服务具有不同的通信要求,所以
Windows CE
提供了一套多样的通信功能选项以及相关的应用程序编程接口
APIs
。基于
Windows CE
的设备可实现任意或全部的功能选项。
我们将全面讨论对基于
Windows CE
的设备所提供的支持能力,以及不同的部分是如何融合到整个模型中的。
Windows CE
的通信支持能力
通信能力是基于
Windows CE
的设备的关键特性。它的范围可以从简单的电缆串行输入
(I/O)
到使用传输控制协议
(TCP/IP)
的无线网络。除了内置的通讯硬件,比如串行电缆或红外收发器外,对
PCMCIA
的支持使得广泛的已投入市场的通信设备能够添加到基本的支持包中。
Windows CE
支持三种通信方式
:
·
串行
I/O
·
网络,包括
:
·
Windows Sockets (WinSock)
和
Infrared Sockets (IRSock)
·
TCP/IP
和
IRDA (Infrared Data Association
,红外数据传输
)
·
用于局域网的
NDIS 4.0 (Network Device/Driver Interface Specification
,网络设备
/
驱动程序接口规范
)
·
通过串行线或
modem
的点对点协议
(PPP
,
Point-to-Point Protocol)
和串行联接接口协议
(SLIP
,
Serial Link Interface Protocol)
的网络
·
远程文件访问
(Wnet API)
·
远程访问客户端
(RAS)
·
支持浏览器
(WinINET API)
·
电话
API (TAPI)
通信模型图示见图
1

图 1. Windows CE通信模型描述示意图
串行通信
串行
I/O
是
Windows CE
通信模型中最基本的特性,在所有的设备中都应该能够使用。在硬件上,串行通信通常通过电缆或
IR
收发器得以实现。
电缆的联接可以通过标准
Microsoft Win32 API
串行和文件系统函数处理。这些函数用于打开、关闭和操作
COM(Component Object Model
,组件对象模型
)
端口,以及从其读出和写入。交替或异步
I/O
并不被支持。
IR
收发器被分配到一个
COM
端口,这样可以直接使用利用常用串行通信函数的串行
I/O
。
I/O
通信是一种“原始的”方式,这意味着,比如它不具有冲突检测。
通过
IRSock (
一种
WinSock
的扩展,将在后面讨论
)
可得到利用
IRDA
协议的更为强效的串行
IR
通信。作为一种直接使用
IRSock
的可选性手段,
IRComm
仿效了串行通信,不过其内部使用了
IRSock
和
IRDA
协议。
网络通信
Windows CE
具有一个带有多种不同选项的网络栈。它能够使用各种硬件方式,包括红外、串行、以太网和无线联接。
浏览和远程文件系统
在网络栈的顶层,
Windows CE
支持
WinINET
和
Wnet APIs
的子集,以及一个
SMB(server message block
,服务器消息块
)
重定向程序(
redirector
)。
WinINET API
提供了对
Internet
浏览协议的支持。这些协议包括文件传输协议
(FTP
,
File Transfer Protocol)
和超文本传输协议
(HTTP
,
Hypertext Transfer Protocol) 1.0
,但不包括
Gopher
。
WinINET API
只支持一个代理(
proxy
),并不具有缓冲。它还提供了对两种
Internet
安全协议的访问支持,这两种协议是
SSL(Secure Sockets Layer
,安全套接层
) 2.0
和
3.0
以及
PCT (Private Communication Technology
,私人通信技术
) 1.0
。
Wnet API
提供了对
SMB
重定向程序的处理以进行远程文件访问。当前只支持对
Microsoft Windows 95
和
Windows NT
操作系统的联接。重定向程序支持
UNC (Universal Naming Convention
,通用命名约定
)
名
(
比如
//serverXX/shareXX)
,但不支持驱动器符。
WinSock
和
IRSock
应用程序正常情况下通过
WinSock
接口访问网络栈。
Windows CE
支持
WinSock 1.0
的一个子集。所有标准
WinSock
函数都能够被使用,但异步函数
(
包括大部分
WSAxxx
函数
)
则不行。
Windows CE
还支持
SSL 2.0
、
3.0
以及
PCT 1.0
安全协议。
IRSock
是对
WinSock
的扩展以实现通过红外收发器的基于
socket
的通信。它设计用于支持工业标准
IRDA
协议。虽然一些函数在使用上略有不同,但应用程序使用
IRSock
与使用传统
WinSock
非常相似。
远程访问客户端
At the same level in the network stack as WinSock, but serving a different purpose, Windows CE
支持
RAS( Remote Access Server
,远程访问服务器
)
客户端,其在网络栈中与
WinSock
位于相同的层次,但却有不同的用途。
RAS
是一种用于联接远程服务的多协议路由器。
Windows CE RAS
客户端实质上与
Win32
的实现是一样的,但它一次只支持一个点对点联接。
传输和地址层
TCP/IP
协议是为
Internet
开发的,或许已成为最为灵活和广泛使用的网络协议。该协议被众多的系统所支持,并构成了
Windows CE
网络栈的核心。
许多基于
Windows CE
的移动设备都将具有无线通信能力。不过,常规的
TCP/IP
栈通常在有线网络里运行良好,而在使用无线技术时可能性能较差。
Windows CE TCP/IP
栈被设计得能够被配置而有效的支持无线网络。
对于红外网络,
Windows CE
提供了对
IRDA
协议的传输层支持。
数据链接层
在网络栈的底部,
Windows CE
支持两种数据链接层。
许多基于
Windows CE
的设备都通过串行通信连接方式(比如通过调制解调器)连接到它们的网络中。为了支持这类网络,
Windows CE
利用了被广泛使用的
SLIP
和
PPP
协议。并通过
PAP( Password Authentication Protocol
,口令验证协议
)
、
CHAP (Challenge Authentication Protocol
,挑战验证协议
)
和
Microsoft CHAP
提供验证。
对于
LANs (Local Area Networks
,局域网
)
,
Windows CE
包含了
NDIS 4.0
的一个实现方式。当前只支持以太网微端口(
Ethernet miniport
)驱动程序。对于
WANs (Wide Area Networks
,广域网
)
,
Windows CE
并不支持。
TAPI/Unimodem
Windows CE
包含了一个用于基于
AT(Advanced Technology
,高级技术
)
命令的调制解调器
(Unimodem)
的
TAPI (Telephony API
,电话
API)
服务供应器
。其可被附接的或
PCMCIA
调制解调器所用。
TAPI
是一套工具的集合,这些工具使得应用程序能够充分利用多种电话和通信服务,而不需要对特定技术拥有详细的知识背景。
Windows CE
的
TAPI
实现方式用于解决外出人员的电话问题,并提供了向外拨号和地址翻译服务。拨入电话当前并不支持。对多拨号地点的支持可由
Control Panel完成。为了提供硬件选择上的灵活性,TAPI支持可安装的服务供应器。
总结
Windows CE
通信模型设计用于能够在多种不同类型的服务上良好地工作。它提供了一种具有不同选项集合的
OEM (original equipment manufacturer
,原始设备制造商
)
方式以供从中选择。其模块化的设计使得耗用被降低到最小,因为模型中只有一个特定设备所必需的部分才会被包含于其中。有关根据特定设备调整通信模型的更多细节,请参阅
Windows CE OEM Adaptation Kit
。
对于应用程序开发人员而言,
Windows CE
支持绝大多数通信类型。这些通信方式可通过类似的基于
Win32
的
APIs
进行处理,这使得开发人员易于在他们的程序中实现有关的通信能力。
有关为基于
Windows CE
的设备编写具有通信功能的应用程序的详细信息,请参阅
Windows CE Software Development Kit