APP下载

嵌入式蓝牙局域网模型的开发与实现

2010-10-26刘玉宾郑晶晶

唐山师范学院学报 2010年2期
关键词:嵌入式操作系统局域网蓝牙

刘玉宾,郑晶晶

(唐山师范学院 计算机科学系,河北 唐山 063000)

1 蓝牙技术简介

1998年爱立信、IBM、Intel、诺基亚和东芝公司联合推出了一项最新的无线网络技术,即蓝牙(BlueTooth)技术。蓝牙技术是一种无线数据与语音通信的开放性全球规范,它以低成本的近距离无线连接为基础,为固定与移动设备通信环境建立一个特别连接的短程无线电技术。其实质内容是要建立通用的无线电空中接口(radio air interface)及其控制软件的公开标准,使通信和计算机进一步结合,使不同厂家生产的便携式设备在没有电线或电缆相互连接的情况下,能在近距离范围内具有相互操作的性能(interoperability)[1]。蓝牙技术采用无线电缆的概念,实现了设备间的无线连接和接入数据网的功能,具有外围设备的接口,从而实现了蓝牙局域网的开发。

蓝牙特别兴趣小组(Bluetooth SIG)于1999年7月正式公布了蓝牙技术规范的1.0版。蓝牙协议规范的目标是允许遵循规范的应用能够进行相互间操作。整个蓝牙协议栈体系结构如图1所示。

图1 蓝牙协议栈体系结构

底层硬件模块由链路管理层(LM)、基带层(BB)和射频(RF)三部分构成。RF通过2.4GHz无需授权的ISM频段,实现数据位流的过滤与传输,它主要定义蓝牙收发器满足的要求。BB主要负责跳频和蓝牙数据及信息帧的传输。LM主要负责连接的建立和拆除以及链路的安全和控制,它们为上层软件模块提供了不同的访问口,但是两个模块接口之间的消息和数据传递必须通过蓝牙主机控制器接口(HCI)的解释才能进行,也就是说HCI是蓝牙系统中硬件和软件的统一命令接口。中间协议层包括逻辑链路控制和适配协议(L2CAP)、服务发现协议(SDP)、串口仿真协议(RFCOMM)和电话通信协议(TCS)。L2CAP完成数据拆装、服务质量控制和协议复用等功能,是其它上层协议实现的基础,因此也是蓝牙协议栈的核心部分。SDP为上层应用程序提供一种机制来发现网络中可用的服务及其特性。RFCOMM依据ESTI标准TS07.10在L2CAP上仿真9针RS232串口功能。TCS则提供蓝牙设备见话音和数据的呼叫控制信令。

2 嵌入式操作系统简介

嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系统(包括硬、软件系统)极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等browser。与通用操作系统相比较,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点

3 嵌入式蓝牙局域网功能模块设计

尽管蓝牙规范定义了很多应用框架(Profile),如:文件传输、数据访问点、实时同步、终端耳机等,但不外乎两个方面的蓝牙应用:语音/数据访问点、外设连接。语音/数据访问点是最先提出的访问模型,它的目的在于通过安全的无线链路把计算机和通讯设备连接起来。这类模型的典型代表就是蓝牙局域网访问(Lan Acess)模型。蓝牙局域网访问包括两部分内容:使具有蓝牙功能的设备通过PPP协议存取局域网的服务和使用 PPP机制组成一个包含两个具有蓝牙功能的设备网络。下面以 IP-PPP架构为例说明一下蓝牙局域网的设计思路。

3.1 功能模块的实现

PPP网络就是将IP数据包传入或者传出PPP协议层,然后将这些数据包传给局域网。蓝牙局域网中的访问设备有两种,一种是数据终端DT(Data Terminal),用来使用局域网访问服务,它是PPP的客户端,主动和蓝牙局域网访问点LAP建立PPP连接,存取蓝牙局域网。另外一种是蓝牙局域网访问点,提供存取局域网的服务功能。LAP是PPP的服务器端。PPP连接建立在RFCOMM上。RFCOMM传输PPP包并且配合PPP进行流控。蓝牙局域网功能模块实现分三个步骤:

(1)初始化蓝牙局域网访问点

