Bluetooth
evilcode
这个作者很懒,什么都没留下…
展开
-
bluetooth的profile
Bluetooth的一个很重要特性,就是所有的Bluetooth产品都无须实现全部的Bluetooth规范。为了更容易的保持Bluetooth设备之间的兼容,Bluetooth规范中定义了 Profile。Profile定义了设备如何实现一种连接或者应用,你可以把Profile理解为连接层或者应用层协议。 比如,如果一家公司希望它们的Bluetooth芯片支援所有的Bluetooth耳机,那么它只要支持HeadSet Profile即可,而无须考虑该芯片与其它Bluetooth设备的通转载 2010-07-01 14:25:00 · 2478 阅读 · 3 评论 -
通过Bluez提供的Interface发送HCI Command
<br />本文作者的博客地址:http://blog.sina.com.cn/samzhen1977<br />作者:Sam (甄峰) sam_code@hotmail.com<br /> <br />背景:<br />Sam在做Bluetooth USB Dongle与Bluetooth RemoteControl连接的程序时。因为Bluetooth Remote Control会在连接后发送 sniffrequest.约定双方的数据频率为5ms.但因为Linux程序这端没有处理Sn转载 2010-07-06 17:38:00 · 4022 阅读 · 0 评论 -
使用BlueZ Interface修改 ACL连接Supervision timeout
本文作者的博客地址:http://blog.sina.com.cn/samzhen1977作者:Sam (甄峰) sam_code@hotmail.com背景:Sam在做Bluetooth USB Dongle与Bluetooth RemoteControl连接的程序时。注意到当手柄断电时,需要20s时间才能够接收到Disconnect Event.(Error Code:timeout). Ray觉得这个时间太久。要求修改到5-6s.实际上,因为Bluetooth是无线连接设备,所转载 2010-07-07 09:18:00 · 2159 阅读 · 0 评论 -
Bluetooth协议栈学习之SDP
<br />本文作者的博客地址:http://blog.sina.com.cn/samzhen1977<br />作者:Sam (甄峰) sam_code@hotmail.com<br /> <br /> <br />SDP(service discoveryprotocol:服务发现协议)提供了一个方法,让应用程序检测哪些服务是可用的并探测这些可用服务的特性。<br />服务发现协议(SDP或BluetoothSDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是转载 2010-07-07 09:19:00 · 1398 阅读 · 0 评论 -
实战Linux Bluetooth编程(一) 协议栈概述
Sam一年前在Linux下写了一个类似Windows下BTW的库--BTX。现在需要添加新功能时发现很多知识点都忘记了。所以决定在这次学习中,把一些bluez API记录下来。这几天又想,这样还不够,不如把Linux下的Bluetooth编程基础给记录下来吧。前言:随着嵌入式系统的飞速发展,很多嵌入式平台上需要Bluetooth设备和应用。但在Linux下如何对Bluetooth编程,一直没有一份很好的中文文档。Sam结合自己的工作,一步一步将一些有用的东西记录下来,希望对其它Linux下Bluet转载 2010-07-06 09:29:00 · 1351 阅读 · 0 评论 -
实战Linux Bluetooth编程 (六) L2CAP编程实例
<br />本文作者的博客地址:http://blog.sina.com.cn/samzhen1977<br />作者:Sam (甄峰) sam_code@hotmail.com<br /> <br /> <br />例一:发送Signaling Packet:<br />Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得SignalingCommand使用CID 0x0001.<br />多个Command可以在一个C-frame(control转载 2010-07-06 14:34:00 · 1350 阅读 · 0 评论 -
实战Linux Bluetooth编程 (七) SDP协议
<br />本文作者的博客地址:http://blog.sina.com.cn/samzhen1977<br />作者:Sam (甄峰) sam_code@hotmail.com<br /> <br />Service DiscoveryProtocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。<br />服务发现协议(SDP或BluetoothSDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了blu转载 2010-07-06 14:56:00 · 1348 阅读 · 0 评论 -
Linux BlueZ 下 Inquiry的实现
<br />本文作者的博客地址:http://blog.sina.com.cn/samzhen1977<br />作者:Sam (甄峰) sam_code@hotmail.com<br /> <br /> <br />前面讲了使用 ioctl发送HCI Command的方法。但HCIprotocol还有一些Command,比如Inquiry等,他们则不需要使用ioctl来发送。blueZ直接提供了支持,虽然他们的最终都是用同样办法实现的。<br /><br />在应用程序中:<br />转载 2010-07-06 16:26:00 · 1134 阅读 · 0 评论 -
Bluetooth Sniff 详解
<br />本文作者的博客地址:http://blog.sina.com.cn/samzhen1977<br />作者:Sam (甄峰) sam_code@hotmail.com<br /> <br /> <br />前面讲了Blueooth Remote Control发送Sniffrequest,要求每5ms发送一个数据包。这篇详细介绍一下Bluetooth Sniff.<br /><br />在Sniff mode, Slave活动的占空比可能会降低。如果一个ACL逻辑传输的Slave转载 2010-07-06 16:52:00 · 3692 阅读 · 0 评论 -
实战Linux Bluetooth编程(四) L2CAP层编程
本文作者的博客地址:http://blog.sina.com.cn/samzhen1977作者:Sam (甄峰) sam_code@hotmail.com(L2CAP协议简介,L2CAP在BlueZ中的实现以及L2CAP编程接口)一:L2CAP协议简介:Logical Link Control and AdaptationProtocol(L2CAP)逻辑连接控制和适配协议(L2CAP)为上层协议提供面向连接和无连接的数据服务,并提供多协议功能和分割重组操作。L2CAP充许上层协议和应用软件传输和接收最转载 2010-07-06 14:21:00 · 1579 阅读 · 0 评论 -
实战Linux Bluetooth编程 (九) SDP层编程
<br />本文作者的博客地址:http://blog.sina.com.cn/samzhen1977<br />作者:Sam (甄峰) sam_code@hotmail.com<br /> <br /> <br />先前的章节谈过SDP协议。但没有具体讲如何编程。<br />BlueZ提供的SDP API,常见的如下:<br /> <br />1.<br />sdp_session_t *sdp_create(int sk, uint32_tflags)<br />参数1:sk: socket转载 2010-07-06 16:00:00 · 1833 阅读 · 0 评论 -
Android蓝牙栈bluez使用方法
<br />很多开发人员在最新的Android 0.9 SDK中没有找到蓝牙栈相关的参考,不过在官方消息中我们已经看到了是采用的是org.bluez相关的Package。这里主要介绍下Android蓝牙SDP相关的例程,我们看到是.intent.action,分为4个阶段:<br /> org.bluez.intent.action.DISCOVERY_STARTED 开始探测<br /> org.bluez.intent.action.REMOTE_DEVICE_FOUND 远程设转载 2010-07-06 17:04:00 · 2346 阅读 · 0 评论 -
Hi3110 EV 100平台上 Bluetooth的移植
本文作者的博客地址:http://blog.sina.com.cn/samzhen1977作者:Sam (甄峰) sam_code@hotmail.comSam想把手柄库移植到海思 Hi3100 EV 100平台上去。先进行评估如下:1. Hi3100 EV 100为ARM平台。2. Hi3100 EV 100使用uclibc。这两个差异决定了需要从bluetooth 底层库开始移植。一:Sam从linux kernel中编译出了bluetooth.ko,转载 2010-07-07 09:14:00 · 1356 阅读 · 0 评论 -
Merlin II Bluetooth Protocol Analyger 使用
<br />本文作者的博客地址:http://blog.sina.com.cn/samzhen1977<br />作者:Sam (甄峰) sam_code@hotmail.com<br /> <br />在写Bluetooth程序时,常常需要得到Bluetooth包是否发送以及内容是怎样。这就和写网络程序时需要抓包相同。但与网络程序(使用Ethereal)不同的是,bluetooth是无线传输的,所以需要借助BluetoothProtocol Analyger(蓝牙分析仪)。Sam当前使用的转载 2010-07-07 09:22:00 · 1214 阅读 · 0 评论 -
FLX6410上调试Marvell 88W8787 SDIO WIFI
转载链接:http://blog.csdn.net/sdecat/article/details/7514576随着88W8686芯片的停产,原来产品的sdio wifi模块需要考虑更新换代了,88w8787是marvell目前力推的wifi、蓝牙和FM三合一的模块,无论是功能、性能、功耗还是CPU占用率都是8686望尘莫及的。为了方便方案验证,这边先做了块通用SDIO接口的8787网卡。转载 2012-07-25 10:09:22 · 2142 阅读 · 0 评论 -
Bluetooth Features on Android by release
http://source.android.com/projects/bluetooth-featuresBluetooth Features by releaseAndroid 2.0 & 2.1 release (Eclair)Java API featuresBluetooth on / offDevice discoveryRFCOMM Server and Client socketsAutomatic RFCOMM channel lookup and SDP record adve转载 2010-07-06 17:17:00 · 1497 阅读 · 0 评论 -
android bluez
蓝牙的学习一共要跨hardware, linux kernel, framework, library, application layer. Hardware: bluetooth chipset, 2.4GHZ, hop frequency, 2Mbps等 Linux Kernel: bluez协议栈, uart驱动, h4协议, hci,l2cap, sco, rfcomm Library: libbluedroid.so 等转载 2010-07-06 17:15:00 · 4631 阅读 · 0 评论 -
linux蓝牙驱动代码阅读笔记
昨天看了一下介绍蓝牙协议文档,今天索性对照看了看kernel里的代码(bluez),这里记点笔记,还是继承了老毛病,只关注整体流程而忽略细节,先了解个大概,等真正需要时再仔细分析。net/hci_core.cHCI在主机端的驱动主要是为上层提供一个统一的接口,让上层协议不依赖于具体硬件的实现。HCI在硬件中的固件与HCI在主机端的驱动通信方式有多种,比如像UART、USB和PC Card等等。hci_core.c相当于一个框架,用于把各种具体通信方式胶合起来,并提供一些公共函数的实现。h转载 2010-07-01 14:28:00 · 1686 阅读 · 0 评论 -
嵌入式蓝牙网关中蓝牙驱动层研究与实现
0.引言 随着智能终端设备的不断增多,用来连接各种笔记本、PDA、台式电脑等设备的电缆布线会越来越复杂,它不仅影响了美观性,还增加了安装、维护的费用和难度,蓝牙技术是解决上述问题的有效途径之一[1],家庭或办公室中的笔记本、PC机等只要安装上蓝牙适配器就成为具有了蓝牙连接功能的数据终端(DT),彼此之间可以方便地实现互连互通。目前,具有蓝牙功能的笔记本、PDA、手机等终端设备越来越多,而蓝牙终端设备与互联网之间的互连互通则成了制约其应用的一大瓶颈[2]。蓝牙网关正是为这些蓝牙终端设备(包转载 2010-07-05 15:24:00 · 1892 阅读 · 0 评论 -
蓝牙开发入门--知识疏理
此处讲述的是蓝牙HCI相关的部分,并不是特指某个具体的蓝牙协议栈,只是对蓝牙HCI结构和技术作了总体的概述(一)Host Controller Interface (HCI)The HCI provides a command interface to the baseband controller and link manager, and access to hardware status and control registers. Essentially this interface p转载 2010-07-05 15:54:00 · 6287 阅读 · 2 评论 -
蓝牙协议栈及HCI三线串口传输控制
蓝牙协议包括多层协议栈,如下图。其中Transport Layer(UART/USB)层以下的协议通常都由蓝牙芯片集成,而传输层以上的协议则视芯片的不同而有所不同,以此原则蓝牙芯片分成了以下几种:TI公司的蓝牙芯片BRF6150属于右边的芯片,所以其高级应用的软件工作量将会较大,控制核心的程序需要实现高层的协议,要达到很好的兼容性有难度。但如果要作专用的蓝牙设备,则可以去除大部分复杂的协议,降低成本。底层模块是蓝牙技术的核心模块,所有嵌入蓝牙技术的设备都必须包括底层模块。它主要由链路管理层L转载 2010-07-05 15:56:00 · 3250 阅读 · 0 评论 -
蓝牙历史与发展
蓝牙历史: 蓝牙(Bluetooth),或称为蓝芽,是一种无线个人局域网(Wireless PAN),最初由爱立信创制,后来由蓝牙技术联盟订定技术标准。据说因为此技术尚在萌芽的阶段,故将Bluetooth以“蓝芽”的中文译名在台湾进行商业的注册,不过在2006年,该组织已将全球中文统一为“蓝牙”。 1999年5月20日,索尼爱立信、IBM、英特尔、诺基亚及东芝等业界龙头创立蓝牙特别兴趣组(SIG,Special Interest Group),制订蓝牙技术标准。 “转载 2010-07-05 16:02:00 · 1487 阅读 · 0 评论 -
Bluetooth(蓝牙)有关术语
Baseband基带 在Bluetooth中,基带是指在经RF调制之前的码速率为1M/s的部分。它定义了媒体访问控制(MAC)和物理层的过程,可支持Bluetooth单元间实时的语音以及数据信息流。Bluetooth Bluetooth是一个无线的通信链路,使用自由的2.4 GHz工业科学医疗频段(ISM),使用跳频机制。Bluetooth允许Bluetooth主机间实时的语音业务和非实时的数据通信。链路协议是基于时隙的(TDD)。转载 2010-07-05 16:03:00 · 1308 阅读 · 0 评论 -
Linux 无线网络技术系列之二Bluetooth
Linux 无线网络技术系列之二Bluetooth (1) 作者:Sreekrishnan Venkateswara 发文时间:2004.12.30 BlueZ 是官方 Linux Bluetooth 栈,由主机控制接口(Host Control Interface ,HCI)层、Bluetooth 协议核心、逻辑链路控制和适配协议(Logical Link Control and Adaptation Protocol,L2CAP)、SCO 音频层、其他 Bluetooth 服务转载 2010-07-05 16:06:00 · 1285 阅读 · 0 评论 -
实战Linux Bluetooth编程(二) BlueZ简介
Linux下Bluetooth协议栈的实现. Linux下开放的蓝牙协议栈主要包括IBM公司的BlueDrekar,Nokia公司的Affix, Axis公司的OpenBT和官方协议栈BlueZ。我们主要面对Bluez来探讨。BlueZ基础代码均是由Maxim Krasnyansky完成的。包括:HCI,L2CAP,RFCOMM和基本socket的实现。他就职于Qualcomm(高通)。Marcel Holtmann开发层的协议和应用,包括:BNEP, CMTP等。当然,这些中也有Maxim转载 2010-07-06 09:37:00 · 1143 阅读 · 0 评论 -
实战Linux Bluetooth编程(三) HCI层编程
<br />本文作者的博客地址:http://blog.sina.com.cn/samzhen1977<br />作者:Sam (甄峰) sam_code@hotmail.com<br />(HCI协议简介,HCI在BlueZ中的实现以及HCI编程接口)<br /> <br />1. HCI层协议概述:<br />HCI提供一套统一的方法来访问Bluetooth底层。如图所示:<br /> <br /><br /><br /> <br />从图上可以看出,Host ControllerInterfa转载 2010-07-06 11:00:00 · 1905 阅读 · 0 评论 -
实战Linux Bluetooth编程 (八) Class of Device
<br />本文作者的博客地址:http://blog.sina.com.cn/samzhen1977<br />作者:Sam (甄峰) sam_code@hotmail.com<br /> <br /> <br />在设备被发现阶段,设备的Class of device被提供出来。指出此设备是何种类型,以及支持哪些服务。<br /> <br />回想前面HCI章节所说,Inquiry时,会返回找到的设备信息,其中包括BDADDR等。其中dev_class字段就是Classof Device.<转载 2010-07-06 15:20:00 · 3093 阅读 · 3 评论 -
实战Linux Bluetooth编程(五) Socket与Bluetooth
<br />本文作者的博客地址:http://blog.sina.com.cn/samzhen1977<br />作者:Sam (甄峰) sam_code@hotmail.com<br /> <br /> <br />Linux下Bluetooth编程,借用了Socket体制。也就是说,BlueZKernel部分将Bluetooth协议栈以网络协议的形式添加进网络协议栈,这样极大的方便了用户编程。下面Sam就结合Socket概念将LinuxBluetooth做个研究。<br /> <br /转载 2010-07-06 14:30:00 · 1198 阅读 · 0 评论 -
Linux下 Bluetooth HCI Command的实现
本文作者的博客地址:http://blog.sina.com.cn/samzhen1977作者:Sam (甄峰) sam_code@hotmail.comLinux下写Bluetooth程序,首先接触到的就是使用HCI Command来设置Bluetooth Modules(USB Bluetooth dongle)。那这些HCI command在blueZ中是如何实现的呢?举例说明。if ((ctl = socket(AF_BLUETOOTH, SOCK_RAW, BTPROT转载 2010-07-06 16:16:00 · 2050 阅读 · 0 评论 -
Bluetooth HCI Event的处理
<br />本文作者的博客地址:http://blog.sina.com.cn/samzhen1977<br />作者:Sam (甄峰) sam_code@hotmail.com<br /> <br /> <br />1.当Bluetooth USBdongle插入USB接口时,driver/bluetooth/hci_usb.c中probe程序被调用。probe会调用hci_register_dev()--〉tasklet_init(&hdev->rx_task,hci_rx_ta转载 2010-07-06 16:29:00 · 1636 阅读 · 0 评论 -
Bluetooth FAQ on Android
<br />URL: http://sites.google.com/a/android.com/opensource/projects/bluetooth-faq<br />This FAQ refers to the Android Open Source codebase, and is written for platform developers with root access on devices such as the Androd Developer Phone.<br /转载 2010-07-06 17:12:00 · 2616 阅读 · 0 评论 -
什么是BQB认证?
一、什么是BQB认证?什么是QDL(DID)列名认证?1、BQB认证:如果您的产品具有蓝牙功能并且在产品外观上标明蓝牙标志,必须通过一个叫做BQB的认证;发证机构:SIG2、QDL列名:蓝牙产品“最终产品列表”,原来称呼:EPL列名指蓝牙BQB认证的列名形式,例如蓝牙音箱成品,如果蓝牙模块已经过了BQB认证,那么蓝牙音箱这个产品可以不用重新申请BQB认证,只要取得模块供应商的授权,就可以把产品以列...转载 2018-06-29 16:11:18 · 10557 阅读 · 0 评论