本文是一位工程师朋友撰写的基于Dialog DA14580主要芯片的智能手环/智能鞋子解决方案,详细地分享了使用Dialog SmartBond DA14580进行设计的心得和建议,也许可以对您的设计提供一些启发和帮助。
应用领域:智能穿戴方案类型:模块板卡
主要芯片:Dialog DA14580
方案概述1. 产品功能描述
用户可通过蓝牙连接手机,在APP或者微信小程序中查看当日的走路步数、跑步距离、骑行距离、爬楼梯步数、检测体温或者心率。可USB充电、无线充电。 根据实际用途待机时长可在1个星期甚至更长。
2. 产品应用范围
老人防跌、儿童防丢、运动等场景
3. 产品特点优势总结功耗业内最低:如下所示:状态:电流睡眠: 0.07mA待机: 0.8mA
传输数据: 4.8mA
4. 产品实物图片
【DA14580】DA14580是Dialog公司研制的蓝牙单芯片。号称全球功耗最低,是TI CC2541的四分之一,是运动手环等穿戴类电子产品经常使用的芯片。
可是DA14580的开发门槛不低。适合有蓝牙开发经验的团队来开发,不适合学习爱好者。
笔者将对DA14580的系统架构和应用开发框架进行分析,之后再解说怎样进行应用开发。
对于蓝牙单芯片应用开发来说,我们要关注的问题是:蓝牙协议栈方面怎样新增一个GATT profile(服务和特征值定义及操作)、SoC内核方面怎样驱动外围设备、系统应用框架上怎样使用定时器和任务间消息通信等等。DA14580单芯片公布时并非一颗裸片,而是带有开发平台和SDK包,还有经常使用的应用例程(如防丢proximity)。我们要做的就是通过SDK和相关的文档去理解它整个系统架构和应用框架,在这个基础上才去完成以上三个方面的开发。
一、DA14580系统架构
DA14580是基于Cortex M0架构,内置ROM、OTP和RAM。
当中ROM固化了大部分协议栈和操作系统(单任务)的代码实现,而OTP一次性编程则是为了减少成本,实现用户的差异化应用需求。当用户通过SPI NORFLASH引导或者直接通过JLINK下载代码到RAM进行调试后,就能够通过SmartSnippets工具下载代码到OTP。量产产品即从OTP开始引导运行。
DA14580集成的是第三方公司RW的蓝牙协议栈IP,范围包含GAT和GAP层及下面。因此我们能够在代码框架文件夹上看到RW开头命名的文件夹和头文件,官方文档涉及到蓝牙协议栈方面大部分都是RW公司出品。
二、DA14580 开发例程文件夹和SDK文件夹结构
DA14580的SDK开发平台使用keil,我们先来看看开发例程的文件夹结构,再来看SDK文件夹结构。前者简单一些。后者由于涉及到第三方IP、ROM等原因,文件夹实在是太多太细了,初接手真的会歇菜。
防丢(proximity,英文是接近的意思)的开发文件夹结构例如以下:
这里须要注意的是,ROM里面的固话代码。包含协议栈和单任务操作系统的相关管理代码也是整个project应用的一部分,仅仅只是没有列到开发文件夹里面。
SDK文件夹架构例如以下:
三、蓝牙profile和应用的角色和分工
从project的代码文件夹结构来看,每一个profile都有一个以profile(如proxr)命名的.c文件,也有一个以profile_task(如proxr_task)命名的.c文件;对应地,每一个应用子任务也有一个app_profile(如app_proxr)的.C文件,和app_profile_task(如app_proxr_task)的.c文件。
一般地:
在操作系统ke内核看来,Profile和profile_task共同完毕一个task任务,当中app_proxr_task的task ID标识是TASK_PROXR。但app_profile和app_profile_task并非一个详细的task任务,在代码文件夹的app文件夹。全部的task,包含app_proxr_task和app_batt_task(电池)、app_sec_task(安全)共同组成一个task。在app.c中完毕任务创建。task的ID标识是TASK_APP。
各个app_profile_task仅仅只是完毕应用的一个子场景功能,如防丢、电池告警等。
app是主动发送消息给profile,以运行对应的蓝牙GATT服务和操作,并接受回调。即app是profile的上层。
Profile任务运行GATT服务/属性的详细创建create、开启服务enable和属性特征的读写等操作,其调用ATT和GAP等底层接口来实现详细功能。
Profile作为接口供给app层调用。app是通过消息通信来完毕接口调用的。
app_profile的代码一般包含主动调用的接口实现。而app_profile_task则是接受消息回调的接口实现。两者的分工是很清晰的。
四、应用开发框架
DA14580的应用开发框架的核心是基于状态机和消息回调。下面分析以防丢proxr为例。
1. 状态机每一个任务都必须明白自己的状态表。比如proxr的状态表是:
状态的初始化和转换是由用户主动切换的。
在某个确定的状态时,内核会在对应的状态响应接口集中遍历全部发给该任务的消息。每一个任务都会在初始化时被创建。比如proxr任务的创建是:
这时,如果有个其它的任务发一个消息给TASK_PROXR。则会在proxr_disabled中查找对应的消息回调接口,并运行回调。
2. 消息回调
接下来看看各个状态的响应接口集,比如PROXR_CONNECTED连接状态时的状态响应接口集例如以下。可见,其会对两个消息进行回调,一个是底层ATT收到对特征值的写操作时运行回调,还有一个应用层主动改写还有一个特征值。在笔者的防丢和计步应用中,前者是实现防丢告警功能。后者是上报计步数据。
3. 任务间通信
消息发出之后,系统即会运行proxr_jibu_update_req_handler回调。
另外。笔者会依据文章的阅读量考虑进一步对DA14580的SDK进行分析。如系统启动过程、服务建立过程以及上面说的。怎样进行应用开发,即蓝牙协议栈方面怎样新增一个GATT profile(服务和特征值定义及操作)、SoC内核方面怎样驱动外围设备、系统应用框架上怎样使用定时器和任务间消息通信等等。
采用Dialog蓝牙智能芯片,小米手环如虎添翼
凭借Dialog DA14580 SmartBond™低能耗SoC拥有的业界顶尖功耗技术,小米手环如虎添翼。
最新发布的小米手环中采用了Dialog 的蓝牙超低功耗SmartBond SoC(片上系统芯片)。
借助Dialog的DA14580,只需给小米手环充电一次,就可满足长达30天的续航时间,这比其最强竞争对手所供的电池能力高出两倍多,为当今的消费者提供了一款拥有最高能效的连接解决方案。
小米公司自2010年推出基于安卓(Android)的MIUI操作系统以来,所设计并开发出的创新型消费电子产品源源不断,其中包括智能手机、智能电视、机顶盒、平板电脑、路由器,还有最新出炉的可穿戴设备。小米手环由小米的下属公司华米科技研发制造。全球竞争对手的运动追踪手环价格较高、续航能力较弱、能效较低,如今最新推出的小米手环极具竞争力,成为替代其竞争对手的不二选择。
Dialog半导体有限公司连接性、汽车与工业事业部资深副总裁兼总经理Sean McGrath表示:“小米将DA14580 SmartBond解决方案融入小米手环的核心单元中,这是我们在中国市场业务的一项至关重要的突破。DA14580可为小米产品带来真正的竞争优势,因为选用Dialog蓝牙SoC的工程师再也无需因为电池容量问题在产品设计上做出妥协:他们能够打造出更加轻薄、更具吸引力的产品,这些产品不仅拥有业界领先的能效,而且仍然满足用户对于性能的期望。因此,消费者可以依靠小米手环来监测他们的运动情况、卡路里摄入量和睡眠模式,同时又避免了频繁充电的烦恼。”
Dialog的SmartBond是一个高度集成的SoC,其易用性和节省成本优势获得了业界认可。比起目前任何其它蓝牙智能解决方案,DA14580所需要的外部组件较少,无需使用微控制器也可实现全面托管型应用。借助通用软件开发包的各种支持,设计人员能够迅速开发出各类前卫应用,使其应用于人机交互设备(HID)、健康与健身可穿戴设备、医疗、近距感测和智能家庭等迅速扩展的市场。凭借世界一流的高能效技术,SmartBond可兼顾产品设计,是打造数十亿电池供电型物联网设备的绝好选择。
-
芯片
+关注
关注
453文章
50360浏览量
421627 -
智能手环
+关注
关注
47文章
792浏览量
72829 -
DA14580
+关注
关注
7文章
13浏览量
24373
原文标题:工程师分享 | 基于Dialog DA14580主要芯片的智能手环/智能鞋子解决方案
文章出处:【微信号:Dialog_Semiconductor,微信公众号:Dialog半导体公司】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论