关闭

BLE-链路层

347人阅读 评论(0) 收藏 举报
分类:

    链路层定义设备处于状态机中五种状态的一种:

(1)旁路状态;

     处于此状态下的设备不发送或接收数据,处于其它状态下都可以转到此状态。

(2)广告状态;

    处于此状态的设备发送广播包或者监听、响应广播包。可由旁路状态进入广告状态。

(3)扫描状态;

    扫描状态监听广播信道上的处于广播状态发送的广播包。扫描状态也由旁路状态进入。

(4)发起状态;

    处于此状态监听广播信道上的广播包并响应初始化一个连接。它也由旁路状态进入。

(5)连接状态。

    由广播状态或发起状态进入。


    任意时刻仅能处于五种状态中的一种,设备可能处于同时处于多种状态扮演不同的角色,但至少支持广告状态或扫描状态。

    广播事件类型决定设备是否响应,下表每个广告事件允许响应的关系:


    对于所有的非定向连接,两个广告事件之间的时间T_advEvent的计算公式如下:

    T_advEvent = advInterval + advDelay

    advInterval的值是0.625ms的倍数,介于20ms和10.24s之间的值。如果事件类型是一个可扫描的非连接事件,或者是一个非连接的非定向事件,它的值不能小于100ms;如果是可连接的非定向事件,它的值可以是20ms或更大。

     advDelay的值是一个伪随机值,范围是0~10ms,它由广播事件产生。


advDelay的值的插入,使用两次广告事件之间的间隔是一个随机值,这样可以减小信道冲突的可能性。

    可连接的非定向广播包使用ADV_IND PDU标志。可连接的非定向广播事件允许扫描者或发起响应。扫描者发送扫描请求(SCAN_REQ PDU)请求关于广告者的信息。发起者发送连接请求(CONNECT_REQ PDU)请求进入连接态。

    如果广告者收到一个SCAN_REQ PDU(包含了扫描者的设备地址),它将在同一信道上回复一个SCAN_RSP PDU,当PDU发送完成后广告过滤器将禁止再处理SCAN_REQ PDU,它进入下一个信道发送ADV_IND PDU或停止广告事件。


    如果广告者收到一个CONNECT_REQ PDU,如果广告发起者被广告过滤器允许,它将进入连接状态。如果不被允许,它将进入下一个信道发送ADV_IND PDU或停止广告事件。


    两个连续ADV_IND PDUs之间的间隔必须小于或等于10ms:




设备地址

    设备地址用于区分不同的设备,共48位,它是一个公共地址或是随机地址。设备至少包含一种地址或是两者都使用。

    公共地址划分成两个部分:


    随机地址划分成以下两个部分:



包格式

    一个包由前导、访问地址、PDU和CRC组成:


前导是8位,访问地址32位、PDU2~39个字节、CRC是24位。

一个最短的包是80位,最长的包是376位。

    PDU由头、净荷、MIC区域组成:

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

TI_BLE软件开发者指导4——链路层(笔记)

Texas Instruments CC2540/41 Bluetooth® Low Energy Software Developer’s Guide v1.3.2 Document...
  • Into_Wang
  • Into_Wang
  • 2017-01-10 21:50
  • 1228

TI_BLE软件开发者指导4——链路层(笔记)

Texas Instruments CC2540/41 Bluetooth® Low Energy Software Developer’s Guide v1.3.2 Document...
  • Into_Wang
  • Into_Wang
  • 2017-01-10 21:50
  • 1228

蓝牙学习之旅——低功耗蓝牙之链路层Link Layer

见协议P2568,BLUETOOTH SPECIFICATION Version 4.2 [Vol 6, Part B]
  • fei880517
  • fei880517
  • 2016-07-08 17:57
  • 1155

[BLE--Link Layer]Link Layer状态及其之间的切换

简述 BLE的Link层,应当是了解BLE需要首先熟悉的一部分,BLE的Controller部分主要都在围绕这一部分在实现的。Link层的内容规定了BLE底层是怎么实现蓝牙设备之间的控制,数据传输等...
  • suxiang198
  • suxiang198
  • 2015-08-17 19:39
  • 1493

OSI参考模型——数据链路层详解

一、数据链路层的功能1. 为什么要设置数据链路层 物理层的线路有传输介质与通信设备组成,比特流在传输介质上传输时一定会存在误差,而设置数据链路层目的就是为了在存在差错的物理层的基础上,采用差错检测,差...
  • jeffleo
  • jeffleo
  • 2016-12-29 22:13
  • 1969

链路层原始套接字编程-总结

1、链路层原始套接字创建方法:socket(PF_PACKET, SOCK_RAW, htons(protocol)),其中protocal参数为关心的协议类型。 2、默认情况下网卡只处理目的地址是...
  • lotus302
  • lotus302
  • 2014-09-10 13:51
  • 2816

数据链路层----差错检测

我们知道数据在传输的时候,最后都是以bit流的形式传输。而传输我们不能保证一定不出错,所以提供一定的检测和纠错机制还是很有必要的;其实说这个是数据链路层的差错检测,也可以说是整个网络数据传输过程中的一...
  • jaikly317
  • jaikly317
  • 2013-04-17 21:50
  • 1461

计算机网络——链路层

数据链路层:概述与服务链路层主要使用的信道包括: 广播信道 : 这种信道采用一对多的广播通信方式,因此过程比较复杂.广播信道上主机众多,我们必须使用专用的共享信道协议来协调这些主机的数据发送 点对点信...
  • jly0612
  • jly0612
  • 2016-05-04 15:15
  • 4776

数据链路层-1 什么是数据链路层和工作原理

物理层负责将比特流转换成信号,并传递给线缆。既不知道信号会发往何处,也不在意某一位是否会在某处丢失。 数据链路层提供了一种能够正确且稳定地传输比特流的结构。 在数据链路层会把数据进行封闭,封装后的...
  • hotdust
  • hotdust
  • 2016-08-08 20:26
  • 2139

数据链路层的主要功能

数据链路层的主要功能 1. 成帧(帧同步) 为了向网络层提供服务,数据链路层必须使用物理层提供的服务。而物理层是以比特流进行传输的,这种比特流并不保证在数据传输过程中没有错误,接收到的位数量可能少...
  • cainv89
  • cainv89
  • 2016-01-28 22:57
  • 6636
    最新评论
    个人资料
    • 访问:65808次
    • 积分:154
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:111篇
    • 译文:1篇
    • 评论:3条