深入理解Bluetooth协议栈(一) ACL连接的建立和断连

作者:Sam(甄峰) [email protected]

 

Sam在写一些Bluetooth Driver和应用程序时,常发现如果没有深入理解Bluetooth协议栈,则出现问题后很难准确定位和查找。所以这段时间的工作为基础,尝试深入理解Bluetooth协议栈。

 

在基于BlueZ开发应用程序时,最先遇到的就是怎样建立一个连接,如L2CAP连接的建立。因为BlueZ封装的很好,所以可以在完全不理解底层的情况下顺利建立一个l2cap连接。在之前的blog中(实战Linux Bluetooth编程(四) L2CAP层编程)有具体介绍。但如果在主动连接或被动等待连接时出错。则几乎无法判断是什么原因导致的。(Sam就曾遇到此问题,对方主动连接后却立刻断连。)

 

这时就需要我们研究底层程序和理解Bluetooth协议栈。

 

首先依托于此问题来开始我们的学习:

一个ACL连接建立和销毁时,具体发生了什么事。HCI Event和HCICommand的时序如何。HCI与LMP交互等。


你可能感兴趣的:(Android,BlueTooth)