<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 邏輯分析儀在嵌入式系統(tǒng)調(diào)試中的應(yīng)用

          邏輯分析儀在嵌入式系統(tǒng)調(diào)試中的應(yīng)用

          作者:浙江大學電子信息技術(shù)與系統(tǒng)研究所 張晶 時間:2008-03-20 來源:電子產(chǎn)品世界 收藏

            引言

          本文引用地址:http://www.ex-cimer.com/article/80381.htm

            如今,的功能越來越強,但設(shè)計和驗證問題也變得越來越復(fù)雜。善用,可以提高查找和解決問題的效率,尤其是最困擾工程師的時序問題和一些硬件本身固有的問題。

            介紹

            (Logic Analyzer)是一種數(shù)字數(shù)據(jù)域測試的常用儀器,它可以把測試通道上的邏輯信號捕捉并存儲下來,供設(shè)計人員分析。與示波器相比,邏輯分析儀具有測量通道數(shù)多(一般有32個通道);觸發(fā)功能完善;分析功能強大等優(yōu)點。
          邏輯分析儀主要的技術(shù)指標有:

            * 最高采樣頻率:最高采樣頻率越高,捕獲帶寬越高。
            * 通道數(shù):通道數(shù)越多,能同時捕獲的信號數(shù)也就越多。
            * 存儲深度:存儲深度越大,能夠記錄的數(shù)據(jù)就越多。
            * 輸入阻抗:輸入阻抗越高,對被測信號的影響越小。
            * 觸發(fā)方式:觸發(fā)方式越多,使用起來越靈活。

            其它技術(shù)指標還有:觸發(fā)門限電平范圍、是否有協(xié)議分析工具等等,這些都決定了邏輯分析儀的性能。

            現(xiàn)在,邏輯分析儀的發(fā)展出現(xiàn)了兩種趨勢:傳統(tǒng)邏輯分析儀和虛擬邏輯分析儀。傳統(tǒng)邏輯分析儀功能強大,數(shù)據(jù)采集、分析和波形顯示融于一身,但是價格十分昂貴;虛擬邏輯分析儀是PC技術(shù)和測量技術(shù)結(jié)合的產(chǎn)物,觸發(fā)和記錄功能由虛擬邏輯分析儀硬件完成,波形顯示、輸入設(shè)置等功能由PC機去完成,因此不會對邏輯分析儀性能造成影響,同時節(jié)省了顯示和輸入方面的成本,在開發(fā)工程師熟悉的Windows操作系統(tǒng)下工作操作起來更加方便。與傳統(tǒng)邏輯分析儀相比虛擬邏輯分析儀具有質(zhì)優(yōu)價廉、方面使用等優(yōu)點。


          圖1  液晶時序圖


          圖2  驅(qū)動數(shù)碼管的時序圖


          圖3  讀寫E2PROM存儲器時序圖


          圖4  經(jīng)I2C分析插件解碼后的時序圖


          圖5  SD卡CMD0命令時序圖

            本文使用廣州致遠電子有限公司生產(chǎn)LA1032邏輯分析儀進行測量,LA1032邏輯分析儀集成了邏輯分析、總線分析、協(xié)議分析、頻率計、邏輯筆等多種測量分析功能,適用于各種數(shù)字電路的開發(fā)、測量、分析和調(diào)試工作。LA1032邏輯分析儀屬于虛擬邏輯分析儀,性價比非常高。

            應(yīng)用

            通常,設(shè)計可以分為硬件部分和軟件部分,從硬件電路的調(diào)試到驅(qū)動程序的測試幾乎都需要邏輯分析儀的幫助。邏輯分析儀在嵌入式系統(tǒng)調(diào)試中的應(yīng)用可以分為三個層次:

            第一層:測試信號的時序和時間,這是邏輯分析儀最基本的應(yīng)用;

            第二層:利用邏輯分析協(xié)議分析的輔助功能,分析總線協(xié)議;

            第三層:在線仿真器一起構(gòu)成組合調(diào)試平臺,調(diào)試驅(qū)動程序。

            捕獲毛刺

            由于信號間延時不同,多路信號同時變化的瞬間往往會導(dǎo)致邏輯電路輸出中一些不正確的尖峰信號,這些尖峰信號稱為“毛刺”。另外,如果設(shè)備運行的環(huán)境比較惡劣,也會有高頻信號串入電路,造成毛刺。如果讓“毛刺”進入時鐘、清零和置位等對毛刺敏感的輸入端口,將會使電路產(chǎn)生不可預(yù)知的結(jié)果。

            確定關(guān)鍵信號的建立時間和保持時間。

            建立時間(setup time)是指在觸發(fā)器的時鐘信號上升沿到來以前,數(shù)據(jù)穩(wěn)定不變的時間,如果建立時間不夠,數(shù)據(jù)將不能在這個時鐘上升沿被打入觸發(fā)器;保持時間(hold time)是指在觸發(fā)器的時鐘信號上升沿到來以后,數(shù)據(jù)穩(wěn)定不變的時間,如果保持時間不夠,數(shù)據(jù)同樣不能被打入觸發(fā)器。

            液晶既是一個慢速設(shè)備也是一個對時序很敏感的設(shè)備。如果數(shù)據(jù)的建立時間不夠,很容易顯示亂碼。圖1是利用邏輯分析儀捕獲的液晶總線時序,并利用測量點來獲取建立時間和保持時間的信息。

            驗證電路邏輯

            電路設(shè)計好后,通常利用邏輯分析儀對輸入輸出信號進行采集分析,這樣可以比較可靠的驗證電路的邏輯功能。筆者為NiosII處理器設(shè)計了一個用于動態(tài)掃描8位數(shù)碼管的IP核,由邏輯分析儀捕獲的數(shù)據(jù)輸出如圖2所示。
          分析總線協(xié)議

            在確定關(guān)鍵信號路徑上無“毛刺”干擾,且建立時間和保持時間符合器件時序要求后,下一步就是分析器件間是否能正常傳輸數(shù)據(jù),即協(xié)議是否正確。MCU通過I2C總線對兩個外部E2PROM存儲器(器件地址分別是0xA0和0xA2)進行操作的時序圖如所示。

            若工程師要根據(jù)邏輯電平的高低進行人工分析,顯然十分困難,更不要說區(qū)分哪些數(shù)據(jù)是發(fā)給E2PROM1的,哪些數(shù)據(jù)是發(fā)給E2PROM2的。這時,可以啟動邏輯分析儀的I2C分析插件,分析結(jié)果的局部放大圖如。

            常見的總線分析插件還有SPI總線、UART、1-WIRE、CF協(xié)議分析等。插件的種類會因廠商的不同而不同。

            配合調(diào)試工具單步調(diào)試程序

            嵌入式系統(tǒng)的開發(fā)人員通常使用在線仿真器(ICE)來完成軟件的調(diào)試,但隨著嵌入式系統(tǒng)復(fù)雜性的提高,單純的軟件調(diào)試已經(jīng)很難適應(yīng)需求。在線仿真器+邏輯分析儀已經(jīng)構(gòu)成一種新的組合調(diào)試平臺。借助邏輯分析儀可以發(fā)現(xiàn)許多隱匿很深的問題。例如,筆者在為NiosII處理器開發(fā)SD卡驅(qū)動的時候,遇到一個很奇怪的情況,SD卡命令已正確發(fā)送,邏輯分析儀也捕捉到了有效應(yīng)答信號,如圖5所示,但是程序仍然返回應(yīng)答信號等待超時錯誤。

            單步調(diào)試程序發(fā)現(xiàn),雖然邏輯分析儀捕捉到了有效應(yīng)答信號,但是由SPI核讀入數(shù)據(jù)卻是0x80,即SD卡忙。最后,問題的原因是,Altera公司提供的SPI核的CPOL=1,CPHA=0模式并不適合SD卡,將SPI核的工作模式設(shè)為CPOL=1,CPHA=1則驅(qū)動程序就可以正常工作了。

            結(jié)語

            綜上所述,邏輯分析儀在嵌入式系統(tǒng)調(diào)試中的應(yīng)用可以從基本數(shù)字電路的時序分析到器件間總線協(xié)議的分析,還以配合在線仿真器調(diào)試驅(qū)動軟件。借助在線仿真器+邏輯分析儀這種新的調(diào)試平臺,可以提高查找和解決問題的效率,增加產(chǎn)品的可靠性并能加快產(chǎn)品的上市速度。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();