第05节-BLE协议物理层(PHY)】的更多相关文章

对于软件的人来说,物理层关注的内容会少一点.在前面的博客中,我们以快递员类比物理层,对于快递员来说,道路千万条,这条不通换另外一条.对于物理层来说也是一样的,它有很多频率,这个频率有冲突了,将会切到另一个频率上面. 举例:深圳比较有两个比较出名的电台:105.7MHZ 和106.2MHZ 注意:当说105.7MHZ时,是指该频率的周围一段都属于105.7MHZ.对于106.2MHZ的频率也是这样的.记住,它并不仅仅指一个值.数据是在该频段范围内传输,数据并不是仅仅在105.7MHZ或106.2M…
学习资料: 1. 蓝牙协议core_v5.0.pdf <Vol 2: Core System Package [BR/EDR Controller volume]>的“Part E: Host Controller Interface Functional Specification” 2. BTStack源码 对于被动扫描,周边的外设会给controller发送各种广播包,解析广播包,从而得到设备的信息. 对于主动扫描,除了被动的获得广播包外,controller还可以给某个设备发出扫描请求…
本篇博客根据韦大仙的视频,整理所得. 对于BLE系统,它分为上下两块.上面那一块,我们称为host主机.下面这一块是controller,你可以简单的认为它就是一个蓝牙芯片. 对于host这一块,它运行于linux android 单片机 ,它是纯软件的概念.它和蓝牙芯片之间通过usb口或串口来传输数据.那么对于host和controller中的各个层,它们是如何表示数据的呢?本篇博客就来讨论这个问题. 例子1: 打包: 甲公司A1想给乙公司A2'发送一封信,于是甲公司A1就构造了一个数据包:f…
学习资料:官方手册 Vol 3: Core System Package [Host volume] Part A: Logical Link Control and Adaptation Protocol Specification 建议先复习<BLE协议各层的形象化理解>,下面是我们之前用来类比的医院结构图: 下面这个图是BLE协议各层跟医院的各个科室的类比图: Controller就是快递公司,它知道把数据发给对方哪一个设备,但是它不能进入对方内部. L2CAP是“收发室”,它熟知Hos…
本篇博客由韦东山视频整理所得 如何控制链路层让其发出广播包.数据包?通过HCI层向它发出命令,也可以通过ATT层.L2CAP层向LL层发出数据. 学习资料: 蓝牙协议core_v5.0.pdf <Vol 4: Host Controller Interface [Transport Layer]> BTStack源码 回顾一下<开源蓝牙协议栈BTStack框架代码阅读>. BLE协议在硬件上分为上下两部件:主机(Host,PC.单片机.Linux板).控制器(蓝牙模块),如下图所示…
本篇博客的学些要结合书籍<低功耗蓝牙开发权威指南,Robin Heydon著>第7章,实际上这书只是对蓝牙原版协议的简化.摘要. 回顾以前学过的<BLE协议各层的形象化理解>和<BLE协议各层数据格式概述> 一  链路层的5种状态: 就绪态(Stanby).扫描态(Scanning).广播态(Advertsing).发起态(Initiating).连接态(Connection). 扫描态有2种子状态:被动扫描(Passive Scanning).主动扫描(Active…
在上几篇博客中,形象的讲解了BLE各个层的作用,各个层的数据结构.本篇博客将研究BLE协议抓包.在实际开发中,有一个中央设备(central)和一个外设(Peripheral).所谓中央设备就是指它可以识别出周边的蓝牙设备,可以发起连接.所谓外设就是手环等.中央设备和外设之间传递数据,我们使用一个抓包工具sniffer,来抓取空中传递的数据,进而分析和调试.在实际开发中,抓包涉及的硬件框图如下: 但是在学习的过程中,使用下面的结构. 使用手机来模拟外设,在安卓手机上可以运行一个软件:com-bl…
本篇博客根据韦大仙视频,整理所得. 先上框图: ATT层 从ATT开始看,在上篇博客讲的医院结构里面有个检验室,检验室可以得到各项结果,但是它并不知道这些结果代表什么含义.类比的在BLE协议栈里面,ATT定义了各种属性.属性的操作方法,但是这些属性有什么作用,能给用户提供什么服务,它并不知道.举例如下:假设有两个蓝牙设备,一个是手机,一个是手环,此手环戴在手上可以监测心跳.在ATT这一层,手环提供数据,它是一个服务器.另一边的手机从手环获取数据,它是一个client. 在手环服务器这边,它定义了…
第一章 BLE基本概念了解 一.蓝牙4.0和BLE区别   蓝牙4.0是一种应用非常广泛.基于2.4G射频的低功耗无线通讯技术.蓝牙低功耗(Bluetooth Low Energy ),人们又常称之为BlueTooth Smart,是由SIG( the Bluetooth Special Interest Group) 在2010年6月起草,在原有标准的蓝牙4.0核心协议上添加的一种低功耗技术. 蓝牙低功耗不等同于蓝牙4.0,只是蓝牙4.0的一个分支.蓝牙4.0是蓝牙3.0+ HS(高速蓝牙)规…
未完待续…… BLE协议 Bluetooth Application Applications GATT-Based Profiles/Services Bluetooth Core (Stack) BLE Host ATT.GATT.SM GAP L2CAP HCI(对蓝牙协议无影响) BLE Controller Link Layer Physical Layer 1  Bluetooth Core(Stack) 蓝牙核心协议,关注蓝牙核心技术的描述和规范,只提供基础的机制. 蓝牙核心协议由…
背景 在深入BLE协议帧之前,我们先看一下BLE协议栈整体架构. 转载自:<深入浅出低功耗蓝牙(BLE)协议栈> 架构 如上图所述,要实现一个BLE应用,首先需要一个支持BLE射频的芯片,然后还需要提供一个与此芯片配套的BLE协议栈,最后在协议栈上开发自己的应用.可以看出BLE协议栈是连接芯片和应用的桥梁,是实现整个BLE应用的关键.那BLE协议栈具体包含哪些功能呢?简单来说,BLE协议栈主要用来对你的应用数据进行层层封包,以生成一个满足BLE协议的空中数据包,也就是说,把应用数据包裹在一系列…
一.BLE协议简介 1.协议是什么? 协议是一系列的通信标准,双方需要共同按照这进行正常数据 协议是一系列的通信标准,双方需要共同按照这进行正常数据发射和 接收.协议栈是的具体实现形式,通俗点来理解就发射和 接收.协议栈是的具体实现形式,通俗点来理解就发射和 接收.协议栈是的具体实现形式,通俗点来理解就用户之间的一个接口,开发人员通过使协议栈来这进而实现无用户之间的一个接口,开发人员通过使协议栈来这进而实现无用户之间的一个接口,开发人员通过使协议栈来这进而实现无线数据发送. 2.协议栈的组成 (…
W7500P 硬件TCP/IP+硬件物理层PHY+Cortex-M0处理器(48MHZ) 硬件TCP/IP+硬件物理层PHY+Cortex-M0处理器(48MHZ) 如果您发现商品信息不准确,欢迎纠错1. 纯硬件TCP/IP协议,不用担心网络协议死机.跑飞程序.不稳定的因素.2. 以太网物理层PHY 节省了硬件成本,节约了PCB板空间,集成度非常高.3.免费送ARM Cortex-M0内核,48MHZ,48KB的RAM,128KB的Flash4.供电电压2.7V-5.5V. W7500P W75…
学习资料:官方手册 Vol 3: Core System Package [Host volume] Part C: Generic Access Profile 下面这个图是BLE协议各层跟医院的各个科室的类比图: 每个医院的大堂都有些约定: ① 大堂里有医院的介绍,你可以根据它确定这个医院是否适合你: ② 有急救通道 ③ 要挂号,挂号后你跟医院才建立了联系,才能去找医生看病. 重点在于:怎么确定医院(是否适合你).怎么建立联系. 在BLE里,也有一些约定用来发现设备.连接设备,在GAP里定义…
学习资料:官方手册 Vol 3: Core System Package [Host volume] Part G: Generic Attribute Profile (GATT) 这篇文章格式比较好,基本上就是对GATT官方文档的翻译: Bluetooth GATT介绍 https://www.cnblogs.com/hzl6255/p/4158363.html 下面这个图是BLE协议各层跟医院的各个科室的类比图: 跟医院类比,GATT层就是医务室,通过它可以得到各种服务──这些服务由属性组…
首先是用于显示分词信息的HelloCustomAnalyzer.java package com.jadyer.lucene; import java.io.IOException; import java.io.StringReader; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.toke…
下面这个图是BLE协议各层跟医院的各个科室的类比图: 跟医院类比,ATT层就是化验室,通过它可以得到各种检查结果──属性.这些检查结果之间有什么联系,它们组合起来体现了什么,化验室是不知道的,这些得由上层来负责. 通过ATT层可以读写对端设备的属性,但是属性之间有什么联系.各个属性怎么组合起来提供服务,由上层GATT负责. 读写对端设备的属性,就是ATT的关键词. 一.属性(Attribute) 属性结构如下: 属性就是一个值, 有那么多属性,这是哪一个属性?用Handle来表示: 这个属性是什…
PHY模块简介 物理层位于OSI最底层,物理层协议定义电气信号.线的状态.时钟要求.数据编码和数据传输用的连接器. 物理层的器件称为PHY. 上图里的灰色方框图里的就是PHY芯片内部模块图. MAC器件通过MII接口来与PHY进行数据交换. 从图中可以看到向外发送数据和从外部接收数据时PHY所要做的一些工作. 可以简单理解成: 向外部发送数据时, MAC通过MII向PHY传送数据, 这些数据通过编码等处理, 最后再转成模拟信号发送出去. 从外部接收数据时,模拟信号先转成数字信号,再经过解码得到数…
PHY模块简介 物理层位于OSI最底层,物理层协议定义电气信号.线的状态.时钟要求.数据编码和数据传输用的连接器. 物理层的器件称为PHY. 上图里的灰色方框图里的就是PHY芯片内部模块图. MAC器件通过MII接口来与PHY进行数据交换. 从图中可以看到向外发送数据和从外部接收数据时PHY所要做的一些工作. 可以简单理解成: 向外部发送数据时, MAC通过MII向PHY传送数据, 这些数据通过编码等处理, 最后再转成模拟信号发送出去. 从外部接收数据时,模拟信号先转成数字信号,再经过解码得到数…
背景 在学校内就用过蓝牙技术参加过比赛(并拿了奖):而蓝牙作为物联网中比较常见的协议,有必要进行深入的学习.此后的文章会以 ble(v4.0) 进行学习. 介绍 蓝牙技术最初由电信巨头爱立信公司于 1994 年创制,当时是作为 RS232 数据线的替代方案.蓝牙可连接多个设备,克服了数据同步的难题.随着蓝牙耳机.蓝牙鼠标.蓝牙音箱等蓝牙设备渐渐充斥着我们的生活,蓝牙早已不单纯是数据线的替代方案. 如今蓝牙由蓝牙技术联盟(Bluetooth Special Interest Group,简称 SI…
安全管理是BLE中最复杂的内容,涉及LL层.SM层.GAP层 一.妈妈的担心 1. 白名单: 妈妈说,你只能跟A.B.C这3个好孩子玩:他们打电话给你,你才可以出去玩. A.B.C三人,就在妈妈的“白名单”里. 如果坏小孩D打电话时冒充是B,这怎么办? 妈妈有高招,记得B的声音. 妈妈心里想,这人的声音不是ABC任何一个,肯定是坏小孩. 这两者结合在一起就是: 是否使用白名单,就看你妈妈是否开明了. 类比于BLE,有下图: 可解析列表中会有一个IRK,IRK所对应的是设备的实体地址.ABC同学会…
0x01 前言 最近买到了小米手环3nfc版本,基本上实现了我对手环的所有功能需求,高中的时候就缠线圈做过戒指一卡通,但是缺陷是不好看,而且只能储存一张卡,等 手环3nfc版我认为比较好的功能 可以储存5张m1卡,而且可以快速切换 屏幕可以显示文字 在手环端操作可以设置手机静音 , 手机端操作查找手环 可以使手环震动 基于以上功能,所以想进一步的定制自己的手环,并在此作为记录. 我想要实现的功能如下, 1.随意修改其中储存的m1卡内容(实现) 2.操作手环,对手机进行操作,手机POST访问一个请…
视屏地址: https://www.bilibili.com/video/av39709290/?p=5 博客地址: https://jspang.com/post/flutterDemo.html#toc-246 创建新项目: 把上节课的Main.dart文件复制过来改改. 创建pages.dart stless快速生成我们的FirstPage页面.静态的widget 然后我们去创建的SecondPage页面 stlss快速生成:SecondPage 这样AppBar就设置完成了. 下面设置我…
导言 不同的蓝牙架构可以用在不同的场景中.从而协议帧的架构方案也会不同. 转载自:<三种蓝牙架构实现方案(蓝牙协议栈方案)> 蓝牙架构实现方案有哪几种?我们一般把整个蓝牙实现方案叫做蓝牙协议栈,因此这个问题也可以这么阐述:蓝牙协议栈有哪些具体的架构方案?在蓝牙协议栈中,host是什么?controller是什么?HCI又是什么? 大家都知道,不同的应用场景有不同的需求,因此不同的应用场景对蓝牙实现方案的要求也不一样,从而催生不同的蓝牙架构实现方案,或者说蓝牙协议栈方案. 架构1:host+co…
倘若我们自己在电脑上写了一个网站文件(可以是html,php文件等等),但是只希望本机可以访问这个文件,不希望别的电脑访问就需要这里的防盗链技术 1.我们在本地写了一个import.php文件: 而且这里import.php文件的内容是如下: //PHP编程中经常需要用到一些服务器的一些资料,特把$_SERVER的详细参数整理下,方便以后使用. //$_SERVER['HTTP_REFERER']   #可以得到链接/提交当前页的父页面URL <?php //没有防止 //获取REFERER i…
1.1  快速搭建Web项目 注意点:name:archetypeCatalog,value:internal 原因:Intellij IDEA根据maven archetype的本质,执行mvn archetype:generate命令.该命令执行时,需要指定一个archetype-catalog.xml文件.该命令的参数-DarchetypeCatalog,可选值为:remote,internal,local等,用来指定archetype-catalog.xml文件从哪里获取,默认为remo…
表示服务器的类是ServerSocket 启动服务器端 再启动客户端 客户端代码修改获取服务端会写的数据 先启动服务器端,再启动客户端 客户端打印: 服务器端读取:…
凡是出色的Canvas库都少不了制作动画的方法,Fabric.js也不例外,它有着编写简单且功能强大的动画助手,这就是animate( )方法. animate主要使用代码如下: rect.animate('angle',360,{ onChange:canvas.renderAll.bind(canvas) }) 意思是设置了rect的动画是旋转到360度,onChange是动画的回调函数,可以绑定事件,那这里就是当canvas渲染完成时自动发生动画. animate接收三个参数: 第一个参数…
文章转载自:http://www.sunyouqun.com/2017/04/page/4/ 1. 简介 物理层(Physical Layer)是BLE协议栈最底层,它规定了BLE通信的基础射频参数,包括信号频率.调制方案等. BLE工作频率是2.4GHz,它使用GFSK频率调制,并使用跳频机制来解决频道拥挤问题. BLE 5的物理层有三种实现方案,分别是1M Sym/s的无编码物理层.2M Sym/s的无编码物理层和1M Sym/s的编码物理层.其中1M Sym/s的无编码物理层与BLE v4…