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

評論