![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
蓝牙
walkingman321
这个作者很懒,什么都没留下…
展开
-
Bluez HID分析--Linux kernel部分
本文介绍蓝牙协议栈Bluez在linux中实现HID功能的kernel部分。在linux kernel中,Bluez对HID的实现代码在/net/bluetooth/hidp文件夹中,主要包括sock.c,core.c和hidp.h三个文件。Bluez提供了一个socket接口,用户空间程序通过使用该socket控制HID。该socket使用的协议编号为BTPROTO_HIDP。1. 初原创 2012-01-23 23:56:15 · 11171 阅读 · 0 评论 -
Bluez HID分析(二)
本文分析了蓝牙bluez协议栈中HID协议的实现。1. 基本概念HID协议用于人机输入设备。Bluez中关于HID的实现代码在其根目录下的input目录。蓝牙规范中包含关于HID的profile,里面重用了USB中关于HID的一些协议规范。Bluez协议栈与上层应用之间使用dbus接口。Bluez与kernel之间使用AF_BLUETOOTH协议族的socket通信,并使用了gt原创 2012-01-28 00:35:02 · 9830 阅读 · 0 评论 -
Bluez SPP实现代码分析
本文分析蓝牙协议栈中蓝牙转串口(SPP)部分的实现。1. 基本概念Bluez提供了蓝牙转串口的功能,应用程序可以通过dbus接口控制bluez的串口功能。1.1 启动SPP服务等待远端设备连接的过程:org.bluez.SerialProxyManager->CreateProxy // 得到一个serial proxyorg.bluez.SerialProx原创 2012-01-30 00:44:59 · 13091 阅读 · 3 评论 -
蓝牙底层HCI驱动的实现
Overview蓝牙协议栈与蓝牙底层设备一般是通过串口连接,两者之间通过HCI协议通讯。这就要求实现一个串口tty驱动。而对于Bluez协议栈来说,它是通过建立蓝牙的socket来发送、接收数据。因此,在蓝牙通信中,对上层应用是socket通信,对底层则一般是通过一个tty驱动实现。本文以HCIUART_LL为例,讨论了蓝牙底层的tty驱动部分,代码在drivers\bluetooth\hci原创 2012-03-20 21:41:30 · 14654 阅读 · 2 评论 -
linux HID驱动分析
最近研究蓝牙的键盘鼠标,所以粗略看了一下Linux的HID框架。HID 总线HID的总线在hid-core.c的hid-init中初始化:bus_register(&hid_bus_type);hid_bus_type的定义:static struct bus_type hid_bus_type = { .name = "hid",原创 2012-01-21 23:31:21 · 19226 阅读 · 2 评论