如何透過 1-Wire 通訊有效連接 IoT 端點中的感測器
資料提供者:DigiKey 北美編輯群
2021-06-17
物聯網 (IoT) 與工業物聯網 (IIoT) 端點經常會採用局部控制區域,有些端點甚至要連接遠離主機微控制器位置一公尺外的簡易型感測器。傳統上會使用 SPI 或 I²C 介面以便與這些感測器進行通訊。然而,由於控制演算法日益複雜,要部署的感測器也越來越多,微控制器必須使用更多 SPI 與 I²C 線路才可觸及這些感測器。這會增加接線的複雜性,進而提高配置與維護的成本,尤其是距離拉長的時候。
本文將說明開發人員如何利用 Maxim Integrated 的 1-Wire 通訊協定,以符合成本效益的單一線路加上接地方式連接 IoT 感測器。也會探討 1-Wire 通訊協定的優點,包括大幅延伸感測器的範圍,以及在相同電線上提供電力與數據。接著會介紹一款橋接裝置,可將 1-Wire 訊號轉換成 SPI 或 I²C,也會介紹一款開發套件與軟體,協助設計人員著手開發。
延伸 IoT 與 IIoT 感測器的用途
IoT 與 IIoT 網路的延伸,是在擴充功能性的同時,讓系統與製程更加有效率。這當中涉及使用感測器收集資料。家裡某個房間中可能有一個恆溫器,其中含有溫度感測器,若是自動化大樓或 IIoT 網路則會在房間,甚至在整個大樓或設施中放置多個溫度與濕度感測器。舉例而言,額外的感測器可能放在暖通空調 (HVAC) 管道中並且搭配壓力感測器。保全系統也有可能會使用不同類型的感測器,而且也有可能放在不同的位置。
製造以及輸送帶系統使用感測器的情況也越來越常見,以便監測製程並記錄資料,藉此進行分析,例如如何讓系統更有效率以便節省能源,同時還可提升安全性。
這些應用最常見的感測器有環境型,包括溫度、濕度與壓力;視覺型感測器包括可見光與電容量接近感測器;位置感測器則包括微機電系統 (MEMS) 加速計、MEMS 陀螺儀、振動感測器。MEMS 技術的小型化與進展得以讓封裝內的感測器尺寸比指甲更小,且僅消耗數百 mA。絕大多數感測器都可輕鬆透過 SPI 或 I²C 通訊介面進行存取,兩種介面幾乎任何微控制器都有內建。介接這些簡易型感測器時,若單純只是為了進行溫度取樣,就打造整個 IoT 或 IIoT 端點或子節點,其實是不實際的。因此通常較簡單且更快速的作法是鋪設直接連到感測器的 SPI 或 I²C 通訊線路就好。
在某些情況下,仍會使用類比感測器,例如高溫熱電偶與一些壓力感測器。在這些情況下,微控制器會介接感測器端的 SPI 或 I²C 類比數位轉換器,以便以本機方式對類比感測器進行取樣。如此即可避免類比感測器線路上出現壓降,進而提升準確性。
介接遠端的 SPI 與 I²C 感測器
延伸 SPI 與 I²C 數據線路的範圍,微控制器即可與這些感測器通訊。然而,I²C 的範圍限制在一公尺以內,SPI 的限制也差不多。除此之外,全雙工 SPI 需要四個引腳,包括每個 SPI 的單獨周邊選擇引腳。有鑑於此,若要觸及匯流排上的四個 SPI 周邊,就需要七個引腳,加上電源及接地,總共會有九個引腳。半雙工 I²C 則需要兩個引腳,再加上電源與接地,要連接周邊,共需要四個引腳。同時,許多高速訊號都會增加電磁干擾 (EMI),然後產生串音,這會降低訊號完整性並降低系統可靠度。
需要的解決方案,必須能降低功耗與資料寫入,並簡化操作,同時還可與既有的 I²C 和 SPI 感測器維持相容性。
為了解決連接更遠的遠端感測器問題,同時減少電線數量,Maxim Integrated 開發出 1-Wire 通訊協定,只需透過一條電線加上接地,就能連接絕大多數的 SPI 與 I²C 感測器。比起 SPI 的六條電線與 I²C 的四條,1-Wire 可減少電線數量至兩條,並可同時傳輸數據與電力至最遠 100 公尺 (m)。
運用 1-Wire
使用 1-Wire 時,遠端感測器具有 1-Wire 通訊橋接器,可將 1-Wire 通訊協定轉換成相容的 SPI 或 I²C 訊號,以便介接感測器。1-Wire 橋接器與感測器都只要透過 1-Wire 訊號再加上接地線即可寄生受電。如此即可在小型區域中佈建 1-Wire 訊號,也因為使用更少電線,因此能節省成本。
SPI 與 I²C 都採用專屬時脈訊號,而 1-Wire 則內建時脈並搭配數據訊號。SPI 可針對各個周邊,使用個別選擇訊號對特定周邊進行定址;I²C 則使用沿著數據線傳輸的 7 位元匯流排位址;相較之下,I²C 則採用 56 位元位址,以硬接線方式接到各個單獨的通訊橋接器。寬廣的定址範圍不僅可在匯流排上增加獨特周邊的數量,也可提升安全性,因此惡意人士更不容易猜到 1-Wire 匯流排上周邊裝置的位址。
1-Wire 周邊匯流排的字組大小為 8 位元。微控制器 1-Wire 匯流排主機可位元響應 1-Wire 通訊協定,但亦有簡易 UART 驅動程式的支援。因此甚至能讓 8 位元微控制器當作 1 位元匯流排主機。1 位元匯流排可含有 SPI 或 I²C 周邊,但無法兩者兼備。此一致性可預防匯流排上產生衝突與衝撞,並可簡化通訊協定的編程作業。
實際的 1-Wire 解決方案
若設計人員想要在 1-Wire 匯流排上介接 SPI 或 I²C 周邊,Maxim Integrated 提供 DS28E18Q+T 1-Wire 對 I²C/SPI 橋接器搭配命令定序器。
圖 1:DS28E18Q+T 1-Wire 對 I²C/SPI 橋接器搭配命令定序器可介接 1-Wire 匯流排 IO 與 GND 引腳。(圖片來源:Maxim Integrated)
在圖 1 中,當 IO 處於高位時會從匯流排擷取寄生電源,並可在 SENS_VDD 引腳上取用以供電給周邊裝置。橋接器會緩衝並轉換 1-Wire 命令成適當的 I²C 或 SPI 命令。
IO 引腳與 GND 會連接到 1-Wire 匯流排,並以其狀態機傳送到前端。每個裝置會以 56 位元 ROM ID 進行識別,並以 8 位元的 1-Wire 系列代碼作為前綴,藉此指明 DS28E18Q+T 的修訂版本。如此即可透過微控制器的韌體,提供特定 DS28E18Q+T 的唯一識別資訊,就可靈活地在裝置系列中指出任何變更。裝置有 48 位元的唯一序號,搭配 8 位元的循環冗餘檢查 (CRC) 碼。
前端會使用 144 位元組命令緩衝器,將轉換後的資料傳送到命令定序器,緩衝器中含有來自 IO 匯流排的 128 位元組資料,及內部用的 16 位元組。命令定序器會處理命令並在緩衝器中儲存多達 512 位元組的 I²C 或 SPI 命令,以便之後傳送到周邊裝置,而不是由 1-Wire 匯流排依序處理命令。
此 512 位元組緩衝器亦可讓 DS28E18Q+T 協調其本身內部的電源活動,如此一來在與周邊裝置通訊的時間,也可維持寄生電力。命令定序器可在傳送指令到 I²C/SPI 主控與 GPIO 控制器時維持此時間,並由控制器處理資料,以便符合 I²C 與 SPI 標準。
外接的 470 nF 電容會接至 CEXT 引腳,可在 1-Wire 匯流排工作期間當作 DS28E18Q+T 的儲備電源。寄生電源可供連接到 SENS_VDD 引腳的周邊裝置使用。若是 SPI 作業,四個引腳 SS#、MISO、MOSI 與 SCLK 可提供全雙工通訊給連接的周邊。I²C 作業僅會使用兩個引腳搭配交替功能引腳 SDA 與 SCL。SPI 作業用的引腳 SS# 與 MISO,在 I²C 作業中並不會使用,因此可當作一般用途 I/O (GPIO) 搭配交替功能 SPIOA 與 GPIOB。如此即可提供更高靈活性,可用來點亮感測器位置的診斷 LED,或管理感測器或 ADC 上的配置引腳,以更改裝置的行為。
透過 Maxim Integrated 的 DS28E18Q+T,微控制器上的單獨 UART 就只需要兩條電線加上接地匯流排,即可跟相同 1-Wire 上的眾多感測器進行通訊;每個感測器都可連接到最遠 100 m 外的 DS28E18Q+T。此特點在 HVAC 系統僅可沿著風道佈設兩條電線時特別實用,如此即可在各個出風口全程監測溫度與濕度。監測阻礙可能導致的熱點或冷點,有助於提升系統的效率。
1-Wire 的開發
若要開始使用 1-Wire 通訊協定進行開發,Maxim Integrated 有提供 DS28E18EVKIT# 評估系統。此系統含有硬體開發板 (圖 2) 與軟體。
圖 2:Maxim 的 DS28E18EVKIT# 評估板能讓開發人員輕鬆將 SPI 或 I²C 周邊裝置連接到 1-Wire 匯流排。隨附的軟體可用來對匯流排及周邊裝置的行為進行編程與監測,並有助於產生微控制器裝置的驅動程式。(圖片來源:Maxim Integrated)
此評估板可讓開發人員對 DS28E18Q+T 進行編程與監測。若是開發用途,此板件隨附的 USB 配接器可將板件介接到 Windows 電腦的 USB 連接埠。開發人員需要下載並執行 DS28E18EVKIT# 評估套件軟體協助進行開發。如圖 3 所示,評估軟體可對 DS28E18Q+T 與其連接的周邊進行編程與監測。
圖 3:DS28E18EVKIT# 評估軟體能讓開發人員透過 USB 配接器配置板載 DS28E18Q+T,並監測其行為。512 位元組的命令定序器記憶體可儲存資料,然後傳送到周邊裝置以便執行感測器作業。(圖片來源:Maxim Integrated)
此軟體可傳送命令到 DS28E18Q+T 評估板,並針對目標 SPI 或 I²C 周邊進行配置。可選擇周邊裝置的位址範圍,並用要執行的周邊裝置命令填滿 512 位元組的命令定序器記憶體。此軟體亦可協助針對目標微控制器來配置 UART 驅動程式,如此即可省去學習 1-Wire 通訊協定所有細節的麻煩。開發人員亦可在其應用中使用評估板,即可省下打造並配置感測器節點的時間與心力。
結論
隨著 IoT 與 IIoT 系統添加更多感測器,感測器的接線越趨複雜與昂貴,特別是距離拉長時。傳送電力到感測器也是考量之一,會讓感測器網路的架設更為複雜。如本文所述,Maxim Integrated 的1-Wire 通訊協定與相關硬體能讓感測器網路的介接更加簡便且有效率,只需透過單一電線加上接地,即可供應數據與電力。

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