15031|46

667

帖子

3

TA的资源

版主

楼主
 

【TI首届低功耗设计大赛】具有BLE及文件存储功能的计步器设计 [复制链接]

 
本帖最后由 nemo1991 于 2014-12-30 18:52 编辑

1.     系统总体说明
随着生活水平的提高,人们对运动健身的需求也日益提高。本次设计中采用MSP430FR5969 Launchpad完成了一款具有较高测量精度的计步器。
该计步器可以供给所有人群使用,可以方便计数步数和运动状态,此外,如果检测到诸如跌倒等剧烈感应变化情况,可以通过BLE提示报警信息。BLE可以为智能手机、平板等提供接口,借助上位机实现更多功能。
该计步器的主要功能如下:
1.        可鉴别人体运动状态,如静止、走路和跑步,可将运动状态实时显示在OLED上;
2.        当人体处于运动状态时,可以实时记录并显示运动步数;
3.        当人体受到撞击或跌倒时,可以通过OLED和BLE发送报警信息;
4.        通过基于文件系统的SD卡存储器,可以一键存储运动状态和运动步数;
5.        可以通过BLE(低功耗蓝牙)实时发送运动状态和运动步数。
计步器最终如图1-1所示。
2.     系统硬件电路设计
系统主要硬件模块如下所述:
1.      主控制器:德州仪器MSP430FR5969。最新一代基于FRAM超低功耗MCU,是目前世界上最低功耗的控制器。具有多种超低功耗模式,灵活而丰富的系统外设。
2.      运动传感器:MPU6050。MPU6050是InvenSense公司生产的6轴传感器。本次设计中,使用了该传感器的三轴陀螺仪和三轴加速度计,用以检测运动状态。该传感器为数字传感器,通过IIC与MCU通讯;
3.      SDHC卡:采用金士顿公司的class10高速卡。通过基于文件系统的方式,MCU可以创建文本文件并写入数据。文本文件可以通过PC读取,方便Matlab等上位机进行分析。SDHC卡通过SPI与MCU通讯;
4.      BLE模块:采用德州仪器CC2541蓝牙模块,可以以较小功耗发送信息。蓝牙模块通过SCI与MCU通讯;
5.      显示器:采用串行128*64 OLED显示器,通过自己构建字库和图标等,可以完成较为丰富的显示功能,同时整体功耗也比较低。
       本次设计中传感器等主要使用了模块,使用模块可以最快地建立系统,但也会造成布局等一些不方便的地方。本次设计中,由于全部电路使用手工焊接,MPU6050等VQFN封装元件焊接难度较大,故采用了购买模块的方式。
设计中做了一个Launchpad和各个模块的接口电路。原理图如图2-1所示。

2-1
       完成的PCB 3D效果图如图2-2所示。

