BLE学习

来源:互联网 发布:mac修改桌面图标大小 编辑:程序博客网 时间:2024/05/22 13:22

1.BLE通信中主要有两对角色:

在GAP通信过程中是以Central和Peripheral角色存在的:Peripheral发起广播, Central发起扫描请求。Central收到Peripheral的扫描回复后建立连接。

在GATT通信过程中是以Server和Client角色存在的:serve端用于提供数据,Client端用于使用Server提供的数据并完成处理。

*在GAP中的Central和Peripheral角色到GATT阶段可以担当Server或Client角色,并不固定。

2.BLE通信主要有两个通信:GAP和GATT:

GAP(Generic Access Profile)用于peripheral向外进行广播,使Central发现自己,从而建立GATT连接。GAP通两种方式向外广播数据:Advertising Data Payload(广播数据)和Scan Response Data Payload(扫描回复)。

(Peripherals也可以只广播自己的数据但不建立连接,iBeacon是使用这种广播方式,向多个Central发送数据)

GATT(Generic Attribute Profile)用于Peripheral和Central进行通信。GATT通过多个服务(Serivce)为Central提供数据,服务(Service)又是由多个特性(Characteristic)组成。

一个Peripheral的服务和特性通过128位的UUID来标识。

GATT连接是独占的,一个Peripheral只能被一个Central连接,一旦连接成功,Peripheral就会停止广播。

3.Peripheral端操作主要有以下步骤:

    启动一个Peripheral管理对象

    →设置服务及特性

    →开始广播(包含GAP基本服务UUID)

    →收到Central的扫描请求后,回应扫描请求

    →收到Central连接请求后,建立连接,

    →响应Central发起的GATT服务发现请求,回应服务信息

    →响应Central发起的GATT特性发现请求,回应特性句柄

    →对Central的读写做以下响应

       →回应特性值

       →更新特性值。

4.Central端操作主要有以下步骤

    启动一个Central端管理器

   →搜索正在广告的Peripheral

   →发起扫描请求

   →收到扫描回应后,发起连接请求

   →若GAP服务的UUID相匹配,则发起建立连接请求连接Peripheral

   →GATT服务发现:发送主服务UUID,获取连接Peripheral设备的服务

   →GATT特性发现:发送特性UUID,获取特性值句柄,

   →通过获取的特性值句柄进行以下操作

       →读取特性值

       →订阅特性值

       →写入特性值 

5. Central收到Peripheral的扫描回应后,可以向Peripheral发起建立连接的请求。连接请求包括以下参数
    连接间隔
    Peripheral延迟
    管理超时
   *Peripheral也可以向Central发送“连接参数更新请求”来改变连接设置。
6. BLE通过两种方式传递数据
    I Client发送读写请求,Server响应请求并向Client发送特性值中包含应用数据。
    II Client使用通知或指示功能,将应用数据传递给Server
        通知:Server被配置为特性值通知,此功能不需要属性协议层确认特性值是否被成功接收。
        指示:Server被配置为特性值指示,此功能属性协议层必须确认特性值是否成功接收,才能进入下一步的数据发送。


2 0
原创粉丝点击