基于Windows CE的嵌入式系统的结构分析
通信基于一个按层组织的网络堆栈[1 ] (network stack) ,如图2所示。网络堆栈实际上是Windows CE 的一个组件,它络堆栈实际上是Windows CE 的一个组件,它负责对网络中的数据传输进行处理,将来自于应用程序的数据分解成若干小段,并为每小段加上相关地址和段的分割信息,组成可以存贮转发的信息包(packets) ,信息包中的地址确保数据达到最终的目的端点。访问网络堆栈有如下三种方式:第一种是WinSock端口套接字方式。这是一个中间层的传输接口协议,WinSock 负责对建立的信息包的所有头信息细节进行处理, 但可以不管其数据格式。Windows CE 的网络通信都直接或间接地使用WinSock。采用IrDA 协议实现基于红外线套接字的客户/ 服务器网络通信是Windows CE平台的一个特色。第二种为WinInet API 方式。WinInet API是微软公司基于Win32 平台的互联网函数接口。Windows CE 的WinInet API 对其进行了某些限制或扩展,它提供的高级数据协议除了常见的超文本传输协议HTTP 和文件传输协议FTP 外,还提供了对SSL的支持。API 方式避免了直接使用WinSock 访问网络的操作,简化了网络编程。第三种为CIFS 重定位器方式。Windows CE 通过对远程访问服务RAS 客户的支持,允许基于Windows CE的设备与远程主机建立连接。 3 Windows CE 中网络通信协议使用实例 3.1 HTTP Windows CE提供了一个开发Internet 客户应用程序的工具集WinInet,与使用Socket 建立网络连接的方法相比,它简化了访问互联网络的操作细节。利用WinInet可连接到远程站点,访问HTML 页面,通过FTP 上传、下载文件或获取文件目录清单等。WinInet 的Windows CE版本类似于桌面平台上的WinInet ,但有两个重要的区别:一是在Windows CE 中,大多数callback 函数以同步方式处理,只有InternetReadFile和InternetQueryDataAvailable 具有同步和异步两种操作方式;二是Windows CE 默认支持Unicode 码,所有WinInet 函数都要求宽字符变量[4]。 通过WinInet 实现网络通信最常见的例子是利用HTTP 协议访问Internet 站点上的HTTP 页面。其处理过程与桌面平台上的情况一致: 1) 调用InternetOpen ,获取Internet 句柄; 3.2 远程访问服务RAS RAS 是一个用于连接远端设备的基于软件的多协议路由器,也称为RAS 客户,对于桌面主机,则称为RAS 服务器。RAS 应用程序常在设备端上执行,并通过PPP/ SLIP 与服务器连接。WindowsCE对RAS 客户提供了支持。尽管有许多标准的Win32 RAS 函数,但这里仅允许通过串行电缆或拨号Modem 建立点对点的连接。在Windows CE 环境下,RAS 电话簿项目中包含有建立RAS 连接的必要信息,Windows CE 将其存贮在注册表中。RAS 电话簿信息包括:拨打的电话号码(含国家和地区代码) 、当前连接的IP 地址、网络协议、用于建立连接的设备类型。用RAS 建立连接的步骤如下[4]: 1)确定呼叫的电话号码;如果该号码不在电话簿中, 则需要调用RasEnumEntries 函数查找。 2)RasDial 建立连接; DWORD RasDial (LPCTSTR lpszPhonebook , / / 电话簿文件的路径和文件名指针 3)当会话结束时,用RasHangUp 终止连接。 DWORD RasHangUp ( HRASCONN hrasconn ) ; 3.3 WAP应用 通常,Web Server需要在目标机中置入文件系统,但是,嵌入式系统往往会面临有限的存储资源问题,文件系统会增加系统负担。Windows CE的Web Server设计了一个Web页的格式编辑器,可以将Java,GIF,JPEG,PDF,TIFF,HTML,ASCII转换成标准C源文件,可以与其他的应用程序链接,Web Server就在一个虚拟的文件系统下访问这些文件。 在开发移动通信产品时候,需要用WAP协议,Windows CE提供了一个WAP的解决方案,开发起来非常方便。该协议栈可以支持任何标准的无线协议,包括GSM、UDP、GPRS等,协议栈包括WAE、WSP、WTP、WTLS、WDP等[3]。见图3。 图3 WAP应用 此外,
2) 调用InternetConnect ,为给定站点建立一个会话句柄;
3) 调用HttpOpenRequest ,打开一个HTTP 请求句柄;
4) 调用HttpSendRequest ,发送一个指定的请求到HTTP 服务器;
5) 调用InternetReadFile ,从被HttpOpenRequest 所打开的句柄中读数,下载信息;
6) 调用InternetCloseHandle ,关闭Internet 句柄。
DWORD dwNotifierType ,
/ / RasDial 事件的句柄类型
LPVOID lpvNotifier ,
/ / RasDial 事件的句柄
LPHRASCONN lphRasConn
/ / 指向连接句柄类型变量) ;该函数的参数设置与桌面平台上的设置不同,要求将lpszPhonebook 设置为NULL ,dwNotifierType 设置为0xFFFFFFFF。
结构 分析 系统 嵌入式 Windows CE 基于 相关文章:
- 基于算法的DSP硬件结构分析(04-02)
- 32位DSP两级cache的结构设计(09-17)
- 大型商用服务器的三大系统架构(03-02)
- DSP结构特点和运算性能(07-19)
- 嵌入式软件系统测试中的仿真系统结构设计(01-13)
- 嵌入式系统底层软件结构模型建构与协同性分析(01-11)