2-2
3.     系统硬件驱动
1.        MSP430FR5969的使用。MSP430系列单片机是TI的核心产品之一,早在比赛之前就有接触过430的使用。同样的,借助MSP430WARE的帮助,在设计过程中很快地掌握了430的基本使用方式,例如时钟、GPIO、定时器、SCI等外设的使用也并没有遇到太大的难度。
2.        MPU6050的驱动。通过学习官方的参考设计,可以很快上手使用该6轴传感器。不得不说这是一款非常出色的产品,从尺寸到功能都非常让人满意。之前参加智能车竞赛使用过模拟的加速度计和陀螺仪,后来学习使用MPU6050后爱不释手,其价格也是非常亲民的。MPU6050使用IIC与MCU通讯,除加速度计和陀螺仪功能外,还有一个温度传感器,所以本次设计中也读取了其温度。
3.        SD卡。本次设计的文件系统基于znFAT,测试下来感觉很满意,性能也很稳定。使用SD卡目前也是个人的一种设计习惯,在系统调试阶段可以记录大量参数进行分析,同时断电之后可以直接在PC上读取。这对调试等有非常大的帮助。同时,结合上位机设计,可以非常便捷地对文本文件进行分析,例如对计步器而言,可以分析使用者的使用记录,便于对运动情况的长期掌握。
4.        BLE模块。BLE即低功耗蓝牙,在低功耗设计中很有用。显示器等通常都是能量消耗的大户,所以通过蓝牙发送到上位机是实现低功耗的一个技术手段。本次设计中,可以使用BLE将运动数据实时显示到PC端。
5.        OLED显示模块。购买的时候店主提供了一些底层代码,但是处于个人习惯和代码执行效率考虑,已经重写了大部分底层文件。同时自己制作了一些图标,这在显示界面可以看到。
4.     系统软件设计
       本次设计中,系统软件设计分为三部分,即初始化流程、系统主循环功能和中断功能。
       系统初始化流程包括第3章中说明的各种硬件驱动,以及初始界面的显示。
       系统中断函数负责MPU6050数据的采集和测算,一直到最终的步数计算和运动状态检测。
       系统主循环负责OLED显示器的刷新和蓝牙信息的发送。
       在系统中断函数中,采集MPU6050原始数据以后,通过进行简单的数字滤波,可以认为得到一个较为稳定的数据。在经过一定的数字信号处理,也就是计步器的核心算法,可以得到使用者的运动状态,进而可以得到运动步数。比赛阶段暂时不公开,之后利用寒假进一步完善后可以和大家分享。事实上,借助MPU6050可以实现更多种运动状态的检测,包括上楼下楼、起立做下等。
       系统主循环中,如果检测到显示信息需要刷新,则刷新显示信息,同时经过蓝牙向PC发送信息。
5.     MSP430FR5969特性使用和低功耗设计
       MSP430FR5969总体来讲是一款相对简单的MCU,管脚并不是特别丰富。在本次设计中,使用了4个GPIO控制OLED显示器,SCI接口控制蓝牙,SPI接口控制SD卡,IIC接口控制MPU6050。一定程度上来讲,比较全面使用了MCU的资源。
       MSP430FR5969是目前为止世界上最低功耗的单片机,本次设计中也是用了其低功耗特性。
       由于系统硬件采用了较多模块设计,从硬件上比较难修改。在软件设计方面,系统尽可能运行在低功耗模式下,具体说明如下。
       当系统启动后,首先通过__bis_SR_register(LPM3_bits| GIE);语句进入低功耗模式3并使能中断。此时系统将运行于低功耗模式3,main函数是不会运行的。但是定时器中断(中断时间为10ms),即负责MPU6050采样测算的部分可以工作,可以完成正常的采样测算。
       这里做的处理是,如果中断函数检测到运动状态或步数改变,则暂时退出低功耗模式3,使用语句__bic_SR_register_on_exit(LPM3_bits);,同时,将一个undate标志位置为1。
       当退出低功耗模式后,main主循环可以执行,在完成刷新显示和蓝牙数据发送之后,将update标志位置为0,同时再次使用__bis_SR_register(LPM3_bits | GIE);语句进入低功耗模式3。
       由此可以判定,MCU绝大部分时间均处于低功耗模式3运行。中断函数10ms执行一次,系统主循环仅仅在需要刷新显示情况下进行一次执行。这样,已经比较好地利用了其低功耗特性。
       当上电调试以后,我非常吃惊地发现EnergyTrace中显示功耗高达100mJ/s!在3.3V电压下,相当于系统有30mA电流!我将拓展板拔掉重新测试后,功耗显示为10mJ/s(这里需要说明的是,如果系统初始化MPU6050失败,则会不断重复,因此是MCU全速运行下的功耗。所以说,如果能够载有拓展板并初始化成功,MCU的功耗应远低于此。)。这里可知,拓展板消耗的电流基本为30mA。
       这稍稍超出我的预想,我决定找到原因。
       首先,我拔下SD卡重新初始化,显示功耗98mJ/s,说明SD卡并不是耗电大户。OLED显示器在前测试过,屏幕全亮下约20mA电流,本次设计中只显示了一些字符,且刷新频率很低,所以功耗应该不到20mA。那么,说明MPU6050或者蓝牙模块消耗电能也比较多。
       本次设计中使用了TI的BLE,同样保持了很低的工作时间,按照模块的手册中说明,其电流不超过5mA。然后再看MPU6050模块。
