链路层定义了两个设备如何利用无线电传输信息,包含了报文、广播、数据通道的详细定义,也规定了发现其他设备的流程、广播的数据、连接建立、连接管理以及连接中的数据传输。
链路层状态
链路层一共有5个状态,分别为就绪态(Standby),广播态(Advertsing),扫描态(Scanning),发起态(Initiating),连接态(Connection),而扫描态又分为主动扫描和被动扫描,连接态又分为主机和从机。
就绪态就是待机状态,不进行任何操作。
广播态可以发送广播报文,告知周围设备本设备的存在,也可对主动扫描的设备进行回复。
扫描态用于侦听哪些设备正在广播,被动扫描不发送任何报文,只是被动的扫描,主动扫描一旦发现新设备,会发送一个扫描请求,并等待该请求的响应。扫描请求和响应都在广播信道传输。
当需要发起连接时,设备进入发起态。进入发起态后如果收到来自待连接设备的广播报文,设备会发送连接请求,然后进入连接状态。设备发送完连接请求后直接进入数据通道,在数据通道向待连接设备发送数据包,如果收到应答,连接建立,如果未应答,连接失败,返回就绪态。
由发起态进入数据通道的设备为主机,由广播态进入数据通道的为从机。主机由发起态进入数据通道后,定时发送报文,即连接事件,从设备诶只能回复主机发送的报文时才能发送自己的数据。从设备只能由广播态进入。
报文结构
报文由前导、接入地址、报头、长度、数据净荷和CRC校验位组成。
8 | 32 | 8 | 8 | 0~296bit | 24 |
---|---|---|---|---|---|
前导 | 接入地址 | 报文 | 长度 | 数据 |