作者:Sam(甄峰)
Sam在写一些Bluetooth Driver和应用程序时,常发现如果没有深入理解Bluetooth协议栈,则出现问题后很难准确定位和查找。所以这段时间的工作为基础,尝试深入理解Bluetooth协议栈。
在基于BlueZ开发应用程序时,最先遇到的就是怎样建立一个连接,如L2CAP连接的建立。因为BlueZ封装的很好,所以可以在完全不理解底层的情况下顺利建立一个l2cap连接。在之前的blog中(实战Linux
这时就需要我们研究底层程序和理解Bluetooth协议栈。
首先依托于此问题来开始我们的学习:
一个ACL连接建立和销毁时,具体发生了什么事。HCI Event和HCICommand的时序如何。HCI与LMP交互等。