示波器序列通訊協定除錯
- Sonya Chan

- 9月7日
- 讀畢需時 7 分鐘
準備好深入 UART、I2C、(Q)SPI 與 CAN 匯流排的迷人世界,您不僅能學習這些序列通訊協定,還能探索如何使用示波器進行除錯,從實用技巧到真實世界的洞見,我們已準備好基礎知識,協助您精通協定除錯。
邊緣運算裝置通常包含一個微控制器 (MCU),用於連接感測器、致動器、按鈕與顯示器,這些離散裝置多數透過 UART、I2C 或 CAN 等數位通訊協定與 MCU 進行通訊,使用示波器對這些序列通訊協定除錯的一項優勢在於,訊號數量較少,探測更為容易,對比過去的寬並行匯流排更具效率;配合探棒使用,示波器提供深度的分析工具組,否則將需要獨立的協定分析儀,以下是一些使用示波器解碼序列通訊協定的技巧,以及針對最常見序列通訊協定的入門資訊。
示波器、邏輯分析儀與專用協定分析儀比較
在檢視協定解碼時,您可以使用示波器、邏輯分析儀或專用的協定分析儀,但這三者中哪種工具最為合適?以下是對這三種工具的簡要比較。
邏輯分析儀的通道本質上是數位比較器,因此,它們僅能判斷訊號是高電位還是低電位,典型的邏輯分析儀至少有 8 個通道,部分型號甚至提供 32 個或更多;協定分析儀與邏輯分析儀類似,但擁有針對協定的專屬硬體與軟體,用於解碼序列鏈路。
相比之下,示波器擁有高解析度,但通道數通常限制在 2 或 4 個。增加的位元深度讓您能夠觀察訊號的類比特性。
所幸,隨著現代示波器的發展,現在已鮮少需要在這三種選項中做出取捨,許多示波器,包括所有 Rohde & Schwarz 型號,同時提供邏輯通道,涵蓋類比與數位訊號。這類示波器被稱為「混合訊號示波器」。
部分示波器甚至內建序列匯流排的協定解碼工具!舉例來說,R&S®RTB2000、R&S®MXO 4 或 R&S®RTO 6 等機種,內建針對常用序列通訊協定的協定解碼與觸發功能。
示波器在協定除錯中的獨特優勢
當檢測到協定錯誤時,示波器尤其能發揮作用。透過取樣匯流排的類比通道,您可以觀察到在協定錯誤發生時或其周圍,是否存在類比訊號問題,這在邏輯分析儀上是極少見的狀況。
由於存在多種序列通訊協定,且各示波器型號的支援程度不一,以下針對最常見的匯流排,提供一些電路除錯的注意事項與技巧。
UART
通用非同步收發器 (UART,Universal Asynchronous Receiver/Transmitter) 有時也簡稱為「序列通訊」,其傳輸 (TX) 與接收 (RX) 訊號線沒有獨立時脈。此協定為點對點連接,表示您通常只有兩個裝置相連。
從某種角度來看,UART 是最簡單的除錯對象,因為您只需觀察最少一個訊號:TX 或 RX,然而,在實務上,通常需要同時觀察兩個方向的訊號,才能理解完整的通訊內容。


UART 具備靈活的訊框定址方式,包含可變數量的開始與停止位元,以及一個可選的同位元,資料負載通常為 8 位元,由於 UART 是非同步的,主機與裝置必須針對這些參數以及鮑率 (Baud Rate) 達成一致。這些要求在除錯時同樣適用於示波器。

SPI 與 QSPI
SPI (Serial Peripheral Interface) 又稱為「序列週邊介面」,其運作模式類似於移位暫存器,所有裝置共用時脈、主機輸出與次級輸入 (MOSI) 訊號,以及主機輸入與次級輸出 (MISO) 訊號,這些訊號對應於 UART 的「TX」和「RX」,但它們明確標示了資料移動的方向;例如,MOSI 的資料從主機傳輸到裝置,而 MISO 的資料則從裝置傳輸到主機。這使得探測錯誤訊號的可能性大大降低!

SPI 協定支援多個裝置在同一匯流排上運作,每個裝置都有一個晶片選擇 (CS) 訊號,用於區分不同裝置;然而,若設計中僅有一個 SPI 裝置,則可能會省略或始終啟用 CS 訊號,同樣地,若資料僅單向傳輸,則只需連接相應的 MOSI 或 MISO 訊號即可。
使用示波器進行除錯時,這同樣適用,若匯流排上只有一個裝置,則無需探測 CS 訊號。若資料僅單向移動,則多數解碼器僅需探測一個訊號即可處理。然而,時脈訊號是永遠需要的。
什麼是 QSPI?
四線式 SPI (QSPI,Quad SPI) 協定是一種常用於快閃記憶體晶片的介面標準。與 SPI 類似,它具有時脈、致能與資料接腳。
I2C (Inter-Integrated Circuit)
I2C (Inter-Integrated Circuit) 協定最初由飛利浦開發,後併入 NXP,部分支援 I2C 的裝置為規避商標或授權問題,會使用「兩線式 (two-wire)」的名稱。