打开MPU6050店主给我的原理图重新查看一下,找到了一些问题。电路图如图5-1所示,这里图上标注的是9150,这里不必在意,9150和6050接口电路完全一致。

5-1
       由原理图可以观察到,IIC的上拉电阻取值为2.2k,所以这里的消耗的功率是比较高的。考虑IIC管脚输出低电平时,2.2k电阻在3.3v电压下有1.5mA。同时led灯D1也消耗了一定的电流。
       总体来看,如果想实现真正的低功耗设计,可以进行的修改是:1.使用无背光的液晶显示器。液晶显示器功耗极低。但本次设计时间比较仓促,实验室能找到的液晶屏都比较大,所以还是使用了功耗较高的OLED显示器。2.电路设计中,去除不必要的指示灯,将上拉电阻等尽可能取得大一些。例如,IIC上拉电阻取到20k应该是没有问题的。
       最后放上视频链接:

最新回复

楼主能分享代码么?  详情 回复 发表于 2016-11-8 09:50

赞赏

1

查看全部赞赏

 
点赞 关注

回复
举报

186

帖子

0

TA的资源

一粒金砂(中级)

推荐
 
nemo1991 发表于 2015-3-23 09:35
能看到我的回复么??

看到了哈~不过就看到个   “能看到我的回复么?”
楼主可以公开你的代码吗?很想研究下 这几天遇到些问题~~~~~~呃。。。。。。



点评

同求  详情 回复 发表于 2015-3-23 19:18
 
 

回复

667

帖子

3

TA的资源

版主

板凳
 
本帖最后由 nemo1991 于 2014-12-30 19:03 编辑

这里再放几张作品的照片,大家可以提提意见,欢迎拍砖。。PS:做好视频发现撞击检测没有拍。。咳咳,大家请相信我这是可以用的。。




点评

哥们儿 给你留了好多言 不管咋样 你回我一个呗~~~~好伤心~  详情 回复 发表于 2015-5-26 21:43
 
 
 

回复

667

帖子

3

TA的资源

版主

4
 
本帖最后由 nemo1991 于 2014-12-30 18:59 编辑

最后,看一下我ccs下的工程吧。
最近写程序喜欢模块化,这里也按照自己习惯分了一下。嘿嘿。限于个人水平和时间仓促,和论坛大牛们相比还有很大差距。
所以这里非常希望大家给我一些建议,我会尽力改正,非常感谢大家!
我在2013年暑假开始在eeworld潜水,在这里问过一些问题,得到了很大的帮助,这里也一并感谢一些论坛的各位前辈!
同时感谢maylove姐姐的督促,正是有她我才能加快进度!

@一下我的小伙伴。

@微斯人

code.png (21.33 KB, 下载次数: 9)

code.png
 
 
 

回复

667

帖子

3

TA的资源

版主

5
 
这么图文并茂的帖子怎么没人看呢。。
这是我的最终作品啦!当然时间允许大家可以提提改进意见!
 
 
 

回复

2057

帖子

0

TA的资源

五彩晶圆(初级)

6
 
做得不错

点评

谢谢!时间有限,这次就先做到这个程度,以后可以的话继续参加~  详情 回复 发表于 2014-12-30 22:06
 
 
 

回复

667

帖子

3

TA的资源

版主

7
 
谢谢!时间有限,这次就先做到这个程度,以后可以的话继续参加~
 
 
 

回复

79

帖子

1

TA的资源

一粒金砂(中级)

8
 
