首页 > 产品 > 微控制器 (MCU) 和处理器 > 2018 TI SimpleLink™ MCU 平台研讨会 – 回看 >

基于 Arm 的微控制器

最新课程

热门课程

基于CC2642蓝牙5.0的应用,以及TI Simplelink学院动手实验

今天下午我们先来讲一下蓝牙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学院动手实验

所属课程:2018 TI SimpleLink™ MCU 平台研讨会 – 回看 发布时间:2018.06.29 视频集数:7 本节视频时长:00:41:40
为满足不断变化的市场需求,利用在多种无线连接协议间扩展的平台进行设计并快速适应基础产品变得至关重要。TI SimpleLink™ MCU 平台帮您解决了设计难题,提供广泛的有线和无线 MCU 产品,具有对物联网应用而言至关重要的行业领先特性,包括:超低功耗、协议栈稳定性、高级安全加密模块和模拟集成,同时支持广泛的差异化有线和无线协议。该器件可分为三种类型:MSP432™ 主微控制器,无线微控制器和无线网络处理器。 本次会议TI 强大的技术团队将为您深入解析 5 款新产品的特性与优势,现场更有低功耗蓝牙 CC2642 动手实验环节,技术大咖将手把手教您在 30 分钟内完成蓝牙 5.0 设计。
TI培训小程序