IrDial协议及其应用和实现
扫描二维码
随时随地手机看文章
随着以计算机技术、通讯技术、消费电子技术为主的IT产业的快速发展和互联网的广泛应用,过去许多由纯硬件实现的嵌入式系统与产品已转向由软、硬件共同来实现。当前,以具有无线通讯功能的个人数字助理PDA、手持个人电脑HPC、交互式网络信息家电为代表的新一轮智能型3C(Computer,Communication,Consumer)合一的类PC嵌入式系统与技术[1]进入了一个崭新的智能化、网络化的发展阶段。类PC嵌入式系统[1]与产品所采用的嵌入式操作系统及其应用软件也同时得到了空前的发展与繁荣。
掌上电脑是一种采用了嵌入式操作系统的设备,它具有强大的功能,正在成为一种越来越普及的集个人信息管理与娱乐功能于一身的携式设备。但是目前的掌上电脑大多不具有无线上网的功能。目前业界看好的采用蓝牙技术[7]的无线互联方案,由于成本高、兼容性差,还得不到实际应用。红外技术是一种成熟的、低成本的技术。目前的大多数掌上电脑和手机都具备红外设备。因此利用红外技术来进行无线互联就成为一种不错的选择。
1 IrDial协议简介
IrDial协议是一种为了使支持IrDA协议栈的设备使用PPP协议栈与Internet或其它网络相连而设计的红外拨号协议。IrDial协议并不是IrDA组织所规定的标准,它由微软、诺基牙和爱立信公司共同推出,其目的是为移动设备的互联网接入提供一种方便的、价格低廉的手段。IrDial协议除规定了基于AT命令集的modem拨号协议外,还规定了在IrDA协议中的PPP帧封装。
IrDial支持两台计算机间的直接点对点连接、计算机-网络间的访问点(access point)连接以及计算机-网络间通过modem的访问点连接。
IrDial以两种模式工作:直接连接(Direct Connect)或拨号连接(Dial Connect):
· 直接连接模式:用于对网络和网络访问点连接。它忽略拨号信息,直接进入PPP协议协商阶段。使用TinyTP service data unit (SDU)[16]进行PPP封装[17]来成帧。拨号连接通过modem的网络访问点连接。
· 拨号连接模式:通过modem的网络访问点连接。拨号连接模式在进入PPP pass-through模式前必须进行成功的AT拨号命令交换。使用传统的PPP 高级数据链路控制协议(HDLC)来对数据封装和成帧。
1.1 直接连接模式
直接连接有两种方式:对等网络中的直接连接和网络中的直接连接,其网络协议模型如图1和图2所示。IrDial协议工作在IrLMP/TinyTP之上,为PPP协议提供服务。
1.1.1 连接建立
为初始化一个直接连接模式的连接,客户必须先调用Information Access Service (IAS)。IAS是一个红外服务的数据库,它提供了系统所能提供的设备和服务的一个列表,使用GetValueByClass 函数,将参数中的类名设为 “IrNetv1”,类属性设为“IrDA:TinyTP:LsapSel”。然后再初始化一个IrDA Tiny Transport Protocol (TinyTP)连接以返回Link Service Access Point selector(LSAP-SEL)。
1.1.2 PPP封装和成帧
所有的IP(或者其它的网络协议)包都以RFC1661中规定的PPP封装来进行封装。以PPP封装的包直接以TinyTP SDU的格式来成帧。一个PPP封装的包可以分成几个TinyTP 协议数据单元。 [!--empirenews.page--]
1.2 拨号连接模式
拨号连接的网络协议模型如图3所示。在应用中,由于要使用手机作为无线连接设备,即把手机作为一个外置modem,主要采用拨号连接协议。
1.2.1 连接建立
为了初始化一个拨号连接模式的连接,客户必须先执行Information Access Service (IAS) GetValueByClass 函数,它的参数中的类名是“IrModem”,类属性为“IrDA:TinyTP:LsapSel”。然后再初始化一个IrDA Tiny Transport Protocol (TinyTP)连接以返回 (LSAP-SEL)。拨号命令和数据帧的交换都在TinyTP连接中进行。
MODEM或Host能够中断连接,只要发送一个LM-Disconnect IrLMP消息即可。
1.2.2 拨号命令成帧
AT命令序列成帧时要在命令前后加上字符串。AT命令序列长度不能超过一个TinyTP PDU的长度。
1.2.3 PPP封装和成帧
所有的IP包都以RFC1661中规定的PPP封装来进行封装。以PPP封装的包按RFC1662中规定的HDLC来进行成帧。这与TinyTP成帧不同。
1.3 拨号协议简介
1.3.1 Modem工作模式
Modem有两种工作模式:
· 离线命令模式(Offline Command Mode):在此模式下没有电话拨号,Modem正在接收AT命令。会话正是在这种模式下被启动。
· 在线数据模式(Online Data Mode): 在此模式下,有一个电话连接,modem能够接收和传输数据;只有一个命令+++ATH能被传送。
1.3.2 在IrDial中使用的AT命令
AT命令在TinyTP帧中传输。不能把一个AT命令字符串分成几部分在几个帧中传输。但是可以在一个帧中传输几个AT命令,这时命令的间隔必须符合V.25ter中的规定。回复和应答则没有这个限制,可以在几个TinyTP帧中传输。
所有的命令必须以结尾, modem回复所有发出的命令。每个命令有一个响应,每个响应均为如下格式:
Response
1.3.3 链接控制命令
(1) ATD, Dial
这个命令初始化一个数据呼叫,后跟电话号码和其它符号来建立一个连接。在ATD连接过程中,接收到CONNECT前发送任何字符就可以放弃连接。
命令执行的格式如下:
D n为电话号码。如:ATD+65768678.
(2) ATH, Hook Control. 中断一个连接。
(3) ATA, Answer. 应答呼入的数据呼叫。为了接收呼入的数据呼叫,Modem必须是以IrDA连接并且处于离线命令模式。如果有一个呼入呼叫,modem以如下形式发送一个结果代码:
RING
然后就可以使用ATA来应答呼入的数据呼叫。
1.3.4初始化命令
AT+DS 数据压缩模式(Data Compression Mode)。
定义了V.42bis使用的压缩参数和协议。
命令格式如下:
+DS=[
,[,[,[]]]]。
关于modem拨号的详细文档可以参考Windows Modem设备驱动开发包的帮助文档[13]。 [!--empirenews.page--]
2 IrDial协议的应用模型
IrDial协议设计是为方便具有红外设备的移动装置能够通过带红外设备的移动通信设备实现与网络的互联。这里的移动装置可以是掌上电脑和笔记本电脑等。最常用的移动通信设备是手机。大多数的掌上电脑和笔记本电脑都具有红外端口。目前已经有越来越多的手机开始支持红外通信方式。目前的手机上网采用WAP方式,但是由于WAP所能提供的网络服务内容十分有限,而且在手机的小屏幕上来浏览网络的内容十分不便。使用IrDial协议则可以把手机作为一个无线的Modem,直接可以通过拨号ISP来浏览WWW页面的内容。这对于那些携带笔记本和掌上电脑,经常需要在外面跑的人来说很重要。这种方式使它们可以在任何时候、任何地方,只要有一个支持红外通信和IrDial协议及数据通信的手机就可以很容易地实现上网浏览、收发邮件等。
IrDial协议的应用模型如图4所示。
在图4的模型中,笔记本与手机通过红外通信来进行数据交换。手机通过无线网络访问ISP服务器,并通过ISP服务器访问WWW服务器。处理流程如下:
(1)笔记本与手机间建立红外连接;
(2)笔记本在已建立的红外连接上,通过IrDial协议向手机发送AT命令进行拨号;
(3)手机接收AT命令并向ISP服务器拨号;
(4)拨号成功,则在笔记本和ISP间建立一个网络连接。
然后用户就可以使用笔记本上的浏览器来进行网络的浏览了。由图4可以看出,要实现通过IrDial的无线上网,要求笔记本(掌上电脑)和手机必须都支持IrDial协议。目前大部分的笔记本电脑和掌上电脑都带有红外装置,以方便信息的交换。但是要通过红外手机上网还需要安装新的驱动程序。在Windows系统上,一般是将红外手机看做是一个Modem,将其按照Modem驱动程序的设计规范来实现。手机除了要具有红外装置,支持IrDial协议外,还必须开通数据服务功能。只有这样,系统才能够实现无线上网。
3 IrDial协议的实现方案
IrDial协议实际上包括两部分:在移动通信设备上的实现和在便携式设备如掌上电脑上的实现。目前大多数的手机都支持IrDial协议,即可以作为一个外置的红外modem,因此这一部分的实现由手机厂商完成。在便携式设备如掌上电脑上的实现,根据所采用的操作系统的不同,笔者采用了Windows CE操作系统。
Windows CE操作系统支持NDIS网络驱动程序接口规范[14,19],NDIS支持IRDA协议。这使用户可以使用NDIS所提供IRDA协议函数来实现红外拨号协议。在NDIS中可以包含一个miniport的可插入模块,采用miniport的方式将IrDial协议加入到IRDA协议栈中。在IrDial的小端口驱动程序中,其上层接口为PPP协议,下层接口为IRDA协议。IrDial的小端口驱动程序负责PPP协议和IRDA协议之间的数据包的转换。
本文介绍了IrDial协议及其应用和实现。IrDial协议为用户提供了一种通过红外方式来进行无线网络接入的方式。与其它无线互联方案相比,采用IrDial协议有它独特的优点。首先它是一种价格低廉、易于实现的无线解决方案,目前的大多数移动终端设备(笔记本和掌上电脑)都具有红外设备,只需要添加IrDial协议的实现就可以了;而使用WAP方式进行无线联网则需要运营商增加新的设备,成本较高。其次,使用它不仅可以浏览WAP网页,也可以浏览WWW网页,而使用WAP方式的无线互联方案则只能浏览WAP网页。此外,由于大多数手机、掌上电脑和笔记本电脑都支持红外通信,使其实现更加简单,成本更低。目前已经有很多支持IrDial的产品出现。