快速打造與多種協定相容的網狀網路裝置
資料提供者:DigiKey 北美編輯群
2019-04-09
連線裝置通常會使用幾種網路拓撲進行連線,這些網路拓撲注重網路的可靠性、涵蓋範圍及低功率性。設計人員通常需要在這些競爭性且互不相通的協定間進行選擇,然後在選取的硬體平台上實作軟體堆疊。這兩項工作都具有相當的挑戰性,但現在可能不再必要。
由於在整合方面的進步,開發人員可以選擇現有的低成本、小覆蓋區並支援多種競爭性標準的網狀網路控制器,包括 Thread、Zigbee 及低功耗藍牙 (BLE)。這樣能夠提供幾種不同程度的彈性:
- 讓開發人員能夠繼續進行設計,並於設計週期的後期階段選擇協定。
- 讓開發人員能夠使用單一裝置與開發平台,依照經驗為應用測試並選擇最佳協定。
- 可將單一平台用於多種應用與地理區域。
- 讓裝置能以一種協定進行部署,並在之後透過韌體更新更改成另一種協定。
本文將說明一些無線網狀網路的基礎知識,並接著介紹 Silicon Labs 的 Mighty Gecko 無線系統單晶片 (SoC) 系列以及相關開發工具。然後會說明設計人員如何以此作為平台,基於各種競爭性網路協定,快速建立可運作的網狀網路。
無線網狀網路是什麼?
無線網狀網路與常見的星狀拓撲網路 (如 Wi-Fi) 或點對點協定 (根據原始的藍牙規範) 有所不同。在網狀網路中,數據封包可以從某個連線裝置「跳躍」到另一個裝置,直到抵達目的地為止 (圖 1)。此外,各個獨立裝置只需要位於網路內另一個裝置的通訊範圍內,即可與同一個網路內其他所有裝置進行通訊。例如,某個位於地下室的裝置能夠與位於閣樓的裝置進行通訊,即便兩者都沒有足夠的 RF 能量直接到達彼此。良好的網狀協定會根據應用的需求,對路由進行最佳化處理。
圖 1:星狀網路 (上圖) 具有中央路由器或存取點,所有的節點必須藉此進行通訊;而在網狀網路中 (下圖),所有的節點會相互協作在網路中傳送數據。(圖片來源:Silicon Labs)
由於網狀網路中的所有裝置會透過相互協作的方式將訊息轉送到目的地,因此網路能夠容許節點丟失、故障或斷電等情形。假設每個節點都在其他多個節點的範圍內,這樣的跳躍和路由能力便會讓網狀網路相當可靠且有容錯能力。這個概念跟網際網路底層的 TCP/IP 協定組合相當類似:數據封包即便並非總是透過直接路徑傳送,最終還是能夠抵達目的地。
市面上有多種競爭性網狀網路協定,雖然它們都採用類似的底層原理,但彼此互不相容。Zigbee、Thread 和 BLE 便是其中的三個例子。這些協定全都採用相同的 2.4 GHz 頻段,但使用不同的網狀協定,因此彼此無法互通。
每個無線網狀協定都有本身的優缺點,開發人員需要決定哪個標準最適合自己。在某些情況下,開發人員可能會希望建立自己專屬的無線網狀網路,而不採用現有的標準之一。如此做的原因可能是為了安全性、產品差異化,或者是要執行某些獨特的功能組合。
Mighty Gecko 介紹
為了獲得最大的彈性並且縮短設計與開發時間,最好選擇支援多重標準的無線網路控制器。這可讓開發人員獲得四個方面的彈性。首先,可延遲選擇網路標準的時間點,等到設計週期的後期階段再做出決定,此時可能會獲得更好的客戶回饋或市場資訊。第二,讓開發人員能夠在實驗室中測試不同的網路標準,並根據經驗選擇最佳標準。第三,能夠使用不同的網路標準,將單一平台部署在多種產品當中。若要服務於全世界不同地區的市場,這種做法特別有用。第四,能夠在現場對裝置或平台進行修改、改善或升級,或許甚至變更支援的網路。
為了向設計人員提供這些彈性,Silicon Labs 開發了 Mighty Gecko 系列的網狀網路無線 SoC 裝置 (圖 2)。這個系列的內部名稱為 EFR32MG,其中包括多個相關成員,且全部都是採用相同的 40 MHz Arm® Cortex®-M4 32 位元處理器核心打造。
圖 2:Mighty Gecko SoC 系列採用 Arm Cortex-M4 打造,幾乎擁有無線網狀網路控制器所需的一切功能。(圖片來源:Silicon Labs)
該系列提供的選擇包含:不同大小的晶片上快閃記憶體 (256、512 或 1024 KB)、不同大小的內部 SRAM (32、64、128 或 256 KB)、封裝類型以及溫度範圍。所有 Mighty Gecko SoC 都指定用於工業溫度範圍 (-40°C 至 +85°C),有些產品還可用於延伸/汽車溫度範圍 (-40°C 至 +125°C)。
作為 SoC,Mighty Gecko 幾乎擁有無線網路控制器所需的一切功能。方塊圖左上部份的無線電區塊顯示兩個獨立的 RF 區段:其中一個是 2.4 GHz 頻段,具有最高 19 dBm 的發射功率,可用於 Thread、Zigbee 及 BLE;另一個則是 Sub-GHz 無線電,具有最高 20 dBm 的功率,可用於實作專屬網路。
這款晶片還具有廣泛的晶片上電源管理功能、1.8 至 3.8 V 的工作電壓範圍、內建的 DC/DC 轉換器,以及「無線電喚醒」(Wake on Radio) 功能,後者可讓整個晶片在低功率待機模式下進入睡眠,直到其收到無線電封包。此外,其內建的訊號強度偵測、前置樣式偵測、訊框偵測以及逾時功能,可讓晶片僅在收到與其相關的無線電發射訊號時才會喚醒,而不必針對所有的無線電流量。
相比從零開始,使用現成的評估與開發套件設計基於 Mighty Gecko 的電路板會容易很多。SLWSTK6000B 網狀入門套件含有建立與測試小型網狀網路所需的一切軟硬體。
此套件包含三組相同的電路板,每組電路板都由主板及可選的插入式無線電板構成 (圖 3)。執行早期評估或軟體開發可能僅需要一組電路板,但測試網路至少需要兩組,而測試網狀功能則需要三組或更多組。因此,SLWSTK6000B 套件配備三組電路板是有道理的。
圖 3:SLWSTK6000B 入門套件包含三組相同的主板以及插入式無線電板,可建立小型網狀網路。(圖片來源:Silicon Labs)
主板的中間有一個看似大型 IC 的元件,實際上是一個 LCD 顯示器 (圖 4)。此 128 × 128 像素的單色顯示器只需要很少的電力,並且會在內部儲存像素資料,因此無需進行重新整理。Mighty Gecko 微控制器晶片則位於較小的插入式無線電板上。
圖 4:SLWSTK6000B 網狀入門套件的主板/無線電板對;位於中央的大型元件是點陣型 LCD 顯示器。(圖片來源:Silicon Labs)
每個主板上的插入式無線電板均可移除且更換,而且套件為每個主板提供兩種不同類型的無線電板 (總共六個無線電板)。套件中的板件均支援 2.4 GHz 頻段的 Zigbee 和 Thread,但也有具有其他 RF 特性與頻率的板件,包括支援 sub-GHz 頻率以供專屬網路使用的板件。
在安裝與執行軟體 IDE 之前先組裝並啟動硬體是個不錯的做法,但不一定非要這樣做。只需選擇無線電板,並將其輕輕壓入主板上相應的排針座即可。電力可透過多種不同方式 (即電池、AC 配接器或 USB) 提供,但 USB 纜線是最簡單的方式,而且還能提供一些其他的好處。USB 連線位於主板的左緣以及無線電板的對面。
電路板通電後,USB 連接器附近的藍色 LED 燈會點亮,並且中央的方形 LED 會亮起。在短暫停頓後,綠色的「心跳」LED 燈也會點亮。
在接下來的步驟中,最好透過 USB 纜線將硬體連接到開發系統。另外,將小型的三位置電源開關 (靠近主板的左下角) 移動到最右邊的「AEM」位置,也是個很好的做法。
軟體安裝
Simplicity Studio 是 Silicon Labs 的多合一整合開發環境 (IDE),可供 Mighty Gecko 以及該公司其他許多微控制器使用。如要下載這款免費軟體,請造訪該公司的 Simplicity Studio 下載頁面。在繼續進行之前,請先安裝並執行 Simplicity Studio。
啟動 Simplicity Studio 並按照提示針對開發套件硬體及所需的軟體,進行一些額外的設定步驟。整個過程相當直覺,但需要您做出一些決定,而且還可能需要執行額外的步驟來註冊硬體。
若主板依照以上建議連接到開發用的電腦,Simplicity Studio 將會在安裝期間偵測硬體的 USB 介面,並且自動下載並設定某些硬體專用的功能。
接下來的步驟便是為此開發套件下載硬體專用的軟體。Simplicity Studio 提供兩種安裝選項:「Install by Device」(依裝置安裝) 或「Install by Product Group」(依產品群組安裝) (圖 5)。不管哪一種方式,最後都會獲得相同結果,但選擇前一個選項會更簡單,因此請按一下大大的「Install by Device」(依裝置安裝) 綠色按鈕。
圖 5:Simplicity Studio 提供兩種載入專案專屬軟體支援的途徑:依裝置安裝或依產品群組安裝。(圖片來源:DigiKey)
Simplicity Studio 應該自動偵測開發板,但若未偵測,手動查找所需的軟體套件也很容易。只需在搜尋方塊中輸入「SLWSTK6000B」即可,如圖 6 所示。按兩下建議的軟體支援套件,然後按一下「Next」(下一步)。
圖 6:在搜尋方塊中輸入 SLWSTK6000B 可以快速找到所需的軟體。(圖片來源:DigiKey)
接下來,Simplicity Studio 會以高亮度顯示可支援此硬體配置的其他軟體。有些軟體僅供已在 Silicon Labs 註冊和/或已註冊硬體的使用者使用。因此,有些選項可能會顯示為灰色且暫時無法使用,如圖 7 所示。
圖 7:有些軟體的存取將視硬體的購買憑證而定。(圖片來源:DigiKey)
供 Thread、Zigbee 及一些其他協定使用的軟體堆疊,需視可支援網狀網路的硬體 (如 SLWSTK6000B 開發套件) 購買憑證而定,因此在繼續進行之前,請先完成以下註冊程序。
首先在 Mighty Gecko 入門套件盒上找到 10 位數的十六位元碼。若在尋找這十位數金鑰時需要協助,請參閱 Silicon Labs Zigbee 與 Thread 知識庫中的文章《存取 Silicon Labs 無線網狀網路堆疊》(Access to Silicon Labs Wireless Mesh Stacks)。然後在 Thread 或 EmberZNet (Zigbee) 的選項上按一下「Register Kit」(註冊套件) 連結,如上所示。這將完成硬體註冊,並解鎖網狀網路協定堆疊。請按「Next」(下一步) 繼續。
最後,Simplicity Studio 會顯示諸多的建議安裝軟體選項清單,包含一個或多個 C 編譯器、可選的即時作業系統、分析工具以及其他許多選項 (圖 8)。您可依照需要手動停用或啟動某些選項,但一般來說,最好的做法是接受建議的軟體選項。準備好後,按「Next」(下一步)。
圖 8:Simplicity Studio 的最終軟體清單會顯示所有建議安裝的軟體選項,包含一個或多個 C 編譯器、可選的即時作業系統以及分析工具。(圖片來源:DigiKey)
在最後一個步驟中,Simplicity Studio 會顯示主軟體授權協議,其中涵蓋所有即將安裝的軟體組件。請閱讀並接受此授權協議,然後最後一次按「Next」(下一步)。
軟體安裝需要數分鐘的時間。完成後,請關閉並重新啟動 Simplicity Studio。現在萬事俱備,可以使用 Thread、Zigbee、藍牙或自訂的專屬協定建立網狀網路應用。Simplicity Studio 包含一些簡單且預先設定的示範程式,以及可供修改的範例程式碼,能讓開發人員有個好的開始。
結論
藉由預先設定的套件 (內含相容的硬體和預先測試的軟體),建立使用網狀網路的無線連線裝置變得相當簡單。硬體運用上的彈性讓您能夠依據經驗針對不同的網路協定 (例如 Zigbee、Thread 以及 BLE) 進行快速評估,而且未來還能夠從某個協定改至另一個。這種更改可以在設計和開發期間進行,也可以在最終產品完成部署之後進行。

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。