本文是一位工程師朋友撰寫(xiě)的基于Dialog DA14580主要芯片的智能手環(huán)/智能鞋子解決方案,詳細(xì)地分享了使用Dialog SmartBond DA14580進(jìn)行設(shè)計(jì)的心得和建議,也許可以對(duì)您的設(shè)計(jì)提供一些啟發(fā)和幫助。
應(yīng)用領(lǐng)域:智能穿戴方案類型:模塊板卡
主要芯片:Dialog DA14580
方案概述1. 產(chǎn)品功能描述
用戶可通過(guò)藍(lán)牙連接手機(jī),在APP或者微信小程序中查看當(dāng)日的走路步數(shù)、跑步距離、騎行距離、爬樓梯步數(shù)、檢測(cè)體溫或者心率。可USB充電、無(wú)線充電。 根據(jù)實(shí)際用途待機(jī)時(shí)長(zhǎng)可在1個(gè)星期甚至更長(zhǎng)。
2. 產(chǎn)品應(yīng)用范圍
老人防跌、兒童防丟、運(yùn)動(dòng)等場(chǎng)景
3. 產(chǎn)品特點(diǎn)優(yōu)勢(shì)總結(jié)功耗業(yè)內(nèi)最低:如下所示:狀態(tài):電流睡眠: 0.07mA待機(jī): 0.8mA
傳輸數(shù)據(jù): 4.8mA
4. 產(chǎn)品實(shí)物圖片
【DA14580】DA14580是Dialog公司研制的藍(lán)牙單芯片。號(hào)稱全球功耗最低,是TI CC2541的四分之一,是運(yùn)動(dòng)手環(huán)等穿戴類電子產(chǎn)品經(jīng)常使用的芯片。
可是DA14580的開(kāi)發(fā)門檻不低。適合有藍(lán)牙開(kāi)發(fā)經(jīng)驗(yàn)的團(tuán)隊(duì)來(lái)開(kāi)發(fā),不適合學(xué)習(xí)愛(ài)好者。
筆者將對(duì)DA14580的系統(tǒng)架構(gòu)和應(yīng)用開(kāi)發(fā)框架進(jìn)行分析,之后再解說(shuō)怎樣進(jìn)行應(yīng)用開(kāi)發(fā)。
對(duì)于藍(lán)牙單芯片應(yīng)用開(kāi)發(fā)來(lái)說(shuō),我們要關(guān)注的問(wèn)題是:藍(lán)牙協(xié)議棧方面怎樣新增一個(gè)GATT profile(服務(wù)和特征值定義及操作)、SoC內(nèi)核方面怎樣驅(qū)動(dòng)外圍設(shè)備、系統(tǒng)應(yīng)用框架上怎樣使用定時(shí)器和任務(wù)間消息通信等等。DA14580單芯片公布時(shí)并非一顆裸片,而是帶有開(kāi)發(fā)平臺(tái)和SDK包,還有經(jīng)常使用的應(yīng)用例程(如防丟proximity)。我們要做的就是通過(guò)SDK和相關(guān)的文檔去理解它整個(gè)系統(tǒng)架構(gòu)和應(yīng)用框架,在這個(gè)基礎(chǔ)上才去完成以上三個(gè)方面的開(kāi)發(fā)。
一、DA14580系統(tǒng)架構(gòu)
DA14580是基于Cortex M0架構(gòu),內(nèi)置ROM、OTP和RAM。
當(dāng)中ROM固化了大部分協(xié)議棧和操作系統(tǒng)(單任務(wù))的代碼實(shí)現(xiàn),而OTP一次性編程則是為了減少成本,實(shí)現(xiàn)用戶的差異化應(yīng)用需求。當(dāng)用戶通過(guò)SPI NORFLASH引導(dǎo)或者直接通過(guò)JLINK下載代碼到RAM進(jìn)行調(diào)試后,就能夠通過(guò)SmartSnippets工具下載代碼到OTP。量產(chǎn)產(chǎn)品即從OTP開(kāi)始引導(dǎo)運(yùn)行。
DA14580集成的是第三方公司RW的藍(lán)牙協(xié)議棧IP,范圍包含GAT和GAP層及下面。因此我們能夠在代碼框架文件夾上看到RW開(kāi)頭命名的文件夾和頭文件,官方文檔涉及到藍(lán)牙協(xié)議棧方面大部分都是RW公司出品。
二、DA14580 開(kāi)發(fā)例程文件夾和SDK文件夾結(jié)構(gòu)
DA14580的SDK開(kāi)發(fā)平臺(tái)使用keil,我們先來(lái)看看開(kāi)發(fā)例程的文件夾結(jié)構(gòu),再來(lái)看SDK文件夾結(jié)構(gòu)。前者簡(jiǎn)單一些。后者由于涉及到第三方IP、ROM等原因,文件夾實(shí)在是太多太細(xì)了,初接手真的會(huì)歇菜。
防丟(proximity,英文是接近的意思)的開(kāi)發(fā)文件夾結(jié)構(gòu)例如以下:
這里須要注意的是,ROM里面的固話代碼。包含協(xié)議棧和單任務(wù)操作系統(tǒng)的相關(guān)管理代碼也是整個(gè)project應(yīng)用的一部分,僅僅只是沒(méi)有列到開(kāi)發(fā)文件夾里面。
SDK文件夾架構(gòu)例如以下:
三、藍(lán)牙profile和應(yīng)用的角色和分工
從project的代碼文件夾結(jié)構(gòu)來(lái)看,每一個(gè)profile都有一個(gè)以profile(如proxr)命名的.c文件,也有一個(gè)以profile_task(如proxr_task)命名的.c文件;對(duì)應(yīng)地,每一個(gè)應(yīng)用子任務(wù)也有一個(gè)app_profile(如app_proxr)的.C文件,和app_profile_task(如app_proxr_task)的.c文件。
一般地:
在操作系統(tǒng)ke內(nèi)核看來(lái),Profile和profile_task共同完畢一個(gè)task任務(wù),當(dāng)中app_proxr_task的task ID標(biāo)識(shí)是TASK_PROXR。但app_profile和app_profile_task并非一個(gè)詳細(xì)的task任務(wù),在代碼文件夾的app文件夾。全部的task,包含app_proxr_task和app_batt_task(電池)、app_sec_task(安全)共同組成一個(gè)task。在app.c中完畢任務(wù)創(chuàng)建。task的ID標(biāo)識(shí)是TASK_APP。
各個(gè)app_profile_task僅僅只是完畢應(yīng)用的一個(gè)子場(chǎng)景功能,如防丟、電池告警等。
app是主動(dòng)發(fā)送消息給profile,以運(yùn)行對(duì)應(yīng)的藍(lán)牙GATT服務(wù)和操作,并接受回調(diào)。即app是profile的上層。
Profile任務(wù)運(yùn)行GATT服務(wù)/屬性的詳細(xì)創(chuàng)建create、開(kāi)啟服務(wù)enable和屬性特征的讀寫(xiě)等操作,其調(diào)用ATT和GAP等底層接口來(lái)實(shí)現(xiàn)詳細(xì)功能。
Profile作為接口供給app層調(diào)用。app是通過(guò)消息通信來(lái)完畢接口調(diào)用的。
app_profile的代碼一般包含主動(dòng)調(diào)用的接口實(shí)現(xiàn)。而app_profile_task則是接受消息回調(diào)的接口實(shí)現(xiàn)。兩者的分工是很清晰的。
四、應(yīng)用開(kāi)發(fā)框架
DA14580的應(yīng)用開(kāi)發(fā)框架的核心是基于狀態(tài)機(jī)和消息回調(diào)。下面分析以防丟proxr為例。
1. 狀態(tài)機(jī)每一個(gè)任務(wù)都必須明白自己的狀態(tài)表。比如proxr的狀態(tài)表是:
狀態(tài)的初始化和轉(zhuǎn)換是由用戶主動(dòng)切換的。
在某個(gè)確定的狀態(tài)時(shí),內(nèi)核會(huì)在對(duì)應(yīng)的狀態(tài)響應(yīng)接口集中遍歷全部發(fā)給該任務(wù)的消息。每一個(gè)任務(wù)都會(huì)在初始化時(shí)被創(chuàng)建。比如proxr任務(wù)的創(chuàng)建是:
這時(shí),如果有個(gè)其它的任務(wù)發(fā)一個(gè)消息給TASK_PROXR。則會(huì)在proxr_disabled中查找對(duì)應(yīng)的消息回調(diào)接口,并運(yùn)行回調(diào)。
2. 消息回調(diào)
接下來(lái)看看各個(gè)狀態(tài)的響應(yīng)接口集,比如PROXR_CONNECTED連接狀態(tài)時(shí)的狀態(tài)響應(yīng)接口集例如以下??梢?jiàn),其會(huì)對(duì)兩個(gè)消息進(jìn)行回調(diào),一個(gè)是底層ATT收到對(duì)特征值的寫(xiě)操作時(shí)運(yùn)行回調(diào),還有一個(gè)應(yīng)用層主動(dòng)改寫(xiě)還有一個(gè)特征值。在筆者的防丟和計(jì)步應(yīng)用中,前者是實(shí)現(xiàn)防丟告警功能。后者是上報(bào)計(jì)步數(shù)據(jù)。
3. 任務(wù)間通信
消息發(fā)出之后,系統(tǒng)即會(huì)運(yùn)行proxr_jibu_update_req_handler回調(diào)。
另外。筆者會(huì)依據(jù)文章的閱讀量考慮進(jìn)一步對(duì)DA14580的SDK進(jìn)行分析。如系統(tǒng)啟動(dòng)過(guò)程、服務(wù)建立過(guò)程以及上面說(shuō)的。怎樣進(jìn)行應(yīng)用開(kāi)發(fā),即藍(lán)牙協(xié)議棧方面怎樣新增一個(gè)GATT profile(服務(wù)和特征值定義及操作)、SoC內(nèi)核方面怎樣驅(qū)動(dòng)外圍設(shè)備、系統(tǒng)應(yīng)用框架上怎樣使用定時(shí)器和任務(wù)間消息通信等等。
采用Dialog藍(lán)牙智能芯片,小米手環(huán)如虎添翼
憑借Dialog DA14580 SmartBond?低能耗SoC擁有的業(yè)界頂尖功耗技術(shù),小米手環(huán)如虎添翼。
最新發(fā)布的小米手環(huán)中采用了Dialog 的藍(lán)牙超低功耗SmartBond SoC(片上系統(tǒng)芯片)。
借助Dialog的DA14580,只需給小米手環(huán)充電一次,就可滿足長(zhǎng)達(dá)30天的續(xù)航時(shí)間,這比其最強(qiáng)競(jìng)爭(zhēng)對(duì)手所供的電池能力高出兩倍多,為當(dāng)今的消費(fèi)者提供了一款擁有最高能效的連接解決方案。
小米公司自2010年推出基于安卓(Android)的MIUI操作系統(tǒng)以來(lái),所設(shè)計(jì)并開(kāi)發(fā)出的創(chuàng)新型消費(fèi)電子產(chǎn)品源源不斷,其中包括智能手機(jī)、智能電視、機(jī)頂盒、平板電腦、路由器,還有最新出爐的可穿戴設(shè)備。小米手環(huán)由小米的下屬公司華米科技研發(fā)制造。全球競(jìng)爭(zhēng)對(duì)手的運(yùn)動(dòng)追蹤手環(huán)價(jià)格較高、續(xù)航能力較弱、能效較低,如今最新推出的小米手環(huán)極具競(jìng)爭(zhēng)力,成為替代其競(jìng)爭(zhēng)對(duì)手的不二選擇。
Dialog半導(dǎo)體有限公司連接性、汽車與工業(yè)事業(yè)部資深副總裁兼總經(jīng)理Sean McGrath表示:“小米將DA14580 SmartBond解決方案融入小米手環(huán)的核心單元中,這是我們?cè)谥袊?guó)市場(chǎng)業(yè)務(wù)的一項(xiàng)至關(guān)重要的突破。DA14580可為小米產(chǎn)品帶來(lái)真正的競(jìng)爭(zhēng)優(yōu)勢(shì),因?yàn)檫x用Dialog藍(lán)牙SoC的工程師再也無(wú)需因?yàn)殡姵厝萘繂?wèn)題在產(chǎn)品設(shè)計(jì)上做出妥協(xié):他們能夠打造出更加輕薄、更具吸引力的產(chǎn)品,這些產(chǎn)品不僅擁有業(yè)界領(lǐng)先的能效,而且仍然滿足用戶對(duì)于性能的期望。因此,消費(fèi)者可以依靠小米手環(huán)來(lái)監(jiān)測(cè)他們的運(yùn)動(dòng)情況、卡路里攝入量和睡眠模式,同時(shí)又避免了頻繁充電的煩惱。”
Dialog的SmartBond是一個(gè)高度集成的SoC,其易用性和節(jié)省成本優(yōu)勢(shì)獲得了業(yè)界認(rèn)可。比起目前任何其它藍(lán)牙智能解決方案,DA14580所需要的外部組件較少,無(wú)需使用微控制器也可實(shí)現(xiàn)全面托管型應(yīng)用。借助通用軟件開(kāi)發(fā)包的各種支持,設(shè)計(jì)人員能夠迅速開(kāi)發(fā)出各類前衛(wèi)應(yīng)用,使其應(yīng)用于人機(jī)交互設(shè)備(HID)、健康與健身可穿戴設(shè)備、醫(yī)療、近距感測(cè)和智能家庭等迅速擴(kuò)展的市場(chǎng)。憑借世界一流的高能效技術(shù),SmartBond可兼顧產(chǎn)品設(shè)計(jì),是打造數(shù)十億電池供電型物聯(lián)網(wǎng)設(shè)備的絕好選擇。
-
芯片
+關(guān)注
關(guān)注
462文章
53189瀏覽量
453819 -
智能手環(huán)
+關(guān)注
關(guān)注
47文章
800瀏覽量
74201 -
DA14580
+關(guān)注
關(guān)注
7文章
13瀏覽量
24577
原文標(biāo)題:工程師分享 | 基于Dialog DA14580主要芯片的智能手環(huán)/智能鞋子解決方案
文章出處:【微信號(hào):Dialog_Semiconductor,微信公眾號(hào):Dialog半導(dǎo)體公司】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
主流藍(lán)牙BLE控制芯片詳解(5):Dialog DA14580
智能手表/環(huán)--DA14580資料開(kāi)源下載地址
DA14580學(xué)習(xí)流程
DA14580學(xué)習(xí)系列二
【FireBLE申請(qǐng)】智能手環(huán)
如何快速低成本搭建 DA14580 軟硬件開(kāi)發(fā)平臺(tái)
基于Dialog DA14580超低功耗防丟器解決方案
Dialog DA14580產(chǎn)品定制開(kāi)發(fā),需要的朋友聯(lián)系
基于ADI ADXL362三軸MEMS加速度計(jì)的小米智能手環(huán)設(shè)計(jì)方案
請(qǐng)問(wèn)DA14580藍(lán)牙透?jìng)鞯拇a實(shí)現(xiàn)原理是什么?
智能穿戴DA14580開(kāi)發(fā)板套件資料分享
<轉(zhuǎn)> 主流藍(lán)牙BLE控制芯片詳解(5):Dialog DA14580 精選資料分享
小米智能手環(huán)bong+II完整設(shè)計(jì)方案
基于藍(lán)牙DA14580的可穿戴智能手環(huán)設(shè)計(jì)方法

評(píng)論