对于自己制板打样的工作我都要表示敬意!加油!

点评

哈哈,谢谢老同学支持!  详情 回复 发表于 2015-1-1 23:29
 
 
 

回复

2万

帖子

71

TA的资源

管理员

9
 
很详细  赞
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

点评

谢谢soso姐支持!  详情 回复 发表于 2015-1-1 23:29
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 

回复

667

帖子

3

TA的资源

版主

10
 
义剑仗乾坤 发表于 2014-12-30 22:12
对于自己制板打样的工作我都要表示敬意!加油!
哈哈,谢谢老同学支持!
 
 
 

回复

667

帖子

3

TA的资源

版主

11
 
谢谢soso姐支持!
 
 
 

回复

110

帖子

0

TA的资源

一粒金砂(中级)

12
 
楼主很给力啊,赞一个.....
 
 
 

回复

79

帖子

1

TA的资源

一粒金砂(中级)

13
 
计步很精确啊 厉害!
 
 
 

回复

2856

帖子

260

TA的资源

五彩晶圆(高级)

14
 
我比较好奇,FR5969板子(具体应该是MPU6050)水平拿着,居然能精确记步,不知道你算法是怎么搞的?很好奇,跟我理解的不一样,感觉怪怪的

点评

三轴的数据啊。根据我的算法,是不需要区分方向的,怎么拿都行的。  详情 回复 发表于 2015-1-4 09:46
 
 
 

回复

667

帖子

3

TA的资源

版主

15
 
ltbytyn 发表于 2015-1-3 22:29
我比较好奇,FR5969板子(具体应该是MPU6050)水平拿着,居然能精确记步,不知道你算法是怎么搞的?很好奇,跟我理解的不一样,感觉怪怪的
三轴的数据啊。根据我的算法,是不需要区分方向的,怎么拿都行的。
 
 
 

回复

2856

帖子

260

TA的资源

五彩晶圆(高级)

16
 

RE: 【TI首届低功耗设计大赛】具有BLE及文件存储功能的计步器设计

问题是水平匀速移动,三轴数据会变化吗?nemo1991 发表于 2015-1-4 09:46
三轴的数据啊。根据我的算法,是不需要区分方向的,怎么拿都行的。

点评

看不到回复,版主您有什么问题?  详情 回复 发表于 2015-1-4 12:12
 
 
 

回复

667

帖子

3

TA的资源

版主

17
 
看不到回复,版主您有什么问题?
 
 
 

回复

2856

帖子

260

TA的资源

五彩晶圆(高级)

18
 
问题是水平匀速移动,三轴数据会变化吗?

点评

肯定不会啊。捕捉动态的。  详情 回复 发表于 2015-1-4 14:01
 
 
 

回复

667

帖子

3

TA的资源

版主

19
 
ltbytyn 发表于 2015-1-4 12:30
问题是水平匀速移动,三轴数据会变化吗?
肯定不会啊。捕捉动态的。
 
 
 

回复

2856

帖子

260

TA的资源

五彩晶圆(高级)

20
 
看你视频里面,板子接近是水平匀速移动,所以比较诧异你的步数是怎么算出来的。
按你视频中所演示的,即使能采到3轴加速度变化也是微量,这种情况下很难准确记步。此时,比如手的抖动都会误认为有走动而误记步。

点评

事实上,我就是通过这个微量检测的。带有滤波算法,还是比较准确的。  详情 回复 发表于 2015-1-4 14:16
 
 
 

回复

667

帖子

3

TA的资源

版主

21
 
ltbytyn 发表于 2015-1-4 14:12
看你视频里面,板子接近是水平匀速移动,所以比较诧异你的步数是怎么算出来的。
按你视频中所演示的,即使能采到3轴加速度变化也是微量,这种情况下很难准确记步。此时,比如手的抖动都会误认为有走动而误记步。
事实上,我就是通过这个微量检测的。带有滤波算法,还是比较准确的。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表