<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 設計應用 > Silicon Labs藍牙Mesh應用實(shí)例

Silicon Labs藍牙Mesh應用實(shí)例

作者:李仁慶 時(shí)間:2019-03-29 來(lái)源:電子產(chǎn)品世界 收藏

The application of ’ Bluetooth Mesh

本文引用地址:http://dyxdggzs.com/article/201903/399041.htm

李仁慶(貝能?chē)H有限公司,廣東 廣州 510665)

       摘要:標準脫胎于藍牙低功耗(BLE)和網(wǎng)狀協(xié)議,兼有兩種協(xié)議優(yōu)點(diǎn),又摒棄其缺點(diǎn),是開(kāi)發(fā)節點(diǎn)網(wǎng)絡(luò )的選擇之一;公司推出的 SDK和支持BT5.0的EFR32BG13系列SoC,讓應用變得簡(jiǎn)單靈活。
       關(guān)鍵詞:藍牙;mesh;照明;拓撲

  引言

       物聯(lián)網(wǎng)發(fā)展如火如荼的今天,怎樣可以聯(lián)接大量節點(diǎn),又可以適應不同節點(diǎn)的特點(diǎn)的問(wèn)題?這不可避免地擺在了所有的業(yè)內人士面前。Zigbee標準已有成熟生態(tài)鏈,但需要有網(wǎng)關(guān),無(wú)法跟目前流行的操作終端如手機進(jìn)行直連成為了短板;在家庭、工業(yè)、商業(yè)都普遍應用的Wi-Fi因功耗大,無(wú)法適應各種節點(diǎn)的特點(diǎn)而只能用在傳輸速度有要求的產(chǎn)品上;入門(mén)簡(jiǎn)單、成本低的在簡(jiǎn)單的智能物聯(lián)產(chǎn)品中使用最多,但因其標準化程度不高,無(wú)法達到各廠(chǎng)家的產(chǎn)品互聯(lián)互通;近期流行的NB-IoT產(chǎn)品因其廣域網(wǎng)特點(diǎn),在大規模遠距離節點(diǎn)網(wǎng)絡(luò )中有頗多應用,但功耗和整體成本問(wèn)題是暫時(shí)難以解決的問(wèn)題。那是否就沒(méi)有一種協(xié)議可以完美解決這些問(wèn)題嗎?
  有!藍牙技術(shù)聯(lián)盟于2017年7月19日正式宣布,藍牙(Bluetooth?)技術(shù)開(kāi)始全面支持Mesh網(wǎng)狀網(wǎng)絡(luò )(如圖1)。藍牙Mesh標準脫胎于藍牙低功耗(BLE),用于建立多對多設備通信的新網(wǎng)絡(luò )。藍牙Mesh標準協(xié)議具有藍牙BLE的特點(diǎn),也有多對多的網(wǎng)絡(luò )拓撲,無(wú)需網(wǎng)關(guān)同時(shí)具備多種應用profile標準,操作簡(jiǎn)單,在各種操作終端中普遍配備的優(yōu)點(diǎn),完全符合節點(diǎn)網(wǎng)絡(luò )的特點(diǎn);未來(lái)利用藍牙beacon信息推送和定位技術(shù),可以實(shí)現無(wú)連接推送和室內定位功能。

       1 公司的套件及芯片

       公司提供的藍牙Mesh標準協(xié)議目前已經(jīng)推出第二版正式SDK,加入了調光、調色功能,標志著(zhù)藍牙Mesh在Lighting(照明)上的應用更加成熟;也加入了友員節點(diǎn)、低功耗節點(diǎn),低功耗應用的實(shí)現也令藍牙Mesh在Lighting領(lǐng)域的產(chǎn)品化成為現實(shí)。
  公 司 在 藍 牙 M e s h 應 用 上 有、EFR32BG系列SoC和BGM系列模塊,其中性?xún)r(jià)比最高的為EFR32BG13系列,并提供了相應的開(kāi)發(fā)套件和例程,能大大提高藍牙Mesh產(chǎn)品的開(kāi)發(fā)速度。該SoC集成了藍牙5.0 2.4 GHz RF硬件,內置PA和巴倫電路,RF外圍器件只需要增加2個(gè)電感和1個(gè)電容,無(wú)需客戶(hù)在射頻方面投入不必要的精力。
  2 在照明領(lǐng)域應用藍牙Mesh實(shí)例

       無(wú)論是在工業(yè)照明、商業(yè)照明還是在家庭照明中,實(shí)際燈的數量和開(kāi)關(guān)的數量都遠遠超過(guò)初戰演示,而且照明場(chǎng)景也遠遠復雜過(guò)初戰演示。接下來(lái),我們結合案例實(shí)現一個(gè)應用實(shí)例。

