蓝牙研发网

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 10261|回复: 6

iphone 和 安卓系统的蓝牙开发有HCI接口吗?

  [复制链接]
发表于 2012-2-26 00:27:12 | 显示全部楼层 |阅读模式
在这两个系统上如何开发蓝牙软件? 有HCI层的函数调用吗?设备是如何寻址的?
小弟刚开始学,对手机上的蓝牙比较感兴趣。像大虾们学习!
回复

使用道具 举报

发表于 2012-2-26 11:11:40 | 显示全部楼层
Android蓝牙系统分为四个层次,内核层、BlueZ库、BlueTooth的适配库、BlueTooth的JNI部分、Java框架层、应用层。下面先来分析Android的蓝牙协议栈。

Android的蓝牙协议栈采用BlueZ来实现,BlueZ分为两部分:内核代码和用户态程序及工具集。

内核代码主要由BlueZ核心协议和驱动程序组成;蓝牙协议实现在内核源代码net/bluetooth中,驱动程序位于内核源代码目录driver/bluetooth中。用户态程序及工具集主要包括应用程序接口和BlueZ工具集,位于Android源代码目录externel/bluetooth(注:Android版本不一样,有的在externel/bluez目录下)中。
1、蓝牙协议栈

蓝牙协议栈的体系结构由底层硬件模块、中间协议层和高端应用层三部分组成。

一、底层硬件模块

组成:

链路管理协议(Link ManagerProtocol,LMP);

基带(Base Band,BB);

射频(Radio Frequency,RF)。

功能:

射频(RF)通过2.4GHz的ISM频段实现数据流的过滤和传输。

基带(BB)提供两种不同的物理链路,即同步面向连接链路(Synchronous Connection Oriented,SCO)和异步无连接链路(AsynchronousConnection Less,ACL),负责跳频和蓝牙数据,及信息帧的传输,且对所有类型的数据包提供不同层次的前向纠错码(Frequency Error Correction,FEC)或循环冗余度差错校验(CyclicRedundancy Check,CRC)。

链路管理协议(LMP)负责两个或多个设备链路的建立和拆除,及链路的安全和控制,如鉴权和加密、控制和协商基带包的大小等,它为上层软件模块提供了不同的访问入口。

主机控制器接口(HostController Interface,HCI)是蓝牙协议中软硬件之间的接口,提供了一个调用下层BB、LMP、状态和控制寄存器等硬件的统一命令,上下两个模块接口之间的消息和数据的传递必须通过HCI的解释才能进行。

二、中间协议层

组成:

逻辑链路控制和适配协议(LogicalLink Control and Adaptation Protocol,L2CAP);

服务发现协议(ServiceDiscovery Protocol,SDP);

串口仿真协议(或称线缆替换协议RFCOMM);

二进制电话控制协议(TelephonyControlprotocol Spectocol,TCS)。

功能:

L2CAP位于基带(BB)之上,向上层提供面向连接的和无连接的数据服务,它主要完成数据的拆装、服务质量控制、协议的复用、分组的分割和重组,及组提取等功能。

SDP是一个基于客户/服务器结构的协议,它工作在L2CAP层之上,为上层应用程序提供一种机制来发现可用的服务及其属性,服务的属性包括服务的类型及该服务所需的机制或协议信息。

RFCOMM是一个仿真有线链路的无线数据仿真协议,符合ETSI标准的TS07.10串口仿真协议,它在蓝牙基带上仿真RS-232的控制和数据信号,为原先使用串行连接的上层业务提供传送能力。

TCS定义了用于蓝牙设备之间建立语音和数据呼叫的控制信令(Call Control Signalling),并负责处理蓝牙设备组的移动管理过程。

三、高端应用层

组成:

点对点协议(Point-to-PointProtocol,PPP);

传输控制协议/网络层协议(TCP/IP);

用户数据包协议(UserDatagram Protocol,UDP);

对象交换协议(ObjectExchang Protocol,OBEX);

无线应用协议(WirelessApplication Protocol,WAP);

无线应用环境(WirelessApplication Environment,WAE);

功能:

PPP定义了串行点对点链路应当如何传输因特网协议数据,主要用于LAN接入、拨号网络及传真等应用规范。

TCP/IP、UDP定义了因特网与网络相关的通信及其他类型计算机设备和外围设备之间的通信。

OBEX支持设备间的数据交换,采用客户/服务器模式提供与HTTP(超文本传输协议)相同的基本功能。可用于交换的电子商务卡、个人日程表、消息和便条等格式。

WAP用于在数字蜂窝电话和其他小型无线设备上实现因特网业务,支持移动电话浏览网页、收取电子邮件和其他基于因特网的协议。

WAE提供用于WAP电话和个人数字助理(PersonalDigital Assistant,PDA)所需的各种应用软件。

2、Android与蓝牙协议栈的关系

蓝牙系统的核心是BlueZ,因此JNI和上层都围绕跟BlueZ的沟通进行。JNI和Android应用层,跟BlueZ沟通的主要手段是D-BUS,这是一套被广泛采用的IPC通信机制,跟Android框架使用的Binder类似。BlueZ以D-BUS为基础,给其他部分提供主要接口。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 反对

使用道具 举报

发表于 2012-5-25 09:22:24 | 显示全部楼层
一起交流!对这个话题感兴趣的朋友们












淘宝最便宜的女装    http://ldyxw.taobao.com/
回复 支持 反对

使用道具 举报

发表于 2012-6-29 23:05:53 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

发表于 2012-8-24 07:15:34 | 显示全部楼层
看过,的确不错。谢谢楼主












哈哈,这个QQ刷钻软件免费版,QQ刷钻器很不错啊 http://www.ikmtc.com
回复 支持 反对

使用道具 举报

发表于 2012-8-29 20:29:24 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

发表于 2012-8-31 12:44:55 | 显示全部楼层
哈 谢谢啦 !谢谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|蓝牙研发网 ( 粤ICP备14052215号-1 )

GMT+8, 2024-12-22 21:37 , Processed in 0.062500 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表