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