開發2.4GHz ZigBee無線網路應用時,設計工程師通常會面臨系統分割的選擇,例如對ZigBee的連接性及網路處理解決方案而言,最佳的整合層級為何?從效能、功耗及成本的角度來看,何者是最適合的選擇?將2.4GHz無線收發器及處理核心整合為單晶片解決方案的ZigBee系統單晶片(SoC)比較好?還是具有獨立收發器及主處理器的離散式方案較佳?
在解決這些問題之前,工程師應先仔細檢視ZigBee技術。根據國際電機電子工程師學會(IEEE)針對低功率無線網路所推出的802.15.4媒體存取控制/實體(MAC/PHY)規格,ZigBee藉由增加網狀網路通訊協定及應用文件檔案擴展IEEE 802.15.4規範,讓各裝置間能夠完全互相操作。ZigBee使用高度可靠、可擴充的網狀網路協定,可支援數千個節點,另外,ZigBee應用文件檔案則針對家庭/商業自動化、智慧能源、健康醫療及零售設備定義共通語言。ZigBee也提供設備的測試及認證,以確保從射頻(RF)到應用層的互相操作性。
針對感測及控制網路,ZigBee已被設計為高度可靠、低成本、低功率的無線網路解決方案。系統分割型式的選擇最終將對ZigBee解決方案的網路效能、功耗及成本造成極大的影響。
ZigBee系統分割型態各有好處
圖1顯示三種基本的系統分割選擇:ZigBee系統單晶片、ZigBee網路協同處理器(NCP)加上主處理器,以及ZigBee收發器加主處理器。
|
圖1 ZigBee系統分割選擇 |
在系統單晶片的設計中,符合IEEE 802.15.4標準的射頻是嵌入式處理器的周邊,所有的封包及應用處理都在處理器單晶片內執行。系統單晶片一般會包括微處理器(MPU)的硬體周邊,以支援運算負荷繁重的功能,例如進階加密標準(AES)的加密。
在網路協同處理器的設計中,ZigBee堆疊是在射頻及網路處理器晶片上運作,然後運用其序列周邊介面(SPI)或通用異步收發器(UART)介面連結至主處理器。主處理器僅處理那些被設備應用傳送或接收的封包。至於那些路由封包的處理,包括安全處理,則是在網路處理器上進行,毋須中斷主處理器,因此,SPI或UART處理時間的影響僅會發生在封包的來源或目的地。
一個ZigBee收發器僅包含射頻收發器及關鍵時序的MAC/PHY功能,主處理器則支援MAC的上層、網路協定及應用編碼。所有的封包都必須傳送至主處理器進行處理,僅進行路由的那些封包則會被傳送至主處理器後再返回至射頻端,以進行再次傳輸,基本上是透過UART或SPI埠進行。通常AES加密的運作是在收發器元件上執行,因此需要額外的UART或SPI傳輸支援安全處理。
ZigBee網路效能與路由器相關
ZigBee系統設計須考慮吞吐量(Throughput)及延遲(Latency),以確保網路可符合產品的設計目標。吞吐量是指網路可支援多少的數據傳輸量,會影響網路的擴充性;延遲則是指節點間的訊息傳輸速度,亦即網路的回應能力,兩者皆為非常關鍵的指標。吞吐量及延遲都與ZigBee系統元件分割有關,須納入系統架構考量。
ZigBee是一種複合式的網狀網路協定,包括保持在啟動狀態的路由器中樞,以及一般是在睡眠狀態中的終端裝置。路由器負責在終端裝置間,或是從終端裝置至中央控制器傳遞訊息。ZigBee網路的吞吐量及延遲,會與路由器處理數據封包,以及將封包傳送至適當目的地的速度有關。
路由器的效率與系統分割有關。若系統使用系統單晶片或網路協同處理器,則可以在不喚醒或中斷主處理器的情況下處理所有的路由,封包一般會在5~10毫秒(ms)內被傳送。若系統使用收發器,則這個收發器就必須喚醒或中斷主處理器去處理每一個封包,這樣的喚醒或中斷延遲時間可能會大於100微秒(μs)。此外,數據封包必須在收發器和主處理器間傳送。ZigBee封包可能大至127位元組(1,016位元),以一般的SPI/UART數據傳輸率傳送一個封包至處理器後再返回收發器,可能須耗費0.5~4毫秒。ZigBee在MAC及網路層,有時甚至在應用層都會使用AES加密,若主處理器或收發器都未支援高效AES加密,則可能須額外的UART或SPI數據傳輸。
|
圖2 延遲與ZigBee系統分割關係 |
圖2顯示系統分割對於小型5位元組有效負載的網路效能的影響,其中僅ZigBee收發器支援AES加密。在使用系統單晶片或網路協同處理器的網路中,單一中繼點(Hop)的延遲為10毫秒,在使用收發器的網路中則是20毫秒。由於每個節點須花費兩倍的時間去處理一個封包,因此使用收發器的網路吞吐量會減少50%,這會讓可支援裝置的最大活動數量減半。針對那些極為重視時間的應用,例如照明,延遲的增加將限制可允許的中繼點最大數量,如此會降低網路的擴充性及可靠性。
系統分割影響電池壽命
ZigBee通訊協定的設計,是為讓休眠中的裝置可控制電池壽命。休眠中的裝置會設定喚醒及與網路互動的時程,讓設計人員能在電池壽命及資料更新間取得適當的平衡。此外,當原本休眠中的終端裝置喚醒時,ZigBee協定毋須再次進行同步化,因此可很有效率地將數據傳送至源頭。
在ZigBee網路中,最重要的功耗指標是終端節點的電池壽命。由電池供電的終端節點一般會處於休眠狀態,僅會定期喚醒檢查是否有任何有用的資料自網路傳送過來、當電池供電的終端裝置處於休眠狀態時,電力消耗主要是由漏電流造成。
在數據傳輸期間,電池供電的終端裝置須喚醒處理器、啟動收發器、執行明確的通道評估、傳送數據要求、接收同意,而且可能還要接收來自網路的資料。這些功能大部分是在MAC層執行,毋須與ZigBee網路堆疊互動,若網路有資料要傳送給終端節點,則將資料由路由器傳送至終端節點所需的時間,便和系統分割有關。若此路由器是一個系統單晶片或網路協同處理器,則資料要求可在內部處理,而路由器回應的時間一般是在2~3毫秒內;若此路由器使用收發器,則此收發器須喚醒或中斷主處理器、等待處理器創造數據封包,以及經由序列埠接收封包,因此會增加約10毫秒的延遲。在延遲期間,終端節點的接收器仍然須維持啟用狀態,而這會大幅降低電池壽命,換句話說,路由器上的元件分割對於終端裝置的電池壽命會產生負面的影響。
ZigBee SoC成本低
無線SoC解決方案,例如市面上的Ember ZigBee SoC或網路協同處理器的成本,通常會低於兩個晶片的收發器/主處理器解決方案。印刷電路板(PCB)的成本也會較低,因為所需的電路板面積較少,組裝元件以及裝置間需要路由的訊號也較少。另外,矽晶片的總成本也可降低,這是因為消除多餘的功能,如MAC/PHY和網路層所需的AES硬體加速,也節省用來溝通收發器及主處理器的序列埠及接腳。若ZigBee系統擁有較大型的處理器,則開發人員通常會認為在設計中增加一個收發器較具成本效益,然而,在這些系統中,應該將對於延遲及吞吐量的影響列為設計選擇的考量因素。
針對不需主處理器的ZigBee終端裝置及路由器,無線系統單晶片系統分割方法,可提供最佳的網路效能、最低的功耗及最低的總成本。若ZigBee系統須具有一個主處理器,則網路協同處理器系統分割方法,可提供最佳的效能及最低的功耗,且最不會影響主處理的效能。
(本文作者為芯科實驗室ZigBee產品行銷總監)