BLE之CC2541做低功耗智能硬件

  1. 介绍
    最近由于项目需要,使用CC2541做一款类似于蓝牙手环的智能硬件,可实现采集人体的温度,设备的电量,蓝牙信号强度(防丢器),等简单的功能。虽然说基于TI提供的SDK来做开发,难度不是很大,但是这中间依然遇到了一些比较令人头大的问题,记录下来,以便以后查阅,也给以后的新手一个提示。

  2. 开发环境
    (1)软件
    整个开发是在TI提供的BLE-CC254x-1.3.2协议栈基础上进行的,要想运行这一套协议栈和里面提供的例程,必须要IAR Assembler for 8051 9.30.1.3056 (9.30.1.3056)以上的开发环境,这个现在晚上已经有和谐版本的,需要安装之后自行破解。按照教程一步一步来就没有多大的问题。
    另外还需要安装几款TI提供的BLE开发调试软件:BLE Device Monitor ,BTool ,SmartRF Flash Programmer,SmartRF Packet Sniffer ,SmartRF Studio 7 。我已经把这些个软件打包整理好了。

    (2)CC2541开发板
    我的设备没有下载调试接口,这个也是最坑的,以至于开发效率太低下了。以后开发设备,设备上面一定要留出调试接口,等产品迭代稳定之后,再去掉调试接口我前期所有的开发全是在开发板上面进行的。
    (3)CC Debugger

    (4)USB Dongle

    (5)IOS端的BLE sensor Tag 和Android端的device monitor也是不错的调试助手。
    安装完成以上的软件,你可以打开TI提供的一个简单的例程,编译并烧录到板子里面,然后打开BTOOL软件,利用USB Dongle来 scan -> load seeting -> establish 之后就可以抓到蓝牙的设备发送的数据包了。
    如果你已经完成了以上的步骤,那么恭喜你,你已经入门BLE的开发了。

  3. 蓝牙协议栈的理解
    (1)OSAL
    要理解TI的蓝牙协议栈,OSAL是绕不开的,如果对嵌入式操作系统或者Linux比较熟悉朋友,应该理解起来非常快。
    (2)Profile

  4. 具体的开发
    我的开发工作是在TI提供的例程KeyFob Demo的基础上进行的。利用了里面提供的基本服务,Generic Access Service ,Generic Attributes Service,Device information Service ,Simple Profile Service,自己根据需要添加了两个服务:Simple Key Service, OAD service。在TI提供的额例程基础之上进行应用层的开发,其实非常简单,主要就是理解一下一下几个概念。
    (1)任务
    (2)事件
    (3)消息机制
    (4)回调函数
    (5)HAL
    hal是TI提供的一个硬件驱动,里面含有所有的CC2541内部模块的驱动,一般来说我们都不需要直接对这个硬件抽象层进行操作。我们只需要在框架之上

  5. Power Saving机制
    说道低功耗,这个是现在的智能硬件的一个趋势。为了提高用户体验,TI官方宣称CC2541在一颗纽扣电池供电的情况下,可以实现待机一年。那是在设备进入超低功耗PM3的情况下实现的。正常情况下,我们的设备需要频繁的唤醒,说道低功耗就要研究一下协议栈里面是如何实现设备的休眠与唤醒的哪?
    在实际的开发过程中,功耗的多少是和设备执行的具体的任务挂钩的,当OSAL检测到没有定时任务在进行的时候,系统会从active模式进入PM2模式,在该模式下,系统的睡眠定时器是在计时,当time out之后,系统会自动的唤醒。如果程序没有定时任务需要执行,系统会进入到最低功耗PM3的模式。这个时候就只有复位操作或外部中断才能唤醒系统。

  6. OAD (空中升级)
    不得不说这是一个非常有用的功能,特别是在现在的智能硬件需要不断迭代的情况下。可以直接通过我们的软件包或者专门的APP就可以实现无线升级固件,免去了下载接口,大大缩小了产品的尺寸空间。

    本来想简单的总结一下,发现很多东西无法说的太细,还是在重新看一篇,将一些实质的细节问题。(待续)