1554699094893731.png

 ?、俑鶕ilicon Labs公司提供的硬件資料重新制作了合乎產(chǎn)品尺寸的PCB(印制板),由于該SoC在無(wú)線(xiàn)方面集成了PA(功率放大器)和巴倫電路,外圍電路相當簡(jiǎn)單,基本不需要進(jìn)行任何硬件調試,一次PCB制作成功率相當高。官方提供的開(kāi)發(fā)套件為兩個(gè)LED,本應用實(shí)驗將其擴展為三個(gè)LED;官方提供的開(kāi)發(fā)套件為兩個(gè)按鍵,分別完成開(kāi)關(guān)、調光和出廠(chǎng)復位,本應用實(shí)驗將其縮減為一個(gè)按鍵,采用單方向循環(huán)算法完成開(kāi)關(guān)、調光和出廠(chǎng)復位。
 ?、谠趹脤?shí)驗中,我們模擬了一個(gè)需要用到50個(gè)節點(diǎn)的照明網(wǎng)絡(luò )(如圖2),將其分成4組,其中兩組均為手動(dòng)模式,為1個(gè)開(kāi)關(guān)節點(diǎn)手動(dòng)控制9個(gè)燈節點(diǎn)的開(kāi)關(guān)和調光,這個(gè)場(chǎng)景是官方演示套裝的加大版本,也是日常照明比較常見(jiàn)的場(chǎng)景;第3組為自動(dòng)開(kāi)關(guān)場(chǎng)景,2個(gè)開(kāi)關(guān)節點(diǎn)按不同節拍自動(dòng)控制25個(gè)燈節點(diǎn)開(kāi)或關(guān),模擬的是需要自動(dòng)開(kāi)關(guān)的場(chǎng)景,如路燈自動(dòng)開(kāi)啟和熄滅;最后一組為自動(dòng)轉發(fā)場(chǎng)景,由1個(gè)開(kāi)關(guān)節點(diǎn)和2個(gè)帶轉發(fā)功能燈節點(diǎn)完成,適用于長(cháng)廊控制場(chǎng)景。
  下面將在初步實(shí)戰和以上硬件基礎上完成軟件應用。
 ?、墼趕implicity studio上建立例程SoC-Mesh Light和SoC-Mesh Switch,生成代碼后可以直接進(jìn)行編譯,之后進(jìn)行第一處修改,本應用實(shí)驗的LED和引腳進(jìn)行了改動(dòng),而LED是調用了PWM進(jìn)行控制,所以需要進(jìn)行引腳分配和PWM配置修改,可以在其他工程中調用硬件配置器進(jìn)行圖形化修改,生成代碼。由于本應用實(shí)驗中改動(dòng)不大,故直接在源碼中進(jìn)行修改:

// configure LED pins
GPIO_PinModeSet(BSP_
L E D 0 _ P O R T , ( 5 U ) ,
gpioModePushPull, LED_OFF_
STATE);
GPIO_PinModeSet(BSP_
L E D 0 _ P O R T , ( 6 U ) ,
gpioModePushPull, LED_OFF_
STATE);
GPIO_PinModeSet(BSP_
L E D 0 _ P O R T , ( 7 U ) ,
gpioModePushPull, LED_OFF_STATE);
// configure pushbutton PB4 as inputs, with pull-
up enabled delete PB1
GPIO_PinModeSet(BSP_BUTTON0_PORT, (4U),
gpioModeInputPull, 1);
// configure PWM
TIMER0->ROUTELOC0 = LED0_ROUTELOC |
LED1_ROUTELOC | LED2_ROUTELOC;// add CC2
TIMER0->ROUTEPEN = TIMER_ROUTEPEN_
CC0PEN | TIMER_ROUTEPEN_CC1PEN | TIMER_
ROUTEPEN_CC2PEN;
sInitCC.mode = timerCCModePWM;
TIMER_InitCC(TIMER0, 0, &sInitCC);
TIMER_InitCC(TIMER0, 1, &sInitCC);
TIMER_InitCC(TIMER0, 2, &sInitCC); // add CC2
TIMER_CompareSet(TIMER0, 0, current_level);

TIMER_CompareSet(TIMER0, 1, current_level);
TIMER_CompareSet(TIMER0, 2, current_level); //
add CH2

修改一下出廠(chǎng)復位的觸發(fā)條件:

case gecko_evt_system_boot_id:
// check pushbutton state at startup. If PB4 is
held down then do factory reset
if (GPIO_PinInGet(BSP_BUTTON0_PORT,
BSP_BUTTON0_PIN) == 0){
temp1 = RTCC_CounterGet();
while(GPIO_PinInGet(BSP_BUTTON0_
PORT, BSP_BUTTON0_PIN) == 0){
temp2 = RTCC_CounterGet()-
temp1;
if(temp2>LONG_PRESS_TIME_
TICKS){
t e m p 1 = R T C C _
CounterGet();
LED_set_state(LED_STATE_
PROV);
temp3++;
}
if(temp3>30){
initiate_factory_reset();
break;
}
}

if(temp3<=30){
struct gecko_msg_system_get_bt_
address_rsp_t *pAddr = gecko_cmd_system_get_bt_
address();
set_device_name(&pAddr-
>address);
// Initialize Mesh stack in Node
operation mode, wait for initialized event
result = gecko_cmd_mesh_node_
init()->result;
if (result) {
sprintf(buf, “init failed
(0x%x)”, result);
}
}
}

