信息家电中蓝牙通信的实现

分享到:
440
下一篇 >

信息家电是当前国内外研究的热点,而信息家电中又以数据传输方式的性价比为重点。蓝牙可以作为一种有效的通信手段,实现家庭网关与信息家电间的控制信息等其他适中数据量的传输。本文首先介绍蓝牙的HCI和蓝牙协议L2CAP、BNEP,然后介绍如何在Linux2.4.18下实现USB蓝牙驱动,*后介绍如何实现在蓝牙个人局域网中进行无线通信。

1 信息家电的基本框图

信息家电的基本结构图如下图1所示,家庭主网关是负责各种家电与外部环境进行“交流”的桥梁,其中与外部环境进行通信的方式包括Ethernet、PSTN固话网等等。而就家庭内部而言,对于如:空调、电视等普通信息家电,由于家庭网关与其通信的数据量并不大,因此完全可以采取蓝牙无线方式进行通信,从而达到控制家电工作的目的。

图1

2蓝牙的HCI和L2CAP、BNEP协议

蓝牙协议体系大致分为三层,即底层硬件模块层、中间协议层、**应用层,每一层还

包含一些具体的协议。

2.1蓝牙的HCI

蓝牙的主机控制接口(HCI)是蓝牙主机--主控制器应用模式中蓝牙模块和主机间的软硬件接口,它位于蓝牙协议栈的底层硬件模块层与中间协议层之间,负责完成这二层的数据通信[1]。目前,蓝牙HCI传输层的物理接口有USB、UART等,蓝牙设备可以采用这些物理接口来实现通信。本文将介绍用USB口作为传输层实现通信。

2.2蓝牙的L2CAP协议

蓝牙的逻辑链路控制与适配协议(L2CAP)是整个蓝牙协议的核心,它位于中间协议层,它将下层的数据分组转换为便于高层应用的数据分组格式,并提供协议复用等功能。它向上层协议提供了面向连接和无连接的服务,L2CAP层只支持ACL(异步无连接)数据的传输,而不支持SCO(同步面向连接)数据的传输[1]。

2.3 蓝牙的BNEP协议

蓝牙SIG制定的网络封装协议(BNEP,Bluetooth Network Encapsulation Protocol),可对上层IP协议提供类似于以太网的接口,对IEEE802. 3/Ethernet封装支持的网络协议,均予以支持 [2]。BNEP通过面向连接的L2CAP来实现的,L2CAP可以看作是蓝牙介质访问控制(MAC)层。BNEP在整个蓝牙协议栈中起着一个桥梁的作用,它将IP包转换成L2CAP包通过蓝牙传输。BNEP协议主要应用在蓝牙个人区域网中。

3 USB蓝牙模块驱动

1、由于采用的内核是Linux2.4.18,其中并没有包括对蓝牙驱动的支持,因此必须对其打补丁。解压Linux2.4.18内核,把蓝牙补丁包patch-2.4.18-mh15.gz放在解压内核目录下,执行命令patch –p1 < patch-2.4.18-mh15.gz[3]。

2、Linux Bluetooth协议栈中的BNEP(Bluetooth 网络封装协议)实现了Bluetooth上的以太网仿真,这使TCP/IP可以直接运行于Bluetooth之上。由于实验的本质就是通过蓝牙HCI的USB实现基于BNEP的以太网传输数据,因此在内核配置时必须加上对BNEP的支持。

你可能感兴趣: 嵌入式 图片 EtherNet Linux 控制器
无觅相关文章插件,快速提升流量