泰克示波器調試嵌入式系統設計中的串行總線
今天,嵌入式系統幾乎遍布在人類社會的每個角落。 嵌入式系統可以簡單定義為屬于大型系統或機器一部 分的一種專用計算機系統,其目的是為該系統或機器 提供監測和控制服務。典型的嵌入式系統在開機時會 開始運行某些專用應用,直到關閉時才會停止。當前 設計和生產的幾乎每個電子設備都是嵌入式系統。
盡管串行總線提供了大量的優勢,但它們也給嵌入式 系統設計人員帶來了某些重大挑戰,因為它以串行方 式傳送信息,而不是以并行方式傳送信息。本應用指 南討論了嵌入式系統設計人員的常用挑戰,及怎樣 使用下述系列示波器中的功能迎接這些挑戰:MSO/ DPO70000、DPO7000、MSO/DPO5000、MDO/ DPO4000、MDO3000 和 MSO/DPO2000 系列。
并行結構與串行結構比較 在并行結構中,總線的每個組件都有自己的信號路徑。 可能有 16 條地址線、16 條數據線、一條時鐘線和各 種其它控制信號。通過總線發送的地址或數據值會通 過所有并行線路同時傳送。因此,使用大多數示波器 和邏輯分析儀中的狀態觸發或碼型觸發功能觸發關心 的事件相對簡便。同時,可以簡便地一目了然地了解 在示波器或邏輯分析儀顯示屏上捕獲的數據。例如, 在圖中,我們使用邏輯分析儀從微控制器中采集時 鐘線、地址線、數據線和控制線。通過使用狀態觸發, 我們隔離了我們查找的總線。為“解碼”總線上發生 的情況,我們需要查看每條地址線、數據線和控制線 的邏輯狀態。在串行總線中,所有這些信息都必須以 串行方式在相同的少數導線 ( 有時是一條 ) 上發送。 這意味著一個信號可能包括地址信息、控制信息、數 據信息和時鐘信息。例如,看一下圖中所示的控制 器區域網 (CAN) 串行信號。
I2 C 或“I squared C”是指集成電路間總線。它最初 是飛利浦公司在 20 世紀 80 年代研制的,為把控制 器連接到電視機上的外設芯片提供了一種低成本方 式,但之后其已經發展成為嵌入式系統設備之間通信 的一項全球標準。
I2 C的物理兩線接口由雙向串行時鐘 (SCL) 和數據 (SDA) 線組成。I2 C 支持總線上多個主從設備,但一 次只能激活一個主設備。任何I2 C設備可以連接到總 線上,允許任何主設備與從設備交換信息。每臺設備 都使用唯一的地址識別,它可以作為發射機或接收機 操作,具體取決于設備功能。在開始時,I2 C 只使用 7 位地址,但隨著時間推移,它演變成也支持 10 位地址。 它支持三種位速率:100 kb/s ( 標準模式 )、400 kb/s ( 快速模式 ) 和 3.4 Mb/s ( 高速模式 )。最大設備數量 取決于 400 pf 的最大容量,或大約支持 20-30 臺設備。 I2 C標準規定了下述格式,如圖 4 所示:
Start - 表明設備控制總線,一條消息將開始傳送
Address - 7 位或 10 位數字,表示將要讀取或寫 入的設備地址
R/W Bit - 1 位,表明是否將從設備中讀取數據或 向設備寫入數據 Ack - 1 位,來自從設備,確認主設備的操作。通常每個地址和數據字節有一個確認位,但不總是有 確認位
Data - 從設備中讀取或寫入設備的字節的整數
Stop - 表明消息結束,主設備已經釋放總線
有兩種方式對I2 C分組、以進行解碼:7 位 + 讀或寫 (R/ W) 位方案,8 位 (1 字節 )、其中作為地址的一部分包 括 R/W 位。7 位地址方案是固件和軟件設計工程師遵 守的指定方案。但是,許多其它工程師使用 8 位地址 方案。泰克示波器可以在任一方案中解碼數據。