1554699125936998.png

       ④重新編譯完后,可以燒錄進(jìn)第一、二組中,按進(jìn)行組網(wǎng)分組即可完成手動(dòng)模式的場(chǎng)景。
 ?、菰谑謩?dòng)模式基礎上修改自動(dòng)模式的開(kāi)啟關(guān)閉,則變成自動(dòng)模式的場(chǎng)景:

       //修改按鍵中斷處理即可

void gpioint(uint8_t pin){
if ((pin == BSP_BUTTON0_PIN)&&(enter==0)) {
if (GPIO_PinInGet(BSP_BUTTON0_PORT,
BSP_BUTTON0_PIN) == 0) {
// pressed - record RTCC timestamp
pb0_press = RTCC_CounterGet();
} else {
// released - check if it was short or long press
t_diff = RTCC_CounterGet() - pb0_press;
if (t_diff < LONG_PRESS_TIME_TICKS) {
gecko_external_signal(EXT_
SIGNAL_PB4_SHORT_PRESS);
enter=1;
} else {
gecko_external_signal(EXT_
SIGNAL_PB4_LONG_PRESS);

enter=1;
}
}
}
e l s e i f ( ( p i n = = B S P _ B U T T O N 0 _
PIN)&&(enter==2)) {
enter=0;
}
}

       ⑥重新編譯完后,可以燒錄進(jìn)第三、四組中,按進(jìn)行組網(wǎng)分組即可完成自動(dòng)模式的場(chǎng)景。
 ?、咴谧詣?dòng)模式組網(wǎng)時(shí),選擇RELAY功能,則具備了轉發(fā)功能,使用電池供電裝置后,可以用在長(cháng)廊控制場(chǎng)景。
 ?、?如 客 戶(hù) 需 要 自 己 開(kāi) 發(fā) 合 適 的 A p p , 則simplicity studio在上下載到ADK,按應用筆記《an1140-
bluetooth-mesh-for-android-adk.pdf》完成:安裝,新建工程,展開(kāi)下載到的ADK包,內有jar文件(路徑:C:SiliconLabsSimplicityStudiov4developersdksblemeshv1.3appbluetoothandroid),將符合藍牙Mesh的API接口導入,則可以進(jìn)行下一步開(kāi)發(fā)。
  注意事項如下。
 ?、俟俜教峁┑腁pp為演示版本,其分組數目只分到4組,但藍牙Mesh標準是這樣描述的:“A groupaddress is a multicast address and can represent multiple elements on one or more nodes. There are 16384 group addresses per mesh network”,是可分多達16384組的,足夠任何場(chǎng)景使用。
 ?、谕瑯?,device ID在藍牙Mesh標準里是這樣描述的:“A unicast address is allocated to an element and always represents a single element of a node. There are 32767 unicast addresses per mesh network”,演示版本中只分到250個(gè)會(huì )重新開(kāi)始分配。
 ?、鬯{牙Mesh標準支持客戶(hù)開(kāi)發(fā)定制model,在圖形化配置界面里面進(jìn)行model修改和軟件配置,即可完成。
  如下是軟件修改:

       //定義IDmodel

my_model_t my_model = {
.elem_index = PRIMARY_ELEMENT,
.vendor_id = MY_VENDOR_ID,
.model_id = MY_MODEL_CLIENT_
ID,
.publish = 1,
.opcodes_len = 6,
.opcodes_data[0] = temperature_
get,
.opcodes_data[1] = temperature_
status,
.opcodes_data[2] = unit_get,
.opcodes_data[3] = unit_set,
.opcodes_data[4] = unit_set_unack,
.opcodes_data[5] = unit_status
};

       3 結論藍牙Mesh標準具有多對多的網(wǎng)絡(luò )拓撲,可以滿(mǎn)足節點(diǎn)網(wǎng)絡(luò )里各種節點(diǎn)的通信需求,無(wú)需網(wǎng)關(guān),操作簡(jiǎn)單,在各種操作終端中普遍配備的優(yōu)點(diǎn),配搭無(wú)連接推送和室內定位功能,適合開(kāi)發(fā)節點(diǎn)網(wǎng)絡(luò )。
  公司推出的藍牙Mesh SDK可以讓藍牙Mesh應用變得非常簡(jiǎn)單又靈活,EFR32BG13系列支持BT5.0,是Mesh Update模式的必要條件,故Labs公司的藍牙Mesh方案是開(kāi)發(fā)藍牙Mesh產(chǎn)品的好選擇。

       參考文獻
       [1]Bluetooth Mesh Mesh Profile / Specification.
       [2]QSG148: Getting Started with the Silicon Labs Bluetooth ? Mesh Lighting Demonstration.
       [3]an1140-bluetooth-mesh-for-android-adk.
       [4]官方教程《Vendor model examples》.
       [5]efr32bg13-datasheet.
       [6]efr32xg13-reference-manual.
       [7]Bluetooth Mesh Networking Customer Friendly, July 2017.

本文來(lái)源于科技期刊《電子產(chǎn)品世界》2019年第4期第72頁(yè),歡迎您寫(xiě)論文時(shí)引用,并注明出處



關(guān)鍵詞: 201904 藍牙Mesh Silicon Labs

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>