- 本课程为精品课,您可以登录eeworld继续观看:
- WCS (2c) Bluetooth Smart (3)
- 登录
- 课程目录
- 相关资源
- 课程笔记
就是CC2640的平台就Software的一个软件的一个架构
大概架构 我就是前面其实也略微提到过
IDE编好之后 它会有两个 Image 出来
两个功能出来
所以这边大家可以看到 就是你下载 SDK 之后呢
编好以后烧到 Flash 里面
其实在 Flash 里面它有一个 Application
和一个 Stack 这两个东西在 Flash 里面
还有 TI 的 RTOS 然后它下面是我们M3
它是有 ROM 的
ROM 的里面 它是放了 RTOS的 kernel
和那个BLE底层的TI以下的那个协议栈
还是在那个 M3 的 ROM 里面
然后下面就是说硬件控制了就这样
你可以 IAR 就是 SDK 的
就是说在我们实际上2640里面的一个分布情况
就是整个的那个 就是说 SDK 的一个架构吧
就基于蓝牙的一个协议栈这样一个架构
下面是Stack 这一部分呢都是在那个 ROM 里面
然后上面呢就是说我们是在那个 Flash 里面
就是一些 API 一些下面的一些 ROM 的 API 接口
包括一些Profile 一些 Application
这都是在那个 ROM 里 在 Flash 里面 对吧
是在M3上面 就是大家开发
主要是基于这个就是淡蓝色的部分
这个工具我前面其实已经讲过了 就是BTool
做了BTool Device Monitor 这个是 Programmer
所以我就不仔细讲了 就很快的给大家过一下
就是说我们的 BLE 的 SDK 的一个 你装好之后
目录下面到底是什么东西
其实我刚才已经讲过那个什么 Profile
大家可以在这边看到就是很清晰的目录
在 Projects/ble 下面就在那个安装 SDK 之后
有Components 什么 RTOS 的一些 API
什么一些 Drivers 的一些 API 驱动的 API
然后比较重要 就是我刚才提提到过的
我们有那个对 BLE 的开发指导
TI BLE Vendor Specific HCI Guide
还有那什么 OAD 那么OAD 的 Guide
所以大家可以到这个Documentation
下面目录下面去看然后有一个Accessories
就是说有 BTool 一些预先编译好的那个HexFiles嘛对吧
这东西都在
其实跟我们原来的254041 SDK 是很像的
其实架构其实基本上是一样的 这个就是我前面讲过
非常流行的Simple BLE Peripheral
这个工程的一个情况 它可以模拟
就是它就是一个外设嘛对吧
比如说它可以做成一个 sensor
它可以跟那个手机去连 就是那它这个工程呢
客户用到的是最多的 就是在我们
你有 IAR 或者 CCS 打开之后 这是 CCS 这是 IAR
所以大家看其实都是一样的
如果你之前用 IAR 做过254041开发的话
现在觉得就是有 CCS 来讲是吧 转到 CCS 用
然后开发同时开发2640的话 其实也是很简单的
看到就是这个样子 你会觉得很友好很熟悉的
Startup 就是说 就是我们这边的 main 函数是在那里
就是其实就在这边 我们 CCS IAR可能都是一样的
我们有个 Starup 然后这样一个 main 函数
然后还有一个 configure 的一个 就这三个文件
还有一个 configure 的一个东西
就是给客户configure的是
比如说你要不要用那个DC/DC 使用外部 DC/DC
你可以打开关闭DC/DC
还有一些 Bootloader 的设置都在这边
Board.c就是说 我们这边的默认的是我们 Sensor Tag
或者是那个SmartRF 06的那个底板的一些板子的情况
就是一些板子的一些就是 IO 口什么针对性的一些设计
当然这个时候你最终开发 你要把这个稍微改一下
改成自己的板子的那个IO 口设置
那刚才讲的是 因为我之前讲过有两个 Project 对吧
这个是 Application Project
就是 Main 函数入口的地方
那这个是我们 Stack 的这个 Project
就是大家回过去看的话 就这两个 我刚才讲的是这边
现在是讲 Stack Stack 它是一个也有一个设置
它没有 Main函数的入口函数 它主要运行的M3的东西
入口函数都是在 Application 里面
这个里面它有一个 Build Configuration的一个config的文件
这个就是说你控制 能设置 Stack 的一些属性
就比如说你4.1的性能要不要
要不要那个 GAP Role Support
就是你要支持 BLE Client呢还是 噢 不好意思
是你要是支持 Central 设备呢
还是支持那个 peripheral 设备
Privacy Features 就是比如说一些
Bounding Manager的要不要打开 要不要关闭这些
PTM 就是产测的 就是 L2CAP COC 就是说是BLE 4.1里面
就是你要不要用 BLE 4.1里面的 L2CAP COC 这个属性
就直接通过 L2CAP 发数据 不通过 GATT 发数据
那这是 Main 函数入口 这就比较细节的一些地方
就是说其实也很简单 我就很快给大家过一下这边算了
因为大家如果 我觉得建议 最好还是建议就是下载 SDK
然后打开这个 Simple BLE Peripheral 去看一下
那 Main 函数里面首先是初始化板子很简单
然后把那个我们的那个8K的 Cache 打开
然后还有看看 PowerSaving 里
你是不是预先设置 有没有打开关闭
然后根据你设置的情况来设置一下
然后 ICall_init 是什么东西呢
没讲过前面 ICall 就是说
因为我们有两个工程就是分布在 Flash 里面 对吧
那这两个功能怎么通信呢 就是通过 ICall 来
其实就是一个桥接的一个东西 然后把它先初始化掉
然后完了之后就是 ICall_creatRemotTasks
因为是 TI 因为是一个 RTOS 的系统
当然要跑 Task 对吧
这个就是创建了就是我们那个 Stack
就是那个工程的那个 Task
就把整个 Stack 那个Image
你可以把它理解为就是变成一个 Task
就跑在我们的这个Main application 或者 Main 里面
然后就是 GAPRole 的 creatTask
然后就是你应用的那个Task创建
我们这边有一个SimpleBLEPeripheral
然后你改成自己的工程之后有自己的名字
然后最后是 BIOS_start 就是开始跳步了就这样
那就是创建 task 的这个函数
就是刚才我们看到的这个函数
那这个是什么 就其实很简单 我就给大家讲一下
最基本其实就是一个如果玩过 RTOS 的话
就知道首先是要一个优先级 对吧
然后还有一个给它分配 Stack 对吧
然后再是一个 Task 的Main的一个入口函数
一个for循环在这里面就这样 然后就完了
就是标准的一个 RTOS task 的一个创建过程
那这个 RTOS 的入口函数呢 是有一个
首先就是气氛来看的话 我们有一个初始化
就是说初始化一些 比如说你这个设备
是不是一上电就开始广播 什么的这种东西 对吧
然后进去就是 其实就是一个 这个就是
这个就是这个函数嘛对吧 其实初始化要不要广播
乱七八糟这些东西 完了之后呢
就是我们完了之后就是 for 循环了
for 句话是永远不会退出的 它里面做什么
就是做这些东西 它首先是等待一个信号量
未来就是激发 就把我们那个 Task 激活
激活了之后看看是不是 SDK 是不是
不好意思 是不是 BLE 的东西
协议栈的项目下来的东西 为什么这个判断什么
ServiceMsg呢 因为我们知道2650它支持
它支持 ZigBee 的对吧 因为你上面要 application
它下面有可能是可以跑 ZigBee 的东西 所以它会
我们之前的话也会有一个 service 注册
我们现在是跑 BLE 的东西 所以我们这边会有个判断
看是不是 BLE 如果 Stack 东西的话
我们就执行 Stack那个数据
完了之后是不是 APP 的 Message
就说你是不是你自己的
就是说我们有个 MessageQ 嘛 对不对
是应用层上面过来的数据
比如说你外部的 MCU 传过来的数据或者怎么样对吧
然后处理你自己的那个APP的那个函数
完了之后还有一个Event
就比如说是我们这边例程里面有一个定时器事件
就处理定期事件其实就很简单
完了之后就循环回到这里等待
然后再处理这几个事件这样 就我刚才讲过了
不同的就是你过来的数据 针对不同的那个处理事件
Event 还有 TimerEvent 就是一个定时器的那个东西
就是就说你一旦这个程序跑起来之后
你在那个 BTool 上连上之后 看到了那几个 service
我们有里面有五个service的 其实跟我们原来254041一样
如果玩过的话就一模一样 没区别 12345
然后不同的那个读写属性 包括 notification
这边最后举了一个就说是定时器的一个
我就给大家看 这个就是前面 其实就是前面的简化版
它为什么强调这个呢 等会我给大家讲
就是说包括刚看了下来 不是系统被唤醒
是被比如说我们那个 Timer 到了
我们有个 RTOS 的你设置的那个Timer RTOS不是有
一般 RTOS 都会提供一个Timer 的一个功能嘛对吧
你是时间到了被唤醒 唤醒了之后判断下来呢
噔噔噔不是那个 BLE 的数据也不是我应用层过来的数据
然后是一个定时事件到了 然后它就唤醒
然后处理处理完了之后又回去等 就这么简单
为什么这么强调这个东西呢 因为其实这是一个最简单的
就是处理一个事件呢
就是在我们那个整个系统里面的一个方法
很多客户就是拿这个来 就是很简单去设置一个事件
然后完了之后 就那边给一个 Timer
或是你不用 Timer 其他的那个触发也行 其他的 Task
包括就是说你设置一下这个事件
然后 post 的一个 Semaphore给这个 Task
然后就可以了 放心了 所以我们很多客户
其实目前用的是这么一种方式
SensorTag2.0 因为可能时间不多了
大家可能听得也有点烦 纯技术的东西是比较枯燥
SensorTag 就是我们有 SensorTag 1.0
就是老的 CC2541嘛 现在是2.0
就是说本质上还是一样的
区别就是我们用2640的这个东西做 不是2541了
价格也是很便宜的 在 TI 的那个 TI Design 里面
就是说 TI 官网上 就是 TI Store 上可以买到这个东西的
然后有这么多传感器 一看这个slice
如果以前受过2541培训的话 你就会觉得很眼熟了
一模一样把里面的 可能框换点掉 然后字换掉
然后这个图标换换掉 然后一样的
然后这边是那个 IOS 的 APP
也包括我们安卓 APP 现在也有 就更图形化了 对吧
我们这个APP同时支持2541 老的
SensorTag 和在新的2640 SensorTag
然后就是不同的传感器 然后放大之后大家可以看到
就是什么温度啊 对吧 那个湿度啊 还有那个大气压强
还有一些运动 就是 Sensor 的那个东西
实际上都是图形化的 IOS的那个 Apple Store可以搞到
Android 的 Google Play 这个就有点困难了
大家都知道 我们现在访问不了 Google Play是吧
所以比较可惜 但是我觉得其实都一样的 有IOS的话
它其实都已经看到这个问题了 因为安卓的这个东西
本身它有点不太稳定 不同的那个厂家
他做的东西有点不太一样 特别是像硬件上
所以 IOS 还是很稳定的 可以看到这个
那这是我们 sensor tag的那个板子
我本来有 就是小的 我觉得还不如看这个这边大
拿着手上面它都看不清楚 所以这是 SensorTag 一个板子
电极是纽扣电池 功耗能维持一年 然后那个还有数字麦克风
这是亮点 它可以做那个传语音的
然后那个 JTAG 在这边 两个按键 一个外挂 Flash
做空中升级用的 不同的 Sensor
这个参考设计 我们是网上是有公开大家可以去下载
在我们 WiKi上 Hands-on 我就这边其实就是给大家看到过
就没有什么特别 就是我们有一个 我本来想给大家看一下
那个就是我这个 SensorTag
就是说跟我的那个 iPhone 连起来是怎么样的
它其实就是这个样子对吧 没什么特别
而且现在由于时间的关系 我想给大家就是简单讲快点
让大家休息一下
然后我们有Device Monitor 跟 SensorTag连
就 CC2540 Dongle PC 上那个工具
然后还有那个 当然 IOS
它可以通过云把数据传到云上面去检查
有这个功能就是很简单 就这样
然后那个另外有一点 我们有个叫 Dev pack
大家都知道 TI 的那个 JTAG 工具很贵 RF 06
你整套板子可能要 一块那个板肯定要一千多块钱对吧
当然那个现在TI有便宜的那个什么 XDS 200
对 可以支持我们是2640的东西
但另外对 SensorTag 这个板子
我们有一个特殊的 Dev pack 的
一个叫 Dev pack 的一个 JTAG 工具 它也很便宜的
它比那两个都便宜
大家可以在那个 TI Store 上搞到了这个东西
就是说下面这张tag的板 上面插上这个板
然后连上 JTAG 就能 Debug这个东西理论上
也是能用于就是一般的那个板子的那个开发的
但是说可能大家要参考 SensorTag 的那个原理图
就说自己画板子出来 然后能跟它连上好像就可以
它用的是两线的那个 JTAG TI 的那个XDS
所以是两块分开的板子 大家看到的这块 SensorTag
然后上面还有一个小的 Dev pack 两个单独的
课程介绍
共计16课时,5小时14分59秒
猜你喜欢
换一换
推荐帖子