BLE-CC2541项目的一点经验记录相关推荐

  1. 使用Unity开发项目的一点经验

    使用Unity开发项目的一点经验 我们主要使用3dsmax2010进行制作,输出FBX的类型导入Unity3D中. 默认情况下,3dsmax8可以和U3D软件直接融合,自动转换为FBX物体. 注意事项 ...

  2. java选修结课作业:ssm项目-人事管理系统-经验记录

    前端框架:Layui,jquery 数据库:MySQL 数据库连接池:c3p0 J2EE:Tomcat, Servlet, JSP, Filter 视图框架:Spring MVC ORM框架:MyBa ...

  3. Unity3D项目开发一点经验

    我们主要使用3dsmax2010进行制作,输出FBX的类型导入Unity3D中.默认情况下,3dsmax8可以和U3D软件直接融合,自动转换为FBX物体. 注意事项如下: 1.面数控制 在MAX软件中 ...

  4. 融资租赁资产管理系统(FLAS)项目运维经验记录总结--org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl

    问题: xml解析抛异常,异常信息如下: javax.servlet.ServletException: javax.xml.parsers.FactoryConfigurationError: Pr ...

  5. 关于asterisk做呼叫转接的一点经验记录

    第一天 上午接到一个需求,询问现在我们的电话系统是否能做个呼叫转接.然后在网上搜了一下,发现有路子可走,所以简单试了一下,还真是可以. 首先,需求是什么? 客户拨通了400电话到我们的asterisk ...

  6. 赚钱副业项目:steam搬砖的一点经验

    进入正文 首先向大家说明一下,玩这个steam游戏道具搬砖项目,不必非得会玩游戏. 到目前操作这个项目2年时间了,那么接下来谈谈自己的一点经验. 关于选品.出售上架的13条核心经验: 建议新手入场的时 ...

  7. 开发中遇到的问题和经验 记录 ------- 后端篇

    核心价值就是把现实世界的业务操作搬到计算机上,通过计算机软件和网络进行业务和数据处理,但是时至今日,能用计算机软件提高效率的地方,几乎已经被全部发掘过了,必须能够发掘出用户自己都没有发现的需求,必须洞 ...

  8. 一次失败的项目经理招聘经验

    成功的原因有许多种,而失败的原因往往就那么几种.人们更愿意去讨论自己是如何成功的,确不太情愿开诚布公的去剖析自己是如何失败的.而时刻去反思自己失败的案例,我们会进步的更快! 和大家分享一个2010年发 ...

  9. Delphi使用server组件控制excel的一点经验

    近来的项目报表全部做成excel文件,方便很多.可惜的是delphi中的server组件没有帮助,只能靠网上的资料和自己的摸索.经过一段时间,积累了一点经验,写出来希望对大家有所帮助.近来在网上搜索到 ...

  10. java项目开发实践经验每日总结(2014/2/22)

    2014/2/22 1.阅读分析代码可以从需求逻辑层,业务逻辑层,目录结构层,包结构层,类结构层,方法结构层,代码结构层,方法实现结构层,语法结构层 2.单页的代码结构 所属包,导入文件和包,公共类( ...

最新文章

  1. 什么是块元素?什么是行内元素?
  2. setuptools与distutils的区别
  3. JS设计模式三:策略模式
  4. 全球传媒巨头纷纷布局,VR影视内容的爆点可期
  5. HTML滚动条S默认最小值,css修改滚动条默认样式
  6. LeetCode 122 买卖股票的最佳时机 II
  7. 第二章 html标记语言,第二章-认识HTML标签
  8. Linux驱动模型解析bus之platform bus
  9. 自动驾驶的Pipline -- 如何打造自动驾驶的数据闭环?(中)
  10. 我爱生煎包!--上海生煎
  11. 使用JS脚本抢腾讯云学生一元优惠券
  12. 开发商给埋的五类网线,家中想改为千兆网络怎么办好?
  13. MS520,参数,非接触式读卡IC
  14. css本文在背景之上,css实现文字在背景图片之上
  15. 解密顺丰:内部360度监控,创始人王卫穿破牛仔裤见PE
  16. 高德地图插件的简单使用
  17. 如何免费将PDF转成JPG
  18. 第三章 ContextCapture 19 空三处理
  19. Java开发快速上手!小米java面试几轮
  20. AE 图层分解与动画循环

热门文章

  1. 微信小程序使用 wxparse 解析 iframe腾讯视频
  2. css实训内容,实训五DivCSS布局基本.doc
  3. DevExpress WPF控件3D打印应用场景 - 实现3D打印系统可视化窗口
  4. 体验火热的Python抢票神器,先让你50个加速包
  5. 晶体封装越小esr越大_晶振电路知识讲解之晶体参数详解
  6. 通过汉字查找五笔码和拼音
  7. 乘风破浪,遇见未来新能源汽车(Electric Vehicle)之特斯拉提车必须知道的十个流程
  8. 计算机组成原理试题,计算机组成原理试卷A卷.doc
  9. 2014北科计算机原理试题答案,2014北科计算机组成原理试题
  10. 【180929】仿微信飞机大战游戏源码