bluetooth
文章平均质量分 76
rain0993
这个作者很懒,什么都没留下…
展开
-
Android/Bluetooth 初始化流程
=========================Kernel Space=========================1. Board power initMACHINE_START init_machine = comet_initbt_power_initbluetooth_power2. HCI device/connection manager,转载 2013-09-10 01:11:33 · 1288 阅读 · 0 评论 -
Bluetooth HCI Event的处理
1.当Bluetooth USB dongle插入USB接口时,driver/bluetooth/hci_usb.c中probe程序被调用。probe会调用hci_register_dev()--〉tasklet_init(&hdev->rx_task, hci_rx_task, (unsigned long) hdev);将hci_rx_task() 连上rx_task->func.转载 2013-09-06 17:23:53 · 1854 阅读 · 0 评论 -
Bluetooth协议栈学习之SDP
SDP(service discovery protocol:服务发现协议)提供了一个方法,让应用程序检测哪些服务是可用的并探测这些可用服务的特性。服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的转载 2013-05-06 09:58:30 · 739 阅读 · 0 评论 -
基于bluez程序编译时注意事项
制作了一个基于bluez的,类似于BTW的库---BTX.在编写和使用这个库时,发现头文件包含容易出现的问题。第一:不要用到哪个Bluez头文件中定义的内容就只去包含这个头文件。而应该将bluetooth/bluetooth.h最先加入。类似://==================================//bluetooth header file#include转载 2013-05-06 10:00:37 · 904 阅读 · 0 评论 -
Bluetooth Sniff 详解
前面讲了Blueooth Remote Control发送Sniff request,要求每5ms发送一个数据包。这篇详细介绍一下Bluetooth Sniff.在Sniff mode, Slave活动的占空比可能会降低。如果一个ACL逻辑传输的Slave 处于Active Mode,它将在在每个Master 发送ACL Slot中监听。除非link处理为分散连接或者在Hold Mode。转载 2013-05-06 09:59:58 · 1470 阅读 · 0 评论 -
Hi3110 EV 100平台上Bluetooth的移植
Sam想把手柄库移植到海思 Hi3100 EV 100平台上去。先进行评估如下:1. Hi3100 EV 100为ARM平台。2. Hi3100 EV 100使用uclibc。这两个差异决定了需要从bluetooth 底层库开始移植。一:Sam从linux kernel中编译出了bluetooth.ko, hci_usb.ko, l2cap.ko, hidp转载 2013-05-06 09:59:26 · 994 阅读 · 0 评论 -
rfcomm层的socket程序编写
今天写了个简单的蓝牙server—client传递字符串的程序,并且把server移植到了开发板上,测试通过。能够在测试端输入字符串,并显示在服务端。现在输入超过1200个左右的字符就会出现问题,还不清楚究竟是socket的write大小限制在1000多,还是自己缓冲区的问题,明天去借本书来研究研究。利用蓝牙建立连接其实和普通socket编程中建立tcp连接很相似,首先在监听端创建socket转载 2013-03-02 21:28:23 · 570 阅读 · 0 评论 -
Bluetooth协议
Bluetooth协议 一、射频及基带部分Bluetooth设备工作在2.4GHz的ISM(Industrial,Science and Medicine)频段,在北美和欧洲为2400~2483.5MHz,使用79个频道,载频为2402+kMHz(k=0,1…,22)。无论是79个频道还是23个频道,频道间隔均为1MHz,采用时分双工(TDD,TimeDivision Duplex)方原创 2013-01-05 17:04:57 · 1026 阅读 · 0 评论 -
bluetooth overview for android QC
BlueZ Startup Procedure (Host BlueZ (Android Bluetooth host stack) )Call flow on enabling/disabling Bluetooth in UI settings → Wireless controlFunctions bt_enable, bt_disable in android/system原创 2013-01-22 18:05:40 · 6173 阅读 · 0 评论 -
Linux BlueZ 下 Inquiry的实现
前面讲了使用 ioctl发送HCI Command的方法。但HCI protocol还有一些Command,比如Inquiry等,他们则不需要使用ioctl来发送。blueZ 直接提供了支持,虽然他们的最终都是用同样办法实现的。在应用程序中:hci_inquiry(dev_id, length, num_rsp, NULL, &info, flags);这样需要包含blueZ 头文转载 2013-09-06 17:24:30 · 688 阅读 · 0 评论 -
Linux下Bluetooth HCI Command的实现
Linux下写Bluetooth程序,首先接触到的就是使用HCI Command来设置Bluetooth Modules(USB Bluetooth dongle)。那这些HCI command在blueZ中是如何实现的呢?举例说明。if ((ctl = socket(AF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI)) 在此之前,因为hci_sock.c转载 2013-09-06 17:25:02 · 2646 阅读 · 0 评论 -
蓝牙编程-l2cap协议层的c/s程序
l2cap协议方式的socket连接.以下为客户端的程序:#include #include #include #include #include #include int main( int argc , char **argv){ struct sockaddr_l2 addr={0}; int s,status; char *des转载 2013-09-06 17:25:36 · 839 阅读 · 0 评论 -
命令行测试BT,WIFI,Sensor工作状态
//命令行测试wlan//加载驱动#insmod /system/lib/modules/ath6kl/cfg80211.ko#insmod /system/lib/modules/ath6kl/ath6kl_sdio.ko//查看加载的情况root@android:/ # lsmodwlan 205174 0 - Live 0x00000000 (O)cfg802原创 2013-09-09 15:36:00 · 1928 阅读 · 0 评论 -
在Linux中使用蓝牙
一,蓝牙存储设备 蓝牙适配器: CSR蓝牙, USB接口 1,加载蓝牙适配器 插入USB口之后,可以使用lsusb命令,看到: Bus 004 Device 003: ID 1131:1001 Integrated System Solution Corp. 这是,运行hciconfig可以看到: hci0: Ty转载 2013-09-06 17:29:01 · 1676 阅读 · 1 评论 -
预防蓝牙手机中病毒
当机”、“终止应用程序”、“衍生变种家族”、“无线入侵”、“伪装免费软件”甚至“窃取资讯”,这些电脑病毒常见的破坏手法,现在手机病毒也跟着模仿,入侵手机用户。趋势科技 TrendLabs 最近的一份报告指出,手机病毒可能造成文件、电话簿、讯息、相册以及电话本身的操作功能丧失。 趋势科技TrendLabs分析第一季的手机病毒,发现主要呈现四种状况,包括“复写防毒软件”伪装成更新防转载 2013-09-06 17:24:59 · 745 阅读 · 0 评论 -
YC2440-F移植blueZ
准备工作:a. 在http://www.bluez.org/download/下载 bluez-libs-2.25.tar.gz 和 bluez-utils-2.25.tar.gz压缩包。b.ARM-LINUX-GCC 3.3.2版本,在终端中arm-linux-gcc -v查看。c.我的板子上是扬创出厂时的内核版本2.6.13。 具体步骤:1.重新编译内核开启对蓝牙USB转载 2013-09-06 17:28:34 · 800 阅读 · 0 评论 -
连接蓝牙设备
当蓝牙SIG(特别兴趣组,由爱立信等厂商组成)成立的时候,其发起者曾经指出,当蓝牙能够被集成入单芯片之中、成本下降到5美元的时候,将得到极大地普及。而今,小小的一个五号电池大小的几十块人民币的东西就可以提供这个功能了,蓝牙也真的进入了我们的生活。利用蓝牙在手机之间传送图片不是什么新鲜事,现在做的是要连接Linux主机和蓝牙手机。15.2.1 蓝牙技术概述蓝牙最早由瑞典的爱立信公司提出,其转载 2013-09-06 17:28:05 · 1064 阅读 · 0 评论 -
Linux下基于bluez与obex的服务
一个服务端需要给对方提供OBEX Object Push服务的通道,所以在打开服务器之前需要确定已经将该服务注册到SDP服务器,Linux下使用sdptool注册该服务的命令为:sdptool add opush; 1.OBEX_Init()用于初始化一个obex instance handle;arg1:OBEX_TRANS_BLUETOOTH用于声明传输协议为bluetooth;转载 2013-09-06 17:29:07 · 2647 阅读 · 0 评论 -
bluetooth(蓝牙)在S3C2410上的移植
(一) 在Red hat 9上安装Bluez在pc上的安装我参考了O'Reilly的Linux Unwired一书,chapter 7中详细地介绍了linux下的bluetooth的基础知识、安装、配置和使用。安装前必须了解一下bluez的基本结构,直接位于发射传输协议之上的 协议是HCI(host control interface),我的手机和蓝牙GPS用到的高层协议是服务发现协议SDP和转载 2013-09-06 17:28:30 · 1503 阅读 · 0 评论 -
蓝牙安全浅析
越来越多地出现在使用带有蓝牙功能手机的朋友身边:明明自己不怎么爱发短信但是却发现自己短信费用突然增高、自己与朋友合影的照片被不认识的人登在了网上、自己的手机莫名其妙地向外拨号……到底是什么原因造成了这些问题呢?下面我们为大家讲述一则有关蓝牙安全的故事,通过这个故事,大家就知道造成这些问题的原因了。 周利是一个从事无线安全研究的技术专家,为了对蓝牙设备安全进行研究,周利决定在一家大转载 2013-09-06 17:27:31 · 1677 阅读 · 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这一端:app原创 2013-01-23 11:19:15 · 1248 阅读 · 0 评论 -
实战Linux Bluetooth编程(二) BlueZ简介
Linux下Bluetooth协议栈的实现. Linux下开放的蓝牙协议栈主要包括IBM公司的BlueDrekar,Nokia公司的Affix, Axis公司的OpenBT和官方协议栈BlueZ。我们主要面对Bluez来探讨。 BlueZ基础代码均是由Maxim Krasnyansky完成的。包括:HCI,L2CAP,RFCOMM和基本socket的实现。他就职于Qualcomm(高通)。原创 2013-01-23 11:18:43 · 1026 阅读 · 0 评论 -
实战 linux蓝牙编程之(八) hci 协议 应用编程实现
对于hci层的编程 是相当复杂的 功能也是强大的,建议学习者 去读bluez-lib中的hci和sdp 这里简要介绍 我在开发公司的项目中的 一个小的基础动作. 该编程的过程基本理清了hci和sdp的衔接和应用.希望对学习者有帮助说明有不到之处,望大家多多研究,不要局限,每个人有自己的方式,也许你的在逻辑算法上比我的好!!//scan是一个利用hci层协议 获得远程蓝牙设备的蓝牙地址原创 2013-01-23 11:22:06 · 1065 阅读 · 0 评论 -
实战Linux Bluetooth编程 (七) SDP协议
Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。这个协议定义了原创 2013-01-23 11:21:28 · 722 阅读 · 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-01-23 11:21:02 · 1126 阅读 · 0 评论 -
调试Bluetooth时的一些札记
LCL层是BT的链路控制功能的一部分,它从软件或被命令配置或控制的其他控制器上取命令,然后执行链路控制任务。蓝牙技术的系统结构分为三大部分:底层硬件模块、中间协议层和高层应用。底层硬件部分包括无线跳频(RF)、基带(BB)和链路管理(LM)。无线跳频层通过2.4GHz无需授权的ISM频段的微波,实现数据位流的过滤和传输,本层协议主要定义了蓝牙收发器在此频带正常工作所需要满足的条件。基带负责原创 2013-01-03 17:08:54 · 1664 阅读 · 0 评论 -
Android底层开发之旅—蓝牙系统分析
Android蓝牙系统分为四个层次,内核层、BlueZ库、BlueTooth的适配库、BlueTooth的JNI部分、Java框架层、应用层。下面先来分析Android的蓝牙协议栈。Android的蓝牙协议栈采用BlueZ来实现,BlueZ分为两部分:内核代码和用户态程序及工具集。内核代码主要由BlueZ核心协议和驱动程序组成;蓝牙协议实现在内核源代码net/bluetoo原创 2013-01-04 10:22:12 · 1049 阅读 · 0 评论 -
Android BCM4330 蓝牙BT驱动调试记录
网上关于BT的驱动很少,所以我在开发过程中把其中的步骤记录下来。供大家相互学习讨论。一、关于BT driver的移植:1. Enablebluetootch in BoadConfig.mk BOARD_HAVE_BLUETOOTH := true2.实现BT电源管理rfkill驱动。Kernel/dr原创 2013-01-03 17:06:29 · 950 阅读 · 0 评论 -
蓝牙驱动和Profile
net/hci_core.cHCI 在主机端的驱动主要是为上层提供一个统一的接口,让上层协议不依赖于具体硬件的实现。HCI在硬件中的固件与HCI在主机端的驱动通信方式有多种,比如像 UART、USB和PC Card等等。hci_core.c相当于一个框架,用于把各种具体通信方式胶合起来,并提供一些公共函数的实现。hci_cmd_task是负责发送CMD的任务,它从hdev->cmd_q队列原创 2013-01-03 17:07:25 · 868 阅读 · 0 评论 -
Android Bluetooth初始化流程
http://blog.c csdn.net/magod/archive/2010/09/10/5876655.aspx =========================Kernel Space=========================1. Board power initMACHINE_STARTinit_machine = comet_init原创 2013-01-03 17:05:08 · 1346 阅读 · 0 评论 -
bluetooth 专业术语
Baseband 基带在Bluetooth 中,基带是指在经RF 调制之 前的码速率为1M/s 的部分。它定义了媒体访问控制(MAC )和物理层的过程,可支持Bluetooth 单元间实时的语音以及数据信息流。BluetoothBluetooth 是一个无线的通信链路,使 用自由的2.4 GHz 工业科学医疗频段(ISM ),使用跳频机制。Bluetooth 允许Bluet转载 2013-01-23 14:48:41 · 2105 阅读 · 0 评论 -
蓝牙协议简述 && Linux下Bluez
Linux下Bluez的编程实现蓝牙的各个协议栈的简介 21.1、蓝牙技术 21.1、蓝牙协议栈 21.2、蓝牙技术的特点 41.2.1、蓝牙协议栈体系结构 41.2.2、蓝牙协议栈低层模块 51.2.3、软件模块 51.3、蓝牙的一些Profile 62、Bluez和D-Bus 82.1、Bluez和D-转载 2013-01-23 14:52:10 · 6169 阅读 · 0 评论 -
Bluetooth设备之间如何建立连接
首先要明白几个概念:Page, Page Scan; Inquiry, Inquiry Scan。Page:传呼Page Scan:传呼扫描Page是指,发起连接的设备(主设备)知道要连接设备的地址。所以可以直接传呼。(想想传呼机,要知道号码才行)。Page Scan是指该设备正处于等待传呼的状态中。通常是指和Page对应从设备(等待被连接的设备)。Inquiry:查询(询转载 2013-01-23 14:55:00 · 2044 阅读 · 0 评论 -
实战Linux Bluetooth编程(一) 协议栈概述
Sam一年前在Linux下写了一个类似Windows下BTW的库--BTX。现在需要添加新功能时发现很多知识点都忘记了。所以决定在这次学习中,把一些bluez API记录下来。这几天又想,这样还不够,不如把Linux下的Bluetooth编程基础给记录下来吧。 前言:随着嵌入式系统的飞速发展,很多嵌入式平台上需要Bluetooth设备和应用。但在Linux下如何对Bluetooth编原创 2013-01-23 11:18:21 · 1153 阅读 · 0 评论 -
bluetooth baseband
基带基带就是蓝牙的物理层,它负责管理物理信道和链路中除了错误纠正、数据处理、调频选择和蓝牙安全之外的所有业务。基带在蓝牙协议栈中位于蓝牙无线电之上,基本上起链路控制和链路管理的作用,比如承载链路连接和功率控制这类链路级路由等。基带还管理异步和同步链路、处理数据包、寻呼、查询接入和查询蓝牙设备等。基带收发器采用时分复用TDD方案(交替发送和接收),因此除了不同的跳频之外(频分),时间都被划分转载 2013-01-23 14:55:53 · 1689 阅读 · 0 评论 -
实战Linux Bluetooth编程 Class of Device(转)
在设备被发现阶段,设备的Class of device被提供出来。指出此设备是何种类型,以及支持哪些服务。 回想前面HCI章节所说,Inquiry时,会返回找到的设备信息,其中包括BDADDR等。其中dev_class字段就是Class of Device. typedef struct { bdaddr_t bdaddr; uint8_t pscan_转载 2013-01-23 14:53:58 · 590 阅读 · 0 评论 -
ARM平台上蓝牙协议栈Bluez的移植使用和配置
Bluez作为当前最成熟的开源蓝牙协议栈,在Linux的各大发行版中已经得到了广泛的应用。在桌面环境下,使用Bluez应该已经没有太大的 问题,本文的主要目的是介绍在嵌入式平台上,搭建和配置Bluez的各个Profile运行所需做的工作,讨论可能遇到的问题,介绍一些工具的使用和工作 原理。因为本人的能力和测试时间有限,可能下文中有些理解、分析不一定准确,欢迎联系指正。 1 相关说明转载 2013-01-23 14:57:34 · 1016 阅读 · 1 评论 -
蓝牙协议栈
蓝牙支持点对点和点对多点的通信。蓝牙最基本的网络结构是匹克网(Picnet)。匹克网实际上是一种个人网络,它以个人区域(即办公室区域)为应用环境。需要指出的是,匹克网并不能够代替局域网,它只是用来代替或简化个人区域中的电缆连接。匹克网主要由主设备和从设备构成。主设备负责提供时钟同步信号和跳频序列,而从设备一般是受控同步的设备,并接收主设备的控制。在同一匹克网中,所有设备均采用同一跳频序列。转载 2013-01-23 14:52:49 · 1287 阅读 · 0 评论 -
Android 蓝牙 资料(转)
一、Android Bluetooth现状(1)Android2.2版 支持的蓝牙核心版本是Bluetooth 2.0 + EDR。(2)Android 的蓝牙 使用了BlueZ协议栈,但只实现了Handset/Handfree和A2DP/AVRCP等Profile。(一些常用的Profile(如HID/DUN/SPP/OPP/FTP/PAN等)在现在的Android2.2版中转载 2013-01-23 14:50:04 · 1199 阅读 · 0 评论 -
实战Linux Bluetooth编程(五) Socket与Bluetooth
Linux下Bluetooth编程,借用了Socket体制。也就是说,BlueZ Kernel部分将Bluetooth协议栈以网络协议的形式添加进网络协议栈,这样极大的方便了用户编程。下面Sam就结合Socket概念将Linux Bluetooth做个研究。 1957年10月4日,星期五,苏联发射了人类历史上第一颗人造地球卫星--Sputnik.这标志着人类外太空时代的开始。这颗卫星篮球大原创 2013-01-23 11:20:38 · 1188 阅读 · 0 评论