Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15535139
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类:

2010-05-30 22:55:53



主机控制接口(Host Control Interface ,HCI)层
Bluetooth 协议核心
逻辑链路控制和适配协议(Logical Link Control and Adaptation Protocol,L2CAP)
SCO 音频层

  蓝牙协议栈BlueZ分为两个部分:内核代码和用户态程序及工具集。其中内核代码由BlueZ
核心协议和驱动程序等模块组成;用户态程序及工具集包括应用程序接口和BlueZ工具集。
  在内核代码中,BlueZ协议的bluez-kernel和bluez-libs软件包实现了主机控制接口(HCI)和套
接字接口的全部功能。内核源代码采用模块化设计,由设备驱动程序模块和蓝牙核心协议模块
组成,分别位于Linux内核代码的drivers子目录和net子目录下。drivers子目录下的代码包括Linux
内核对各种接口的蓝牙设备的驱动。net子目录下代码包括蓝牙核心协议和一部分扩展协议的内
核代码,如L2CAP、RFCOMM、SCO、SDP、BNEP等协议。
  对于用户态程序, BlueZ提供函数库及应用程序接口,便于程序员开发蓝牙应用程序。
BlueZ utils是蓝牙设备配置和应用的主工具集,实现对蓝牙设备的初始化和控制。

  蓝牙协议栈是蓝牙系统开发结构的核心。在操作系统的用户模式下,蓝
牙协议栈主要功能包括:负责和硬件打交道,处理蓝牙的数据包;处理服务浏览程序发来的服
务发现和设备管理请求;和虚拟串口ttyBx交互。
  在蓝牙协议栈启动的时候,通过读入一个配置文件来判断HCI传输层使用的硬件类型和硬
件的配置状况。HCI可以通过USB传输层来实现,USB传输层模块以动态链接库(.so)方式体现。
  在Linux操作系统下,蓝牙系统向用户提供若干个虚拟串口ttyBx,ttyBx和实际串口的操作
是一样的。可以通过对虚拟串口的读写来与其它蓝牙设备进行数据通信。
  开发板上应用程序是用户进行访问服务或是提供服务的程序[4],如局域网访问服务,或以
服务器运行等。对于局域网访问的应用,可使用开发板上的ftp等;开发板作为服务器,可以用
开发板上的httpd提供web服务,也可使用自行编写的TCP的Server端程序。
阅读(3127) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~