在HCI层ACL Connection的建立

一.概述
    上一篇博文介绍的是inquiry的整个过程中HCI层的command和event。在寻找到有效的远端蓝牙设备后,开始建立ACL连接,这里仅仅反应HCI层的数据包,对于LM层和Baseband层的数据可能需要抓取FW的log进行查看。

二.建立ACL连接的过程
1. Create_Connection command
  该命令参数如下:
BD_ADDR,
Packet_Type,
Page_Scan_Repetition_Mode,
Reserved,
Clock_Offset,
Allow_Role_Switch
00000101 00000100 00001101 10000000 10011001 00100011 01001100 11100000 00000000 00011000 11001100 00000001 00000000 10010010 11000111 00000001
Opcode: 0x0405
Total Length: 00001101 = 0x0d = 13
BD_ADDR:10000000 10011001 00100011 01001100 11100000 00000000 = 0x00e04c239980
下图是inquiry过程中的一个extended inquiry result event:
在HCI层ACL <wbr>Connection的建立
从上图可以看出这个地址属于一个rk3066的设备,实际是一个平板电脑
Packet_Type:00011000 11001100 = 0xcc18(DM1-DH1, DM3-DH3, DM5-DH5)
Page_Scan_Repetition_Mode:00000001 = 0x01(R1)
Clock_Offset:10010010 11000111 = 0xc792(18322)  //CLKslave-CLKmaster
Allow_Role_Switch:00000001(本地设备是master,接受role switch)

2. Command status event
该event参数如下:
Status,
Num_HCI_Command_Packets,
Command_Opcode
00001111 00000100 00000000 00000010 00000101 00000100
EventCode: 00001111 = 0x0F
Total Length: 00000100 = 0x04
status = 00000000 = 0x00 表示command成功
Num_HCI_Command_Packets = 00000010 = 0x02
Command Opcode:和Create_connection command一样为 00000101 00000100 = 0x0405

3.Connection Complete event
   建立成功,返回Connection Complete event,该event参数如下:
Status,  
Connection_Handle, 
BD_ADDR,
Link_Type, 
Encryption_Enabled
00000011 00001011 00000000 00001001 00000000 10000000 10011001 00100011 01001100 11100000 00000000 00000001 00000000
EventCode: 00000011 = 0x03
Total Length: 00001011 = 0x0b = 11
Status: 0x0000(Success)
Connection_Handle:00001001 00000000 = 9
BD_ADDR: 10000000 10011001 00100011 01001100 11100000 00000000 = 0x00e04c239980
Link_Type:00000001 = 0x01(ACL connection (Data Channels))
Encryption_Enabled:00000000(不加密)

三.总结
  建立ACL Connection在HCI层上看比较简单,只有Create_Connection commandCommand status event以及Connection Complete event两个event。在建立连接后,得到重要的Connection handle,建立起ACL连接,这个连接一旦建立起来,L2CAP signaling channel(CID = 0x0001)就已经存在,L2CAP可以在这个Channel进行一些数据传输病建立L2CAp连接。这在下一篇介绍。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值