|
注册登录,了解更多芯片技术。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
首先,主设备(master,即发起连接的设备)会寻呼(page)从设备(slave,接收连接的设备),master会以跳频的方式去寻呼slave, slave会固定间隔地去扫描(scan)外部寻呼,即page scan,当scan 到外部page时便会响应response该page,这样两个设备之间便会建立link的连接,即ACL链路的连接。当ACL 链路连接建立后,主设备会发起channel的连接请求,即L2CAP的连接。建立L2CAP的连接之后,主设备采用SDP去查询从设备的免提服务,从中得到rfcomm的通道号,然后主设备会发起rfcomm的连接请求建立rfcomm的连接。然后就建立了应用的连接。
1. 蓝牙设备的发现和同步:
蓝牙设备在建立连接以前,通过在固定的一个频段内选择跳频频率或由被查询的设备地址决定,迅速交换握手信息时间和地址,
快速取得设备的时间和频率同步。建立连接后,设备双方根据信道跳变序列改变频率,使跳频频率呈现随机特性。
蓝牙定义了32个频点为一个频段, 划分为79个子频段,工作的频段及跳频顺序取决于所输入的蓝牙主控设备时钟CLK
和主控设备地址的最低28比特有效位
(1)查询扫描状态(inquiry)
查询设备每隔一段时间发送一个新的频率来发送查询,被查询设备每隔1.28s选择一次新的监听频率。
查询和被查询设备使用通用查询接入码(鉴权过程),作为查询地址。产生的32个查询跳变序列均匀分布在79个频率信道上。
(2)寻呼扫描状态(page)(需要知道mac地址,发起连接的设备(主设备)知道要连接设备的地址。)
蓝牙设备通过寻呼来呼叫其它的设备加入其所在的微微网,寻呼设备每隔312.5微秒选择一个新的频率来发送寻呼,
在寻呼扫描时,被寻呼设备每隔1.28s选择一个新的监听频率。
寻呼和被寻呼设备使用被寻呼设备地址(BT_ADDR)的低28个比特位,产生的寻呼跳变序列(paging –hopping sequence)
是一个定义明确的周期序列,它的各个频点均匀分布在2.4G的79个频率信道上。
(3)连接状态:
在当前状态下, 蓝牙通信设备双方每隔625微秒改变一个频率,使用主设备地址的最低28位有效位,
产生的信道跳变序列(Channel hopping sequence)周期非常长,而且79跳变序列在任何的一小段时间内都是接近均匀分布的。
Page:这个子状态就是我们通常称为的连接(寻呼),进行连接/激活对应的slave的操作我们就称为page。
它是指:发起连接的设备(主设备)知道要连接设备的地址。所以可以直接传呼。(想想传呼机,要知道号码才行)。
Page scan:这个子状态是和page对应的,它就是等待被page的slave所处的状态,
换句话说,若想被page到,我们就要处于page scan的状态。
inquiry:这就是我们通常所说的扫描状态,这个状态的设备就是去扫描周围的设备。它是不知道周围有什么设备,要去查询(调查),类似于广播(吆喝)。
处于Inquiry Scan的设备可以回应这个查询。再经过必要的协商之后,它们就可以进行连接了。
发现过程通常包括大约12秒的查询扫描,然后对每个新设备进行页面扫描,以检索其蓝牙名称。
The discovery process usually involves an inquiry scan of about 12 seconds,
followed by a page scan of each new device to retrieve its Bluetooth name.
1. inquiry
作用:让蓝牙芯片进入发现周围蓝牙设备的模式,它的返回值是周围蓝牙设备的信号。
对应的HCI命令:HCI_inquiry:属于连接控制命令,搜索一次时长为12.8s.
2. inquiry scan
作用:蓝牙设备开启inquiry scan模式,才能够被别的蓝牙设备搜索到。
3. Page
作用:发起连接的蓝牙设备向被连接的蓝牙设备发起连接请求或者认证,请求即是一次page动作。
即,手机点击请求连接目标蓝牙耳机的过程中发送的很多命令都会进行page的动作。
Page的超时时间如下:最大是40.9秒,最小是0.625ms
当远端设备没有超时时间内没有返回Page Response时,返回Page Timeout事件。
4. page scan
作用:蓝牙设备开启page scan模式,才能够相应其他蓝牙设备的连接请求。例如蓝牙耳机只有处于page scan才允许其他设备来连接。
Page scan是一个状态,只有蓝牙耳机处于page scan状态,手机才有可能连接成功
2、蓝牙状态转换过程
1) (master)寻呼另外(slave),此时处于寻呼状态。(Page )
(需要知道mac地址,发起连接的设备(主设备)知道要连接设备的地址。)
master采用调频的方式寻呼slave;
2) slave接收到master该寻呼,此时slave处于寻呼扫描状态。(Page Scan )
3) slave发送对master的回复,此时处于slave响应状态。(Slave Response )
4) master发送FHS包到slave,此时处于master响应状态。(Master Response )
5) slave发送第二个回复给master,此时处于slave响应状态(Slave Response )
6) slave和master切换并采用源信道的参数,此时处于master响应状态和slave响应状态。
inquiry:这就是我们通常所说的蓝牙搜索设备,这个状态的设备就是去扫描周围的设备
处于inquiry Scan的设备可以回应这个查询。再经过必要的协商之后,它们就可以进行连接了。
此处需要说明的是:Inquiry之后,不需要进入Page就可以连接上设备。
inquiry scan:这就是我们通常看到的可被发现的设备。体现在上层就是我们在android系统中点击设备可被周围什么发现,那设备就处于这样的状态。
3、手机和免提设备之间建立连接
当slave scan到外部page时便会响应response该page,这样两个设备之间便会建立link的连接,即ACL链路的连接。
当ACL 链路连接建立后,主设备会发起channel的连接请求,即L2CAP的连接,建立L2CAP的连接之后,
主设备采用SDP去查询从设备的免提服务,从中得到rfcomm的通道号,然后主设备会发起rfcomm的连接请求建立rfcomm的连接。
然后就建立了应用的连接。
即link establish(Acl链路连接)->channel establish(L2CAP连接)->rfcomm establish(两个不同设备上的应用程序之间保证一条完整的通信路径)->connection |
|