對于家庭,建筑和工業自動化應用,連接照明系統非常方便,可以幫助節省能源。雖然基于802.15.4的網狀網絡提供了低功耗操作,擴展范圍和可用性的有效組合,但它們實現起來很復雜。
為了降低這種復雜性并節省開發時間,芯片供應商已經引入了參考設計和工具可以幫助設計人員快速開始評估網狀連接照明應用。
本文著眼于自動化應用中網狀網絡的要求,并描述了Zigbee和Thread在滿足這些要求方面的作用。然后,本文介紹了Silicon Laboratories的連接照明套件作為示例。然后繼續展示如何使用它來開發基于Zigbee或Thread協議的網狀連接照明應用。
物聯網的連接照明關鍵部分
隨著高性價比LED的出現燈,連接照明已在住宅和商業自動化應用中發揮越來越大的作用。連接燈允許用戶根據他們的工作和個人喜好調整其工作環境的顏色和強度。
更高級的自動化系統通過添加占用傳感器或簡單地通過基于位置的支持擴展了這一基本功能將有源LED燈作為占用指示燈。與物聯網(IoT)中的其他應用程序一樣,來自這些系統的相關數據進一步為其用戶提供了各種有用的分析。
網狀網絡
為了幫助連接智能LED等物聯網設備,網狀通信協議正迅速成為首選解決方案,特別是對于低功耗應用。對于傳統的點對點網絡,建筑物一側的智能LED燈泡需要顯著提高其傳輸輸出功率,以便到達建筑物另一側的控制器。
網狀網絡,連接的照明設備僅需要足夠的發射功率才能到達另一個附近的連接照明設備。反過來,網狀網絡中的各個設備通過網絡路由源節點的消息,直到它到達目的節點。因此,網狀網絡允許開發人員在不犧牲范圍的情況下使用低功耗設備。
此外,網狀網絡中內置的路由機制提供了自我修復功能。消息只是通過故障節點重新路由,以維持整體服務可用性。
對于自動化網絡,Zigbee已成為開發人員的熱門選擇,因為它從一開始就設計為低功耗。此外,Zigbee Alliance認證可確保不同供應商之間的互操作性。 Zigbee網絡可以輕松地從幾個設備擴展到數千個。同時,單獨的Zigbee設備可以提供家庭自動化應用中常見的短距離網絡,開發人員可以為更長距離的應用部署Zigbee網狀網絡。
這些應用程序的開發也有通過引入Zigbee 3.0變得更加直接,Zigbee 3.0將單獨的應用程序特定配置文件的混亂減少到稱為Zigbee集群庫(ZCL)的通用應用程序層(圖1)。
圖1:Zigbee已成為自動化系統的首選解決方案,并為開發人員提供了一系列在Zigbee PRO堆棧中收集的強大連接服務以及Zigbee集群庫(ZCL)。 (圖片來源:Zigbee聯盟)
最新版本的Zigbee為網狀網絡提供了改進的功能,同時保持了與傳統系統的兼容性。盡管如此,Zigbee還沒有原生支持互聯網協議(IP)與本地Wi-Fi網絡和互聯網等IP網絡連接。
為了在Zigbee和IP網絡之間進行通信,開發人員需要調整消息通過在各個網絡格式之間轉換標題和地址來流經連接每個域的網關。此外,開發人員通常需要重新打包有效負載并重新應用安全機制。雖然在概念上并不困難,但這種額外的自適應過程會給網關設備帶來進一步的處理負擔,從而導致消息延遲增加。
基線中缺乏對IP尋址的支持Zigbee規范促使開發人員尋找替代方案,如Thread來自線程組。與Zigbee一樣,Thread基于IEEE 802.15.4物理(PHY)和媒體訪問控制(MAC)層。為了提供IP尋址能力,它為6LowPAN(IPv6低功耗無線個人局域網)增加了一層支持。線程還解決了其他關鍵網格要求,其中包括用于加速重新路由的最新路徑信息以及用于將新設備安全地調試到網狀網絡的增強協議。
然而,對于開發人員而言,使用這些技術實現連接照明等應用程序在創建高效硬件設計和優化相關軟件協議棧上的應用程序方面存在多重挑戰。
使用Silicon Labs EFR32MG12 Mighty Gecko 802.15支持.4的無線MCU和相關軟件,開發人員可以創建低功耗的網狀網絡。通過構建Silicon Labs參考設計,開發人員可以進一步加速實施能夠利用這些網絡的高級應用。
無線MCU
支持802.15.4的MCU的可用性加速了基于低功耗網絡的自動化應用的增長。諸如EFR32MG12 MCU等器件集成了典型無線節點設計所需的全部組件。除了集成無線電外,Mighty Gecko MCU(如EFR32MG12P432F1024GM48)還將40 MHz 32位Arm ? Cortex ? -M4內核與1024 KB閃存,256 KB相結合RAM,以及一系列廣泛的數字和模擬外設。該器件的模擬互連矩陣使設計人員可將器件引腳配置為集成模擬模塊的模擬I/O端口,包括數模轉換器(DAC),模擬比較器,運算放大器和高速12位逐次逼近寄存器(SAR)模數轉換器(ADC)。
該設備的無線電子系統集成了全RF接收和發送信號路徑,包括低噪聲放大器(LNA),功率放大器(PA),頻率合成器,信號轉換器和平衡 - 不平衡轉換器。因此,設計人員只需將雙元件LC匹配網絡連接到器件的雙引腳2.4 GHz天線接口即可實現低功耗設計的RF端(圖2)。這種雙元件設計足以滿足典型的低功耗物聯網設計,具有適中的射頻發射功率要求(小于13 dBm)。對于具有更高RF發射功率要求的設計,工程師只需要為最終的四元件匹配網絡添加另一個LC級。
圖2:對于要求RF發射功率小于13 dBm的2.4 GHz 802.15.4應用,工程師可以通過簡單的雙元件LC匹配網絡為EFR32MG12 MCU實現RF接口。 (圖片來源:Silicon Labs)
高效的物聯網解決方案
除了簡化RF接口要求外,MCU的高集成度還簡化了整個系統的設計。開發人員可以利用集成的DC-DC轉換器,只需額外的外部電容和電感即可進行部署。因此,基于EFR32的系統的基線設計除了用于電源連接的外部組件外,幾乎不需要外部組件(圖3)。
圖3:開發人員可以通過使用EFR32 MCU的內置DC-DC轉換器為內部電路模塊(包括RF)供電,從而大幅降低功耗功率放大器適用于射頻輸出功率要求低的應用。 (圖片來源:Silicon Labs)
集成的DC-DC轉換器旨在最大限度地降低可能影響設備RF電路的噪聲,但仍能通過其向MCU和其他外部設備提供高達200 mA的電流。 IOVDD引腳。開發人員也可以使用轉換器為MCU的內部模塊供電。
要為I/O,RF模擬和RF PA級供電,請將轉換器輸出VDCDC連接到芯片的相應引腳(IOVDD,RFVDD和PAVDD)。對于具有高RF輸出功率要求(高于13 dBm)的應用,只需將圖3所示的高端電感連接移至VDD電源即可。
使用內部數字和模擬模塊的轉換器輸出也很簡單,需要簡單的軟件設置。開發人員可以通過分別設置MCU的EMU_PWRCTRL寄存器中的REGPWRSEL位和ANASW位,將轉換器的輸出路由到MCU的數字和模擬模塊。
集成DC-DC轉換器的使用帶來了明顯的優勢,不僅簡化了設計,但也最大限度地降低功耗。在禁用外設的EM0活動模式下,器件在使用38 MHz晶振的閃存運行代碼時消耗約70μA/MHz。相比之下,對于運行條件相同但不使用集成DC-DC轉換器的設計,功耗上升至約100μA/MHz。
即便如此,集成DC-DC轉換器只有一個開發人員可以使用幾個功能來降低基于EFR32的系統的功耗。該器件支持不同的工作模式,允許開發人員擴展電壓和時鐘頻率 - 以性能為代價降低功耗。之后,開發人員可以在應用需要更高性能之前簡單地調高電壓和頻率,然后再返回低功耗狀態。
與幾乎所有專為物聯網設計而設計的集成MCU一樣,MCU為開發人員提供多種操作通過將核心和其他子系統置于各種睡眠狀態,可以顯著降低功耗的模式。例如,器件在睡眠模式(EM1)下僅需要41微安(μA)/兆赫(MHz),并禁用所有外設。在長時間不活動期間,開發人員可以在深度睡眠模式(EM2)下降低功耗3μA,在停止模式(EM3)下降低功耗2.47μA,具有完全RAM保持和內部閃存斷電。要返回完全激活模式,可以對器件進行編程,以便在外設中斷時自動喚醒,或者當RF子系統檢測到RF信號時。
對于某些設計,MCU從睡眠中喚醒所需的時間可能是一個問題。早期的MCU表現出緩慢的喚醒時間,可能接近甚至超過應用程序所需的響應時間。使用這些器件,開發人員不得不放棄使用深度睡眠模式,接受更高的功耗以確保系統及時響應。
相比之下,EFR32 MCU從EM3停止模式喚醒代碼從RAM執行為3μs,從閃存執行代碼約為10μs。因此,開發人員可以利用低功耗睡眠模式,而不會對典型物聯網應用(如連接照明)的響應時間要求產生重大影響。
連接照明解決方案
即使使用EFR32 MCU的簡化設計要求,開發人員在創建基于網狀網絡的完整連接照明應用時可能面臨重大挑戰。除了無線MCU系統,開發人員還需要組裝具有合適緩沖器和接口的LED和LED驅動電路,以完成與MCU的連接。除了這些硬件設計細節之外,網狀連接應用程序的軟件開發要求可能令人生畏。
開發人員可以使用Silicon Labs RD-0098-0401參考設計套件來解決這些問題,而不是面臨延遲。快速開始探索連接照明應用。該套件基于前面提到的Silicon Labs EFR32MG12P432F1024GM48 MCU,提供完整的系統實現,包括LED照明功能。該套件的電路板帶有幾個帶有MOSFET驅動電路的LED,以及用于緩沖用于控制MOSFET柵極的MCU引腳的運算放大器。預裝的MCU固件使開發人員可以立即開始檢查與網狀網絡和LED相關的不同操作特性。
相關的參考設計為開發基于網狀網絡的各種自動化應用提供了清晰的路線圖。通過將RD-0098-0401電路板與Silicon Labs SLWSTK6000B網狀套件和Simplicity Studio軟件環境相結合,開發人員可以獲得用于創建自定義連接照明系統的全面開發框架(圖4)。
圖4:Silicon Labs RD-0098-0401連接照明套件與Silicon Labs SLWSTK6000B網格套件和Zigbee網關配合使用,為評估連接照明提供了一個全面的平臺并開發定制自動化應用程序(圖片來源:Silicon Labs)
如圖所示,開發人員可以添加任何兼容的Zigbee網關,如Silicon Labs RD-0001-0201 Wi-Fi網關或Silicon Labs RD-0002-0201 USB虛擬用于在更復雜的自動化應用程序中連接兼容的Zigbee設備的網關。也許這個開發平臺中最關鍵的部分,Simplicity Studio軟件環境,顯著改善了應用程序軟件開發。
開發框架
在創建Zigbee應用程序時,開發人員面臨特定的功能需求圖1中前面所示的Zigbee架構中表示的每一層。雖然802.15.4兼容硬件支持最低層,但開發人員的任務是確保其軟件提供Zigbee架構其他層所期望的特定功能。諸如Silicon Labs EmberZNet協議棧之類的商業Zigbee堆棧解決了中間層問題,但開發人員仍然負責在應用程序級別解決進一步的需求(圖5)。
圖5:Silicon Labs堆棧提供了Zigbee網狀網絡所需的廣泛服務,但開發人員仍然負責應用程序級別的補充功能。 (圖片來源:Silicon Labs)
對于軟件開發人員來說,在像Zigbee這樣的豐富框架中處理多個層的多個依賴關系和交互可能非常具有挑戰性。然而,使用Silicon Labs Ember應用程序框架,他們可以更專注于更高級別的應用程序代碼而不是底層機制。
通過Simplicity Studio提供,Silicon Labs的Ember應用程序框架通過簡化了Zigbee網格開發圍繞回調構建的編程模型。回調為應用程序級代碼提供了一種機制,可以參與在較低服務級別處理的操作,實質上是為低級機制提供事件驅動的入口點。在某些時候,通常在其關鍵處理部分之前或之后,較低的服務例程發出回調,這只是對開發人員提供的函數的調用,該函數執行自己的一組操作。
回調編程模型在復雜的框架中提供了許多好處。例如,在執行較低級別的服務功能之前,Ember框架使用回調來使用開發人員的特定于應用程序的代碼處理新消息。通過這種方式,回調不僅為應用程序開發人員提供了一個干凈的框架接口,而且還確保了開發人員的應用程序代碼與框架提供的代碼之間的隔離。 Silicon Labs希望該框架能夠處理開發人員可能遇到的任何情況,如果開發人員面臨需要向框架添加應用程序代碼的情況,則認為它是一個框架錯誤。
雖然框架和它的回調模型已經隱藏了底層服務架構的復雜性,Simplicity Studio為應用程序開發提供了更簡單的方法。在這里,開發人員可以使用Simplicity Studio中的Ember AppBuilder通過一系列菜單選擇來構建應用程序。在這些選項中,AppBuilder為開發人員提供了一組插件,這些插件實現了特定集群的功能,例如標準Zigbee集群庫(ZCL)應用層支持的顏色控制。
每個插件與相關的軟件模塊一起提供默認值,例如報告間隔以及與特定集群功能相關的特定回調(圖6)。
圖6:使用Silicon Labs Simplicity Studio AppBuilder,開發人員只需選擇實現應用程序功能所需的一組插件(左側面板),包括相關的回調(右下)。 (圖片來源:Silicon Labs)
AppBuilder提供了實現底層集群功能所需的完整源代碼,包括特定的回調。如清單1所示,回調可以從幾行簡單的代碼行發出停止命令( emberAfColorControlClusterStopMoveStepCallback()),例如,轉換目標LED的顏色所需的更復雜的代碼。一個州到另一個州( emberAfColorControlClusterMoveToColorCallback())。在檢查了默認回調之后,開發人員可以實現自己的回調版本,甚至可以創建自己的插件。
復制 bool emberAfColorControlClusterStopMoveStepCallback(void){//收到一個停止命令。這就是我們需要做的。 stopAllColorTransitions(); emberAfSendImmediateDefaultResponse(EMBER_ZCL_STATUS_SUCCESS); return true;}。 。 .bool emberAfColorControlClusterMoveToColorCallback(uint16_t colorX,uint16_t colorY,uint16_t transitionTime){uint8_t endpoint = emberAfCurrentEndpoint(); if(transitionTime == 0){transitionTime ++; }//新命令。需要停止任何活動過渡。 stopAllColorTransitions();//如有必要,處理顏色模式轉換。 handleModeSwitch(endpoint,COLOR_MODE_CIE_XY);//現在,啟動狀態機。 colorXTransitionState.initialValue = readColorX(endpoint); colorXTransitionState.currentValue = readColorX(endpoint); colorXTransitionState.finalValue = colorX; colorXTransitionState.stepsRemaining = transitionTime; colorXTransitionState.stepsTotal = transitionTime; colorXTransitionState.endpoint = endpoint; colorXTransitionState.lowLimit = MIN_CIE_XY_VALUE; colorXTransitionState.highLimit = MAX_CIE_XY_VALUE; colorYTransitionState.initialValue = readColorY(endpoint); colorYTransitionState.currentValue = readColorY(endpoint); colorYTransitionState.finalValue = colorY; colorYTransitionState.stepsRemaining = transitionTime; colorYTransitionState.stepsTotal = transitionTime; colorYTransitionState.endpoint = endpoint; colorYTransitionState.lowLimit = MIN_CIE_XY_VALUE; colorYTransitionState.highLimit = MAX_CIE_XY_VALUE; writeRemainingTime(endpoint,transitionTime);//啟動狀態機:emberEventControlSetDelayMS(COLOR_XY_CONTROL,UPDATE_TIME_MS); emberAfSendImmediateDefaultResponse(EMBER_ZCL_STATUS_SUCCESS);返回true;}
清單1:隨Silicon Labs Simplicity Studio AppBuilder提供的插件包含特定的回調功能,開發人員可以根據需要使用自己的回調函數或插件替換它們。 (代碼來源:Silicon Labs)
從Zigbee遷移到線程
借助Silicon Labs環境,開發人員可以利用從Zigbee到Thread的相當簡單的遷移路徑。在最低級別,Simplicity Studio生成硬件配置輸出( hal-config.h ),可直接用于Zigbee,Thread甚至使用Silicon的專有協議的堆棧軟件開發工具包(SDK)。實驗室無線電抽象接口層(RAIL)庫與Silicon Labs Flex SDK(圖7)。
圖7:除了使用通用硬件配置格式外,Silicon Labs環境還有助于簡化不同協議(包括Zigbee和Thread)之間的應用程序遷移。 (圖片來源:Silicon Labs)
Silicon Labs的線程堆棧允許開發人員將一些更高級別的Zigbee應用程序功能遷移到Thread。作為實施Zigbee Alliance的物聯網連接dotdot語言的一部分,Silicon Labs使用ZCL over IP(ZCL/IP)實現其Thread堆棧中包含的Thread應用層。在支持dotdot時,ZCL/IP旨在進一步概括Zigbee架構中具有不同傳輸類型的應用層功能。對于Thread堆棧,Silicon Labs通過提供在線程中用作標準傳輸協議的CoAP(約束應用協議)的實現來利用這種通用性。
ZCL/IP映射了許多其他Zigbee實體,命令和屬性直接指向Thread IP網絡模型。因此,開發人員可以更輕松地訪問遷移到Thread的價值。更簡單的是,開發人員只需在Simplicity Studio AppBuilder中選擇Silicon Labs RD-0098-0401連接照明演示的Thread實現。與Zigbee演示一樣,開發人員可以立即開始探索Thread性能特征,或者使用AppBuilder生成的示例應用程序作為他們自己的基于線程的自動化應用程序的基礎。
結論
LED照明自動化已迅速成為智能家居和智能建筑的熱門功能。作為這些自動化系統的基礎,網狀網絡支持連接燈和控制系統的低功率運行,這些系統曾經需要高功率RF收發器。然而,在開發這些網狀網絡系統時,開發人員在實現具有網格功能的硬件和軟件方面面臨多重挑戰。
結合使用Silicon Labs RD-0098-0401連接照明套件和Silicon Labs SLWSTK6000B網狀套件用于創建網狀連接照明系統的完整硬件平臺。借助Silicon Labs的Simplicity Studio,開發人員可以快速評估完整的Zigbee和基于線程的連接照明應用程序,或使用這些示例應用程序構建自定義網狀網絡自動化應用程序。
-
led照明
+關注
關注
34文章
2672瀏覽量
143628 -
ZigBee
+關注
關注
158文章
2274瀏覽量
245143 -
自動化
+關注
關注
29文章
5726瀏覽量
81309
發布評論請先 登錄
評論