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

評論