基于CC2642蓝牙5.0的应用,以及TI Simplelink学院动手实验
Loading the player...
将在30s后自动为您播放下一课程
今天下午我们先来讲一下蓝牙5 大家可以在装那个软件的同时 来看一下我们蓝牙5有什么新的功能 然后蓝牙5 蓝牙5的话我会从下面五个方向 来跟大家说一下就是蓝牙5 我们可能会支持什么东西 如果要做蓝牙5的开发的话 我们会需要哪些东西 下午在讲完了之后 准备去做一个Hands On 然后给大家看一下 我们的SimpleLink Academy 这边有些什么东西 可以给大家看一下 然后大家如果在Hands On这边 没有做完的话 没关系 回去之后这个是一个open的 所以大家可以在家里面 只要有网络连接的情况下 都可以去访问 那个SimpleLink Academy 然后继续把这个demo做完 好 现在我们先来看一下蓝牙5 我想问一下在座有多少人 是做过BLE的支持的 以前 可以举手示意一下 没有人吗 好吧 这样啊 如果是没有做BLE支持的 我就多讲一些跟基本网络相关的 一些功能可能多讲一点 大家如果以前做过的话 我可能就会讲得快一点 好 那我来讲一下 BLE5就是蓝牙5 蓝牙5是这样的 大家以前用过传统的蓝牙 传统蓝牙 最popular的一个应用 就是蓝牙耳机的应用 在很多年前蓝牙它的定义 就是说要把所有的设备 全部都用无线的方式连接起来 跟人相关的设备 全部用无线的方式连接起来 那在这种情况下面 在它的这个应用上面 它定义了很多层的不同的协议栈 在这个协议栈里面 最 最 最popular的一个应用 就是蓝牙耳机 一开始的时候是单声道的 那种就是蓝牙耳机打电话 然后后来变成双声道的 蓝牙耳机听音乐 这种的应用全部都是传统蓝牙的应用 就是我们叫Classic Bluetooth 应该是在四 五年前 那个蓝牙组织 在Classic Bluetooth的基础上 加了一个BLE BLE它其实也是在那个协议的里面 但是它和传统蓝牙 就是4.0以前的蓝牙 其实是不兼容的 你看到的有蓝牙3.0 蓝牙high speed 这个是蓝牙一开始传统蓝牙的发展 然后后来它有把BLE加进来之后 蓝牙4.0加进来了之后 它其实是一个低功耗蓝牙 所以它就是蓝牙协议的 不同的一个分支 这个分支和传统蓝牙是不兼容的 所以大家首先在今天下午的 这个课里面要搞清楚 蓝牙和传统蓝牙 蓝牙分传统蓝牙和低功耗蓝牙 这个是两个不同的概念 所以我们现在看到得很多 比如说小米的手环 然后你可以看到一些 比如说别人跑步的时候 用的那个心率的 然后在家里面的时候 有一些蓝牙做的遥控器 小米的遥控器 上面打了一个蓝牙的那个标志的 都是低功耗蓝牙的产品 低功耗蓝牙就不是标准蓝牙 因为低功耗蓝牙和标准蓝牙的区别 在于以前耳机就是大家知道双模耳机 什么双模 就是传统蓝牙的那个耳机 双声道的耳机 它是需要充电的 你可能听一天的电 然后电就没有了 你要再继续充电 但是低功耗蓝牙 它标榜的就是功耗超低的蓝牙 所以它可以通过纽扣电池供电 达到很长时间 如果大家有用过 小米的蓝牙遥控器的话 大家就知道它其实里面 就是一个CR2032的电池 然后可以用一年以上 所以这个是低功耗蓝牙 和标准蓝牙最本质的一个区别 那它在协议上面 因为它要达到低功耗 所以它做了很多修改 所以它在协议的兼容性上面 它和传统蓝牙是不兼容的 这是大家两个概念大家要知道 然后在这个完成之后 到Bluetooth 5是去年的时候 就已经有这个概念了 然后TI声称 自己是Release Bluetooth 5 最早的一家公司 当然现在也有很多公司 都开始陆陆续续Release 蓝牙5 它在低功耗蓝牙上面的操作 在这张图上可以看到 第一个是四倍的距离 第二个就是两倍的通讯速度 第三个就是800倍的一个广播包 发送的那个信息的一个 就是广播包发送信息的一个量 所以它在这个上面 蓝牙5.0其实主要就是低功耗蓝牙 在以前就是基于4.0的蓝牙 它有一个非常大的 在这三个点上面它是有一些改进 因为我们主要的题目是蓝牙5.0 因为这个SIG组织也是说蓝牙5.0 是以后未来的发展方向 所以它可能想要干掉ZigBee 干掉一些其他的网络应用 所以也是跟其他网络应用做一些区分 可能在这几方面会进行一些加强 所以这个是蓝牙5.0在这几个特点 这节课大家一定要知道 好 具体的来看这四个特点是怎么做的 所以蓝牙5.0它有三个不同的mode 一个是Long Range Mode 一个是HigherSpeeds 还有一个就是Broadcasting Capacity 所以这个就是Long Range的话 它是用code的方式来做的 也就是说如果回头 大家看到一个蓝牙4.0的设备 它是不可能跑蓝牙5.0的协议的 原因在于说就是 在Long Range mode这边 它是通过IF code这边做编码的方式 来实现这个长距离的数据传输 所以它是底层的 你可以把[indiscernible]这边 直接做的一个特殊属性 也就是说你如果是4.0的蓝牙设备 你必须升级硬件 你才可以支持5.0的这个应用 这个是Long Range mode 我在后面会具体讲 到底Long Range mode是怎么实现的 我们再看一下higher speeds 它的这个通讯速率 modulation是达到以前的两倍 它因为以前的蓝牙 都是在GFSK一兆的 这个调制模式上面的 所以现在它在蓝牙5.0上面 它加进来了一个两兆的通讯模式 所以做IF的就知道我同样的时间内 我的通讯速率 相当于从一兆变成两兆之后 我的data rate肯定会提高 所以这个是通过这种方式来做的 然后八倍的传输速度 这个是蓝牙协议软件实现的 就是蓝牙协议在广播包里面的时候 以前广播包最长是31个byte 现在它把这个东西加进来了之后 它可以传非常长的一个数据包beacon 所以在一些beacon应用的时候 就是蓝牙广播的这个数据应用的时候 它这种广播的数据包它可以加进来 这个后面具体实现 我也会具体跟大家说是怎么实现的 所以在蓝牙5.0 它把这些功能加进来了之后 它的应用范围会变得比较广 那在蓝牙4.0这边的情况 就是BLE的这种情况 其实做的最后就是穿戴设备 遥控器这个是量比较大的 然后应用比较多的 那种小的那种智能设备 低功耗蓝牙我看到的 比较有意思的应用 就是有一年的2014年的CES展上面 最佳设计设备 很多都是围绕着BLE的应用来的 然后在那个应用上面 有人把它做在养花草一个设备里面 把那个花草一样插到花盆里面 它就是通过低功耗蓝牙和手机连接 然后它就去监控这个土壤的温湿度 然后告诉你这个花 是不是适合这个花生长 然后就来养花 就是应用 就是智能养花的一个应用 然后做的很有意思 就是BLE有很多 这种很有意思的应用 然后现在在BLE5.0 这样做了进阶之后 那么它就有非常多的一些应用 加进来了 所以可以看到下面 比如说Home Building Automation 这个其实就是和早上的15.4的 其实是有一些重叠 你会发现在无限的网络连接里面 很多应用都是重叠的 就有的应用可以通过BLE来做 也可以通过15.4来做 也可以通过ZigBee来做 那其实就是要看你具体这个应用中间 有些小的区别是在什么地方 所以在这个上面列出来的 其实是有很多 比如说我在工业方面的 E-meter sensor 或者Power Tool用BLE 然后在家用家电的时候 它用BLE其实主要的方式 就是它的优势在于 它可以跟手机进行通讯 所以BLE和其他的网络连接 它的优势就在于它可以非常简单地 用简单的自己的协议 就和手机进行数据连接 然后人就可以 根据通过这个手机来控制某些设备 或者看到某些设备的状态 所以这个是BLE 能够给使用者提供的 我觉得是和其他的网络连接 最大的一个区别 这个就是蓝牙 好 下面我们来看一下 蓝牙5.0的一些use case 刚才跟大家讲了一下 就是它引进了三个新的网络特征 那么我们看一下 在引入新的网络特征之后 它会有一些什么样的 新的应用可以引进进来 首先是door lock 就是这个话可能是老外的房子比较多 我们国内的房子可能就不需要这么远 但是这只是一个例子 就是如果我是在蓝牙的这个门锁上面 它是一个BLE的门 那么这个BLE的门 我其实是直接可以跟手机进行通讯的 因为我现在是 就是它是一个 如果这个门锁是一个 bluetooth4.0的设备 那它是可以跟手机通讯的 但是它的通讯距离就比较近 就是比如说我们是在客厅里面 那我肯定要人走到客厅这个范围内 然后我才可以跟我的门锁连接上 在这种情况下 我才有可能去对我的门锁进行操作 但是如果你把5.0的应用加进来 也就是说它本身的通讯距离 long range的这个通讯距离加进来 它本身long range我们老外在 我们的BU在挪威 就是做BLE的这个BU在挪威 然后他们曾经在5.0的long range 刚做出来的时候拉了一个距 等一会在后面可以看到 就是它有一个video 当时video拉出来的通讯距离 是16公里 就是这一侧是在接收端跟发射端 是保持连接的状态 然后他们就一个人在冰面上面滑冰 另外一个人就到远处去爬山 爬到山顶上面那个连接还在 然后最后回来 google map上面拉一个距 16公里 所以这个就是 当然挪威的环境非常 就是不像中国国内的环境这么嘈杂 4G的环境比较嘈杂 所以拿到国内来说的话 如果是家庭应用 家庭这个房子可能500米 不到100米肯定是可以 就是实现这么个连接的 所以如果你的手机 是支持5.0的手机 如果是在一年前 可能只有三星的有一款手机是支持的 那到现在iPhone8 和iPhone X 都是支持5.0的 所以现在越来越多的手机 开始支持BLE 5.0之后你如果你的设备 是支持BLE5.0的 你就可以在家里的任何地方 去操控你的门锁 如果是在这个应用中 所以这个就是很典型的一个 就是long range mode的 一个使用场景 那么在另外的一些使用场景中 同样的把它从门锁 [indiscernible]out出来之后 你可以看到比如说家电 在家里就是家电 它是可以有BLE5.0的操作 你不需要有gateway 你不需要通过像早上说的 如果你是Sub-1G做的 那么你还需要一个gateway 把它从Sub-1G的网络桥接到wifi网络 然后wifi网络 再通过GPRS到你的手机 最后你通过手机 你要走一个这样的 通过Cloud走一个数据回路 然后去控制你家的电冰箱 洗衣机 但是如果你是用BLE的话 你可以直接实现这个功能 就直接去连接 然后对它进行控制 所以这个是BLE5.0 就是蓝牙5.0long range 它和就是LT这个应用的一个区别 所以反过来还是强调说 很多的无线应用都是可以实现的 只是说看什么样的应用就满足 你对应用的这个需求 特定应用的一个需求 那么这个地方也列了 还有其他的一些 比如说在工业中间的话 sensor network也可以通过蓝牙来做 那这个地方的瓶颈 就是说它在建立连接的时候 它的那个连接数量是有限的 就是如果你是和15.4来比 15.4 200个 那你的BLE的连接 用手机连的话最多十几个 所以这个也是一个限制 好 看下面 下面就是还有 第二个 就是刚才说的是long range 那如果是在 advertising extension这边 就是所谓的广播包 括展广播包的这个应用上面的话 扩展广播包它的意思是这样 就是刚才有提到广播包的话 它在蓝牙协议里面定义的 就是广播包里面可以携带一个广播的 就是客户自定义的数据长度 那这个数据长度在以前的 通讯协议里面规定的是31个byte 31个byte可以写什么东西 基本上你写一些自定义的名字就没了 然后像以前的beacon的应用的话 它是直接办直接用这31个byte 去写那个link 就是写一个网络地址 比如说我在万达商场里面逛商场 然后我走到一家店门口 然后这个店要打广告 然后它给我推送了一个beacon 然后这个beacon里面 我应该写什么东西 能够包含我的数据 它就会推送一个link给你 那个link就是它的一个广告页 所以它会给你一个手机推送的 这么一个数据 然后你看到这个数据之后 你直接就link到 就是你点了这个之后 你其实去打开一个网页 那个网页就是它推给你的广告 一般的那个应用是这么做的 那如果你是在现在的 就是advertising extension use case里面 就是你如果加长扩张广播包来用的话 因为你就不会受这个31个byte的 数据限制 你可以发256个byte或者更长的 数据byte 那你也就是说你可以包含 更多更多的数据信息 你可以把你的所有的有用的东西 全部都直接写在你的那个广播包里 那这种情况下就不需要客户很麻烦的 我点了一个link 然后那个link上面有什么数据 它就直接可以通过手机上面就拿到 那这个beacon是这样的 在IOS设备上面叫iBeacon 它是有一定的数据格式的 然后在Android设备上面叫beacon 它其实都是基于 Bluetooth的这个广播包的 这个协议的数据框架来做的 那么不同的这个应用 都会支持不同的东西 所以现在就是相当于是说 给客户开放一个可以携带 更多数据信息的一个广播包来给你 所以在这种情况下 你在应用上面就不会像以前 那么麻烦了 这个是advertising extension的例子 好 下面就是faster data transfer 这个主要就是我们以前在蓝牙的 就是BLE的设备里面的话 用的最多的就是蓝牙与语音遥控器 就是大家如果用过小米的遥控器的话 或者是比如说海信的遥控器 它们做遥控器的时候 它会有一个功能 就是你按住一个按键对它说话 然后它会把你的语音录下来 然后发到电视端 发到电视端之后 电视端上面会有一个 就是语音识别的系统 然后比如说我说开机 或者说选频道 多少频道或者是选游戏 因为现在都是智能电视 你可能会有一个短的那个命令进去 然后它把这个打出来 打出来之后它可能会直接link到 自己的一些 就是电视机的那些操作 那这个功能其实就是通过BLE 单项的从手机 从遥控器 发一段语音发到电视机端 这么一个功能 但是单向的而且只是语音 大家知道语音的那个采样频率 是非常低的 就是相对而言 如果你是用BLE的通讯速率 因为BLE通讯速率是不那么高 就是它因为要做低功耗 所以根据早上的那个知识点 就是如果你要高的通讯速率 就是你必须要以非常高的 就是功耗来作为代价 那如果BLE是怎么做到又低功耗 然后又能数据传输 它只能是说牺牲掉这个通讯速率 这个点来做 所以它的通讯速率不高 但是它可以支持单向语音数据发送 在BLE5.0里面它是两兆的 通讯速率 所以两兆的调制模式 所以在通讯速率的情况下 它可以支持到基本上可以达到两兆 就是达到以前的通讯速率的两倍 从那个原理上面 就是从原理这个上面来考虑 不是实际的情况 只是从原理上面来分析 它应该是可以达到以前的两倍 所以在这种情况下 它可以实现双向语音通讯 那么在这种情况下 你就可以实现比如说双向的 从遥控器到手机 遥控器到电视机的一个语音传输 这是一个 第二个你可能可以实现一个比如说 媒流体播放器直接到遥控器的 一个数据传输 那么在这个时候 其实就是有一些比如说对讲机的功能 我们比如说不要把它局限在手机 遥控器和电视机的这个里面 您可以把它在思想再打开一点 可能在比如说对讲机 室内对讲机的这种情况下面 是不是也可以来做 所以在这种情况下 大家可以来想一下 就是在语音上面在BLE5.0上 可以传输更多的东西 好 再看一下 faster data transfer的use case 还是在industrial这边 那在industrial这边 它是有更快的这个数据传输 所以有一些 比如说数据量比较大的情况 就是以前如果数据量小的话 比如说我们做OAD升级的时候 BLE如果256K的数据升级 得要一分多钟才能够把这个 就是256K的数据全部发送到手机 而且这个是非常快的通讯速率的 情况下才可以完成 那如果我用high speed来做的话 那我可能一分钟都不要就可以完成 那也就是说比如说我传一个 大一点的数据 比如20K或者10K的应用 在应用场景里面 这个时候对于使用者来说 他就会觉得我可以接受 这样一个等待时间 否则的话比起wifi 它可能这个功能 他就会觉得比较蹩脚 好 这是一个应用在工业方面 然后在其他的方面 比如说指纹识别方面 指纹识别大家知道数据量会比较大 那这种大的数据量传输以前和那个 以前是不能用Sub-1G 或者其他的方式就BLE无线来做的 那现在如果是高的数据传输的话 它是可以来做的 所以它就会有一些比如说数据支付 然后指纹的这种security的 需要大数据量传输的东西的时候 它可以用这个BLE来做 好 然后给大家讲一下TI的solution 今天早上杨杨这边给大家介绍的时候 是有这个road map 但是那个是三二的 然后我们在二六 就是二六和Sub-1G这边的road map 大家可以看一下 就是灰色的这部分 是我们现在已经量产的芯片 然后在1G以下部分的话 是有1350 1350是dual band 就是它支持1G以下和2.4G一起 所以它的下一代产品是1352 这个1352就是 早上有说它是concurrent mode 可以同时支持BLE的全功能连接 和Sub-1G的网络通讯 这个是1352 它现在处…就是第二 就是蓝颜色为底的这个 它是现在已经可以sampling 然后到今年年底的时候可以量产 所以大家如果想要开始sampling 除sampling之外 它的那个demo版也可以拿到 然后SDK也都在网上是发布的 所以等于说是 现在的开发就已经可以基于这个来做 然后等到量产之后 可以跟产品同步的进行数据量产 就是产品量产 然后后面还有一个1352P 就是加这个PA的 这个PA可以加到两点 它是就是芯片自带PA 所以它等于说是 会有一个20DB output 以前的话2642的output 应该是5个DB 然后1352加进来之后 它可以选择 是在Sub-1G上面加20DB的PA 还是说在2.4G上面加20DB的PA 就是外围的那个设计会有一些不同 所以在这颗芯片上面 就是一个内置PA的一个问题 所以整个看下来的话 在BLE这边的话 我们现在是有2640IQF 然后有一个Q版本的 就是如果大家有汽车的客户 想做BLE的设计的话 你可能需要选一个 就是已经过了汽车Q100认证的 2640IQFQ的一颗芯片 那就是这是单独的2640的 然后2650的MODA是一个module 就是TI自己的一个module 2650的一个module 然后这个可能在国内用的人不太多 然后在2.4G私有信息这边的话 还有那个ZigBee Thread这边的话 是2630 2650 然后大家可以看到pin to pin的话 是7乘7的那个封装的话 它是这样直接过去 2640对2642 然后2650对2652 直接pin to pin的 所以这个是我们一个 在2.4G这边的一个roadmap 然后看一下SDK 刚才我有跟大家说 就是你要下载SDK之后 看一下自己的板子 如果是在2.4G这边来做 SDK支持的话 就有两颗芯片可以支持 一个是26X2的SDK 一个是1352SDK 然后你根据你自己的板子 下对应的SDK来安装 我们就等于用2K来做这个 BLE的demo 来讲一下Technical detail 就是它到底具体在协议里面 是怎么实现的 Bluetooth5的Long range 它其实是会有一个口 它叫LE的coded PHY 就是它有两种就是标准的LE的 那个调制方式是1兆 然后它通过一个 就是比如说两个比特代表一个比特 就是用两位来代表一位的这种方式 来数据传输 这样的情况就是相当于 自己含了一个纠错的能力 那么它这样的话 它就可以增加那个sensitivity 所以它就可以增加磨耗 增加那个距离 在这种情况下 就是500K的通讯速率 因为它本来是1兆的 然后它现在里面 每两个比特代表一个比特的数据 所以它就相当于数据减半 就是1兆除以2就是500K 所以是这么这么来算的 还有一种就是1:4 就是它后面这个其方式有写 就是0就是通过0011来表示 然后1通过1100来表示 那么在这样的情况下 它就相当于是 4个byte来纠错一个byte 这样的话它的sensitivity 就会比500K的更高 但是它的通讯速率就降更低 就是它coded了之后 就是125K的data rate来做数据通讯 所以就是就变成了 就变了 就变成125K 所以这个就是 在long range mode的时候 就有两种通讯速率可选 一个是500 一个是125 这个地方在代码里面是可以配置的 我们在后面的Hands On里面 也是可以有提到 如果大家有这个兴趣的话 可以看一下Hands On里面怎么做的 那这个是long range的 基本的实现方式 好 刚才有说就是我们挪威的同事 做了一个非常令人亮眼的 long range的一个demo 大家到时候有兴趣的话 可以通过访问这个网站去看一下 这个网就是这个training的 这个video是在网上 TI官网上面是公开的 然后你们可以看到就是 他们实际去拉距的时候 最后实现的那个就是16公里的这个 最后一个那个结果 好 下面就是讲一下 high speed是怎么实现的 high speed的话 就是刚才其实有提到 我们其实就是通过 一个两兆的通讯速率来做的 其实大家从下面的这个 历史的这个图就可以看到 Bluetooth4.0 4.1的时候 就是一兆bps的PHY PHY 其实就是所谓的底层的物理层 物理层它实现的那个数据就是一兆 然后它是27个byte的PDU 然后在Bluetooth 4.2里面 它加了一个功能叫data extension 所以它可以在某种情况下面 如果你两边都是4.2的设备 它可以扩展就是有一个数据扩展 那在数据扩展的情况下面 它的PDU可以达到255K 而255个byte的PDU 所以它也就相当于是 我本来一个byte一个数据包 只能传27个byte的数据 那我就把这个数据扩展使用上了之后 就相当于我的一个蓝牙包 可以带255个byte payload的 所以它就相当于是说我在同一时间内 可以传更多的数据 因为你相当于是 蓝牙的通讯的那个协议 它做到低功耗的原因就是 它通讯一下之后休眠 再通讯一下之后再休眠 所以它的那个占空比 实际上是比较低的 所以它可以达到功耗 就是平均功耗会比较低 所以你就可以想象出 它其实要等到每一次我就是真的 要开始进行数据连接的时候 要进行数据通讯的时候 我才会进行就是才会进行数据收发 那我如果每一次收发 只能收发27个byte 那我的通讯速率肯定是比较低的 那么如果我用Data Extension的话 就相当于是说 我在同样的时间间隔里面 每一次收发的数据会比以前要长 那这样的话data rate就会高 所以这个就是通过这种方式来 最后它可以达到最高 780个KBPS的一个通讯速率 这个是按平均的这个时间来算 那么在BT5.0里面 它可以用到两兆的PHY 所以就是在物理连接上面本身的那个 这个PHY它就已经提供给你就是两兆 那它在这个双倍了这个之后 那它还是可以 用以前的一个Data Extension 那它本身的这个通讯速率的话 就会达到1.4兆 所以这个就是它高速的一个原理 好 再看一下high speed 所以刚才有问题 就是说我刚才一直在说 是不是可以真正达到两兆 达到两兆其实只是一个算出来的 就是说因为我本身以前的通讯速率 是一兆 以前的那个data rate是一兆 我现在的data rate是两兆 所以情况理论上 我是能够达到以前的两倍 这是简单的算 但是实际上是不是真的可以达到两倍 其实是不行的 原因在于什么地方 大家可以看到下面画的这两张图 上面那张图是一兆时候的传输的方法 下面这张图是两兆的时候传输方法 它中间会有一个就是在每一个包 就是这个传输的时候 其实就是传两个包 然后黄色的这部分就是传第一个包 然后蓝色为底的那个地方传第二个包 大家你看就是它在传两个包之间 它一定会有一个150微秒 左右的一个就是slot 它是一个间隔 它一定会有这么一个间隔 所以在这一部分的占空比 是不能变的 也就是说 我虽然是以1兆的速率在传输 然后我虽然是以2兆的数据传输 你看下面这个图它是2兆 所以它比较起来的话 如果只是传同样长度的数据的时候 它的这个数据长度 是可以是之前的一半 但是这个间隔 150微秒的这个间隔 是没法儿变的 也就是说它的这个速率 其实是达不到真正的两倍 因为它会有一些网络的方面的 为了维持网络方面 它会有一些这方面的消耗 所以有些间隔它是不能变的 不是说我100%的1/2的占空比 就直接除出来 所以它理论上是可以达到两倍 但实际上最后出来就是1.4兆 这就是原因 好 下面讲一下那个 advertisement extension advertisement extension是这样 就是在广播包上面 蓝牙的广播是这样的 蓝牙它有39个信道 通讯信道 然后这个通讯信道的定义 就是和wifi是有一部分是重叠的 wifi的通讯频段也是2.4G 蓝牙的通讯频段也是2.4G 然后它为什么会选37 38 39 3个信道作为广播信道 原因这37 38 39 3个信道它是避开 就是避开wifi已经使用的信道 最远的两个可能比较干净的信道 所以它把它作为一个广播信道 因为所有的蓝牙的连接 都是从广播信道的广播开始的 广播信道的作用就是 当一个设备可以使用的时候 它要在广播信道上发广播 告诉对方设备 我在这里你可以来连接我 或者是我有数据 你可以到这个广播信道上来找我 所以这广播信道它的干净程度 受干扰程度 直接影响到BLE它的连接可靠度 或者说最后BLE使用的这个可靠度 所以它为什么要选37 38 39 这3个信道的原因就在于 这3个信道将相较于wifi来说 是最干净的3个信道 他们离wifi的那个频点最远 好 这是广播信道 这是在BLE 传统的BLE的广播包是这样做的 然后它这个传统的广播包里面 还有一个特点 就是这上面写了 PHY必须是1兆的PHY 因为在BLE5.0之前 就BLE4.0 BLE4.1的时候 它的那个PHY 都是一兆BPS的PHY 所以它是必须是在 这个PHY的基础上来做 然后它的payload 我刚才说是31个payload 这上面写的是PDU PDU是它把它的一些那个 Link Layer L2CAP 这个link的一些网络包的那个 数据包也算进去了 所以从PDU上面来讲的话 它是可以算成37 但实际真正的payload的话是31 好 这个是我刚才已经解释过 好 然后这个是传统的 那在新的广播包的这个里面 它是加进来了新的不同的Command 所以我们如果是要讲它的原理的话 从下面这个图上 可能会看得更形象一点 首先看下面那个图上面的前面 是粉红色的这3个框框 3个方框就是它要在 37 38 39 3个信道上面 轮巡的去发送广播 所以它是轮巡的37 38 39 37 38 39默认的 就是这样发的 所以它后面的这个灰色的部分 就永远都是payload 所以它要先发一个广播头 然后发payload 然后在37 38 39 3个信道上面来发送 好 这个是一个传统的 BLE的广播是这样 那后面的发3个蓝颜色的框框 是什么意思呢 蓝颜色的这个框框就是 它会发这个ADV EXT IND indicate这个command 它的意思就是说我会在其他的 信道上面来发长的数据包 它在这个里面只发一个header 告诉你 你下一次来什么时间点 到哪一个信道上去接收 我的真正的payload 它其实是这么来做的 所以他就在 37 38 39三个信道上面告诉你 只发广播头 告诉你赶紧到其它的信道上去来做 因为以前的广播包 只能在37 38 39三个信道上发 但是在新的蓝牙5上面 它这个广播头是可以在 37 38 39三个信道上发 但是真正的payload 它可以发到其它的信道上去 所以它这个地方只是发一个头 就是发一个point的指针 告诉你说你去哪里去读 然后我在那个信道上真正的发数据 它通过这种方式来 还是我们把这个叫 就是它到data channel上面去发数据 所以data channel上面 是可以发大数据的 然后广播信道还是发广播的数据 所以现在在蓝牙5.0上面的话 就是它把data channel上面 也可以发广播数据 只是发有效的广播数据 它把这个功能加进来了 所以在这种情况下面它就是告诉你说 我们可以实现一个大数据量的 广播包的传输 所以它在这个上面的话就是有 除了刚才那个command之外还有 刚才介绍是ADV EXT Indicator 这个就是告诉你是广播包的一个指针 然后下面的那个AUX ADV Indicator 是真正的知识有用数据 就是它其实是在后续的 就是在data channel上面发送的 真正有用的广播数据 然后还有两个 一个是AUX SYNC Indication 和AUX CHAIN Indication 这两个SYNC应该是不支持的 在2640IQ上面 然后CHAIN是支持的 就是它可以把数据链起来 也就是说我一个包可以发248个BYTE 但是我还可以把它Chain 比如说我要发500多个byte的数据 我可以有一个队列的方式 然后我第一个包发这么多 第二个包发这么多 我以一个队列的方式把它串起来 那在这种情况下 你就可以通过 这个AUX CHAIN的方式来实现 那它总共就是扩展广播包 是通过这四个command 一共通过这四个command来实现的 好 大家可以看一下 就是刚才这样说可能有点不形象 所以大家可以看一下 那个标一的sniffer 就是我们的抓包工具上面的刷包 就是有一个叫Ellisys的Tracker 这个是我推荐 如果客户想要做BLE的开发 然后想要做应用的话 我们推荐就买这个 当然这个设备可能很贵 可能几万美金一台这样的设备 然后这个是这个设备 对这个协议最后 就是对我们的2642抓包之后 出来看到的一个结果 就是大家可以看到 我刚才说有39个信道 就是BLE有39个信道 全部都是在最左边的这个上面画出来 2042开始是37A 然后2427这个channel 这个频点是38A 然后2480这个channel是39 就是37 38 39三个广播信道 然后大家可以看到在一开始的时候 我是有一个连接的 就是大家可以看到连接的这个 连到一起的就比较长的 就是其实是一个握手 就是我这个时候 蓝牙其实是连在一起的 然后它们是在2407的 这个信道上面进行数据通讯 然后在这个时候它断开连接了 断开连接之后 就设备回到了一个广播状态 在后面的 就37 38 39三个信道上面 进行数据广播信道的广播头的发送 就是刚才看到的广播头 就是刚才ADV-EXT-IND的这个 它就在这37 38 39上发了一个头 然后告诉它们 我真正要发的数据的广播包 在什么地方 然后在后面的这个上面你可以看到 有两个广播头都指向 后面的一个在data 在第三个 看这是第三个信道 应该是第三个 应该是第四个channel上面的 一个真正的广播的数据的payload 那这个时候是两个头 指向了一个真正的有效数据 如果把这个打开来看 也就是可以看到 Header这边就是以前的广播包 它里面会带广播设备的设备地址 那现在在广播包里面它可以不带 就选择你可以带 你也可以不带 但是有两个东西它必须带 一个是这个框起来的 Advertising Data ID 就是Data ID 和Site ID 这两个是必须要带的 那这两个带就是说我这一条广播包 这个是协议自动分配的 它会分配一个广播ID 告诉你说这一配套是一组广播包 是一组有效的 就是从pointer到实际数据 它是一组 然后它下一次当你的广播数据 就Payload的有实际变化的时候 这个数据会自动的协议会变化 协议上会变化的 所以从协议的抓包来看 这个数据会变化 那这个作用就是对于接收者来说 它通过读Data ID Site ID 它就会知道这个广播内容 会不会有变化 是不是我之前读过的 所以它通过这种方式就可以防止 我读一些我不需要的已经读过的数据 这个是通过这种方式读的 然后在Offset这个地方 它有一个时间点 那时间点就是一个是1.74毫秒 因为这是第一个包 它是1.74毫秒 然后第二个包就是870 1.7毫秒 后面就是870个微秒 为什么 因为这两个包之间会有一个数据差 它都指向最后的 就是实际我要发送的数据包 就是实际发出这个payload 是什么时候发 它都会告诉你 说什么时间点之后 我要在这个信道上面发这个数据了 因为这两个本身 发这个广播的指针 都是有一个时间差 它先是在38上发 后来是在39上发 它有时间差 所以在这个地方 它的时间差就会直接 表现在这个Payload里面 就会表现在这个Header里面 所以对于听的人来说 他就知道我在什么时候 应该具体去哪一个信道上来收数据 所以这两个之间是有区别的 这个地方可以看的比较明显 对 这个就是最终的发送的数据的 那个包的一个包文一个解析 然后大家可以看到就是在广播的地址 在这个地方有些广播地址 然后一个ADV给它 就是包含了真正的广播数据 实际是在这个包里面包含的 好 讲完了这个之后 就看我们在蓝牙5.0上面 应该通过什么来做 我不知道 今天他们给大家发的是哪块板子 就是如果你要做BLE 就是TI的蓝牙你可以选择两块板子 一种是1352 R1 这个就是我刚才提到的 1352的芯片 它的LaunchPad 然后还有一种就是CC26叉二 就是2652或者2642都可以 然后26就是单2.4G的 然后1352的话是2.4G加上Sub-1G的 这个地方有那个output power 2.4G的output power 是五个DB 然后Sub-1G的output power 是14个DB 默认的 不带PA 如果你带PA的话 它可以选择 是在Sub-1G的这个频段上面 加PA 还是在2.4G这个平台上加PA 然后在这个板子上面 和我们以前1350 或者2650的这个板子的区别在于 大家可以看到多了上面很多的器件 就是这个板子会比以前的那个板子 更长一些 然后上面很多这个黑颜色的这部分 其实是做那个energy trace 现在这个energy trace 是TI把以前430上面的energy trace 把它掰过来了 然后在这块板子上面就可以 不需要用你的那种测电流的一个电流 非常高档的电流设备 然后你就直接可以 接我们的TI自己的开发环境CCS 然后你就可以去评估 自己的这个板子上的整个的电流 而且它在支持26X2的平台上面 或13X2的平台上面 它还可以去评估外围设备 当然现在可能还没有完全发布 但是它已经是在做 它可以评估外围的 peripheral设备的功耗 就跟以前430上面 energy trace++是一样的功能 比如说我在U2的口上 接了一个什么设备 或者我在IMC口上面 接了一个什么设备 我在SPA口上接了一个什么设备 然后你在通过energy trace的时候 你可以抓到这些设备它的功耗是多少 你可以仔细的看到的 所以用这个板子的话 你不需要那种非常昂贵的 专业店员的那种设备 然后你就可以大概的知道 你现在这个板子跑成什么样的状态 目前是一个什么样的功耗级别 这个是可以通过这个板子来实现的
今天下午我们先来讲一下蓝牙5 大家可以在装那个软件的同时 来看一下我们蓝牙5有什么新的功能 然后蓝牙5 蓝牙5的话我会从下面五个方向 来跟大家说一下就是蓝牙5 我们可能会支持什么东西 如果要做蓝牙5的开发的话 我们会需要哪些东西 下午在讲完了之后 准备去做一个Hands On 然后给大家看一下 我们的SimpleLink Academy 这边有些什么东西 可以给大家看一下 然后大家如果在Hands On这边 没有做完的话 没关系 回去之后这个是一个open的 所以大家可以在家里面 只要有网络连接的情况下 都可以去访问 那个SimpleLink Academy 然后继续把这个demo做完 好 现在我们先来看一下蓝牙5 我想问一下在座有多少人 是做过BLE的支持的 以前 可以举手示意一下 没有人吗 好吧 这样啊 如果是没有做BLE支持的 我就多讲一些跟基本网络相关的 一些功能可能多讲一点 大家如果以前做过的话 我可能就会讲得快一点 好 那我来讲一下 BLE5就是蓝牙5 蓝牙5是这样的 大家以前用过传统的蓝牙 传统蓝牙 最popular的一个应用 就是蓝牙耳机的应用 在很多年前蓝牙它的定义 就是说要把所有的设备 全部都用无线的方式连接起来 跟人相关的设备 全部用无线的方式连接起来 那在这种情况下面 在它的这个应用上面 它定义了很多层的不同的协议栈 在这个协议栈里面 最 最 最popular的一个应用 就是蓝牙耳机 一开始的时候是单声道的 那种就是蓝牙耳机打电话 然后后来变成双声道的 蓝牙耳机听音乐 这种的应用全部都是传统蓝牙的应用 就是我们叫Classic Bluetooth 应该是在四 五年前 那个蓝牙组织 在Classic Bluetooth的基础上 加了一个BLE BLE它其实也是在那个协议的里面 但是它和传统蓝牙 就是4.0以前的蓝牙 其实是不兼容的 你看到的有蓝牙3.0 蓝牙high speed 这个是蓝牙一开始传统蓝牙的发展 然后后来它有把BLE加进来之后 蓝牙4.0加进来了之后 它其实是一个低功耗蓝牙 所以它就是蓝牙协议的 不同的一个分支 这个分支和传统蓝牙是不兼容的 所以大家首先在今天下午的 这个课里面要搞清楚 蓝牙和传统蓝牙 蓝牙分传统蓝牙和低功耗蓝牙 这个是两个不同的概念 所以我们现在看到得很多 比如说小米的手环 然后你可以看到一些 比如说别人跑步的时候 用的那个心率的 然后在家里面的时候 有一些蓝牙做的遥控器 小米的遥控器 上面打了一个蓝牙的那个标志的 都是低功耗蓝牙的产品 低功耗蓝牙就不是标准蓝牙 因为低功耗蓝牙和标准蓝牙的区别 在于以前耳机就是大家知道双模耳机 什么双模 就是传统蓝牙的那个耳机 双声道的耳机 它是需要充电的 你可能听一天的电 然后电就没有了 你要再继续充电 但是低功耗蓝牙 它标榜的就是功耗超低的蓝牙 所以它可以通过纽扣电池供电 达到很长时间 如果大家有用过 小米的蓝牙遥控器的话 大家就知道它其实里面 就是一个CR2032的电池 然后可以用一年以上 所以这个是低功耗蓝牙 和标准蓝牙最本质的一个区别 那它在协议上面 因为它要达到低功耗 所以它做了很多修改 所以它在协议的兼容性上面 它和传统蓝牙是不兼容的 这是大家两个概念大家要知道 然后在这个完成之后 到Bluetooth 5是去年的时候 就已经有这个概念了 然后TI声称 自己是Release Bluetooth 5 最早的一家公司 当然现在也有很多公司 都开始陆陆续续Release 蓝牙5 它在低功耗蓝牙上面的操作 在这张图上可以看到 第一个是四倍的距离 第二个就是两倍的通讯速度 第三个就是800倍的一个广播包 发送的那个信息的一个 就是广播包发送信息的一个量 所以它在这个上面 蓝牙5.0其实主要就是低功耗蓝牙 在以前就是基于4.0的蓝牙 它有一个非常大的 在这三个点上面它是有一些改进 因为我们主要的题目是蓝牙5.0 因为这个SIG组织也是说蓝牙5.0 是以后未来的发展方向 所以它可能想要干掉ZigBee 干掉一些其他的网络应用 所以也是跟其他网络应用做一些区分 可能在这几方面会进行一些加强 所以这个是蓝牙5.0在这几个特点 这节课大家一定要知道 好 具体的来看这四个特点是怎么做的 所以蓝牙5.0它有三个不同的mode 一个是Long Range Mode 一个是HigherSpeeds 还有一个就是Broadcasting Capacity 所以这个就是Long Range的话 它是用code的方式来做的 也就是说如果回头 大家看到一个蓝牙4.0的设备 它是不可能跑蓝牙5.0的协议的 原因在于说就是 在Long Range mode这边 它是通过IF code这边做编码的方式 来实现这个长距离的数据传输 所以它是底层的 你可以把[indiscernible]这边 直接做的一个特殊属性 也就是说你如果是4.0的蓝牙设备 你必须升级硬件 你才可以支持5.0的这个应用 这个是Long Range mode 我在后面会具体讲 到底Long Range mode是怎么实现的 我们再看一下higher speeds 它的这个通讯速率 modulation是达到以前的两倍 它因为以前的蓝牙 都是在GFSK一兆的 这个调制模式上面的 所以现在它在蓝牙5.0上面 它加进来了一个两兆的通讯模式 所以做IF的就知道我同样的时间内 我的通讯速率 相当于从一兆变成两兆之后 我的data rate肯定会提高 所以这个是通过这种方式来做的 然后八倍的传输速度 这个是蓝牙协议软件实现的 就是蓝牙协议在广播包里面的时候 以前广播包最长是31个byte 现在它把这个东西加进来了之后 它可以传非常长的一个数据包beacon 所以在一些beacon应用的时候 就是蓝牙广播的这个数据应用的时候 它这种广播的数据包它可以加进来 这个后面具体实现 我也会具体跟大家说是怎么实现的 所以在蓝牙5.0 它把这些功能加进来了之后 它的应用范围会变得比较广 那在蓝牙4.0这边的情况 就是BLE的这种情况 其实做的最后就是穿戴设备 遥控器这个是量比较大的 然后应用比较多的 那种小的那种智能设备 低功耗蓝牙我看到的 比较有意思的应用 就是有一年的2014年的CES展上面 最佳设计设备 很多都是围绕着BLE的应用来的 然后在那个应用上面 有人把它做在养花草一个设备里面 把那个花草一样插到花盆里面 它就是通过低功耗蓝牙和手机连接 然后它就去监控这个土壤的温湿度 然后告诉你这个花 是不是适合这个花生长 然后就来养花 就是应用 就是智能养花的一个应用 然后做的很有意思 就是BLE有很多 这种很有意思的应用 然后现在在BLE5.0 这样做了进阶之后 那么它就有非常多的一些应用 加进来了 所以可以看到下面 比如说Home Building Automation 这个其实就是和早上的15.4的 其实是有一些重叠 你会发现在无限的网络连接里面 很多应用都是重叠的 就有的应用可以通过BLE来做 也可以通过15.4来做 也可以通过ZigBee来做 那其实就是要看你具体这个应用中间 有些小的区别是在什么地方 所以在这个上面列出来的 其实是有很多 比如说我在工业方面的 E-meter sensor 或者Power Tool用BLE 然后在家用家电的时候 它用BLE其实主要的方式 就是它的优势在于 它可以跟手机进行通讯 所以BLE和其他的网络连接 它的优势就在于它可以非常简单地 用简单的自己的协议 就和手机进行数据连接 然后人就可以 根据通过这个手机来控制某些设备 或者看到某些设备的状态 所以这个是BLE 能够给使用者提供的 我觉得是和其他的网络连接 最大的一个区别 这个就是蓝牙 好 下面我们来看一下 蓝牙5.0的一些use case 刚才跟大家讲了一下 就是它引进了三个新的网络特征 那么我们看一下 在引入新的网络特征之后 它会有一些什么样的 新的应用可以引进进来 首先是door lock 就是这个话可能是老外的房子比较多 我们国内的房子可能就不需要这么远 但是这只是一个例子 就是如果我是在蓝牙的这个门锁上面 它是一个BLE的门 那么这个BLE的门 我其实是直接可以跟手机进行通讯的 因为我现在是 就是它是一个 如果这个门锁是一个 bluetooth4.0的设备 那它是可以跟手机通讯的 但是它的通讯距离就比较近 就是比如说我们是在客厅里面 那我肯定要人走到客厅这个范围内 然后我才可以跟我的门锁连接上 在这种情况下 我才有可能去对我的门锁进行操作 但是如果你把5.0的应用加进来 也就是说它本身的通讯距离 long range的这个通讯距离加进来 它本身long range我们老外在 我们的BU在挪威 就是做BLE的这个BU在挪威 然后他们曾经在5.0的long range 刚做出来的时候拉了一个距 等一会在后面可以看到 就是它有一个video 当时video拉出来的通讯距离 是16公里 就是这一侧是在接收端跟发射端 是保持连接的状态 然后他们就一个人在冰面上面滑冰 另外一个人就到远处去爬山 爬到山顶上面那个连接还在 然后最后回来 google map上面拉一个距 16公里 所以这个就是 当然挪威的环境非常 就是不像中国国内的环境这么嘈杂 4G的环境比较嘈杂 所以拿到国内来说的话 如果是家庭应用 家庭这个房子可能500米 不到100米肯定是可以 就是实现这么个连接的 所以如果你的手机 是支持5.0的手机 如果是在一年前 可能只有三星的有一款手机是支持的 那到现在iPhone8 和iPhone X 都是支持5.0的 所以现在越来越多的手机 开始支持BLE 5.0之后你如果你的设备 是支持BLE5.0的 你就可以在家里的任何地方 去操控你的门锁 如果是在这个应用中 所以这个就是很典型的一个 就是long range mode的 一个使用场景 那么在另外的一些使用场景中 同样的把它从门锁 [indiscernible]out出来之后 你可以看到比如说家电 在家里就是家电 它是可以有BLE5.0的操作 你不需要有gateway 你不需要通过像早上说的 如果你是Sub-1G做的 那么你还需要一个gateway 把它从Sub-1G的网络桥接到wifi网络 然后wifi网络 再通过GPRS到你的手机 最后你通过手机 你要走一个这样的 通过Cloud走一个数据回路 然后去控制你家的电冰箱 洗衣机 但是如果你是用BLE的话 你可以直接实现这个功能 就直接去连接 然后对它进行控制 所以这个是BLE5.0 就是蓝牙5.0long range 它和就是LT这个应用的一个区别 所以反过来还是强调说 很多的无线应用都是可以实现的 只是说看什么样的应用就满足 你对应用的这个需求 特定应用的一个需求 那么这个地方也列了 还有其他的一些 比如说在工业中间的话 sensor network也可以通过蓝牙来做 那这个地方的瓶颈 就是说它在建立连接的时候 它的那个连接数量是有限的 就是如果你是和15.4来比 15.4 200个 那你的BLE的连接 用手机连的话最多十几个 所以这个也是一个限制 好 看下面 下面就是还有 第二个 就是刚才说的是long range 那如果是在 advertising extension这边 就是所谓的广播包 括展广播包的这个应用上面的话 扩展广播包它的意思是这样 就是刚才有提到广播包的话 它在蓝牙协议里面定义的 就是广播包里面可以携带一个广播的 就是客户自定义的数据长度 那这个数据长度在以前的 通讯协议里面规定的是31个byte 31个byte可以写什么东西 基本上你写一些自定义的名字就没了 然后像以前的beacon的应用的话 它是直接办直接用这31个byte 去写那个link 就是写一个网络地址 比如说我在万达商场里面逛商场 然后我走到一家店门口 然后这个店要打广告 然后它给我推送了一个beacon 然后这个beacon里面 我应该写什么东西 能够包含我的数据 它就会推送一个link给你 那个link就是它的一个广告页 所以它会给你一个手机推送的 这么一个数据 然后你看到这个数据之后 你直接就link到 就是你点了这个之后 你其实去打开一个网页 那个网页就是它推给你的广告 一般的那个应用是这么做的 那如果你是在现在的 就是advertising extension use case里面 就是你如果加长扩张广播包来用的话 因为你就不会受这个31个byte的 数据限制 你可以发256个byte或者更长的 数据byte 那你也就是说你可以包含 更多更多的数据信息 你可以把你的所有的有用的东西 全部都直接写在你的那个广播包里 那这种情况下就不需要客户很麻烦的 我点了一个link 然后那个link上面有什么数据 它就直接可以通过手机上面就拿到 那这个beacon是这样的 在IOS设备上面叫iBeacon 它是有一定的数据格式的 然后在Android设备上面叫beacon 它其实都是基于 Bluetooth的这个广播包的 这个协议的数据框架来做的 那么不同的这个应用 都会支持不同的东西 所以现在就是相当于是说 给客户开放一个可以携带 更多数据信息的一个广播包来给你 所以在这种情况下 你在应用上面就不会像以前 那么麻烦了 这个是advertising extension的例子 好 下面就是faster data transfer 这个主要就是我们以前在蓝牙的 就是BLE的设备里面的话 用的最多的就是蓝牙与语音遥控器 就是大家如果用过小米的遥控器的话 或者是比如说海信的遥控器 它们做遥控器的时候 它会有一个功能 就是你按住一个按键对它说话 然后它会把你的语音录下来 然后发到电视端 发到电视端之后 电视端上面会有一个 就是语音识别的系统 然后比如说我说开机 或者说选频道 多少频道或者是选游戏 因为现在都是智能电视 你可能会有一个短的那个命令进去 然后它把这个打出来 打出来之后它可能会直接link到 自己的一些 就是电视机的那些操作 那这个功能其实就是通过BLE 单项的从手机 从遥控器 发一段语音发到电视机端 这么一个功能 但是单向的而且只是语音 大家知道语音的那个采样频率 是非常低的 就是相对而言 如果你是用BLE的通讯速率 因为BLE通讯速率是不那么高 就是它因为要做低功耗 所以根据早上的那个知识点 就是如果你要高的通讯速率 就是你必须要以非常高的 就是功耗来作为代价 那如果BLE是怎么做到又低功耗 然后又能数据传输 它只能是说牺牲掉这个通讯速率 这个点来做 所以它的通讯速率不高 但是它可以支持单向语音数据发送 在BLE5.0里面它是两兆的 通讯速率 所以两兆的调制模式 所以在通讯速率的情况下 它可以支持到基本上可以达到两兆 就是达到以前的通讯速率的两倍 从那个原理上面 就是从原理这个上面来考虑 不是实际的情况 只是从原理上面来分析 它应该是可以达到以前的两倍 所以在这种情况下 它可以实现双向语音通讯 那么在这种情况下 你就可以实现比如说双向的 从遥控器到手机 遥控器到电视机的一个语音传输 这是一个 第二个你可能可以实现一个比如说 媒流体播放器直接到遥控器的 一个数据传输 那么在这个时候 其实就是有一些比如说对讲机的功能 我们比如说不要把它局限在手机 遥控器和电视机的这个里面 您可以把它在思想再打开一点 可能在比如说对讲机 室内对讲机的这种情况下面 是不是也可以来做 所以在这种情况下 大家可以来想一下 就是在语音上面在BLE5.0上 可以传输更多的东西 好 再看一下 faster data transfer的use case 还是在industrial这边 那在industrial这边 它是有更快的这个数据传输 所以有一些 比如说数据量比较大的情况 就是以前如果数据量小的话 比如说我们做OAD升级的时候 BLE如果256K的数据升级 得要一分多钟才能够把这个 就是256K的数据全部发送到手机 而且这个是非常快的通讯速率的 情况下才可以完成 那如果我用high speed来做的话 那我可能一分钟都不要就可以完成 那也就是说比如说我传一个 大一点的数据 比如20K或者10K的应用 在应用场景里面 这个时候对于使用者来说 他就会觉得我可以接受 这样一个等待时间 否则的话比起wifi 它可能这个功能 他就会觉得比较蹩脚 好 这是一个应用在工业方面 然后在其他的方面 比如说指纹识别方面 指纹识别大家知道数据量会比较大 那这种大的数据量传输以前和那个 以前是不能用Sub-1G 或者其他的方式就BLE无线来做的 那现在如果是高的数据传输的话 它是可以来做的 所以它就会有一些比如说数据支付 然后指纹的这种security的 需要大数据量传输的东西的时候 它可以用这个BLE来做 好 然后给大家讲一下TI的solution 今天早上杨杨这边给大家介绍的时候 是有这个road map 但是那个是三二的 然后我们在二六 就是二六和Sub-1G这边的road map 大家可以看一下 就是灰色的这部分 是我们现在已经量产的芯片 然后在1G以下部分的话 是有1350 1350是dual band 就是它支持1G以下和2.4G一起 所以它的下一代产品是1352 这个1352就是 早上有说它是concurrent mode 可以同时支持BLE的全功能连接 和Sub-1G的网络通讯 这个是1352 它现在处…就是第二 就是蓝颜色为底的这个 它是现在已经可以sampling 然后到今年年底的时候可以量产 所以大家如果想要开始sampling 除sampling之外 它的那个demo版也可以拿到 然后SDK也都在网上是发布的 所以等于说是 现在的开发就已经可以基于这个来做 然后等到量产之后 可以跟产品同步的进行数据量产 就是产品量产 然后后面还有一个1352P 就是加这个PA的 这个PA可以加到两点 它是就是芯片自带PA 所以它等于说是 会有一个20DB output 以前的话2642的output 应该是5个DB 然后1352加进来之后 它可以选择 是在Sub-1G上面加20DB的PA 还是说在2.4G上面加20DB的PA 就是外围的那个设计会有一些不同 所以在这颗芯片上面 就是一个内置PA的一个问题 所以整个看下来的话 在BLE这边的话 我们现在是有2640IQF 然后有一个Q版本的 就是如果大家有汽车的客户 想做BLE的设计的话 你可能需要选一个 就是已经过了汽车Q100认证的 2640IQFQ的一颗芯片 那就是这是单独的2640的 然后2650的MODA是一个module 就是TI自己的一个module 2650的一个module 然后这个可能在国内用的人不太多 然后在2.4G私有信息这边的话 还有那个ZigBee Thread这边的话 是2630 2650 然后大家可以看到pin to pin的话 是7乘7的那个封装的话 它是这样直接过去 2640对2642 然后2650对2652 直接pin to pin的 所以这个是我们一个 在2.4G这边的一个roadmap 然后看一下SDK 刚才我有跟大家说 就是你要下载SDK之后 看一下自己的板子 如果是在2.4G这边来做 SDK支持的话 就有两颗芯片可以支持 一个是26X2的SDK 一个是1352SDK 然后你根据你自己的板子 下对应的SDK来安装 我们就等于用2K来做这个 BLE的demo 来讲一下Technical detail 就是它到底具体在协议里面 是怎么实现的 Bluetooth5的Long range 它其实是会有一个口 它叫LE的coded PHY 就是它有两种就是标准的LE的 那个调制方式是1兆 然后它通过一个 就是比如说两个比特代表一个比特 就是用两位来代表一位的这种方式 来数据传输 这样的情况就是相当于 自己含了一个纠错的能力 那么它这样的话 它就可以增加那个sensitivity 所以它就可以增加磨耗 增加那个距离 在这种情况下 就是500K的通讯速率 因为它本来是1兆的 然后它现在里面 每两个比特代表一个比特的数据 所以它就相当于数据减半 就是1兆除以2就是500K 所以是这么这么来算的 还有一种就是1:4 就是它后面这个其方式有写 就是0就是通过0011来表示 然后1通过1100来表示 那么在这样的情况下 它就相当于是 4个byte来纠错一个byte 这样的话它的sensitivity 就会比500K的更高 但是它的通讯速率就降更低 就是它coded了之后 就是125K的data rate来做数据通讯 所以就是就变成了 就变了 就变成125K 所以这个就是 在long range mode的时候 就有两种通讯速率可选 一个是500 一个是125 这个地方在代码里面是可以配置的 我们在后面的Hands On里面 也是可以有提到 如果大家有这个兴趣的话 可以看一下Hands On里面怎么做的 那这个是long range的 基本的实现方式 好 刚才有说就是我们挪威的同事 做了一个非常令人亮眼的 long range的一个demo 大家到时候有兴趣的话 可以通过访问这个网站去看一下 这个网就是这个training的 这个video是在网上 TI官网上面是公开的 然后你们可以看到就是 他们实际去拉距的时候 最后实现的那个就是16公里的这个 最后一个那个结果 好 下面就是讲一下 high speed是怎么实现的 high speed的话 就是刚才其实有提到 我们其实就是通过 一个两兆的通讯速率来做的 其实大家从下面的这个 历史的这个图就可以看到 Bluetooth4.0 4.1的时候 就是一兆bps的PHY PHY 其实就是所谓的底层的物理层 物理层它实现的那个数据就是一兆 然后它是27个byte的PDU 然后在Bluetooth 4.2里面 它加了一个功能叫data extension 所以它可以在某种情况下面 如果你两边都是4.2的设备 它可以扩展就是有一个数据扩展 那在数据扩展的情况下面 它的PDU可以达到255K 而255个byte的PDU 所以它也就相当于是 我本来一个byte一个数据包 只能传27个byte的数据 那我就把这个数据扩展使用上了之后 就相当于我的一个蓝牙包 可以带255个byte payload的 所以它就相当于是说我在同一时间内 可以传更多的数据 因为你相当于是 蓝牙的通讯的那个协议 它做到低功耗的原因就是 它通讯一下之后休眠 再通讯一下之后再休眠 所以它的那个占空比 实际上是比较低的 所以它可以达到功耗 就是平均功耗会比较低 所以你就可以想象出 它其实要等到每一次我就是真的 要开始进行数据连接的时候 要进行数据通讯的时候 我才会进行就是才会进行数据收发 那我如果每一次收发 只能收发27个byte 那我的通讯速率肯定是比较低的 那么如果我用Data Extension的话 就相当于是说 我在同样的时间间隔里面 每一次收发的数据会比以前要长 那这样的话data rate就会高 所以这个就是通过这种方式来 最后它可以达到最高 780个KBPS的一个通讯速率 这个是按平均的这个时间来算 那么在BT5.0里面 它可以用到两兆的PHY 所以就是在物理连接上面本身的那个 这个PHY它就已经提供给你就是两兆 那它在这个双倍了这个之后 那它还是可以 用以前的一个Data Extension 那它本身的这个通讯速率的话 就会达到1.4兆 所以这个就是它高速的一个原理 好 再看一下high speed 所以刚才有问题 就是说我刚才一直在说 是不是可以真正达到两兆 达到两兆其实只是一个算出来的 就是说因为我本身以前的通讯速率 是一兆 以前的那个data rate是一兆 我现在的data rate是两兆 所以情况理论上 我是能够达到以前的两倍 这是简单的算 但是实际上是不是真的可以达到两倍 其实是不行的 原因在于什么地方 大家可以看到下面画的这两张图 上面那张图是一兆时候的传输的方法 下面这张图是两兆的时候传输方法 它中间会有一个就是在每一个包 就是这个传输的时候 其实就是传两个包 然后黄色的这部分就是传第一个包 然后蓝色为底的那个地方传第二个包 大家你看就是它在传两个包之间 它一定会有一个150微秒 左右的一个就是slot 它是一个间隔 它一定会有这么一个间隔 所以在这一部分的占空比 是不能变的 也就是说 我虽然是以1兆的速率在传输 然后我虽然是以2兆的数据传输 你看下面这个图它是2兆 所以它比较起来的话 如果只是传同样长度的数据的时候 它的这个数据长度 是可以是之前的一半 但是这个间隔 150微秒的这个间隔 是没法儿变的 也就是说它的这个速率 其实是达不到真正的两倍 因为它会有一些网络的方面的 为了维持网络方面 它会有一些这方面的消耗 所以有些间隔它是不能变的 不是说我100%的1/2的占空比 就直接除出来 所以它理论上是可以达到两倍 但实际上最后出来就是1.4兆 这就是原因 好 下面讲一下那个 advertisement extension advertisement extension是这样 就是在广播包上面 蓝牙的广播是这样的 蓝牙它有39个信道 通讯信道 然后这个通讯信道的定义 就是和wifi是有一部分是重叠的 wifi的通讯频段也是2.4G 蓝牙的通讯频段也是2.4G 然后它为什么会选37 38 39 3个信道作为广播信道 原因这37 38 39 3个信道它是避开 就是避开wifi已经使用的信道 最远的两个可能比较干净的信道 所以它把它作为一个广播信道 因为所有的蓝牙的连接 都是从广播信道的广播开始的 广播信道的作用就是 当一个设备可以使用的时候 它要在广播信道上发广播 告诉对方设备 我在这里你可以来连接我 或者是我有数据 你可以到这个广播信道上来找我 所以这广播信道它的干净程度 受干扰程度 直接影响到BLE它的连接可靠度 或者说最后BLE使用的这个可靠度 所以它为什么要选37 38 39 这3个信道的原因就在于 这3个信道将相较于wifi来说 是最干净的3个信道 他们离wifi的那个频点最远 好 这是广播信道 这是在BLE 传统的BLE的广播包是这样做的 然后它这个传统的广播包里面 还有一个特点 就是这上面写了 PHY必须是1兆的PHY 因为在BLE5.0之前 就BLE4.0 BLE4.1的时候 它的那个PHY 都是一兆BPS的PHY 所以它是必须是在 这个PHY的基础上来做 然后它的payload 我刚才说是31个payload 这上面写的是PDU PDU是它把它的一些那个 Link Layer L2CAP 这个link的一些网络包的那个 数据包也算进去了 所以从PDU上面来讲的话 它是可以算成37 但实际真正的payload的话是31 好 这个是我刚才已经解释过 好 然后这个是传统的 那在新的广播包的这个里面 它是加进来了新的不同的Command 所以我们如果是要讲它的原理的话 从下面这个图上 可能会看得更形象一点 首先看下面那个图上面的前面 是粉红色的这3个框框 3个方框就是它要在 37 38 39 3个信道上面 轮巡的去发送广播 所以它是轮巡的37 38 39 37 38 39默认的 就是这样发的 所以它后面的这个灰色的部分 就永远都是payload 所以它要先发一个广播头 然后发payload 然后在37 38 39 3个信道上面来发送 好 这个是一个传统的 BLE的广播是这样 那后面的发3个蓝颜色的框框 是什么意思呢 蓝颜色的这个框框就是 它会发这个ADV EXT IND indicate这个command 它的意思就是说我会在其他的 信道上面来发长的数据包 它在这个里面只发一个header 告诉你 你下一次来什么时间点 到哪一个信道上去接收 我的真正的payload 它其实是这么来做的 所以他就在 37 38 39三个信道上面告诉你 只发广播头 告诉你赶紧到其它的信道上去来做 因为以前的广播包 只能在37 38 39三个信道上发 但是在新的蓝牙5上面 它这个广播头是可以在 37 38 39三个信道上发 但是真正的payload 它可以发到其它的信道上去 所以它这个地方只是发一个头 就是发一个point的指针 告诉你说你去哪里去读 然后我在那个信道上真正的发数据 它通过这种方式来 还是我们把这个叫 就是它到data channel上面去发数据 所以data channel上面 是可以发大数据的 然后广播信道还是发广播的数据 所以现在在蓝牙5.0上面的话 就是它把data channel上面 也可以发广播数据 只是发有效的广播数据 它把这个功能加进来了 所以在这种情况下面它就是告诉你说 我们可以实现一个大数据量的 广播包的传输 所以它在这个上面的话就是有 除了刚才那个command之外还有 刚才介绍是ADV EXT Indicator 这个就是告诉你是广播包的一个指针 然后下面的那个AUX ADV Indicator 是真正的知识有用数据 就是它其实是在后续的 就是在data channel上面发送的 真正有用的广播数据 然后还有两个 一个是AUX SYNC Indication 和AUX CHAIN Indication 这两个SYNC应该是不支持的 在2640IQ上面 然后CHAIN是支持的 就是它可以把数据链起来 也就是说我一个包可以发248个BYTE 但是我还可以把它Chain 比如说我要发500多个byte的数据 我可以有一个队列的方式 然后我第一个包发这么多 第二个包发这么多 我以一个队列的方式把它串起来 那在这种情况下 你就可以通过 这个AUX CHAIN的方式来实现 那它总共就是扩展广播包 是通过这四个command 一共通过这四个command来实现的 好 大家可以看一下 就是刚才这样说可能有点不形象 所以大家可以看一下 那个标一的sniffer 就是我们的抓包工具上面的刷包 就是有一个叫Ellisys的Tracker 这个是我推荐 如果客户想要做BLE的开发 然后想要做应用的话 我们推荐就买这个 当然这个设备可能很贵 可能几万美金一台这样的设备 然后这个是这个设备 对这个协议最后 就是对我们的2642抓包之后 出来看到的一个结果 就是大家可以看到 我刚才说有39个信道 就是BLE有39个信道 全部都是在最左边的这个上面画出来 2042开始是37A 然后2427这个channel 这个频点是38A 然后2480这个channel是39 就是37 38 39三个广播信道 然后大家可以看到在一开始的时候 我是有一个连接的 就是大家可以看到连接的这个 连到一起的就比较长的 就是其实是一个握手 就是我这个时候 蓝牙其实是连在一起的 然后它们是在2407的 这个信道上面进行数据通讯 然后在这个时候它断开连接了 断开连接之后 就设备回到了一个广播状态 在后面的 就37 38 39三个信道上面 进行数据广播信道的广播头的发送 就是刚才看到的广播头 就是刚才ADV-EXT-IND的这个 它就在这37 38 39上发了一个头 然后告诉它们 我真正要发的数据的广播包 在什么地方 然后在后面的这个上面你可以看到 有两个广播头都指向 后面的一个在data 在第三个 看这是第三个信道 应该是第三个 应该是第四个channel上面的 一个真正的广播的数据的payload 那这个时候是两个头 指向了一个真正的有效数据 如果把这个打开来看 也就是可以看到 Header这边就是以前的广播包 它里面会带广播设备的设备地址 那现在在广播包里面它可以不带 就选择你可以带 你也可以不带 但是有两个东西它必须带 一个是这个框起来的 Advertising Data ID 就是Data ID 和Site ID 这两个是必须要带的 那这两个带就是说我这一条广播包 这个是协议自动分配的 它会分配一个广播ID 告诉你说这一配套是一组广播包 是一组有效的 就是从pointer到实际数据 它是一组 然后它下一次当你的广播数据 就Payload的有实际变化的时候 这个数据会自动的协议会变化 协议上会变化的 所以从协议的抓包来看 这个数据会变化 那这个作用就是对于接收者来说 它通过读Data ID Site ID 它就会知道这个广播内容 会不会有变化 是不是我之前读过的 所以它通过这种方式就可以防止 我读一些我不需要的已经读过的数据 这个是通过这种方式读的 然后在Offset这个地方 它有一个时间点 那时间点就是一个是1.74毫秒 因为这是第一个包 它是1.74毫秒 然后第二个包就是870 1.7毫秒 后面就是870个微秒 为什么 因为这两个包之间会有一个数据差 它都指向最后的 就是实际我要发送的数据包 就是实际发出这个payload 是什么时候发 它都会告诉你 说什么时间点之后 我要在这个信道上面发这个数据了 因为这两个本身 发这个广播的指针 都是有一个时间差 它先是在38上发 后来是在39上发 它有时间差 所以在这个地方 它的时间差就会直接 表现在这个Payload里面 就会表现在这个Header里面 所以对于听的人来说 他就知道我在什么时候 应该具体去哪一个信道上来收数据 所以这两个之间是有区别的 这个地方可以看的比较明显 对 这个就是最终的发送的数据的 那个包的一个包文一个解析 然后大家可以看到就是在广播的地址 在这个地方有些广播地址 然后一个ADV给它 就是包含了真正的广播数据 实际是在这个包里面包含的 好 讲完了这个之后 就看我们在蓝牙5.0上面 应该通过什么来做 我不知道 今天他们给大家发的是哪块板子 就是如果你要做BLE 就是TI的蓝牙你可以选择两块板子 一种是1352 R1 这个就是我刚才提到的 1352的芯片 它的LaunchPad 然后还有一种就是CC26叉二 就是2652或者2642都可以 然后26就是单2.4G的 然后1352的话是2.4G加上Sub-1G的 这个地方有那个output power 2.4G的output power 是五个DB 然后Sub-1G的output power 是14个DB 默认的 不带PA 如果你带PA的话 它可以选择 是在Sub-1G的这个频段上面 加PA 还是在2.4G这个平台上加PA 然后在这个板子上面 和我们以前1350 或者2650的这个板子的区别在于 大家可以看到多了上面很多的器件 就是这个板子会比以前的那个板子 更长一些 然后上面很多这个黑颜色的这部分 其实是做那个energy trace 现在这个energy trace 是TI把以前430上面的energy trace 把它掰过来了 然后在这块板子上面就可以 不需要用你的那种测电流的一个电流 非常高档的电流设备 然后你就直接可以 接我们的TI自己的开发环境CCS 然后你就可以去评估 自己的这个板子上的整个的电流 而且它在支持26X2的平台上面 或13X2的平台上面 它还可以去评估外围设备 当然现在可能还没有完全发布 但是它已经是在做 它可以评估外围的 peripheral设备的功耗 就跟以前430上面 energy trace++是一样的功能 比如说我在U2的口上 接了一个什么设备 或者我在IMC口上面 接了一个什么设备 我在SPA口上接了一个什么设备 然后你在通过energy trace的时候 你可以抓到这些设备它的功耗是多少 你可以仔细的看到的 所以用这个板子的话 你不需要那种非常昂贵的 专业店员的那种设备 然后你就可以大概的知道 你现在这个板子跑成什么样的状态 目前是一个什么样的功耗级别 这个是可以通过这个板子来实现的
今天下午我们先来讲一下蓝牙5
大家可以在装那个软件的同时
来看一下我们蓝牙5有什么新的功能
然后蓝牙5
蓝牙5的话我会从下面五个方向
来跟大家说一下就是蓝牙5
我们可能会支持什么东西
如果要做蓝牙5的开发的话
我们会需要哪些东西
下午在讲完了之后 准备去做一个Hands On
然后给大家看一下
我们的SimpleLink Academy 这边有些什么东西
可以给大家看一下
然后大家如果在Hands On这边
没有做完的话 没关系
回去之后这个是一个open的
所以大家可以在家里面
只要有网络连接的情况下
都可以去访问 那个SimpleLink Academy
然后继续把这个demo做完
好 现在我们先来看一下蓝牙5
我想问一下在座有多少人
是做过BLE的支持的 以前
可以举手示意一下
没有人吗 好吧
这样啊 如果是没有做BLE支持的
我就多讲一些跟基本网络相关的
一些功能可能多讲一点
大家如果以前做过的话
我可能就会讲得快一点
好 那我来讲一下
BLE5就是蓝牙5
蓝牙5是这样的
大家以前用过传统的蓝牙
传统蓝牙
最popular的一个应用
就是蓝牙耳机的应用
在很多年前蓝牙它的定义
就是说要把所有的设备
全部都用无线的方式连接起来
跟人相关的设备
全部用无线的方式连接起来
那在这种情况下面
在它的这个应用上面
它定义了很多层的不同的协议栈
在这个协议栈里面
最 最 最popular的一个应用
就是蓝牙耳机
一开始的时候是单声道的
那种就是蓝牙耳机打电话
然后后来变成双声道的
蓝牙耳机听音乐
这种的应用全部都是传统蓝牙的应用
就是我们叫Classic Bluetooth
应该是在四 五年前
那个蓝牙组织 在Classic Bluetooth的基础上
加了一个BLE
BLE它其实也是在那个协议的里面
但是它和传统蓝牙
就是4.0以前的蓝牙
其实是不兼容的
你看到的有蓝牙3.0
蓝牙high speed
这个是蓝牙一开始传统蓝牙的发展
然后后来它有把BLE加进来之后
蓝牙4.0加进来了之后
它其实是一个低功耗蓝牙
所以它就是蓝牙协议的
不同的一个分支
这个分支和传统蓝牙是不兼容的
所以大家首先在今天下午的
这个课里面要搞清楚
蓝牙和传统蓝牙
蓝牙分传统蓝牙和低功耗蓝牙
这个是两个不同的概念
所以我们现在看到得很多
比如说小米的手环
然后你可以看到一些
比如说别人跑步的时候
用的那个心率的
然后在家里面的时候
有一些蓝牙做的遥控器
小米的遥控器
上面打了一个蓝牙的那个标志的
都是低功耗蓝牙的产品
低功耗蓝牙就不是标准蓝牙
因为低功耗蓝牙和标准蓝牙的区别
在于以前耳机就是大家知道双模耳机
什么双模 就是传统蓝牙的那个耳机
双声道的耳机 它是需要充电的
你可能听一天的电 然后电就没有了
你要再继续充电
但是低功耗蓝牙
它标榜的就是功耗超低的蓝牙
所以它可以通过纽扣电池供电
达到很长时间
如果大家有用过
小米的蓝牙遥控器的话
大家就知道它其实里面
就是一个CR2032的电池
然后可以用一年以上
所以这个是低功耗蓝牙
和标准蓝牙最本质的一个区别
那它在协议上面
因为它要达到低功耗
所以它做了很多修改
所以它在协议的兼容性上面
它和传统蓝牙是不兼容的
这是大家两个概念大家要知道
然后在这个完成之后
到Bluetooth 5是去年的时候
就已经有这个概念了
然后TI声称 自己是Release Bluetooth 5
最早的一家公司
当然现在也有很多公司
都开始陆陆续续Release
蓝牙5
它在低功耗蓝牙上面的操作
在这张图上可以看到
第一个是四倍的距离
第二个就是两倍的通讯速度
第三个就是800倍的一个广播包
发送的那个信息的一个
就是广播包发送信息的一个量
所以它在这个上面
蓝牙5.0其实主要就是低功耗蓝牙
在以前就是基于4.0的蓝牙
它有一个非常大的
在这三个点上面它是有一些改进
因为我们主要的题目是蓝牙5.0
因为这个SIG组织也是说蓝牙5.0
是以后未来的发展方向
所以它可能想要干掉ZigBee
干掉一些其他的网络应用
所以也是跟其他网络应用做一些区分
可能在这几方面会进行一些加强
所以这个是蓝牙5.0在这几个特点
这节课大家一定要知道
好 具体的来看这四个特点是怎么做的
所以蓝牙5.0它有三个不同的mode
一个是Long Range Mode
一个是HigherSpeeds
还有一个就是Broadcasting Capacity
所以这个就是Long Range的话
它是用code的方式来做的
也就是说如果回头
大家看到一个蓝牙4.0的设备
它是不可能跑蓝牙5.0的协议的
原因在于说就是 在Long Range mode这边
它是通过IF code这边做编码的方式
来实现这个长距离的数据传输
所以它是底层的
你可以把[indiscernible]这边
直接做的一个特殊属性
也就是说你如果是4.0的蓝牙设备
你必须升级硬件
你才可以支持5.0的这个应用
这个是Long Range mode 我在后面会具体讲
到底Long Range mode是怎么实现的
我们再看一下higher speeds
它的这个通讯速率
modulation是达到以前的两倍
它因为以前的蓝牙
都是在GFSK一兆的 这个调制模式上面的
所以现在它在蓝牙5.0上面
它加进来了一个两兆的通讯模式
所以做IF的就知道我同样的时间内
我的通讯速率
相当于从一兆变成两兆之后
我的data rate肯定会提高
所以这个是通过这种方式来做的
然后八倍的传输速度
这个是蓝牙协议软件实现的
就是蓝牙协议在广播包里面的时候
以前广播包最长是31个byte
现在它把这个东西加进来了之后
它可以传非常长的一个数据包beacon
所以在一些beacon应用的时候
就是蓝牙广播的这个数据应用的时候
它这种广播的数据包它可以加进来
这个后面具体实现
我也会具体跟大家说是怎么实现的
所以在蓝牙5.0
它把这些功能加进来了之后
它的应用范围会变得比较广
那在蓝牙4.0这边的情况
就是BLE的这种情况
其实做的最后就是穿戴设备
遥控器这个是量比较大的
然后应用比较多的
那种小的那种智能设备
低功耗蓝牙我看到的 比较有意思的应用
就是有一年的2014年的CES展上面
最佳设计设备
很多都是围绕着BLE的应用来的
然后在那个应用上面
有人把它做在养花草一个设备里面
把那个花草一样插到花盆里面
它就是通过低功耗蓝牙和手机连接
然后它就去监控这个土壤的温湿度
然后告诉你这个花
是不是适合这个花生长
然后就来养花 就是应用
就是智能养花的一个应用
然后做的很有意思
就是BLE有很多
这种很有意思的应用
然后现在在BLE5.0
这样做了进阶之后
那么它就有非常多的一些应用
加进来了
所以可以看到下面
比如说Home Building Automation
这个其实就是和早上的15.4的
其实是有一些重叠
你会发现在无限的网络连接里面
很多应用都是重叠的
就有的应用可以通过BLE来做
也可以通过15.4来做
也可以通过ZigBee来做
那其实就是要看你具体这个应用中间
有些小的区别是在什么地方
所以在这个上面列出来的
其实是有很多
比如说我在工业方面的 E-meter sensor
或者Power Tool用BLE
然后在家用家电的时候
它用BLE其实主要的方式
就是它的优势在于
它可以跟手机进行通讯
所以BLE和其他的网络连接
它的优势就在于它可以非常简单地
用简单的自己的协议
就和手机进行数据连接
然后人就可以
根据通过这个手机来控制某些设备
或者看到某些设备的状态
所以这个是BLE
能够给使用者提供的
我觉得是和其他的网络连接
最大的一个区别
这个就是蓝牙
好 下面我们来看一下
蓝牙5.0的一些use case
刚才跟大家讲了一下
就是它引进了三个新的网络特征
那么我们看一下
在引入新的网络特征之后
它会有一些什么样的
新的应用可以引进进来
首先是door lock
就是这个话可能是老外的房子比较多
我们国内的房子可能就不需要这么远
但是这只是一个例子
就是如果我是在蓝牙的这个门锁上面
它是一个BLE的门
那么这个BLE的门
我其实是直接可以跟手机进行通讯的
因为我现在是
就是它是一个
如果这个门锁是一个
bluetooth4.0的设备
那它是可以跟手机通讯的
但是它的通讯距离就比较近
就是比如说我们是在客厅里面
那我肯定要人走到客厅这个范围内
然后我才可以跟我的门锁连接上
在这种情况下
我才有可能去对我的门锁进行操作
但是如果你把5.0的应用加进来
也就是说它本身的通讯距离
long range的这个通讯距离加进来
它本身long range我们老外在
我们的BU在挪威
就是做BLE的这个BU在挪威
然后他们曾经在5.0的long range
刚做出来的时候拉了一个距
等一会在后面可以看到
就是它有一个video
当时video拉出来的通讯距离
是16公里
就是这一侧是在接收端跟发射端
是保持连接的状态
然后他们就一个人在冰面上面滑冰
另外一个人就到远处去爬山
爬到山顶上面那个连接还在
然后最后回来
google map上面拉一个距
16公里
所以这个就是
当然挪威的环境非常
就是不像中国国内的环境这么嘈杂
4G的环境比较嘈杂
所以拿到国内来说的话
如果是家庭应用
家庭这个房子可能500米
不到100米肯定是可以
就是实现这么个连接的
所以如果你的手机
是支持5.0的手机
如果是在一年前
可能只有三星的有一款手机是支持的
那到现在iPhone8
和iPhone X
都是支持5.0的
所以现在越来越多的手机
开始支持BLE
5.0之后你如果你的设备
是支持BLE5.0的
你就可以在家里的任何地方
去操控你的门锁
如果是在这个应用中
所以这个就是很典型的一个
就是long range mode的 一个使用场景
那么在另外的一些使用场景中
同样的把它从门锁 [indiscernible]out出来之后
你可以看到比如说家电
在家里就是家电
它是可以有BLE5.0的操作
你不需要有gateway
你不需要通过像早上说的
如果你是Sub-1G做的
那么你还需要一个gateway
把它从Sub-1G的网络桥接到wifi网络
然后wifi网络
再通过GPRS到你的手机
最后你通过手机
你要走一个这样的
通过Cloud走一个数据回路
然后去控制你家的电冰箱 洗衣机
但是如果你是用BLE的话
你可以直接实现这个功能
就直接去连接
然后对它进行控制
所以这个是BLE5.0
就是蓝牙5.0long range
它和就是LT这个应用的一个区别
所以反过来还是强调说
很多的无线应用都是可以实现的
只是说看什么样的应用就满足
你对应用的这个需求
特定应用的一个需求
那么这个地方也列了
还有其他的一些
比如说在工业中间的话
sensor network也可以通过蓝牙来做
那这个地方的瓶颈
就是说它在建立连接的时候
它的那个连接数量是有限的
就是如果你是和15.4来比
15.4 200个
那你的BLE的连接
用手机连的话最多十几个
所以这个也是一个限制
好 看下面
下面就是还有
第二个 就是刚才说的是long range
那如果是在 advertising extension这边
就是所谓的广播包
括展广播包的这个应用上面的话
扩展广播包它的意思是这样
就是刚才有提到广播包的话
它在蓝牙协议里面定义的
就是广播包里面可以携带一个广播的
就是客户自定义的数据长度
那这个数据长度在以前的
通讯协议里面规定的是31个byte
31个byte可以写什么东西
基本上你写一些自定义的名字就没了
然后像以前的beacon的应用的话
它是直接办直接用这31个byte
去写那个link
就是写一个网络地址
比如说我在万达商场里面逛商场
然后我走到一家店门口
然后这个店要打广告
然后它给我推送了一个beacon
然后这个beacon里面 我应该写什么东西
能够包含我的数据
它就会推送一个link给你
那个link就是它的一个广告页
所以它会给你一个手机推送的
这么一个数据
然后你看到这个数据之后
你直接就link到
就是你点了这个之后
你其实去打开一个网页
那个网页就是它推给你的广告
一般的那个应用是这么做的
那如果你是在现在的
就是advertising extension use case里面
就是你如果加长扩张广播包来用的话
因为你就不会受这个31个byte的
数据限制
你可以发256个byte或者更长的
数据byte
那你也就是说你可以包含
更多更多的数据信息
你可以把你的所有的有用的东西
全部都直接写在你的那个广播包里
那这种情况下就不需要客户很麻烦的
我点了一个link
然后那个link上面有什么数据
它就直接可以通过手机上面就拿到
那这个beacon是这样的
在IOS设备上面叫iBeacon
它是有一定的数据格式的
然后在Android设备上面叫beacon
它其实都是基于 Bluetooth的这个广播包的
这个协议的数据框架来做的
那么不同的这个应用
都会支持不同的东西
所以现在就是相当于是说
给客户开放一个可以携带
更多数据信息的一个广播包来给你
所以在这种情况下
你在应用上面就不会像以前
那么麻烦了
这个是advertising extension的例子
好 下面就是faster data transfer
这个主要就是我们以前在蓝牙的
就是BLE的设备里面的话
用的最多的就是蓝牙与语音遥控器
就是大家如果用过小米的遥控器的话
或者是比如说海信的遥控器
它们做遥控器的时候
它会有一个功能
就是你按住一个按键对它说话
然后它会把你的语音录下来
然后发到电视端
发到电视端之后
电视端上面会有一个
就是语音识别的系统
然后比如说我说开机
或者说选频道
多少频道或者是选游戏
因为现在都是智能电视
你可能会有一个短的那个命令进去
然后它把这个打出来
打出来之后它可能会直接link到
自己的一些
就是电视机的那些操作
那这个功能其实就是通过BLE
单项的从手机 从遥控器
发一段语音发到电视机端
这么一个功能
但是单向的而且只是语音
大家知道语音的那个采样频率
是非常低的
就是相对而言
如果你是用BLE的通讯速率
因为BLE通讯速率是不那么高
就是它因为要做低功耗
所以根据早上的那个知识点
就是如果你要高的通讯速率
就是你必须要以非常高的
就是功耗来作为代价
那如果BLE是怎么做到又低功耗
然后又能数据传输
它只能是说牺牲掉这个通讯速率
这个点来做
所以它的通讯速率不高
但是它可以支持单向语音数据发送
在BLE5.0里面它是两兆的
通讯速率
所以两兆的调制模式
所以在通讯速率的情况下
它可以支持到基本上可以达到两兆
就是达到以前的通讯速率的两倍
从那个原理上面
就是从原理这个上面来考虑
不是实际的情况
只是从原理上面来分析
它应该是可以达到以前的两倍
所以在这种情况下
它可以实现双向语音通讯
那么在这种情况下
你就可以实现比如说双向的
从遥控器到手机
遥控器到电视机的一个语音传输
这是一个
第二个你可能可以实现一个比如说
媒流体播放器直接到遥控器的
一个数据传输
那么在这个时候
其实就是有一些比如说对讲机的功能
我们比如说不要把它局限在手机
遥控器和电视机的这个里面
您可以把它在思想再打开一点
可能在比如说对讲机
室内对讲机的这种情况下面
是不是也可以来做
所以在这种情况下
大家可以来想一下
就是在语音上面在BLE5.0上
可以传输更多的东西
好 再看一下 faster data transfer的use case
还是在industrial这边
那在industrial这边
它是有更快的这个数据传输
所以有一些
比如说数据量比较大的情况
就是以前如果数据量小的话
比如说我们做OAD升级的时候
BLE如果256K的数据升级
得要一分多钟才能够把这个
就是256K的数据全部发送到手机
而且这个是非常快的通讯速率的
情况下才可以完成
那如果我用high speed来做的话
那我可能一分钟都不要就可以完成
那也就是说比如说我传一个
大一点的数据
比如20K或者10K的应用
在应用场景里面
这个时候对于使用者来说
他就会觉得我可以接受
这样一个等待时间
否则的话比起wifi
它可能这个功能
他就会觉得比较蹩脚
好 这是一个应用在工业方面
然后在其他的方面
比如说指纹识别方面
指纹识别大家知道数据量会比较大
那这种大的数据量传输以前和那个
以前是不能用Sub-1G
或者其他的方式就BLE无线来做的
那现在如果是高的数据传输的话
它是可以来做的
所以它就会有一些比如说数据支付
然后指纹的这种security的
需要大数据量传输的东西的时候
它可以用这个BLE来做
好 然后给大家讲一下TI的solution
今天早上杨杨这边给大家介绍的时候
是有这个road map
但是那个是三二的
然后我们在二六
就是二六和Sub-1G这边的road map
大家可以看一下
就是灰色的这部分
是我们现在已经量产的芯片
然后在1G以下部分的话
是有1350
1350是dual band
就是它支持1G以下和2.4G一起
所以它的下一代产品是1352
这个1352就是
早上有说它是concurrent mode
可以同时支持BLE的全功能连接
和Sub-1G的网络通讯
这个是1352
它现在处…就是第二
就是蓝颜色为底的这个
它是现在已经可以sampling
然后到今年年底的时候可以量产
所以大家如果想要开始sampling
除sampling之外
它的那个demo版也可以拿到
然后SDK也都在网上是发布的
所以等于说是
现在的开发就已经可以基于这个来做
然后等到量产之后
可以跟产品同步的进行数据量产
就是产品量产
然后后面还有一个1352P
就是加这个PA的
这个PA可以加到两点
它是就是芯片自带PA
所以它等于说是 会有一个20DB output
以前的话2642的output
应该是5个DB
然后1352加进来之后
它可以选择
是在Sub-1G上面加20DB的PA
还是说在2.4G上面加20DB的PA
就是外围的那个设计会有一些不同
所以在这颗芯片上面
就是一个内置PA的一个问题
所以整个看下来的话
在BLE这边的话
我们现在是有2640IQF
然后有一个Q版本的
就是如果大家有汽车的客户
想做BLE的设计的话
你可能需要选一个
就是已经过了汽车Q100认证的
2640IQFQ的一颗芯片
那就是这是单独的2640的
然后2650的MODA是一个module
就是TI自己的一个module
2650的一个module
然后这个可能在国内用的人不太多
然后在2.4G私有信息这边的话
还有那个ZigBee Thread这边的话
是2630 2650
然后大家可以看到pin to pin的话
是7乘7的那个封装的话
它是这样直接过去
2640对2642
然后2650对2652
直接pin to pin的
所以这个是我们一个
在2.4G这边的一个roadmap
然后看一下SDK
刚才我有跟大家说
就是你要下载SDK之后
看一下自己的板子
如果是在2.4G这边来做
SDK支持的话
就有两颗芯片可以支持
一个是26X2的SDK
一个是1352SDK
然后你根据你自己的板子
下对应的SDK来安装
我们就等于用2K来做这个
BLE的demo
来讲一下Technical detail
就是它到底具体在协议里面
是怎么实现的
Bluetooth5的Long range 它其实是会有一个口
它叫LE的coded PHY
就是它有两种就是标准的LE的
那个调制方式是1兆
然后它通过一个
就是比如说两个比特代表一个比特
就是用两位来代表一位的这种方式
来数据传输
这样的情况就是相当于
自己含了一个纠错的能力
那么它这样的话
它就可以增加那个sensitivity
所以它就可以增加磨耗
增加那个距离
在这种情况下
就是500K的通讯速率
因为它本来是1兆的
然后它现在里面
每两个比特代表一个比特的数据
所以它就相当于数据减半
就是1兆除以2就是500K
所以是这么这么来算的
还有一种就是1:4
就是它后面这个其方式有写
就是0就是通过0011来表示
然后1通过1100来表示
那么在这样的情况下
它就相当于是
4个byte来纠错一个byte
这样的话它的sensitivity
就会比500K的更高
但是它的通讯速率就降更低
就是它coded了之后
就是125K的data rate来做数据通讯
所以就是就变成了
就变了
就变成125K
所以这个就是 在long range mode的时候
就有两种通讯速率可选
一个是500 一个是125
这个地方在代码里面是可以配置的
我们在后面的Hands On里面
也是可以有提到
如果大家有这个兴趣的话
可以看一下Hands On里面怎么做的
那这个是long range的 基本的实现方式
好 刚才有说就是我们挪威的同事
做了一个非常令人亮眼的
long range的一个demo
大家到时候有兴趣的话
可以通过访问这个网站去看一下
这个网就是这个training的
这个video是在网上
TI官网上面是公开的
然后你们可以看到就是
他们实际去拉距的时候
最后实现的那个就是16公里的这个
最后一个那个结果
好 下面就是讲一下
high speed是怎么实现的
high speed的话
就是刚才其实有提到
我们其实就是通过
一个两兆的通讯速率来做的
其实大家从下面的这个
历史的这个图就可以看到
Bluetooth4.0 4.1的时候
就是一兆bps的PHY
PHY 其实就是所谓的底层的物理层
物理层它实现的那个数据就是一兆
然后它是27个byte的PDU
然后在Bluetooth 4.2里面
它加了一个功能叫data extension
所以它可以在某种情况下面
如果你两边都是4.2的设备
它可以扩展就是有一个数据扩展
那在数据扩展的情况下面
它的PDU可以达到255K
而255个byte的PDU
所以它也就相当于是
我本来一个byte一个数据包
只能传27个byte的数据
那我就把这个数据扩展使用上了之后
就相当于我的一个蓝牙包
可以带255个byte payload的
所以它就相当于是说我在同一时间内
可以传更多的数据
因为你相当于是
蓝牙的通讯的那个协议
它做到低功耗的原因就是
它通讯一下之后休眠
再通讯一下之后再休眠
所以它的那个占空比
实际上是比较低的
所以它可以达到功耗
就是平均功耗会比较低
所以你就可以想象出
它其实要等到每一次我就是真的
要开始进行数据连接的时候
要进行数据通讯的时候
我才会进行就是才会进行数据收发
那我如果每一次收发
只能收发27个byte
那我的通讯速率肯定是比较低的
那么如果我用Data Extension的话
就相当于是说
我在同样的时间间隔里面
每一次收发的数据会比以前要长
那这样的话data rate就会高
所以这个就是通过这种方式来
最后它可以达到最高
780个KBPS的一个通讯速率
这个是按平均的这个时间来算
那么在BT5.0里面
它可以用到两兆的PHY
所以就是在物理连接上面本身的那个
这个PHY它就已经提供给你就是两兆
那它在这个双倍了这个之后
那它还是可以 用以前的一个Data Extension
那它本身的这个通讯速率的话
就会达到1.4兆
所以这个就是它高速的一个原理
好 再看一下high speed
所以刚才有问题
就是说我刚才一直在说
是不是可以真正达到两兆
达到两兆其实只是一个算出来的
就是说因为我本身以前的通讯速率
是一兆 以前的那个data rate是一兆
我现在的data rate是两兆
所以情况理论上
我是能够达到以前的两倍
这是简单的算
但是实际上是不是真的可以达到两倍
其实是不行的
原因在于什么地方
大家可以看到下面画的这两张图
上面那张图是一兆时候的传输的方法
下面这张图是两兆的时候传输方法
它中间会有一个就是在每一个包
就是这个传输的时候
其实就是传两个包
然后黄色的这部分就是传第一个包
然后蓝色为底的那个地方传第二个包
大家你看就是它在传两个包之间
它一定会有一个150微秒
左右的一个就是slot 它是一个间隔
它一定会有这么一个间隔
所以在这一部分的占空比
是不能变的 也就是说
我虽然是以1兆的速率在传输
然后我虽然是以2兆的数据传输
你看下面这个图它是2兆
所以它比较起来的话
如果只是传同样长度的数据的时候
它的这个数据长度
是可以是之前的一半
但是这个间隔
150微秒的这个间隔
是没法儿变的
也就是说它的这个速率
其实是达不到真正的两倍
因为它会有一些网络的方面的
为了维持网络方面
它会有一些这方面的消耗
所以有些间隔它是不能变的
不是说我100%的1/2的占空比
就直接除出来
所以它理论上是可以达到两倍
但实际上最后出来就是1.4兆
这就是原因
好 下面讲一下那个 advertisement extension
advertisement extension是这样
就是在广播包上面
蓝牙的广播是这样的
蓝牙它有39个信道 通讯信道
然后这个通讯信道的定义
就是和wifi是有一部分是重叠的
wifi的通讯频段也是2.4G
蓝牙的通讯频段也是2.4G
然后它为什么会选37 38 39
3个信道作为广播信道
原因这37 38 39
3个信道它是避开
就是避开wifi已经使用的信道
最远的两个可能比较干净的信道
所以它把它作为一个广播信道
因为所有的蓝牙的连接
都是从广播信道的广播开始的
广播信道的作用就是
当一个设备可以使用的时候
它要在广播信道上发广播
告诉对方设备
我在这里你可以来连接我
或者是我有数据
你可以到这个广播信道上来找我
所以这广播信道它的干净程度
受干扰程度
直接影响到BLE它的连接可靠度
或者说最后BLE使用的这个可靠度
所以它为什么要选37 38 39
这3个信道的原因就在于
这3个信道将相较于wifi来说
是最干净的3个信道
他们离wifi的那个频点最远
好 这是广播信道
这是在BLE
传统的BLE的广播包是这样做的
然后它这个传统的广播包里面
还有一个特点 就是这上面写了
PHY必须是1兆的PHY
因为在BLE5.0之前
就BLE4.0
BLE4.1的时候
它的那个PHY
都是一兆BPS的PHY
所以它是必须是在
这个PHY的基础上来做
然后它的payload
我刚才说是31个payload
这上面写的是PDU
PDU是它把它的一些那个 Link Layer L2CAP
这个link的一些网络包的那个
数据包也算进去了
所以从PDU上面来讲的话
它是可以算成37
但实际真正的payload的话是31
好 这个是我刚才已经解释过 好
然后这个是传统的
那在新的广播包的这个里面
它是加进来了新的不同的Command
所以我们如果是要讲它的原理的话
从下面这个图上
可能会看得更形象一点
首先看下面那个图上面的前面
是粉红色的这3个框框
3个方框就是它要在
37 38 39 3个信道上面
轮巡的去发送广播
所以它是轮巡的37 38 39
37 38 39默认的
就是这样发的
所以它后面的这个灰色的部分
就永远都是payload
所以它要先发一个广播头
然后发payload
然后在37 38 39
3个信道上面来发送
好 这个是一个传统的
BLE的广播是这样
那后面的发3个蓝颜色的框框
是什么意思呢
蓝颜色的这个框框就是
它会发这个ADV EXT IND
indicate这个command
它的意思就是说我会在其他的
信道上面来发长的数据包
它在这个里面只发一个header
告诉你 你下一次来什么时间点
到哪一个信道上去接收
我的真正的payload
它其实是这么来做的
所以他就在
37 38 39三个信道上面告诉你
只发广播头
告诉你赶紧到其它的信道上去来做
因为以前的广播包
只能在37 38 39三个信道上发
但是在新的蓝牙5上面
它这个广播头是可以在
37 38 39三个信道上发
但是真正的payload
它可以发到其它的信道上去
所以它这个地方只是发一个头
就是发一个point的指针
告诉你说你去哪里去读
然后我在那个信道上真正的发数据
它通过这种方式来
还是我们把这个叫
就是它到data channel上面去发数据
所以data channel上面 是可以发大数据的
然后广播信道还是发广播的数据
所以现在在蓝牙5.0上面的话
就是它把data channel上面 也可以发广播数据
只是发有效的广播数据
它把这个功能加进来了
所以在这种情况下面它就是告诉你说
我们可以实现一个大数据量的
广播包的传输
所以它在这个上面的话就是有
除了刚才那个command之外还有
刚才介绍是ADV EXT Indicator
这个就是告诉你是广播包的一个指针
然后下面的那个AUX ADV Indicator
是真正的知识有用数据
就是它其实是在后续的
就是在data channel上面发送的
真正有用的广播数据
然后还有两个
一个是AUX SYNC Indication 和AUX CHAIN Indication
这两个SYNC应该是不支持的
在2640IQ上面
然后CHAIN是支持的
就是它可以把数据链起来
也就是说我一个包可以发248个BYTE
但是我还可以把它Chain
比如说我要发500多个byte的数据
我可以有一个队列的方式
然后我第一个包发这么多
第二个包发这么多
我以一个队列的方式把它串起来
那在这种情况下
你就可以通过 这个AUX CHAIN的方式来实现
那它总共就是扩展广播包
是通过这四个command
一共通过这四个command来实现的
好 大家可以看一下
就是刚才这样说可能有点不形象
所以大家可以看一下 那个标一的sniffer
就是我们的抓包工具上面的刷包
就是有一个叫Ellisys的Tracker 这个是我推荐
如果客户想要做BLE的开发
然后想要做应用的话
我们推荐就买这个
当然这个设备可能很贵
可能几万美金一台这样的设备
然后这个是这个设备
对这个协议最后
就是对我们的2642抓包之后
出来看到的一个结果
就是大家可以看到
我刚才说有39个信道
就是BLE有39个信道
全部都是在最左边的这个上面画出来
2042开始是37A
然后2427这个channel 这个频点是38A
然后2480这个channel是39
就是37 38 39三个广播信道
然后大家可以看到在一开始的时候
我是有一个连接的
就是大家可以看到连接的这个
连到一起的就比较长的
就是其实是一个握手
就是我这个时候
蓝牙其实是连在一起的
然后它们是在2407的
这个信道上面进行数据通讯
然后在这个时候它断开连接了
断开连接之后
就设备回到了一个广播状态
在后面的
就37 38 39三个信道上面
进行数据广播信道的广播头的发送
就是刚才看到的广播头
就是刚才ADV-EXT-IND的这个
它就在这37 38 39上发了一个头
然后告诉它们
我真正要发的数据的广播包
在什么地方
然后在后面的这个上面你可以看到
有两个广播头都指向
后面的一个在data
在第三个 看这是第三个信道
应该是第三个
应该是第四个channel上面的
一个真正的广播的数据的payload
那这个时候是两个头
指向了一个真正的有效数据
如果把这个打开来看
也就是可以看到 Header这边就是以前的广播包
它里面会带广播设备的设备地址
那现在在广播包里面它可以不带
就选择你可以带 你也可以不带
但是有两个东西它必须带
一个是这个框起来的 Advertising Data ID
就是Data ID
和Site ID
这两个是必须要带的
那这两个带就是说我这一条广播包
这个是协议自动分配的
它会分配一个广播ID
告诉你说这一配套是一组广播包
是一组有效的
就是从pointer到实际数据 它是一组
然后它下一次当你的广播数据
就Payload的有实际变化的时候
这个数据会自动的协议会变化
协议上会变化的
所以从协议的抓包来看
这个数据会变化
那这个作用就是对于接收者来说
它通过读Data ID
Site ID
它就会知道这个广播内容
会不会有变化
是不是我之前读过的
所以它通过这种方式就可以防止
我读一些我不需要的已经读过的数据
这个是通过这种方式读的
然后在Offset这个地方
它有一个时间点
那时间点就是一个是1.74毫秒
因为这是第一个包
它是1.74毫秒
然后第二个包就是870
1.7毫秒 后面就是870个微秒
为什么
因为这两个包之间会有一个数据差
它都指向最后的
就是实际我要发送的数据包
就是实际发出这个payload 是什么时候发
它都会告诉你
说什么时间点之后
我要在这个信道上面发这个数据了
因为这两个本身
发这个广播的指针
都是有一个时间差
它先是在38上发
后来是在39上发 它有时间差
所以在这个地方
它的时间差就会直接
表现在这个Payload里面
就会表现在这个Header里面
所以对于听的人来说
他就知道我在什么时候
应该具体去哪一个信道上来收数据
所以这两个之间是有区别的
这个地方可以看的比较明显
对 这个就是最终的发送的数据的
那个包的一个包文一个解析
然后大家可以看到就是在广播的地址
在这个地方有些广播地址
然后一个ADV给它
就是包含了真正的广播数据
实际是在这个包里面包含的
好 讲完了这个之后
就看我们在蓝牙5.0上面
应该通过什么来做
我不知道
今天他们给大家发的是哪块板子
就是如果你要做BLE
就是TI的蓝牙你可以选择两块板子
一种是1352 R1
这个就是我刚才提到的
1352的芯片
它的LaunchPad
然后还有一种就是CC26叉二
就是2652或者2642都可以
然后26就是单2.4G的
然后1352的话是2.4G加上Sub-1G的
这个地方有那个output power
2.4G的output power
是五个DB
然后Sub-1G的output power
是14个DB 默认的
不带PA 如果你带PA的话
它可以选择
是在Sub-1G的这个频段上面
加PA
还是在2.4G这个平台上加PA
然后在这个板子上面
和我们以前1350
或者2650的这个板子的区别在于
大家可以看到多了上面很多的器件
就是这个板子会比以前的那个板子
更长一些
然后上面很多这个黑颜色的这部分
其实是做那个energy trace
现在这个energy trace
是TI把以前430上面的energy trace
把它掰过来了
然后在这块板子上面就可以
不需要用你的那种测电流的一个电流
非常高档的电流设备
然后你就直接可以
接我们的TI自己的开发环境CCS
然后你就可以去评估
自己的这个板子上的整个的电流
而且它在支持26X2的平台上面
或13X2的平台上面
它还可以去评估外围设备
当然现在可能还没有完全发布
但是它已经是在做
它可以评估外围的 peripheral设备的功耗
就跟以前430上面 energy trace++是一样的功能
比如说我在U2的口上
接了一个什么设备
或者我在IMC口上面
接了一个什么设备
我在SPA口上接了一个什么设备
然后你在通过energy trace的时候
你可以抓到这些设备它的功耗是多少
你可以仔细的看到的
所以用这个板子的话
你不需要那种非常昂贵的
专业店员的那种设备
然后你就可以大概的知道
你现在这个板子跑成什么样的状态
目前是一个什么样的功耗级别
这个是可以通过这个板子来实现的
今天下午我们先来讲一下蓝牙5 大家可以在装那个软件的同时 来看一下我们蓝牙5有什么新的功能 然后蓝牙5 蓝牙5的话我会从下面五个方向 来跟大家说一下就是蓝牙5 我们可能会支持什么东西 如果要做蓝牙5的开发的话 我们会需要哪些东西 下午在讲完了之后 准备去做一个Hands On 然后给大家看一下 我们的SimpleLink Academy 这边有些什么东西 可以给大家看一下 然后大家如果在Hands On这边 没有做完的话 没关系 回去之后这个是一个open的 所以大家可以在家里面 只要有网络连接的情况下 都可以去访问 那个SimpleLink Academy 然后继续把这个demo做完 好 现在我们先来看一下蓝牙5 我想问一下在座有多少人 是做过BLE的支持的 以前 可以举手示意一下 没有人吗 好吧 这样啊 如果是没有做BLE支持的 我就多讲一些跟基本网络相关的 一些功能可能多讲一点 大家如果以前做过的话 我可能就会讲得快一点 好 那我来讲一下 BLE5就是蓝牙5 蓝牙5是这样的 大家以前用过传统的蓝牙 传统蓝牙 最popular的一个应用 就是蓝牙耳机的应用 在很多年前蓝牙它的定义 就是说要把所有的设备 全部都用无线的方式连接起来 跟人相关的设备 全部用无线的方式连接起来 那在这种情况下面 在它的这个应用上面 它定义了很多层的不同的协议栈 在这个协议栈里面 最 最 最popular的一个应用 就是蓝牙耳机 一开始的时候是单声道的 那种就是蓝牙耳机打电话 然后后来变成双声道的 蓝牙耳机听音乐 这种的应用全部都是传统蓝牙的应用 就是我们叫Classic Bluetooth 应该是在四 五年前 那个蓝牙组织 在Classic Bluetooth的基础上 加了一个BLE BLE它其实也是在那个协议的里面 但是它和传统蓝牙 就是4.0以前的蓝牙 其实是不兼容的 你看到的有蓝牙3.0 蓝牙high speed 这个是蓝牙一开始传统蓝牙的发展 然后后来它有把BLE加进来之后 蓝牙4.0加进来了之后 它其实是一个低功耗蓝牙 所以它就是蓝牙协议的 不同的一个分支 这个分支和传统蓝牙是不兼容的 所以大家首先在今天下午的 这个课里面要搞清楚 蓝牙和传统蓝牙 蓝牙分传统蓝牙和低功耗蓝牙 这个是两个不同的概念 所以我们现在看到得很多 比如说小米的手环 然后你可以看到一些 比如说别人跑步的时候 用的那个心率的 然后在家里面的时候 有一些蓝牙做的遥控器 小米的遥控器 上面打了一个蓝牙的那个标志的 都是低功耗蓝牙的产品 低功耗蓝牙就不是标准蓝牙 因为低功耗蓝牙和标准蓝牙的区别 在于以前耳机就是大家知道双模耳机 什么双模 就是传统蓝牙的那个耳机 双声道的耳机 它是需要充电的 你可能听一天的电 然后电就没有了 你要再继续充电 但是低功耗蓝牙 它标榜的就是功耗超低的蓝牙 所以它可以通过纽扣电池供电 达到很长时间 如果大家有用过 小米的蓝牙遥控器的话 大家就知道它其实里面 就是一个CR2032的电池 然后可以用一年以上 所以这个是低功耗蓝牙 和标准蓝牙最本质的一个区别 那它在协议上面 因为它要达到低功耗 所以它做了很多修改 所以它在协议的兼容性上面 它和传统蓝牙是不兼容的 这是大家两个概念大家要知道 然后在这个完成之后 到Bluetooth 5是去年的时候 就已经有这个概念了 然后TI声称 自己是Release Bluetooth 5 最早的一家公司 当然现在也有很多公司 都开始陆陆续续Release 蓝牙5 它在低功耗蓝牙上面的操作 在这张图上可以看到 第一个是四倍的距离 第二个就是两倍的通讯速度 第三个就是800倍的一个广播包 发送的那个信息的一个 就是广播包发送信息的一个量 所以它在这个上面 蓝牙5.0其实主要就是低功耗蓝牙 在以前就是基于4.0的蓝牙 它有一个非常大的 在这三个点上面它是有一些改进 因为我们主要的题目是蓝牙5.0 因为这个SIG组织也是说蓝牙5.0 是以后未来的发展方向 所以它可能想要干掉ZigBee 干掉一些其他的网络应用 所以也是跟其他网络应用做一些区分 可能在这几方面会进行一些加强 所以这个是蓝牙5.0在这几个特点 这节课大家一定要知道 好 具体的来看这四个特点是怎么做的 所以蓝牙5.0它有三个不同的mode 一个是Long Range Mode 一个是HigherSpeeds 还有一个就是Broadcasting Capacity 所以这个就是Long Range的话 它是用code的方式来做的 也就是说如果回头 大家看到一个蓝牙4.0的设备 它是不可能跑蓝牙5.0的协议的 原因在于说就是 在Long Range mode这边 它是通过IF code这边做编码的方式 来实现这个长距离的数据传输 所以它是底层的 你可以把[indiscernible]这边 直接做的一个特殊属性 也就是说你如果是4.0的蓝牙设备 你必须升级硬件 你才可以支持5.0的这个应用 这个是Long Range mode 我在后面会具体讲 到底Long Range mode是怎么实现的 我们再看一下higher speeds 它的这个通讯速率 modulation是达到以前的两倍 它因为以前的蓝牙 都是在GFSK一兆的 这个调制模式上面的 所以现在它在蓝牙5.0上面 它加进来了一个两兆的通讯模式 所以做IF的就知道我同样的时间内 我的通讯速率 相当于从一兆变成两兆之后 我的data rate肯定会提高 所以这个是通过这种方式来做的 然后八倍的传输速度 这个是蓝牙协议软件实现的 就是蓝牙协议在广播包里面的时候 以前广播包最长是31个byte 现在它把这个东西加进来了之后 它可以传非常长的一个数据包beacon 所以在一些beacon应用的时候 就是蓝牙广播的这个数据应用的时候 它这种广播的数据包它可以加进来 这个后面具体实现 我也会具体跟大家说是怎么实现的 所以在蓝牙5.0 它把这些功能加进来了之后 它的应用范围会变得比较广 那在蓝牙4.0这边的情况 就是BLE的这种情况 其实做的最后就是穿戴设备 遥控器这个是量比较大的 然后应用比较多的 那种小的那种智能设备 低功耗蓝牙我看到的 比较有意思的应用 就是有一年的2014年的CES展上面 最佳设计设备 很多都是围绕着BLE的应用来的 然后在那个应用上面 有人把它做在养花草一个设备里面 把那个花草一样插到花盆里面 它就是通过低功耗蓝牙和手机连接 然后它就去监控这个土壤的温湿度 然后告诉你这个花 是不是适合这个花生长 然后就来养花 就是应用 就是智能养花的一个应用 然后做的很有意思 就是BLE有很多 这种很有意思的应用 然后现在在BLE5.0 这样做了进阶之后 那么它就有非常多的一些应用 加进来了 所以可以看到下面 比如说Home Building Automation 这个其实就是和早上的15.4的 其实是有一些重叠 你会发现在无限的网络连接里面 很多应用都是重叠的 就有的应用可以通过BLE来做 也可以通过15.4来做 也可以通过ZigBee来做 那其实就是要看你具体这个应用中间 有些小的区别是在什么地方 所以在这个上面列出来的 其实是有很多 比如说我在工业方面的 E-meter sensor 或者Power Tool用BLE 然后在家用家电的时候 它用BLE其实主要的方式 就是它的优势在于 它可以跟手机进行通讯 所以BLE和其他的网络连接 它的优势就在于它可以非常简单地 用简单的自己的协议 就和手机进行数据连接 然后人就可以 根据通过这个手机来控制某些设备 或者看到某些设备的状态 所以这个是BLE 能够给使用者提供的 我觉得是和其他的网络连接 最大的一个区别 这个就是蓝牙 好 下面我们来看一下 蓝牙5.0的一些use case 刚才跟大家讲了一下 就是它引进了三个新的网络特征 那么我们看一下 在引入新的网络特征之后 它会有一些什么样的 新的应用可以引进进来 首先是door lock 就是这个话可能是老外的房子比较多 我们国内的房子可能就不需要这么远 但是这只是一个例子 就是如果我是在蓝牙的这个门锁上面 它是一个BLE的门 那么这个BLE的门 我其实是直接可以跟手机进行通讯的 因为我现在是 就是它是一个 如果这个门锁是一个 bluetooth4.0的设备 那它是可以跟手机通讯的 但是它的通讯距离就比较近 就是比如说我们是在客厅里面 那我肯定要人走到客厅这个范围内 然后我才可以跟我的门锁连接上 在这种情况下 我才有可能去对我的门锁进行操作 但是如果你把5.0的应用加进来 也就是说它本身的通讯距离 long range的这个通讯距离加进来 它本身long range我们老外在 我们的BU在挪威 就是做BLE的这个BU在挪威 然后他们曾经在5.0的long range 刚做出来的时候拉了一个距 等一会在后面可以看到 就是它有一个video 当时video拉出来的通讯距离 是16公里 就是这一侧是在接收端跟发射端 是保持连接的状态 然后他们就一个人在冰面上面滑冰 另外一个人就到远处去爬山 爬到山顶上面那个连接还在 然后最后回来 google map上面拉一个距 16公里 所以这个就是 当然挪威的环境非常 就是不像中国国内的环境这么嘈杂 4G的环境比较嘈杂 所以拿到国内来说的话 如果是家庭应用 家庭这个房子可能500米 不到100米肯定是可以 就是实现这么个连接的 所以如果你的手机 是支持5.0的手机 如果是在一年前 可能只有三星的有一款手机是支持的 那到现在iPhone8 和iPhone X 都是支持5.0的 所以现在越来越多的手机 开始支持BLE 5.0之后你如果你的设备 是支持BLE5.0的 你就可以在家里的任何地方 去操控你的门锁 如果是在这个应用中 所以这个就是很典型的一个 就是long range mode的 一个使用场景 那么在另外的一些使用场景中 同样的把它从门锁 [indiscernible]out出来之后 你可以看到比如说家电 在家里就是家电 它是可以有BLE5.0的操作 你不需要有gateway 你不需要通过像早上说的 如果你是Sub-1G做的 那么你还需要一个gateway 把它从Sub-1G的网络桥接到wifi网络 然后wifi网络 再通过GPRS到你的手机 最后你通过手机 你要走一个这样的 通过Cloud走一个数据回路 然后去控制你家的电冰箱 洗衣机 但是如果你是用BLE的话 你可以直接实现这个功能 就直接去连接 然后对它进行控制 所以这个是BLE5.0 就是蓝牙5.0long range 它和就是LT这个应用的一个区别 所以反过来还是强调说 很多的无线应用都是可以实现的 只是说看什么样的应用就满足 你对应用的这个需求 特定应用的一个需求 那么这个地方也列了 还有其他的一些 比如说在工业中间的话 sensor network也可以通过蓝牙来做 那这个地方的瓶颈 就是说它在建立连接的时候 它的那个连接数量是有限的 就是如果你是和15.4来比 15.4 200个 那你的BLE的连接 用手机连的话最多十几个 所以这个也是一个限制 好 看下面 下面就是还有 第二个 就是刚才说的是long range 那如果是在 advertising extension这边 就是所谓的广播包 括展广播包的这个应用上面的话 扩展广播包它的意思是这样 就是刚才有提到广播包的话 它在蓝牙协议里面定义的 就是广播包里面可以携带一个广播的 就是客户自定义的数据长度 那这个数据长度在以前的 通讯协议里面规定的是31个byte 31个byte可以写什么东西 基本上你写一些自定义的名字就没了 然后像以前的beacon的应用的话 它是直接办直接用这31个byte 去写那个link 就是写一个网络地址 比如说我在万达商场里面逛商场 然后我走到一家店门口 然后这个店要打广告 然后它给我推送了一个beacon 然后这个beacon里面 我应该写什么东西 能够包含我的数据 它就会推送一个link给你 那个link就是它的一个广告页 所以它会给你一个手机推送的 这么一个数据 然后你看到这个数据之后 你直接就link到 就是你点了这个之后 你其实去打开一个网页 那个网页就是它推给你的广告 一般的那个应用是这么做的 那如果你是在现在的 就是advertising extension use case里面 就是你如果加长扩张广播包来用的话 因为你就不会受这个31个byte的 数据限制 你可以发256个byte或者更长的 数据byte 那你也就是说你可以包含 更多更多的数据信息 你可以把你的所有的有用的东西 全部都直接写在你的那个广播包里 那这种情况下就不需要客户很麻烦的 我点了一个link 然后那个link上面有什么数据 它就直接可以通过手机上面就拿到 那这个beacon是这样的 在IOS设备上面叫iBeacon 它是有一定的数据格式的 然后在Android设备上面叫beacon 它其实都是基于 Bluetooth的这个广播包的 这个协议的数据框架来做的 那么不同的这个应用 都会支持不同的东西 所以现在就是相当于是说 给客户开放一个可以携带 更多数据信息的一个广播包来给你 所以在这种情况下 你在应用上面就不会像以前 那么麻烦了 这个是advertising extension的例子 好 下面就是faster data transfer 这个主要就是我们以前在蓝牙的 就是BLE的设备里面的话 用的最多的就是蓝牙与语音遥控器 就是大家如果用过小米的遥控器的话 或者是比如说海信的遥控器 它们做遥控器的时候 它会有一个功能 就是你按住一个按键对它说话 然后它会把你的语音录下来 然后发到电视端 发到电视端之后 电视端上面会有一个 就是语音识别的系统 然后比如说我说开机 或者说选频道 多少频道或者是选游戏 因为现在都是智能电视 你可能会有一个短的那个命令进去 然后它把这个打出来 打出来之后它可能会直接link到 自己的一些 就是电视机的那些操作 那这个功能其实就是通过BLE 单项的从手机 从遥控器 发一段语音发到电视机端 这么一个功能 但是单向的而且只是语音 大家知道语音的那个采样频率 是非常低的 就是相对而言 如果你是用BLE的通讯速率 因为BLE通讯速率是不那么高 就是它因为要做低功耗 所以根据早上的那个知识点 就是如果你要高的通讯速率 就是你必须要以非常高的 就是功耗来作为代价 那如果BLE是怎么做到又低功耗 然后又能数据传输 它只能是说牺牲掉这个通讯速率 这个点来做 所以它的通讯速率不高 但是它可以支持单向语音数据发送 在BLE5.0里面它是两兆的 通讯速率 所以两兆的调制模式 所以在通讯速率的情况下 它可以支持到基本上可以达到两兆 就是达到以前的通讯速率的两倍 从那个原理上面 就是从原理这个上面来考虑 不是实际的情况 只是从原理上面来分析 它应该是可以达到以前的两倍 所以在这种情况下 它可以实现双向语音通讯 那么在这种情况下 你就可以实现比如说双向的 从遥控器到手机 遥控器到电视机的一个语音传输 这是一个 第二个你可能可以实现一个比如说 媒流体播放器直接到遥控器的 一个数据传输 那么在这个时候 其实就是有一些比如说对讲机的功能 我们比如说不要把它局限在手机 遥控器和电视机的这个里面 您可以把它在思想再打开一点 可能在比如说对讲机 室内对讲机的这种情况下面 是不是也可以来做 所以在这种情况下 大家可以来想一下 就是在语音上面在BLE5.0上 可以传输更多的东西 好 再看一下 faster data transfer的use case 还是在industrial这边 那在industrial这边 它是有更快的这个数据传输 所以有一些 比如说数据量比较大的情况 就是以前如果数据量小的话 比如说我们做OAD升级的时候 BLE如果256K的数据升级 得要一分多钟才能够把这个 就是256K的数据全部发送到手机 而且这个是非常快的通讯速率的 情况下才可以完成 那如果我用high speed来做的话 那我可能一分钟都不要就可以完成 那也就是说比如说我传一个 大一点的数据 比如20K或者10K的应用 在应用场景里面 这个时候对于使用者来说 他就会觉得我可以接受 这样一个等待时间 否则的话比起wifi 它可能这个功能 他就会觉得比较蹩脚 好 这是一个应用在工业方面 然后在其他的方面 比如说指纹识别方面 指纹识别大家知道数据量会比较大 那这种大的数据量传输以前和那个 以前是不能用Sub-1G 或者其他的方式就BLE无线来做的 那现在如果是高的数据传输的话 它是可以来做的 所以它就会有一些比如说数据支付 然后指纹的这种security的 需要大数据量传输的东西的时候 它可以用这个BLE来做 好 然后给大家讲一下TI的solution 今天早上杨杨这边给大家介绍的时候 是有这个road map 但是那个是三二的 然后我们在二六 就是二六和Sub-1G这边的road map 大家可以看一下 就是灰色的这部分 是我们现在已经量产的芯片 然后在1G以下部分的话 是有1350 1350是dual band 就是它支持1G以下和2.4G一起 所以它的下一代产品是1352 这个1352就是 早上有说它是concurrent mode 可以同时支持BLE的全功能连接 和Sub-1G的网络通讯 这个是1352 它现在处…就是第二 就是蓝颜色为底的这个 它是现在已经可以sampling 然后到今年年底的时候可以量产 所以大家如果想要开始sampling 除sampling之外 它的那个demo版也可以拿到 然后SDK也都在网上是发布的 所以等于说是 现在的开发就已经可以基于这个来做 然后等到量产之后 可以跟产品同步的进行数据量产 就是产品量产 然后后面还有一个1352P 就是加这个PA的 这个PA可以加到两点 它是就是芯片自带PA 所以它等于说是 会有一个20DB output 以前的话2642的output 应该是5个DB 然后1352加进来之后 它可以选择 是在Sub-1G上面加20DB的PA 还是说在2.4G上面加20DB的PA 就是外围的那个设计会有一些不同 所以在这颗芯片上面 就是一个内置PA的一个问题 所以整个看下来的话 在BLE这边的话 我们现在是有2640IQF 然后有一个Q版本的 就是如果大家有汽车的客户 想做BLE的设计的话 你可能需要选一个 就是已经过了汽车Q100认证的 2640IQFQ的一颗芯片 那就是这是单独的2640的 然后2650的MODA是一个module 就是TI自己的一个module 2650的一个module 然后这个可能在国内用的人不太多 然后在2.4G私有信息这边的话 还有那个ZigBee Thread这边的话 是2630 2650 然后大家可以看到pin to pin的话 是7乘7的那个封装的话 它是这样直接过去 2640对2642 然后2650对2652 直接pin to pin的 所以这个是我们一个 在2.4G这边的一个roadmap 然后看一下SDK 刚才我有跟大家说 就是你要下载SDK之后 看一下自己的板子 如果是在2.4G这边来做 SDK支持的话 就有两颗芯片可以支持 一个是26X2的SDK 一个是1352SDK 然后你根据你自己的板子 下对应的SDK来安装 我们就等于用2K来做这个 BLE的demo 来讲一下Technical detail 就是它到底具体在协议里面 是怎么实现的 Bluetooth5的Long range 它其实是会有一个口 它叫LE的coded PHY 就是它有两种就是标准的LE的 那个调制方式是1兆 然后它通过一个 就是比如说两个比特代表一个比特 就是用两位来代表一位的这种方式 来数据传输 这样的情况就是相当于 自己含了一个纠错的能力 那么它这样的话 它就可以增加那个sensitivity 所以它就可以增加磨耗 增加那个距离 在这种情况下 就是500K的通讯速率 因为它本来是1兆的 然后它现在里面 每两个比特代表一个比特的数据 所以它就相当于数据减半 就是1兆除以2就是500K 所以是这么这么来算的 还有一种就是1:4 就是它后面这个其方式有写 就是0就是通过0011来表示 然后1通过1100来表示 那么在这样的情况下 它就相当于是 4个byte来纠错一个byte 这样的话它的sensitivity 就会比500K的更高 但是它的通讯速率就降更低 就是它coded了之后 就是125K的data rate来做数据通讯 所以就是就变成了 就变了 就变成125K 所以这个就是 在long range mode的时候 就有两种通讯速率可选 一个是500 一个是125 这个地方在代码里面是可以配置的 我们在后面的Hands On里面 也是可以有提到 如果大家有这个兴趣的话 可以看一下Hands On里面怎么做的 那这个是long range的 基本的实现方式 好 刚才有说就是我们挪威的同事 做了一个非常令人亮眼的 long range的一个demo 大家到时候有兴趣的话 可以通过访问这个网站去看一下 这个网就是这个training的 这个video是在网上 TI官网上面是公开的 然后你们可以看到就是 他们实际去拉距的时候 最后实现的那个就是16公里的这个 最后一个那个结果 好 下面就是讲一下 high speed是怎么实现的 high speed的话 就是刚才其实有提到 我们其实就是通过 一个两兆的通讯速率来做的 其实大家从下面的这个 历史的这个图就可以看到 Bluetooth4.0 4.1的时候 就是一兆bps的PHY PHY 其实就是所谓的底层的物理层 物理层它实现的那个数据就是一兆 然后它是27个byte的PDU 然后在Bluetooth 4.2里面 它加了一个功能叫data extension 所以它可以在某种情况下面 如果你两边都是4.2的设备 它可以扩展就是有一个数据扩展 那在数据扩展的情况下面 它的PDU可以达到255K 而255个byte的PDU 所以它也就相当于是 我本来一个byte一个数据包 只能传27个byte的数据 那我就把这个数据扩展使用上了之后 就相当于我的一个蓝牙包 可以带255个byte payload的 所以它就相当于是说我在同一时间内 可以传更多的数据 因为你相当于是 蓝牙的通讯的那个协议 它做到低功耗的原因就是 它通讯一下之后休眠 再通讯一下之后再休眠 所以它的那个占空比 实际上是比较低的 所以它可以达到功耗 就是平均功耗会比较低 所以你就可以想象出 它其实要等到每一次我就是真的 要开始进行数据连接的时候 要进行数据通讯的时候 我才会进行就是才会进行数据收发 那我如果每一次收发 只能收发27个byte 那我的通讯速率肯定是比较低的 那么如果我用Data Extension的话 就相当于是说 我在同样的时间间隔里面 每一次收发的数据会比以前要长 那这样的话data rate就会高 所以这个就是通过这种方式来 最后它可以达到最高 780个KBPS的一个通讯速率 这个是按平均的这个时间来算 那么在BT5.0里面 它可以用到两兆的PHY 所以就是在物理连接上面本身的那个 这个PHY它就已经提供给你就是两兆 那它在这个双倍了这个之后 那它还是可以 用以前的一个Data Extension 那它本身的这个通讯速率的话 就会达到1.4兆 所以这个就是它高速的一个原理 好 再看一下high speed 所以刚才有问题 就是说我刚才一直在说 是不是可以真正达到两兆 达到两兆其实只是一个算出来的 就是说因为我本身以前的通讯速率 是一兆 以前的那个data rate是一兆 我现在的data rate是两兆 所以情况理论上 我是能够达到以前的两倍 这是简单的算 但是实际上是不是真的可以达到两倍 其实是不行的 原因在于什么地方 大家可以看到下面画的这两张图 上面那张图是一兆时候的传输的方法 下面这张图是两兆的时候传输方法 它中间会有一个就是在每一个包 就是这个传输的时候 其实就是传两个包 然后黄色的这部分就是传第一个包 然后蓝色为底的那个地方传第二个包 大家你看就是它在传两个包之间 它一定会有一个150微秒 左右的一个就是slot 它是一个间隔 它一定会有这么一个间隔 所以在这一部分的占空比 是不能变的 也就是说 我虽然是以1兆的速率在传输 然后我虽然是以2兆的数据传输 你看下面这个图它是2兆 所以它比较起来的话 如果只是传同样长度的数据的时候 它的这个数据长度 是可以是之前的一半 但是这个间隔 150微秒的这个间隔 是没法儿变的 也就是说它的这个速率 其实是达不到真正的两倍 因为它会有一些网络的方面的 为了维持网络方面 它会有一些这方面的消耗 所以有些间隔它是不能变的 不是说我100%的1/2的占空比 就直接除出来 所以它理论上是可以达到两倍 但实际上最后出来就是1.4兆 这就是原因 好 下面讲一下那个 advertisement extension advertisement extension是这样 就是在广播包上面 蓝牙的广播是这样的 蓝牙它有39个信道 通讯信道 然后这个通讯信道的定义 就是和wifi是有一部分是重叠的 wifi的通讯频段也是2.4G 蓝牙的通讯频段也是2.4G 然后它为什么会选37 38 39 3个信道作为广播信道 原因这37 38 39 3个信道它是避开 就是避开wifi已经使用的信道 最远的两个可能比较干净的信道 所以它把它作为一个广播信道 因为所有的蓝牙的连接 都是从广播信道的广播开始的 广播信道的作用就是 当一个设备可以使用的时候 它要在广播信道上发广播 告诉对方设备 我在这里你可以来连接我 或者是我有数据 你可以到这个广播信道上来找我 所以这广播信道它的干净程度 受干扰程度 直接影响到BLE它的连接可靠度 或者说最后BLE使用的这个可靠度 所以它为什么要选37 38 39 这3个信道的原因就在于 这3个信道将相较于wifi来说 是最干净的3个信道 他们离wifi的那个频点最远 好 这是广播信道 这是在BLE 传统的BLE的广播包是这样做的 然后它这个传统的广播包里面 还有一个特点 就是这上面写了 PHY必须是1兆的PHY 因为在BLE5.0之前 就BLE4.0 BLE4.1的时候 它的那个PHY 都是一兆BPS的PHY 所以它是必须是在 这个PHY的基础上来做 然后它的payload 我刚才说是31个payload 这上面写的是PDU PDU是它把它的一些那个 Link Layer L2CAP 这个link的一些网络包的那个 数据包也算进去了 所以从PDU上面来讲的话 它是可以算成37 但实际真正的payload的话是31 好 这个是我刚才已经解释过 好 然后这个是传统的 那在新的广播包的这个里面 它是加进来了新的不同的Command 所以我们如果是要讲它的原理的话 从下面这个图上 可能会看得更形象一点 首先看下面那个图上面的前面 是粉红色的这3个框框 3个方框就是它要在 37 38 39 3个信道上面 轮巡的去发送广播 所以它是轮巡的37 38 39 37 38 39默认的 就是这样发的 所以它后面的这个灰色的部分 就永远都是payload 所以它要先发一个广播头 然后发payload 然后在37 38 39 3个信道上面来发送 好 这个是一个传统的 BLE的广播是这样 那后面的发3个蓝颜色的框框 是什么意思呢 蓝颜色的这个框框就是 它会发这个ADV EXT IND indicate这个command 它的意思就是说我会在其他的 信道上面来发长的数据包 它在这个里面只发一个header 告诉你 你下一次来什么时间点 到哪一个信道上去接收 我的真正的payload 它其实是这么来做的 所以他就在 37 38 39三个信道上面告诉你 只发广播头 告诉你赶紧到其它的信道上去来做 因为以前的广播包 只能在37 38 39三个信道上发 但是在新的蓝牙5上面 它这个广播头是可以在 37 38 39三个信道上发 但是真正的payload 它可以发到其它的信道上去 所以它这个地方只是发一个头 就是发一个point的指针 告诉你说你去哪里去读 然后我在那个信道上真正的发数据 它通过这种方式来 还是我们把这个叫 就是它到data channel上面去发数据 所以data channel上面 是可以发大数据的 然后广播信道还是发广播的数据 所以现在在蓝牙5.0上面的话 就是它把data channel上面 也可以发广播数据 只是发有效的广播数据 它把这个功能加进来了 所以在这种情况下面它就是告诉你说 我们可以实现一个大数据量的 广播包的传输 所以它在这个上面的话就是有 除了刚才那个command之外还有 刚才介绍是ADV EXT Indicator 这个就是告诉你是广播包的一个指针 然后下面的那个AUX ADV Indicator 是真正的知识有用数据 就是它其实是在后续的 就是在data channel上面发送的 真正有用的广播数据 然后还有两个 一个是AUX SYNC Indication 和AUX CHAIN Indication 这两个SYNC应该是不支持的 在2640IQ上面 然后CHAIN是支持的 就是它可以把数据链起来 也就是说我一个包可以发248个BYTE 但是我还可以把它Chain 比如说我要发500多个byte的数据 我可以有一个队列的方式 然后我第一个包发这么多 第二个包发这么多 我以一个队列的方式把它串起来 那在这种情况下 你就可以通过 这个AUX CHAIN的方式来实现 那它总共就是扩展广播包 是通过这四个command 一共通过这四个command来实现的 好 大家可以看一下 就是刚才这样说可能有点不形象 所以大家可以看一下 那个标一的sniffer 就是我们的抓包工具上面的刷包 就是有一个叫Ellisys的Tracker 这个是我推荐 如果客户想要做BLE的开发 然后想要做应用的话 我们推荐就买这个 当然这个设备可能很贵 可能几万美金一台这样的设备 然后这个是这个设备 对这个协议最后 就是对我们的2642抓包之后 出来看到的一个结果 就是大家可以看到 我刚才说有39个信道 就是BLE有39个信道 全部都是在最左边的这个上面画出来 2042开始是37A 然后2427这个channel 这个频点是38A 然后2480这个channel是39 就是37 38 39三个广播信道 然后大家可以看到在一开始的时候 我是有一个连接的 就是大家可以看到连接的这个 连到一起的就比较长的 就是其实是一个握手 就是我这个时候 蓝牙其实是连在一起的 然后它们是在2407的 这个信道上面进行数据通讯 然后在这个时候它断开连接了 断开连接之后 就设备回到了一个广播状态 在后面的 就37 38 39三个信道上面 进行数据广播信道的广播头的发送 就是刚才看到的广播头 就是刚才ADV-EXT-IND的这个 它就在这37 38 39上发了一个头 然后告诉它们 我真正要发的数据的广播包 在什么地方 然后在后面的这个上面你可以看到 有两个广播头都指向 后面的一个在data 在第三个 看这是第三个信道 应该是第三个 应该是第四个channel上面的 一个真正的广播的数据的payload 那这个时候是两个头 指向了一个真正的有效数据 如果把这个打开来看 也就是可以看到 Header这边就是以前的广播包 它里面会带广播设备的设备地址 那现在在广播包里面它可以不带 就选择你可以带 你也可以不带 但是有两个东西它必须带 一个是这个框起来的 Advertising Data ID 就是Data ID 和Site ID 这两个是必须要带的 那这两个带就是说我这一条广播包 这个是协议自动分配的 它会分配一个广播ID 告诉你说这一配套是一组广播包 是一组有效的 就是从pointer到实际数据 它是一组 然后它下一次当你的广播数据 就Payload的有实际变化的时候 这个数据会自动的协议会变化 协议上会变化的 所以从协议的抓包来看 这个数据会变化 那这个作用就是对于接收者来说 它通过读Data ID Site ID 它就会知道这个广播内容 会不会有变化 是不是我之前读过的 所以它通过这种方式就可以防止 我读一些我不需要的已经读过的数据 这个是通过这种方式读的 然后在Offset这个地方 它有一个时间点 那时间点就是一个是1.74毫秒 因为这是第一个包 它是1.74毫秒 然后第二个包就是870 1.7毫秒 后面就是870个微秒 为什么 因为这两个包之间会有一个数据差 它都指向最后的 就是实际我要发送的数据包 就是实际发出这个payload 是什么时候发 它都会告诉你 说什么时间点之后 我要在这个信道上面发这个数据了 因为这两个本身 发这个广播的指针 都是有一个时间差 它先是在38上发 后来是在39上发 它有时间差 所以在这个地方 它的时间差就会直接 表现在这个Payload里面 就会表现在这个Header里面 所以对于听的人来说 他就知道我在什么时候 应该具体去哪一个信道上来收数据 所以这两个之间是有区别的 这个地方可以看的比较明显 对 这个就是最终的发送的数据的 那个包的一个包文一个解析 然后大家可以看到就是在广播的地址 在这个地方有些广播地址 然后一个ADV给它 就是包含了真正的广播数据 实际是在这个包里面包含的 好 讲完了这个之后 就看我们在蓝牙5.0上面 应该通过什么来做 我不知道 今天他们给大家发的是哪块板子 就是如果你要做BLE 就是TI的蓝牙你可以选择两块板子 一种是1352 R1 这个就是我刚才提到的 1352的芯片 它的LaunchPad 然后还有一种就是CC26叉二 就是2652或者2642都可以 然后26就是单2.4G的 然后1352的话是2.4G加上Sub-1G的 这个地方有那个output power 2.4G的output power 是五个DB 然后Sub-1G的output power 是14个DB 默认的 不带PA 如果你带PA的话 它可以选择 是在Sub-1G的这个频段上面 加PA 还是在2.4G这个平台上加PA 然后在这个板子上面 和我们以前1350 或者2650的这个板子的区别在于 大家可以看到多了上面很多的器件 就是这个板子会比以前的那个板子 更长一些 然后上面很多这个黑颜色的这部分 其实是做那个energy trace 现在这个energy trace 是TI把以前430上面的energy trace 把它掰过来了 然后在这块板子上面就可以 不需要用你的那种测电流的一个电流 非常高档的电流设备 然后你就直接可以 接我们的TI自己的开发环境CCS 然后你就可以去评估 自己的这个板子上的整个的电流 而且它在支持26X2的平台上面 或13X2的平台上面 它还可以去评估外围设备 当然现在可能还没有完全发布 但是它已经是在做 它可以评估外围的 peripheral设备的功耗 就跟以前430上面 energy trace++是一样的功能 比如说我在U2的口上 接了一个什么设备 或者我在IMC口上面 接了一个什么设备 我在SPA口上接了一个什么设备 然后你在通过energy trace的时候 你可以抓到这些设备它的功耗是多少 你可以仔细的看到的 所以用这个板子的话 你不需要那种非常昂贵的 专业店员的那种设备 然后你就可以大概的知道 你现在这个板子跑成什么样的状态 目前是一个什么样的功耗级别 这个是可以通过这个板子来实现的
今天下午我们先来讲一下蓝牙5
大家可以在装那个软件的同时
来看一下我们蓝牙5有什么新的功能
然后蓝牙5
蓝牙5的话我会从下面五个方向
来跟大家说一下就是蓝牙5
我们可能会支持什么东西
如果要做蓝牙5的开发的话
我们会需要哪些东西
下午在讲完了之后 准备去做一个Hands On
然后给大家看一下
我们的SimpleLink Academy 这边有些什么东西
可以给大家看一下
然后大家如果在Hands On这边
没有做完的话 没关系
回去之后这个是一个open的
所以大家可以在家里面
只要有网络连接的情况下
都可以去访问 那个SimpleLink Academy
然后继续把这个demo做完
好 现在我们先来看一下蓝牙5
我想问一下在座有多少人
是做过BLE的支持的 以前
可以举手示意一下
没有人吗 好吧
这样啊 如果是没有做BLE支持的
我就多讲一些跟基本网络相关的
一些功能可能多讲一点
大家如果以前做过的话
我可能就会讲得快一点
好 那我来讲一下
BLE5就是蓝牙5
蓝牙5是这样的
大家以前用过传统的蓝牙
传统蓝牙
最popular的一个应用
就是蓝牙耳机的应用
在很多年前蓝牙它的定义
就是说要把所有的设备
全部都用无线的方式连接起来
跟人相关的设备
全部用无线的方式连接起来
那在这种情况下面
在它的这个应用上面
它定义了很多层的不同的协议栈
在这个协议栈里面
最 最 最popular的一个应用
就是蓝牙耳机
一开始的时候是单声道的
那种就是蓝牙耳机打电话
然后后来变成双声道的
蓝牙耳机听音乐
这种的应用全部都是传统蓝牙的应用
就是我们叫Classic Bluetooth
应该是在四 五年前
那个蓝牙组织 在Classic Bluetooth的基础上
加了一个BLE
BLE它其实也是在那个协议的里面
但是它和传统蓝牙
就是4.0以前的蓝牙
其实是不兼容的
你看到的有蓝牙3.0
蓝牙high speed
这个是蓝牙一开始传统蓝牙的发展
然后后来它有把BLE加进来之后
蓝牙4.0加进来了之后
它其实是一个低功耗蓝牙
所以它就是蓝牙协议的
不同的一个分支
这个分支和传统蓝牙是不兼容的
所以大家首先在今天下午的
这个课里面要搞清楚
蓝牙和传统蓝牙
蓝牙分传统蓝牙和低功耗蓝牙
这个是两个不同的概念
所以我们现在看到得很多
比如说小米的手环
然后你可以看到一些
比如说别人跑步的时候
用的那个心率的
然后在家里面的时候
有一些蓝牙做的遥控器
小米的遥控器
上面打了一个蓝牙的那个标志的
都是低功耗蓝牙的产品
低功耗蓝牙就不是标准蓝牙
因为低功耗蓝牙和标准蓝牙的区别
在于以前耳机就是大家知道双模耳机
什么双模 就是传统蓝牙的那个耳机
双声道的耳机 它是需要充电的
你可能听一天的电 然后电就没有了
你要再继续充电
但是低功耗蓝牙
它标榜的就是功耗超低的蓝牙
所以它可以通过纽扣电池供电
达到很长时间
如果大家有用过
小米的蓝牙遥控器的话
大家就知道它其实里面
就是一个CR2032的电池
然后可以用一年以上
所以这个是低功耗蓝牙
和标准蓝牙最本质的一个区别
那它在协议上面
因为它要达到低功耗
所以它做了很多修改
所以它在协议的兼容性上面
它和传统蓝牙是不兼容的
这是大家两个概念大家要知道
然后在这个完成之后
到Bluetooth 5是去年的时候
就已经有这个概念了
然后TI声称 自己是Release Bluetooth 5
最早的一家公司
当然现在也有很多公司
都开始陆陆续续Release
蓝牙5
它在低功耗蓝牙上面的操作
在这张图上可以看到
第一个是四倍的距离
第二个就是两倍的通讯速度
第三个就是800倍的一个广播包
发送的那个信息的一个
就是广播包发送信息的一个量
所以它在这个上面
蓝牙5.0其实主要就是低功耗蓝牙
在以前就是基于4.0的蓝牙
它有一个非常大的
在这三个点上面它是有一些改进
因为我们主要的题目是蓝牙5.0
因为这个SIG组织也是说蓝牙5.0
是以后未来的发展方向
所以它可能想要干掉ZigBee
干掉一些其他的网络应用
所以也是跟其他网络应用做一些区分
可能在这几方面会进行一些加强
所以这个是蓝牙5.0在这几个特点
这节课大家一定要知道
好 具体的来看这四个特点是怎么做的
所以蓝牙5.0它有三个不同的mode
一个是Long Range Mode
一个是HigherSpeeds
还有一个就是Broadcasting Capacity
所以这个就是Long Range的话
它是用code的方式来做的
也就是说如果回头
大家看到一个蓝牙4.0的设备
它是不可能跑蓝牙5.0的协议的
原因在于说就是 在Long Range mode这边
它是通过IF code这边做编码的方式
来实现这个长距离的数据传输
所以它是底层的
你可以把[indiscernible]这边
直接做的一个特殊属性
也就是说你如果是4.0的蓝牙设备
你必须升级硬件
你才可以支持5.0的这个应用
这个是Long Range mode 我在后面会具体讲
到底Long Range mode是怎么实现的
我们再看一下higher speeds
它的这个通讯速率
modulation是达到以前的两倍
它因为以前的蓝牙
都是在GFSK一兆的 这个调制模式上面的
所以现在它在蓝牙5.0上面
它加进来了一个两兆的通讯模式
所以做IF的就知道我同样的时间内
我的通讯速率
相当于从一兆变成两兆之后
我的data rate肯定会提高
所以这个是通过这种方式来做的
然后八倍的传输速度
这个是蓝牙协议软件实现的
就是蓝牙协议在广播包里面的时候
以前广播包最长是31个byte
现在它把这个东西加进来了之后
它可以传非常长的一个数据包beacon
所以在一些beacon应用的时候
就是蓝牙广播的这个数据应用的时候
它这种广播的数据包它可以加进来
这个后面具体实现
我也会具体跟大家说是怎么实现的
所以在蓝牙5.0
它把这些功能加进来了之后
它的应用范围会变得比较广
那在蓝牙4.0这边的情况
就是BLE的这种情况
其实做的最后就是穿戴设备
遥控器这个是量比较大的
然后应用比较多的
那种小的那种智能设备
低功耗蓝牙我看到的 比较有意思的应用
就是有一年的2014年的CES展上面
最佳设计设备
很多都是围绕着BLE的应用来的
然后在那个应用上面
有人把它做在养花草一个设备里面
把那个花草一样插到花盆里面
它就是通过低功耗蓝牙和手机连接
然后它就去监控这个土壤的温湿度
然后告诉你这个花
是不是适合这个花生长
然后就来养花 就是应用
就是智能养花的一个应用
然后做的很有意思
就是BLE有很多
这种很有意思的应用
然后现在在BLE5.0
这样做了进阶之后
那么它就有非常多的一些应用
加进来了
所以可以看到下面
比如说Home Building Automation
这个其实就是和早上的15.4的
其实是有一些重叠
你会发现在无限的网络连接里面
很多应用都是重叠的
就有的应用可以通过BLE来做
也可以通过15.4来做
也可以通过ZigBee来做
那其实就是要看你具体这个应用中间
有些小的区别是在什么地方
所以在这个上面列出来的
其实是有很多
比如说我在工业方面的 E-meter sensor
或者Power Tool用BLE
然后在家用家电的时候
它用BLE其实主要的方式
就是它的优势在于
它可以跟手机进行通讯
所以BLE和其他的网络连接
它的优势就在于它可以非常简单地
用简单的自己的协议
就和手机进行数据连接
然后人就可以
根据通过这个手机来控制某些设备
或者看到某些设备的状态
所以这个是BLE
能够给使用者提供的
我觉得是和其他的网络连接
最大的一个区别
这个就是蓝牙
好 下面我们来看一下
蓝牙5.0的一些use case
刚才跟大家讲了一下
就是它引进了三个新的网络特征
那么我们看一下
在引入新的网络特征之后
它会有一些什么样的
新的应用可以引进进来
首先是door lock
就是这个话可能是老外的房子比较多
我们国内的房子可能就不需要这么远
但是这只是一个例子
就是如果我是在蓝牙的这个门锁上面
它是一个BLE的门
那么这个BLE的门
我其实是直接可以跟手机进行通讯的
因为我现在是
就是它是一个
如果这个门锁是一个
bluetooth4.0的设备
那它是可以跟手机通讯的
但是它的通讯距离就比较近
就是比如说我们是在客厅里面
那我肯定要人走到客厅这个范围内
然后我才可以跟我的门锁连接上
在这种情况下
我才有可能去对我的门锁进行操作
但是如果你把5.0的应用加进来
也就是说它本身的通讯距离
long range的这个通讯距离加进来
它本身long range我们老外在
我们的BU在挪威
就是做BLE的这个BU在挪威
然后他们曾经在5.0的long range
刚做出来的时候拉了一个距
等一会在后面可以看到
就是它有一个video
当时video拉出来的通讯距离
是16公里
就是这一侧是在接收端跟发射端
是保持连接的状态
然后他们就一个人在冰面上面滑冰
另外一个人就到远处去爬山
爬到山顶上面那个连接还在
然后最后回来
google map上面拉一个距
16公里
所以这个就是
当然挪威的环境非常
就是不像中国国内的环境这么嘈杂
4G的环境比较嘈杂
所以拿到国内来说的话
如果是家庭应用
家庭这个房子可能500米
不到100米肯定是可以
就是实现这么个连接的
所以如果你的手机
是支持5.0的手机
如果是在一年前
可能只有三星的有一款手机是支持的
那到现在iPhone8
和iPhone X
都是支持5.0的
所以现在越来越多的手机
开始支持BLE
5.0之后你如果你的设备
是支持BLE5.0的
你就可以在家里的任何地方
去操控你的门锁
如果是在这个应用中
所以这个就是很典型的一个
就是long range mode的 一个使用场景
那么在另外的一些使用场景中
同样的把它从门锁 [indiscernible]out出来之后
你可以看到比如说家电
在家里就是家电
它是可以有BLE5.0的操作
你不需要有gateway
你不需要通过像早上说的
如果你是Sub-1G做的
那么你还需要一个gateway
把它从Sub-1G的网络桥接到wifi网络
然后wifi网络
再通过GPRS到你的手机
最后你通过手机
你要走一个这样的
通过Cloud走一个数据回路
然后去控制你家的电冰箱 洗衣机
但是如果你是用BLE的话
你可以直接实现这个功能
就直接去连接
然后对它进行控制
所以这个是BLE5.0
就是蓝牙5.0long range
它和就是LT这个应用的一个区别
所以反过来还是强调说
很多的无线应用都是可以实现的
只是说看什么样的应用就满足
你对应用的这个需求
特定应用的一个需求
那么这个地方也列了
还有其他的一些
比如说在工业中间的话
sensor network也可以通过蓝牙来做
那这个地方的瓶颈
就是说它在建立连接的时候
它的那个连接数量是有限的
就是如果你是和15.4来比
15.4 200个
那你的BLE的连接
用手机连的话最多十几个
所以这个也是一个限制
好 看下面
下面就是还有
第二个 就是刚才说的是long range
那如果是在 advertising extension这边
就是所谓的广播包
括展广播包的这个应用上面的话
扩展广播包它的意思是这样
就是刚才有提到广播包的话
它在蓝牙协议里面定义的
就是广播包里面可以携带一个广播的
就是客户自定义的数据长度
那这个数据长度在以前的
通讯协议里面规定的是31个byte
31个byte可以写什么东西
基本上你写一些自定义的名字就没了
然后像以前的beacon的应用的话
它是直接办直接用这31个byte
去写那个link
就是写一个网络地址
比如说我在万达商场里面逛商场
然后我走到一家店门口
然后这个店要打广告
然后它给我推送了一个beacon
然后这个beacon里面 我应该写什么东西
能够包含我的数据
它就会推送一个link给你
那个link就是它的一个广告页
所以它会给你一个手机推送的
这么一个数据
然后你看到这个数据之后
你直接就link到
就是你点了这个之后
你其实去打开一个网页
那个网页就是它推给你的广告
一般的那个应用是这么做的
那如果你是在现在的
就是advertising extension use case里面
就是你如果加长扩张广播包来用的话
因为你就不会受这个31个byte的
数据限制
你可以发256个byte或者更长的
数据byte
那你也就是说你可以包含
更多更多的数据信息
你可以把你的所有的有用的东西
全部都直接写在你的那个广播包里
那这种情况下就不需要客户很麻烦的
我点了一个link
然后那个link上面有什么数据
它就直接可以通过手机上面就拿到
那这个beacon是这样的
在IOS设备上面叫iBeacon
它是有一定的数据格式的
然后在Android设备上面叫beacon
它其实都是基于 Bluetooth的这个广播包的
这个协议的数据框架来做的
那么不同的这个应用
都会支持不同的东西
所以现在就是相当于是说
给客户开放一个可以携带
更多数据信息的一个广播包来给你
所以在这种情况下
你在应用上面就不会像以前
那么麻烦了
这个是advertising extension的例子
好 下面就是faster data transfer
这个主要就是我们以前在蓝牙的
就是BLE的设备里面的话
用的最多的就是蓝牙与语音遥控器
就是大家如果用过小米的遥控器的话
或者是比如说海信的遥控器
它们做遥控器的时候
它会有一个功能
就是你按住一个按键对它说话
然后它会把你的语音录下来
然后发到电视端
发到电视端之后
电视端上面会有一个
就是语音识别的系统
然后比如说我说开机
或者说选频道
多少频道或者是选游戏
因为现在都是智能电视
你可能会有一个短的那个命令进去
然后它把这个打出来
打出来之后它可能会直接link到
自己的一些
就是电视机的那些操作
那这个功能其实就是通过BLE
单项的从手机 从遥控器
发一段语音发到电视机端
这么一个功能
但是单向的而且只是语音
大家知道语音的那个采样频率
是非常低的
就是相对而言
如果你是用BLE的通讯速率
因为BLE通讯速率是不那么高
就是它因为要做低功耗
所以根据早上的那个知识点
就是如果你要高的通讯速率
就是你必须要以非常高的
就是功耗来作为代价
那如果BLE是怎么做到又低功耗
然后又能数据传输
它只能是说牺牲掉这个通讯速率
这个点来做
所以它的通讯速率不高
但是它可以支持单向语音数据发送
在BLE5.0里面它是两兆的
通讯速率
所以两兆的调制模式
所以在通讯速率的情况下
它可以支持到基本上可以达到两兆
就是达到以前的通讯速率的两倍
从那个原理上面
就是从原理这个上面来考虑
不是实际的情况
只是从原理上面来分析
它应该是可以达到以前的两倍
所以在这种情况下
它可以实现双向语音通讯
那么在这种情况下
你就可以实现比如说双向的
从遥控器到手机
遥控器到电视机的一个语音传输
这是一个
第二个你可能可以实现一个比如说
媒流体播放器直接到遥控器的
一个数据传输
那么在这个时候
其实就是有一些比如说对讲机的功能
我们比如说不要把它局限在手机
遥控器和电视机的这个里面
您可以把它在思想再打开一点
可能在比如说对讲机
室内对讲机的这种情况下面
是不是也可以来做
所以在这种情况下
大家可以来想一下
就是在语音上面在BLE5.0上
可以传输更多的东西
好 再看一下 faster data transfer的use case
还是在industrial这边
那在industrial这边
它是有更快的这个数据传输
所以有一些
比如说数据量比较大的情况
就是以前如果数据量小的话
比如说我们做OAD升级的时候
BLE如果256K的数据升级
得要一分多钟才能够把这个
就是256K的数据全部发送到手机
而且这个是非常快的通讯速率的
情况下才可以完成
那如果我用high speed来做的话
那我可能一分钟都不要就可以完成
那也就是说比如说我传一个
大一点的数据
比如20K或者10K的应用
在应用场景里面
这个时候对于使用者来说
他就会觉得我可以接受
这样一个等待时间
否则的话比起wifi
它可能这个功能
他就会觉得比较蹩脚
好 这是一个应用在工业方面
然后在其他的方面
比如说指纹识别方面
指纹识别大家知道数据量会比较大
那这种大的数据量传输以前和那个
以前是不能用Sub-1G
或者其他的方式就BLE无线来做的
那现在如果是高的数据传输的话
它是可以来做的
所以它就会有一些比如说数据支付
然后指纹的这种security的
需要大数据量传输的东西的时候
它可以用这个BLE来做
好 然后给大家讲一下TI的solution
今天早上杨杨这边给大家介绍的时候
是有这个road map
但是那个是三二的
然后我们在二六
就是二六和Sub-1G这边的road map
大家可以看一下
就是灰色的这部分
是我们现在已经量产的芯片
然后在1G以下部分的话
是有1350
1350是dual band
就是它支持1G以下和2.4G一起
所以它的下一代产品是1352
这个1352就是
早上有说它是concurrent mode
可以同时支持BLE的全功能连接
和Sub-1G的网络通讯
这个是1352
它现在处…就是第二
就是蓝颜色为底的这个
它是现在已经可以sampling
然后到今年年底的时候可以量产
所以大家如果想要开始sampling
除sampling之外
它的那个demo版也可以拿到
然后SDK也都在网上是发布的
所以等于说是
现在的开发就已经可以基于这个来做
然后等到量产之后
可以跟产品同步的进行数据量产
就是产品量产
然后后面还有一个1352P
就是加这个PA的
这个PA可以加到两点
它是就是芯片自带PA
所以它等于说是 会有一个20DB output
以前的话2642的output
应该是5个DB
然后1352加进来之后
它可以选择
是在Sub-1G上面加20DB的PA
还是说在2.4G上面加20DB的PA
就是外围的那个设计会有一些不同
所以在这颗芯片上面
就是一个内置PA的一个问题
所以整个看下来的话
在BLE这边的话
我们现在是有2640IQF
然后有一个Q版本的
就是如果大家有汽车的客户
想做BLE的设计的话
你可能需要选一个
就是已经过了汽车Q100认证的
2640IQFQ的一颗芯片
那就是这是单独的2640的
然后2650的MODA是一个module
就是TI自己的一个module
2650的一个module
然后这个可能在国内用的人不太多
然后在2.4G私有信息这边的话
还有那个ZigBee Thread这边的话
是2630 2650
然后大家可以看到pin to pin的话
是7乘7的那个封装的话
它是这样直接过去
2640对2642
然后2650对2652
直接pin to pin的
所以这个是我们一个
在2.4G这边的一个roadmap
然后看一下SDK
刚才我有跟大家说
就是你要下载SDK之后
看一下自己的板子
如果是在2.4G这边来做
SDK支持的话
就有两颗芯片可以支持
一个是26X2的SDK
一个是1352SDK
然后你根据你自己的板子
下对应的SDK来安装
我们就等于用2K来做这个
BLE的demo
来讲一下Technical detail
就是它到底具体在协议里面
是怎么实现的
Bluetooth5的Long range 它其实是会有一个口
它叫LE的coded PHY
就是它有两种就是标准的LE的
那个调制方式是1兆
然后它通过一个
就是比如说两个比特代表一个比特
就是用两位来代表一位的这种方式
来数据传输
这样的情况就是相当于
自己含了一个纠错的能力
那么它这样的话
它就可以增加那个sensitivity
所以它就可以增加磨耗
增加那个距离
在这种情况下
就是500K的通讯速率
因为它本来是1兆的
然后它现在里面
每两个比特代表一个比特的数据
所以它就相当于数据减半
就是1兆除以2就是500K
所以是这么这么来算的
还有一种就是1:4
就是它后面这个其方式有写
就是0就是通过0011来表示
然后1通过1100来表示
那么在这样的情况下
它就相当于是
4个byte来纠错一个byte
这样的话它的sensitivity
就会比500K的更高
但是它的通讯速率就降更低
就是它coded了之后
就是125K的data rate来做数据通讯
所以就是就变成了
就变了
就变成125K
所以这个就是 在long range mode的时候
就有两种通讯速率可选
一个是500 一个是125
这个地方在代码里面是可以配置的
我们在后面的Hands On里面
也是可以有提到
如果大家有这个兴趣的话
可以看一下Hands On里面怎么做的
那这个是long range的 基本的实现方式
好 刚才有说就是我们挪威的同事
做了一个非常令人亮眼的
long range的一个demo
大家到时候有兴趣的话
可以通过访问这个网站去看一下
这个网就是这个training的
这个video是在网上
TI官网上面是公开的
然后你们可以看到就是
他们实际去拉距的时候
最后实现的那个就是16公里的这个
最后一个那个结果
好 下面就是讲一下
high speed是怎么实现的
high speed的话
就是刚才其实有提到
我们其实就是通过
一个两兆的通讯速率来做的
其实大家从下面的这个
历史的这个图就可以看到
Bluetooth4.0 4.1的时候
就是一兆bps的PHY
PHY 其实就是所谓的底层的物理层
物理层它实现的那个数据就是一兆
然后它是27个byte的PDU
然后在Bluetooth 4.2里面
它加了一个功能叫data extension
所以它可以在某种情况下面
如果你两边都是4.2的设备
它可以扩展就是有一个数据扩展
那在数据扩展的情况下面
它的PDU可以达到255K
而255个byte的PDU
所以它也就相当于是
我本来一个byte一个数据包
只能传27个byte的数据
那我就把这个数据扩展使用上了之后
就相当于我的一个蓝牙包
可以带255个byte payload的
所以它就相当于是说我在同一时间内
可以传更多的数据
因为你相当于是
蓝牙的通讯的那个协议
它做到低功耗的原因就是
它通讯一下之后休眠
再通讯一下之后再休眠
所以它的那个占空比
实际上是比较低的
所以它可以达到功耗
就是平均功耗会比较低
所以你就可以想象出
它其实要等到每一次我就是真的
要开始进行数据连接的时候
要进行数据通讯的时候
我才会进行就是才会进行数据收发
那我如果每一次收发
只能收发27个byte
那我的通讯速率肯定是比较低的
那么如果我用Data Extension的话
就相当于是说
我在同样的时间间隔里面
每一次收发的数据会比以前要长
那这样的话data rate就会高
所以这个就是通过这种方式来
最后它可以达到最高
780个KBPS的一个通讯速率
这个是按平均的这个时间来算
那么在BT5.0里面
它可以用到两兆的PHY
所以就是在物理连接上面本身的那个
这个PHY它就已经提供给你就是两兆
那它在这个双倍了这个之后
那它还是可以 用以前的一个Data Extension
那它本身的这个通讯速率的话
就会达到1.4兆
所以这个就是它高速的一个原理
好 再看一下high speed
所以刚才有问题
就是说我刚才一直在说
是不是可以真正达到两兆
达到两兆其实只是一个算出来的
就是说因为我本身以前的通讯速率
是一兆 以前的那个data rate是一兆
我现在的data rate是两兆
所以情况理论上
我是能够达到以前的两倍
这是简单的算
但是实际上是不是真的可以达到两倍
其实是不行的
原因在于什么地方
大家可以看到下面画的这两张图
上面那张图是一兆时候的传输的方法
下面这张图是两兆的时候传输方法
它中间会有一个就是在每一个包
就是这个传输的时候
其实就是传两个包
然后黄色的这部分就是传第一个包
然后蓝色为底的那个地方传第二个包
大家你看就是它在传两个包之间
它一定会有一个150微秒
左右的一个就是slot 它是一个间隔
它一定会有这么一个间隔
所以在这一部分的占空比
是不能变的 也就是说
我虽然是以1兆的速率在传输
然后我虽然是以2兆的数据传输
你看下面这个图它是2兆
所以它比较起来的话
如果只是传同样长度的数据的时候
它的这个数据长度
是可以是之前的一半
但是这个间隔
150微秒的这个间隔
是没法儿变的
也就是说它的这个速率
其实是达不到真正的两倍
因为它会有一些网络的方面的
为了维持网络方面
它会有一些这方面的消耗
所以有些间隔它是不能变的
不是说我100%的1/2的占空比
就直接除出来
所以它理论上是可以达到两倍
但实际上最后出来就是1.4兆
这就是原因
好 下面讲一下那个 advertisement extension
advertisement extension是这样
就是在广播包上面
蓝牙的广播是这样的
蓝牙它有39个信道 通讯信道
然后这个通讯信道的定义
就是和wifi是有一部分是重叠的
wifi的通讯频段也是2.4G
蓝牙的通讯频段也是2.4G
然后它为什么会选37 38 39
3个信道作为广播信道
原因这37 38 39
3个信道它是避开
就是避开wifi已经使用的信道
最远的两个可能比较干净的信道
所以它把它作为一个广播信道
因为所有的蓝牙的连接
都是从广播信道的广播开始的
广播信道的作用就是
当一个设备可以使用的时候
它要在广播信道上发广播
告诉对方设备
我在这里你可以来连接我
或者是我有数据
你可以到这个广播信道上来找我
所以这广播信道它的干净程度
受干扰程度
直接影响到BLE它的连接可靠度
或者说最后BLE使用的这个可靠度
所以它为什么要选37 38 39
这3个信道的原因就在于
这3个信道将相较于wifi来说
是最干净的3个信道
他们离wifi的那个频点最远
好 这是广播信道
这是在BLE
传统的BLE的广播包是这样做的
然后它这个传统的广播包里面
还有一个特点 就是这上面写了
PHY必须是1兆的PHY
因为在BLE5.0之前
就BLE4.0
BLE4.1的时候
它的那个PHY
都是一兆BPS的PHY
所以它是必须是在
这个PHY的基础上来做
然后它的payload
我刚才说是31个payload
这上面写的是PDU
PDU是它把它的一些那个 Link Layer L2CAP
这个link的一些网络包的那个
数据包也算进去了
所以从PDU上面来讲的话
它是可以算成37
但实际真正的payload的话是31
好 这个是我刚才已经解释过 好
然后这个是传统的
那在新的广播包的这个里面
它是加进来了新的不同的Command
所以我们如果是要讲它的原理的话
从下面这个图上
可能会看得更形象一点
首先看下面那个图上面的前面
是粉红色的这3个框框
3个方框就是它要在
37 38 39 3个信道上面
轮巡的去发送广播
所以它是轮巡的37 38 39
37 38 39默认的
就是这样发的
所以它后面的这个灰色的部分
就永远都是payload
所以它要先发一个广播头
然后发payload
然后在37 38 39
3个信道上面来发送
好 这个是一个传统的
BLE的广播是这样
那后面的发3个蓝颜色的框框
是什么意思呢
蓝颜色的这个框框就是
它会发这个ADV EXT IND
indicate这个command
它的意思就是说我会在其他的
信道上面来发长的数据包
它在这个里面只发一个header
告诉你 你下一次来什么时间点
到哪一个信道上去接收
我的真正的payload
它其实是这么来做的
所以他就在
37 38 39三个信道上面告诉你
只发广播头
告诉你赶紧到其它的信道上去来做
因为以前的广播包
只能在37 38 39三个信道上发
但是在新的蓝牙5上面
它这个广播头是可以在
37 38 39三个信道上发
但是真正的payload
它可以发到其它的信道上去
所以它这个地方只是发一个头
就是发一个point的指针
告诉你说你去哪里去读
然后我在那个信道上真正的发数据
它通过这种方式来
还是我们把这个叫
就是它到data channel上面去发数据
所以data channel上面 是可以发大数据的
然后广播信道还是发广播的数据
所以现在在蓝牙5.0上面的话
就是它把data channel上面 也可以发广播数据
只是发有效的广播数据
它把这个功能加进来了
所以在这种情况下面它就是告诉你说
我们可以实现一个大数据量的
广播包的传输
所以它在这个上面的话就是有
除了刚才那个command之外还有
刚才介绍是ADV EXT Indicator
这个就是告诉你是广播包的一个指针
然后下面的那个AUX ADV Indicator
是真正的知识有用数据
就是它其实是在后续的
就是在data channel上面发送的
真正有用的广播数据
然后还有两个
一个是AUX SYNC Indication 和AUX CHAIN Indication
这两个SYNC应该是不支持的
在2640IQ上面
然后CHAIN是支持的
就是它可以把数据链起来
也就是说我一个包可以发248个BYTE
但是我还可以把它Chain
比如说我要发500多个byte的数据
我可以有一个队列的方式
然后我第一个包发这么多
第二个包发这么多
我以一个队列的方式把它串起来
那在这种情况下
你就可以通过 这个AUX CHAIN的方式来实现
那它总共就是扩展广播包
是通过这四个command
一共通过这四个command来实现的
好 大家可以看一下
就是刚才这样说可能有点不形象
所以大家可以看一下 那个标一的sniffer
就是我们的抓包工具上面的刷包
就是有一个叫Ellisys的Tracker 这个是我推荐
如果客户想要做BLE的开发
然后想要做应用的话
我们推荐就买这个
当然这个设备可能很贵
可能几万美金一台这样的设备
然后这个是这个设备
对这个协议最后
就是对我们的2642抓包之后
出来看到的一个结果
就是大家可以看到
我刚才说有39个信道
就是BLE有39个信道
全部都是在最左边的这个上面画出来
2042开始是37A
然后2427这个channel 这个频点是38A
然后2480这个channel是39
就是37 38 39三个广播信道
然后大家可以看到在一开始的时候
我是有一个连接的
就是大家可以看到连接的这个
连到一起的就比较长的
就是其实是一个握手
就是我这个时候
蓝牙其实是连在一起的
然后它们是在2407的
这个信道上面进行数据通讯
然后在这个时候它断开连接了
断开连接之后
就设备回到了一个广播状态
在后面的
就37 38 39三个信道上面
进行数据广播信道的广播头的发送
就是刚才看到的广播头
就是刚才ADV-EXT-IND的这个
它就在这37 38 39上发了一个头
然后告诉它们
我真正要发的数据的广播包
在什么地方
然后在后面的这个上面你可以看到
有两个广播头都指向
后面的一个在data
在第三个 看这是第三个信道
应该是第三个
应该是第四个channel上面的
一个真正的广播的数据的payload
那这个时候是两个头
指向了一个真正的有效数据
如果把这个打开来看
也就是可以看到 Header这边就是以前的广播包
它里面会带广播设备的设备地址
那现在在广播包里面它可以不带
就选择你可以带 你也可以不带
但是有两个东西它必须带
一个是这个框起来的 Advertising Data ID
就是Data ID
和Site ID
这两个是必须要带的
那这两个带就是说我这一条广播包
这个是协议自动分配的
它会分配一个广播ID
告诉你说这一配套是一组广播包
是一组有效的
就是从pointer到实际数据 它是一组
然后它下一次当你的广播数据
就Payload的有实际变化的时候
这个数据会自动的协议会变化
协议上会变化的
所以从协议的抓包来看
这个数据会变化
那这个作用就是对于接收者来说
它通过读Data ID
Site ID
它就会知道这个广播内容
会不会有变化
是不是我之前读过的
所以它通过这种方式就可以防止
我读一些我不需要的已经读过的数据
这个是通过这种方式读的
然后在Offset这个地方
它有一个时间点
那时间点就是一个是1.74毫秒
因为这是第一个包
它是1.74毫秒
然后第二个包就是870
1.7毫秒 后面就是870个微秒
为什么
因为这两个包之间会有一个数据差
它都指向最后的
就是实际我要发送的数据包
就是实际发出这个payload 是什么时候发
它都会告诉你
说什么时间点之后
我要在这个信道上面发这个数据了
因为这两个本身
发这个广播的指针
都是有一个时间差
它先是在38上发
后来是在39上发 它有时间差
所以在这个地方
它的时间差就会直接
表现在这个Payload里面
就会表现在这个Header里面
所以对于听的人来说
他就知道我在什么时候
应该具体去哪一个信道上来收数据
所以这两个之间是有区别的
这个地方可以看的比较明显
对 这个就是最终的发送的数据的
那个包的一个包文一个解析
然后大家可以看到就是在广播的地址
在这个地方有些广播地址
然后一个ADV给它
就是包含了真正的广播数据
实际是在这个包里面包含的
好 讲完了这个之后
就看我们在蓝牙5.0上面
应该通过什么来做
我不知道
今天他们给大家发的是哪块板子
就是如果你要做BLE
就是TI的蓝牙你可以选择两块板子
一种是1352 R1
这个就是我刚才提到的
1352的芯片
它的LaunchPad
然后还有一种就是CC26叉二
就是2652或者2642都可以
然后26就是单2.4G的
然后1352的话是2.4G加上Sub-1G的
这个地方有那个output power
2.4G的output power
是五个DB
然后Sub-1G的output power
是14个DB 默认的
不带PA 如果你带PA的话
它可以选择
是在Sub-1G的这个频段上面
加PA
还是在2.4G这个平台上加PA
然后在这个板子上面
和我们以前1350
或者2650的这个板子的区别在于
大家可以看到多了上面很多的器件
就是这个板子会比以前的那个板子
更长一些
然后上面很多这个黑颜色的这部分
其实是做那个energy trace
现在这个energy trace
是TI把以前430上面的energy trace
把它掰过来了
然后在这块板子上面就可以
不需要用你的那种测电流的一个电流
非常高档的电流设备
然后你就直接可以
接我们的TI自己的开发环境CCS
然后你就可以去评估
自己的这个板子上的整个的电流
而且它在支持26X2的平台上面
或13X2的平台上面
它还可以去评估外围设备
当然现在可能还没有完全发布
但是它已经是在做
它可以评估外围的 peripheral设备的功耗
就跟以前430上面 energy trace++是一样的功能
比如说我在U2的口上
接了一个什么设备
或者我在IMC口上面
接了一个什么设备
我在SPA口上接了一个什么设备
然后你在通过energy trace的时候
你可以抓到这些设备它的功耗是多少
你可以仔细的看到的
所以用这个板子的话
你不需要那种非常昂贵的
专业店员的那种设备
然后你就可以大概的知道
你现在这个板子跑成什么样的状态
目前是一个什么样的功耗级别
这个是可以通过这个板子来实现的
视频报错
手机看
扫码用手机观看
收藏本课程
-
未学习 基于CC2642蓝牙5.0的应用,以及TI Simplelink学院动手实验
00:41:40
播放中
视频简介
基于CC2642蓝牙5.0的应用,以及TI Simplelink学院动手实验
所属课程:基于CC2642蓝牙5.0的应用,以及TI Simplelink学院动手实验
发布时间:2018.06.29
视频集数:1
本节视频时长:00:41:40
蓝牙5.0技术的发展带来了更远距离,更高速度和更多数据的网络特征,使得蓝牙5将在更多场景中提供便捷应用,例如智能家庭、智能楼宇、医疗健康、零售物流、汽车、工业领域。TI SimpleLink CC13xx/CC26xx软件开发套件(SDK),提供了丰富的基于蓝牙5的软件应用示例和文档,可以快速上手,加速产品应用开发。更加吸引人的是,软件开发套件还包含了并发执行的多协议,多频段的软件应用示例,在不增加额外平台移植整合工作量的情况下,为网络应用多样化提供可能。通过动手环节,大家还可以一起体验TI为开发者提供的强大的线上支持文档,步步引导,从入门到精通。
//=$v1;?>
//=$v['id']?>//=$v['down_category']?>//=$v['link']?>//=$v['is_dl']?>//=$v['link']?>//=$v['name']?>//=$v['name']?>
//=$v['id']?>//=$v['down_category']?>//=$v['path']?>//=$v['is_dl']?>//=$v['path']?>//=$v['name']?>//=$v['name']?>
////=count($lesson['bbsinfo'])?>
//=$elink?>//=$elink?>//=$tags[0]?>//=$tags[0]?>//=$elink?>//= $elink?>//=$tags[1]?>//=$tags[1]?>
//=$lesson['bbs'];?>
//=count($lesson['bbsinfo'])?>