匯流排上的所有裝置共用時脈與資料線,且每個裝置都必須具備獨一無二的位址,一般來說,使用 I2C 的感測器或裝置會具備一個基本位址,並透過少數幾個位元來設定位址的最低有效位元,當匯流排上有多個相同感測器時,此技術非常實用,同時也能將接腳數量降至最低。
在示波器上對 I2C 進行除錯需要兩個通道。時脈僅在主機與裝置通訊時運行,因此示波器必須同時擷取時脈與資料訊號。
I2C:7 位元或 8 位元 (或 10 位元)
I2C 位址可能會因兩種不同的位址模式而產生混淆:7 位元與 10 位元。7 位元模式更為常見,但其具備一個容易混淆的特點:有時它被視為 8 位元位址!

這種混淆來自於位址後方的讀/寫 (R/W) 位元,對於 READ (讀取) 交易,此值為「1」;對於 WRITE (寫入) 交易,此值為「0」,因此,若在除錯 I2C 時,預期的位址觸發失敗,請嘗試將位址左移一位元並包含 R/W 值。
CAN 匯流排

CAN (Controller Area Network) 匯流排最初開發用於汽車,並持續在運輸產業中被廣泛使用,其差分訊號傳輸提高了對電氣雜訊的抗擾性,使其成為工業應用的理想選擇。
儘管是差分訊號,但在多數情況下,它不需要差分示波器探棒,相反,只需在 CANH 或 CANL 訊號上使用單端探棒,就足以讓示波器解碼器對匯流排進行解碼。
CAN 2.0 共有兩種版本:基本型 (11 位元位址) 與擴展型 (29 位元位址)。它們的資料訊框在仲裁與控制欄位上略有不同,但其封包其餘部分均相同。

CAN 匯流排僅使用兩條訊號線,且皆非時脈,因此,若解碼內容顯得混亂,請嘗試調整取樣點,以改變解碼器取樣資料的位置。
解碼與觸發:硬體與軟體方法的區別
解碼是一種後處理方法,用於分析已擷取的波形,並將協定解碼為人類可讀的格式,通常,解碼後的資料會以波形顯示的疊加圖層或表格形式呈現。(部分示波器,如 R&S®RTE、RTO6 與 RTP,也提供額外的分析工具,例如匯流排利用率。)具備深記憶體的示波器可以擷取長時間的訊號,然後進行搜尋以找出感興趣的事件 (或這些事件發生的頻率),此技術主要是軟體層面的方法。
然而,觸發則發生在示波器的觸發系統內部,協定觸發持續監控序列匯流排,以確定何時發生事件,例如,兩個常見的觸發條件是 I2C 位址或錯誤狀況 (如 NAK 或同位元錯誤),觸發選項通常僅限於少數與協定相關的交易,且可能受限於位址、資料或負載的位元深度,此技術主要是硬體層面的方法。
有時,示波器會結合這兩種技術:觸發系統可能會「自動觸發」,而協定解碼器則找出感興趣的事件,並將其置於螢幕中央。如果您的示波器「遺漏」了某些事件,請查閱手冊以確定哪些觸發條件屬於「硬體」基礎,哪些屬於「軟體」基礎。
總結
多數邊緣運算裝置使用 UART、SPI、I2C 或 CAN 等數位協定與微控制器進行通訊。
示波器提供廣泛的工具,用於解碼序列通訊協定。
部分示波器甚至內建序列匯流排的協定解碼工具。
UART 沒有獨立的時脈,且為點對點連接,表示僅有兩個裝置相連。
SPI 運作類似於移位暫存器,所有裝置共用時脈、MOSI 與 MISO 訊號。
對於 I2C,除錯需要兩個通道。時脈僅在主機與裝置通訊時運行,因此示波器必須同時擷取時脈與資料訊號。
儘管 CAN 匯流排是差分訊號,但通常不需使用差分示波器探棒。相反,只需在「CANH」或「CANL」訊號上使用單端探棒,就足以讓示波器解碼匯流排。
所有 Rohde & Schwarz 示波器都具備可選的序列通訊協定功能。可用的觸發條件會因示波器型號及其頻寬能力而異。然而,大多數機種都支援本文列出的基本序列通訊協定。
對於一般用途且涉及典型序列通訊協定的除錯,可考慮 RTB2000 或 RTM3000。對於速率快於 480 Mbit/s 的協定,可考慮 MXO4 (1.5 GHz)、RTO 與 RTP 示波器。



