當前的嵌入式設計工程師面臨著系統(tǒng)復雜程度日益提高的挑戰(zhàn)。典型的嵌入式設計可能會包括各種模擬信號、高速和低速串行數(shù)字通信、微處理器總線等等。I2C和SPI等串行協(xié)議通常用于芯片間通信,但不能在所有應用中代替并行總線。微處理器、FPGA、模數(shù)轉換器(ADC)和數(shù)模轉換器(DAC)等集成電路給當前嵌入式設計帶來了獨特的測量挑戰(zhàn)。工程師可能需要解碼兩個IC之間的SPI總線,同時在同一塊系統(tǒng)電路板上觀察ADC的輸入和輸出。圖1 是混合信號系統(tǒng)實例。
對配備4 通道示波器的工程師來說,調試圖1所示的硬件是一件困難而又讓人畏縮的任務。許多工程師用慣了示波器,同時為了節(jié)約時間,可能會選擇購買三四臺示波器,以便一次探測多個信號。邏輯分析儀可以探測多個數(shù)字信號,但調試任務非常復雜,使用邏輯分析儀所帶來的設置和學習過程有些不值得。幸運的是,對面臨這一任務的工程師,泰克提供了一種新型儀器,稱為混合信號示波器(MSO),有效地滿足了他們的需求。泰克MSO4000系列混合信號示波器把16 通道邏輯分析儀的基本功能與泰克4通道示波器倍受信任的性能結合在一起。本應用指南介紹了混合信號嵌入式設計的調試,演示了泰克MSO4000提供的業(yè)內領先的性能。
圖1. 簡化的采集/ 儀器系統(tǒng)。
使用MSO4000 同時調試多個串行協(xié)議
嵌入式設計工程師通常使用串行協(xié)議,如I2C和SPI,以簡化電路板上系統(tǒng)模塊之間的通信。這些串行協(xié)議可以降低布線的復雜性,但傳統(tǒng)示波器一直很難調試其實現(xiàn)方案。設計人員一般會被迫手動解碼采集的串行數(shù)據(jù),或從示波器導出數(shù)據(jù),以進行后期處理和解碼。使用示波器解碼串行數(shù)據(jù)可以為嵌入式設計工程師節(jié)約無數(shù)個小時的調試時間,允許工程師實時查看硬件和軟件的影響。
盡管DPO4000系列示波器可以使用最多四條通道探測串行數(shù)據(jù),但許多常用串行協(xié)議要求三條或三條以上的線。工程師通常需要同時解碼和顯示多條串行總線,觀測其時間相關性。泰克MSO4000系列把DPO4000 系列的串行觸發(fā)和解碼功能與16條新增數(shù)字通道結合在一起。除I2C、SPI 和CAN 外,MSO4000還支持觸發(fā)和解碼RS-232和并行總線。通過MSO4000,工程師可以同時探測和解碼多條串行總線及自定義并行總線。下面的實例使用MSO4000,調試圖1所示的嵌入式設計中復雜的多芯片通信錯誤。
在系統(tǒng)最初調試過程中(如圖1 所示),系統(tǒng)偶爾遇到電路板上狀態(tài)LED指示燈表明發(fā)生故障的情況。狀態(tài)LED指示燈報告的錯誤不明確,導致系統(tǒng)工程師不能確定問題是由硬件導致的還是由軟件導致的。以前,類似錯誤一直源于模擬復用器輸入上的信號質量差,但工程師已經成功更換了導致信號保真度問題的硬件。由于系統(tǒng)工程師懷疑錯誤可能源于復用器輸入之外的其它來源,他決定探測到復用器的模擬輸入及多條數(shù)字總線,以全面查看系統(tǒng)狀況。MSO4000 為調試提供了4 條模擬通道和16 條數(shù)字通道,它連接到圖2 中標為1-4 的信號上。
圖2. 帶有探測點的采集子系統(tǒng)。
圖3. MSO4000顯示了I2C、SPI和并行總線及CH1模擬信號。
圖3 顯示了MSO4000 同時探測SPI 總線(1)、I2C 總線(2)、3位并行總線(3)和模擬輸入(4)的屏幕快照。由于錯誤可以被隔離到某個子例程,因此MSO4000配置成單次采集,觸發(fā)特定的I2C活動。把記錄長度設置成1M點保證了可以準確地捕獲I2C總線上事件周圍的所有有用信息。工程師運行子例程,迅速查看MSO4000,了解系統(tǒng)中發(fā)生的情況。CH1上顯示的MUX 輸入上清楚的模擬波形確認了工程師的疑問,表明硬件問題已經得到解決,錯誤發(fā)生在其它地方。MSO4000觸發(fā)和解碼從微處理中寫入的I2C 數(shù)據(jù)。工程師注意到SPI上的活動及在傳輸I2C數(shù)據(jù)后很快顯示了標有D1和D2的信號。工程師懷疑這些總線上的活動,因為他認為執(zhí)行的功能主要涉及LCD控制器。由于MSO4000已經解碼I2C數(shù)據(jù)值,因此工程師可以看到微處理器已經把I2C數(shù)據(jù)寫入地址0x77。地址0x77是FPGA 的地址,但工程師認為子例程把數(shù)據(jù)寫入地址0x76,這是LCD控制器的地址。
圖3. MSO4000顯示了I2C、SPI和并行總線及CH1模擬信號。
圖4 顯示了同一采集,其中使用Wave Inspector放大SPI 和并行總線的細節(jié)。SPI 數(shù)據(jù)在屏幕上解碼成從主設備(FPGA)到從設備(MUX)的寫入,數(shù)據(jù)值為0x15。這一SPI 命令指示LWTYMUX 改變信號路徑使用的輸入。輸入信號中這種意想不到的變化導致FPGA向并行總線上的狀態(tài)LED指示燈發(fā)送一個錯誤代碼。在圖4中也可以觀察到這些并行總線的錯誤代碼和解碼。嵌入式設計工程師可以迅速確定是軟件漏洞導致了系統(tǒng)問題,因為MSO4000能夠同時查看和解碼所有相關信號。軟件編程人員錯誤地從微控制器到FPGA 寫入I2C 數(shù)據(jù),而分組的預計目標是LCD 控制器。
圖4. Wave Inspector 用來放大和顯示分組細節(jié)。
下一代數(shù)字波形顯示幫您揭示問題 在改動系統(tǒng)軟件,校正上一節(jié)中介紹的地址漏洞后,嵌入式設計工程師繼續(xù)測試更多的系統(tǒng)功能。在進行測試時,他注意到狀態(tài)LED指示燈偶爾指明錯誤。與上一節(jié)中描述的錯誤不同,工程師不確定怎樣重建看到的錯誤。錯誤似乎具有隨機特點,不能隔離到系統(tǒng)的某個功能或子例程。
嵌入式設計工程師對錯誤的隨機特點感到很迷惑,不確定從哪兒入手查找來源。查找錯誤來源的一個選項是使用示波器隨機探測系統(tǒng),以期捕獲隨機事件。盡管工程師過去一直使用這種方法,但他知道,連接到所有相關信號、正確配置的MSO4000可以用少得多的時間找到錯誤。上一節(jié)中大多數(shù)探測點仍連接到MSO4000上。CH1 探頭移動到活動的MUX 輸入上,這是來自傳感器3 的數(shù)字信號。除這4個探測點外,工程師使用一條數(shù)字通道探測MUX 輸出。[!--empirenews.page--]
圖5. MUX_OUT 上的白色邊沿表明提供了更詳細的信息。
FPGA 通過3 位并行總線傳送值0x7,表明已經發(fā)生錯誤。為隔離問題,MSO4000配置成捕獲單次采集,它把觸發(fā)事件設置成并行總線值0x7。圖5 顯示了采集結果。在這種情況下,并行總線解碼和觸發(fā)節(jié)約了時間,減少了混淆,因為可以簡便地隔離錯誤條件。這一采集過程中使用的1M記錄長度允許工程師觀察觸發(fā)事件前和觸發(fā)事件后信號的關鍵細節(jié)。乍一看,圖5 所示的信號似乎行為正常,但系統(tǒng)工程師很快確定MUX_OUT信號上出現(xiàn)了獨特的兩個邊沿轉換。圖5所示的MUX_OUT信號上的白色轉換向用戶表明這些信號部分存在著更多的信息。MSO4000的多邊沿檢測功能突出顯示了波形區(qū)域,通過縮放可以揭示頻率較高的數(shù)字脈沖。在使用Wave Inspector放大波形細節(jié)時,圖6 揭示了第一個白色轉換背后的細節(jié)。圖5中畫出的白色轉換的信號部分實際上是MUX_OUT信號上的一個毛刺。
圖6. Wave Inspector 揭示了MUX_OUT 信號上的毛刺。
圖6顯示了MSO4000中模擬通道和數(shù)字通道之間的時間相關性。CH1(SENSOR_3)上顯示了到MUX的輸入,數(shù)字通道D14(MUX_OUT)上則可以觀察到MUX輸出。工程師注意到,盡管MUX 輸出有一個毛刺,但到MUX的輸入似乎沒有毛刺。在使用數(shù)字通道識別毛刺后,工程師決定把CH2連接到MUX輸出上,更仔細地進行考察。圖7顯示了采集結果,其中MSO4000 仍配置成觸發(fā)并行總線值0x7。圖7 關閉了SPI 和I2C總線的波形,把重點放在相關的主要信號上。在MUX 輸入和輸出上使用模擬探頭,發(fā)現(xiàn)輸出上存在的毛刺在輸入信號上并不存在。圖7顯示,MUX_OUT信號上的毛刺出現(xiàn)了很短的時間,然后FPGA發(fā)送錯誤代碼。這兩個信號之間的時間關系表明,毛刺可能是工程師看到的問題。工程師使用同一配置重復采集幾次,看到每次的行為都與圖7類似。
圖7. CH2 顯示MUX_OUT 的更多細節(jié)。
在分析MSO4000的屏幕快照后,嵌入式設計工程師懷疑串擾可能是MUX_OUT信號上的毛刺來源。在檢查圖5 中監(jiān)測的所有信號后,沒有任何信號是串擾來源。在更詳細地檢查電路板布局時,工程師找到印刷電路板(PCB)上MUX_OUT軌跡旁邊有一個通路。工程師使用CH1探測PCB上的通路,等待并行總線的另一個觸發(fā)。得到的屏幕快照如圖8所示。圖8 顯示,CH1 上捕獲的信號從低到高轉換在時間上與MUX_OUT信號的正毛刺直接相關。相應地,從高到低轉換直接與MUX_OUT信號的負毛刺直接相關。
在用一段時間在電路板上對干擾信號重選路由后,工程師把MSO4000 配置成觸發(fā)CH1。圖9顯示MSO4000觸發(fā)CH1轉換,但在MUX_OUT信號上沒有顯示毛刺。由于MUX_OUT信號不存在毛刺,因此并行總線沒有生成錯誤條件。在改動電路板之后,串擾消失了,允許嵌入式設計工程師完成系統(tǒng)評估。
圖8. CH1 顯示了MUX_OUT 信號中的串擾來源。
圖9. 在改動PCB 后,串擾消失了。
小結
如本應用指南所示,MSO4000 為開發(fā)和調試嵌入式設計的工程師提供了一個異常強大的工具。MSO4000 把16條時間相關的數(shù)字通道與泰克4通道示波器倍受信任的性能和直觀的界面結合在一起。工程師現(xiàn)在可以使用MSO4000,而不用搜索多臺示波器或學習怎樣操作邏輯分析儀。MSO4000能夠同時觸發(fā)和解碼并行總線和串行標準,如I2C、SPI、CAN 和RS-232,對評估當前嵌入式設計中硬件和軟件復雜交互的工程師提供了寶貴的工具。