在这个过程中,通常将设备设置为LAP,设定GAP参数,如最大用户数和发现模式,设定要求使用的PIN或者建链密钥,设定PPP参数,在设定PPP参数过程中,不应该设定LAP的PPP身份机制,这一工作通常由LAP管理者完成。完成初始化进程后就可以连接PPP。

(2)建立局域网连接

首先,DT主动发出请求与局域网进行连接,DT在LAP列表中选择一个服务点,并通过蓝牙的SDP协议,得到建立RFCOMM连接的全部信息,接着,DT输入蓝牙认证的PIN或者建链密钥Link Key。如果上一步设置了PPP认证环节,还需要输入用户名和密码。这样第二步建立PPP链路完成。

(3)拆除局域网连接

用户或者 LAP端在使用蓝牙局域网过程中都可能断掉PPP链路,这样,我们必须设置拆除局域网连接功能,也就是拆除PPP链路。那么我们可以通过对PPP层的操作来实现,首先拆除IPCP链路,断掉IP连接,断掉LCP连接,拆除RFCOMM连接,当RFCOMM/L2CAP连接突然断掉,也会断掉PPP链路。

3.2 软件设计

DT端的操作环境一般基于Windows平台,而LAP一般是架构在嵌入式系统上。所以主要设计部分一般在 LAP端的软件设计部分。LAP的软件设计由三个模块和一个接口组成:分别是蓝牙模块,PPP模块,RAS(Remote Access Server)模块和模块之间的接口。

3.2.1 实现蓝牙模块

蓝牙模块的主要工作在编写蓝牙协议栈的下接口上,其功能是通过一个适配层 Transport Layers连接 HCI和HCITransport Layer 数据附送调用操作系统的Driver来驱动硬件,所以实现下接口就要重写Transport Layers 来调用OS Driver。图示如下:

图2 蓝牙协议栈下接口

3.2.2 实现PPP模块

PPP协议由嵌入式操作系统提供,用户要编写的是PPP进程的实现,首先用户在初始化接口Application_Initialize()创建PPP进程,其工作过程为先创建一个NET模块到所用的内存池,然后对NET模块进行初始化,对PPP模块进行初始化,当出事工作完毕后,设置事件并启动相关进程,并对连接过程进行监视。代码如下:

Void PPP_Task(UNSIGNED argc, VOID *argv)

{

……

PPPI_Device[0].dv_name= “PPP_0”

PPPI_Device[0].dv_init= PPP_Initialize;

PPPI_Device[0].dv_flags=

(DV_POINTTOPOINT|DV_NOARP)

PPPI_Device[0].dv_hw.uart.com_port= SMC1;

PPPI_Device[0].dv_hw.uart.baud_rate= 115200;

……

}

3.2.3 实现RAS模块

DT端在Windows环境下,LAP需要实现一个RAS模块来配合Windows来实现蓝牙局域网的功能,RAS模块的主要作用是模仿调制解调器回复的 AT命令,使对端的Windows以为在和一个真正的调制解调器通信,当Windows开始发送PPP包是,切换数据走向,将PPP包传送给PPP模块。代码如下:

Void RemoterAccessServer(UNSIGNED argc, VOID*argv)

{

……

Do

{

DEMO!_GET_Modem_String(mstring,Devices[1].dv_na me);

NU_Modem_Control_String(“Yes ”,Devices[1].dv_na me);

} while(strncmp(mstring,”ATDT”,4)!=0);

………..

}

4 结束语

采用蓝牙技术组建局域网,不仅在办公条件不完善时能发挥作用,而且在临时增删办公点和移动性办公业务方面也有着独特的优势。随着蓝牙技术的发展,组建蓝牙局域网会越来越经济实用。

猜你喜欢

嵌入式操作系统局域网蓝牙
蓝牙音箱的直线之美
基于VPN的机房局域网远程控制系统
典型实时嵌入式操作系统应用分析
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
基于802.1Q协议的虚拟局域网技术研究与实现
局域网性能的优化
紧急:蓝牙指尖陀螺自燃!安全隐患频出
基于嵌入式操作系统的工业采集板设计
应用服务型人才培养体系下的嵌入式操作系统教学改革探索