人们所携带的电子信息设备越来越多,像笔记本电脑、移动电话、PDA 等已不再只是商务人员的必备工具,正逐步进入百姓的日常生活。这些信息设备的功能越来越强大,同时尺寸却越来越小www.cechina.cn,但是人们已不能仅仅满足于它们各自独立工作,而是迫切需要各种设备之间能方便地进行信息的交互。因此,在小范围内能够将个人设备互联而组成的网络———个人局域网(PAN) 便应运而生。蓝牙(Bluetooth) 作为一种小范围无线连接技术,能够在设备间实现方便快捷、灵活安全、低成本、低功耗的数据和语音通信控制工程网版权所有,是目前实现无线个域网的主流技术之一。本文提出了怎样实现现有上层协议(如TCP/ IP)与蓝牙协议的无缝连接;怎样实现蓝牙个人区域网的数据转发(主要集中在PAN 的网桥算法上) 的解决方法;最后提供了一个蓝牙个人区域网模块的完整设计方案供参考,希望对各个同行有借鉴意义。本文所提出的解决方案现已用软件实现,并投入国外市场,用户反映运行良好。
1 蓝牙PAN 实现原理
蓝牙技术是一种近距离无线通信的开放性标准,其目的是单芯片、低功耗www.cechina.cn,用来代替有线电缆连接,实现短距离无线语音和数
据通信。由多个蓝牙设备就可以组成一个蓝牙网络。蓝牙个人区域网PAN 有两种应用模型: 一种被称为组网络( Group Ad - hoc Networking ,GN) 另一种被称为网络访问点(Networking Access Point ,NAP) 。这两种实现模式分别有不同的网络结构和协议模型。下面对它们分别进行叙述。
1.1 组网( GN) 与网络访问点(NAP)
一个简单的组网由一个主设备和1~7 个活动的从设备组成。在这一个主从网中,主设备与从设备之间的点对点或点对多点通讯在主设备的控制下进行,这个网络不需与外部网络相连。另外一种就是由一个NAP和其它蓝牙设备组成的网络。这种无线设备充当网络设备(10baseT,GSM 等) 之间的网桥、代理或者路由。网络访问点与Internet 相连,它是其它计算机或设备与外部网络相连的中介。计算机通过网络访问点共享所有的网络资源。
1.2 PAN 协议栈模型
由上可见,NAP 和GN 是两种不同的服务。组网被设计用来允许一个或多个蓝牙设备组成一个局域网络,而网络访问点提供蓝牙设备进入Internet 网络的能力。无论是NAP 还是GN 都必须提供与TCP/ IP 和其它网络协议的无缝实现。与GN 网络比较而言,NAP 除了要实现数据转发之外,还必须实现网桥,能够实现网络的路由,从而能通过网络访问外部网络。
2 PAN 实现要解决的问题
蓝牙个人区域网就是要用无线代替有线CONTROL ENGINEERING China版权所有,用蓝牙硬件在不同设备之间建立一条虚拟的蓝牙链路,从而使现有的各种应用软件不经修改,就可以在不同蓝牙设备之间进行数据传输和数据交换。它必须解决以下问题:
(1)怎样支持IPv4 和IPv6 协议和其它可选协议。
(2)怎样实现GN 和NAP。
(3)怎样实现蓝牙协议栈与现有网络协议如TCP/ IP和PPP 等网络协议无缝连接,从而通过蓝牙硬件在下层建立一条虚拟的蓝牙链路,使现有网络应用程序就像在有线网络中使用一样。
3 PAN 的具体实现
3.1 实现高层协议与蓝牙协议的无缝连接
要充分运用现有的各种协议,如TCP/ IP 协议和其它上层协议的接口,PAN 网络需要在上层协议与蓝牙协议栈之间建立一条蓝牙无线链路。怎样实现现有协议与蓝牙协议的无缝连接? 笔者以Windows 平台为例提出了一个解决方案。
在Windows 驱动程序设计构架中,现在的通讯协议(如TCP ,IPX/ SPX等) 都是建立在Miniport Driver 之上的。因此,只需实现一个Windows 关于NDIS 的Miniport 驱动程序(图4) 即可。从TCP/ IP 等高层协议过来的数据通过Miniport 进入Dispatch Driver ,然后进入个人区域网应用程序CONTROL ENGINEERING China版权所有,通过应用程序进入蓝牙协议栈。当然,PAN Interface 也可以在Kernel Mode 层实现。通过PAN Interface ,数据就可以进入蓝牙协议栈了
3.2 网桥转发算法(实现GN 和NAP)
为了实现GN 和NAP ,就必须在GN 和NAP 端实现一个虚拟网桥,实现数据的转发。网桥转发算法是蓝牙个人区域网PAN 实现的关键技术。根据蓝牙个人区域网的特点,笔者提出了网桥三个端口的模型,并提出了一个网桥转发算法。
3.2.1 网桥转发算法基本思想
网桥在一定程度上就相当于一个集线器。在它上边可以有三种类型的端口:BNEP 端口(数据转发是直接建立在BNEP[3]之上的) ,本地端口(服务端本身) 和外部网络端口(如接