Linux BT架构
冰水寒SG
这个作者很懒,什么都没留下…
展开
-
实战Linux Bluetooth编程(一) 协议栈概述
Sam一年前在Linux下写了一个类似Windows下BTW的库--BTX。现在需要添加新功能时发现很多知识点都忘记了。所以决定在这次学习中,把一些bluez API记录下来。这几天又想,这样还不够,不如把Linux下的Bluetooth编程基础给记录下来吧。 前言:随着嵌入式系统的飞速发展,很多嵌入式平台上需要Bluetooth设备和应用。但在Linux下如何对Bluetooth编程转载 2013-05-20 18:56:40 · 717 阅读 · 0 评论 -
Linux下Bluez的编程实现
[+]蓝牙的各个协议栈的简介蓝牙技术蓝牙协议栈蓝牙技术的特点蓝牙协议栈体系结构蓝牙协议栈低层模块软件模块蓝牙的一些ProfileBluez和D-BusBluez和D-Bus体系结构D-Bus介绍Bluez的安全接口Bluez适配器接口Bluez配对Bluez绑定Bluez编程实现蓝牙开发关键技术剖析连接机制分析自动连接时钟设计配对列表转载 2013-12-25 13:58:38 · 2112 阅读 · 0 评论 -
蓝牙的SDP协议总结
1.概念 SDP协议让客户机的应用程序发现存在的服务器应用程序提供的服务以及这些服务的属性。SDP只提供发现服务的机制,不提供使用这些服务的方法。每个蓝牙设备都需要一个SDP Service,只做Client的蓝牙设备除外。2.ServiceRecord 每一个Service利用ServiceRecord来表示(具有唯一的32bit的Handle),每一个Service转载 2014-01-06 13:59:49 · 722 阅读 · 0 评论 -
蓝牙的Baseband说明
蓝牙的radio部分使用2.4GHz的ISM段,2400 - 2483.5 MHz,通道间隔1MHz,GFS调制,采用跳频技术,每秒至少1600次。连接完成后的跳频次数为1600次/s,在inquiry和page时为3200次/s。1.时钟有三种是CLK,如下图:CLK是Master的时钟,代表某一个piconet的是时钟。slave根据下图来调整自己的时钟以达到和master转载 2014-01-06 14:14:03 · 892 阅读 · 0 评论 -
linux下bluetooth编程(六)L2CAP层编程实例
例一:发送Signaling Packet:Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.多个Command可以在一个C-frame(control frame)中发送。 如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Soc转载 2013-05-20 19:13:56 · 678 阅读 · 0 评论 -
linux下bluetooth编程(五)bluetooth与socket
一:理解Socket:在使用手机与女朋友联系时,必须用手机拨她的号码,然后心情坎坷的等待她的应答。当双方通话时,就建立了一个具有两个端点的通信线路。Linux中的Socket与电话非常相似。具体问题,稍后再分析。 二:Socket域(domain),类型(type),协议(protoclo)以及Bluetooth中的具体使用:Berkeley小组在构思BSD Socket时,T转载 2013-05-20 19:10:31 · 722 阅读 · 0 评论 -
linux下bluetooth编程(七)SDP协议
Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。这个协议定义了转载 2013-05-20 19:18:26 · 677 阅读 · 0 评论 -
linux下bluetooth编程(四)L2CAP层编程
一:L2CAP协议简介:Logical Link Control and Adaptation Protocol(L2CAP) 逻辑连接控制和适配协议(L2CAP) 为上层协议提供面向连接和无连接的数据服务,并提供多协议功能和分割重组操作。L2CAP充许上层协议和应用软件传输和接收最大长度为 64K的 L2CAP数据包。L2CAP基于 通道(channel)的概念。 通道 (Cha转载 2013-05-20 19:09:16 · 1053 阅读 · 1 评论 -
实战Linux Bluetooth编程(二) BlueZ简介
Linux下Bluetooth协议栈的实现. Linux下开放的蓝牙协议栈主要包括IBM公司的BlueDrekar,Nokia公司的Affix, Axis公司的OpenBT和官方协议栈BlueZ。我们主要面对Bluez来探讨。 BlueZ基础代码均是由Maxim Krasnyansky完成的。包括:HCI,L2CAP,RFCOMM和基本socket的实现。他就职于Qualcomm(高通转载 2013-05-20 18:58:12 · 961 阅读 · 0 评论 -
蓝牙基带数据传输机理分析
蓝牙(Bluetooth)是一种新型、开放、低成本、短距离的无线连接接技术,可取代短距离的电缆,实现话音和数据的无线传输。这种有效、廉价的无线连接技术可以方便地将计算机及外设、移动电话、掌上电脑、信息家电等设备连接起来,在它可达到的范围内使各种信息化移动便携设备都能实现无缝资源共享,还可通过无线局域网(WirelessLAN)与Internet连接,实现多媒体信息的无线传输。转载 2013-05-20 14:47:17 · 904 阅读 · 0 评论 -
linux下bluetooth编程(八)SDP层编程
BlueZ提供的SDP API,常见的如下:1.sdp_session_t *sdp_create(int sk, uint32_t flags)参数1:sk: socket参数2:SDP flags. 取值如下:#define SDP_RETRY_IF_BUSY 0x01#define SDP_WAIT_ON_CLOSE 0x02#define SDP_NON_BLO转载 2013-05-20 19:22:11 · 527 阅读 · 0 评论 -
linux下bluetooth编程(三)HCI层编程
1. HCI层协议概述:HCI提供一套统一的方法来访问Bluetooth底层。如图所示: 从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。在Host这一端:applic转载 2013-05-20 19:04:42 · 1056 阅读 · 0 评论 -
container_of分析
1.container_of宏1> Container_of在Linux内核中是一个常用的宏,用于从包含在某个结构中的指针获得结构本身的指针,通俗地讲就是通过结构体变量中某个成员的首地址进而获得整个结构体变量的首地址。2>接口:container_of(ptr, type, member) ptr:表示结构体中member的地址 type:表示结构体类型 membe转载 2014-09-03 14:35:12 · 352 阅读 · 0 评论