Android-BLE蓝牙原理

https://www.jianshu.com/p/f98e77c9ec65

蓝牙4.1BLE协议栈的结构图如下:

  • PHY(Physical Layer):物理层,蓝牙是工作在2.4GHz附近,这是工业、科学、医疗ISM的频段,免许可证。WIFI也是工作在同一个频段。蓝牙把频段切分为40个通道,3个广播通道,37个数据通道,按照一个规律跳频通信。

  • LL(Linker Layer):链路层,用于控制设备的射频状态,设备将处于五种状态之一:等待、广告、扫描、初始化、连接。广播设备不需要建立连接就可以发送数据,而扫描设备接收广播设备发送的数据;发起连接的设备通过发送连接请求来回应广播设备,如果广播设备接受连接请求,那么广播设备与发起连接的设备将会进入连接状态。发起连接的设备称为主机,接受连接请求的设备称为从机。

  • HCI(Host Controller Interface):主机和控制器就是通过这个接口来进行同学的,通信的介质就是HCI命令。这层在协议栈中是可选的,一些小型终端可能没有,但是Android设备上肯定有,这层是蓝牙上层和芯片的交互必经之路,对于蓝牙硬件开发者,这里的log能够很好的帮助解决问题。

  • HOST部分要复杂一些,有链路控制和适配层(L2CAP),安全管理(SM)等。其中L2CAP和SM我们知道概念就可以了,这里就不多关注了。我们重点来看属性协议层,也就是ATT。它是整个BLE通信的基础。ATT负责数据封装,向外暴露为"属性",提供"属性"的为服务端,获取"属性"的为客户端。ATT是专门为BLE低功耗蓝牙而设计的传输协议,结构简单,传输数据短(后面会有提及)。

  • GATT(Generic Attribute Profile):全称叫做通用属性配置文件,是基于ATT做进一步的逻辑封装,定义数据的交互方式和含义,APP的开发其实就已经接触到这一层了。GATT按照层级定义了三个非常重要的概念:服务(Service)、特征(Characteristic)、描述(Descripter)。他们之间的关系如下:

  • 一个Service可以包含若干个Characteristic,一个Characteristic可以包含属性(properties)和值(value),还可以包含多个descripter。Characteristic实际上具有读、写、通知等权限,我们在对一个BLE设备发起连接成功以后,对他进行读写,其实就是对Characteristic的读写或者订阅通知。图中所谓的Profile,实际上是一组服务的集合,这些服务被人组合起来就形成了一个特定的使用场景。比如说,小米手环,里面就有一个计算用户当前步数的服务。这就是这个Ble可以做的事情,也就是它的profile。

  • 第5个我们又提到一个BLE设备实际上就是一组Service的集合,那BLE蓝牙以什么来标识多个Service呢。答案就是UUID。BLE中的Service,Characteristic,Descripter都是使用UUID来作为唯一标识。所以我们在读写BLE蓝牙数据时,都要带上相应的UUID。

  • GAP(Generic Access Profile):通用访问控制配置文件。定义了BLE整个通信过程中的流程,负责处理设备访问模式和程序,包括设备发现,建立连接,终止连接,初始化安全特性,设备配置。GAP层总是作为下面四种角色之一:(1)广播者:不可连接的广播设备。(2)观察者:扫描设备,但不发起建立连接。(3)外部设备:可连接的广播设备,可以在单个链路层连接中作为从机。(4)集中器:扫描广播设备并发起连接,可以在单个链路层连接中作为主机。

 

转载于:https://www.cnblogs.com/sunupo/p/10328355.html

世界地图矢量数据可以通过多种网站进行下载。以下是一些提供免费下载世界地图矢量数据的网站: 1. Open Street Map (https://www.openstreetmap.org/): 这个网站可以根据输入的经纬度或手动选定范围来导出目标区域的矢量图。导出的数据格式为osm格式,但只支持矩形范围的地图下载。 2. Geofabrik (http://download.geofabrik.de/): Geofabrik提供按洲际和国家快速下载全国范围的地图数据数据格式支持shape文件格式,包含多个独立图层,如道路、建筑、水域、交通、土地利用分类、自然景观等。数据每天更新一次。 3. bbbike (https://download.bbbike.org/osm/): bbbike提供全球主要的200多个城市的地图数据下载,也可以按照bbox进行下载。该网站还提供全球数据数据格式种类齐全,包括geojson、shp等。 4. GADM (https://gadm.org/index.html): GADM提供按国家或全球下载地图数据的服务。该网站提供多种格式的数据下载。 5. L7 AntV (https://l7.antv.antgroup.com/custom/tools/worldmap): L7 AntV是一个提供标准世界地图矢量数据免费下载的网站。支持多种数据格式下载,包括GeoJSON、KML、JSON、TopJSON、CSV和高清SVG格式等。可以下载中国省、市、县的矢量边界和世界各个国家的矢量边界数据。 以上这些网站都提供了世界地图矢量数据免费下载服务,你可以根据自己的需求选择合适的网站进行下载
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值