当前位置:网站首页>经典蓝牙的连接过程
经典蓝牙的连接过程
2022-07-26 10:51:00 【deparks】
经典蓝牙的连接过程
想要了解蓝牙的连接过程,必须先了解3个概念:
1,链路Link:物理链路,是基带协议中的概念,包括ACL链路和SCO链路两种,前者主要用于传递数据,后者传递语音。一对蓝牙设备,只存在一条ACL链路,允许存在3条SCO链路
2,信道channel: 这是L2DAP协议中的概念,是逻辑信道,信道的端点用信道标示符CID表示,用两个字节表示,所以最多存在65536个信道.即一条ACL链路可以存在最多65536个信道.信道包括信令信道和数据信道,通过信令信道建立数据信道,然后由数据信道传输数据.信令信道的CID为0x0001
3,连接connection:应用剖面上的概念,有了该剖面的connection,才能进行该剖面的服务和应用。
其中link establishment部分由LMP实现,channel establishment部分由L2CAP实现,connection establishment就是由具体的应用剖面(profile)来实现了。
我们以生活中常用的手机与蓝牙耳机之间的连接来详细分析蓝牙的连接过程:
首先,主设备(master,即发起连接的设备,这里指手机)会寻呼(page)从设备(slave,接收连接的设备,这里指蓝牙耳机),master会已跳频的方式去寻呼slave,slave会固定间隔地去扫描(scan)外部寻呼,即page scan,当scan 到外部page时便会响应response该page,这样两个设备之间便会建立link的连接,即ACL链路的连接。当ACL 链路连接建立后,主设备会发起channel的连接请求,即L2CAP的连接,建立L2CAP的连接之后,主设备采用SDP去查询从设备的免提服务,从中得到rfcomm的通道号,然后主设备会发起rfcomm的连接请求建立rfcomm的连接。然后就建立了应用的连接。
即link establish->channel establish->rfcomm establish->connection
边栏推荐
- @NotBlank、@NotNull 、@NotEmpty 区别和使用
- Pengge C language lesson 4 (3)
- 看源码之LinkedList
- 菜鸟看源码之LinkedBlockingQueue
- logging 学习最终版-配置的不同级别日志打印的颜色
- Wechat official account development obtains openid times error 40029 invalid code solution
- Many people don't know whether they are looking for Kanban software or Kanban software
- 智能合约dapp系统开发流程技术
- 很多人都不清楚自己找的是Kanban软件还是看板软件
- SQL Server 之Sql语句创建数据库
猜你喜欢
随机推荐
Sword finger offer (52): regularization expression
c 语言中宏参数的字符串化跟宏参数的连接
Sword finger offer (44): flip the word order sequence
Sql Server之查询总结
C#委托与匿名方法浅析
mysql20210906
MFC图片控件
菜鸟看源码之HashTable
Minesweeping Pro version 2021-08-19
Flutter CachedNetworkImage圆角
RT thread learning notes (III) -- building a compilation environment with scons
RT thread learning notes (VI) -- start the elmfat file system based on SPI flash (Part 1)
Pengge C language 20210811 program structure operation
Traversal recursion + iteration of binary tree
242.有效的字母异位词
Flutter TextField怎样去除下划线及有焦点时颜色
@Validated 和 @Valid 的真正区别和使用方式
Visual conversion of nmap vulnerability scanning results
Add touch screen driver for stemwin 5.22 on Shenzhou IV development board
Bash shell学习笔记(五)









