中心議題:
- 邏輯分析儀介紹
- 邏輯分析儀的應(yīng)用
- 配合調(diào)試工具單步調(diào)試程序
如今,嵌入式系統(tǒng)的功能越來越強(qiáng),但設(shè)計和驗(yàn)證問題也變得越來越復(fù)雜。善用邏輯分析儀,可以提高查找和解決問題的效率,尤其是最困擾嵌入式系統(tǒng)工程師的時序問題和一些硬件本身固有的問題。
邏輯分析儀介紹
邏輯分析儀(Logic Analyzer)是一種數(shù)字?jǐn)?shù)據(jù)域測試的常用儀器,它可以把測試通道上的邏輯信號捕捉并存儲下來,供設(shè)計人員分析。與示波器相比,邏輯分析儀具有測量通道數(shù)多(一般有32個通道);觸發(fā)功能完善;分析功能強(qiáng)大等優(yōu)點(diǎn)。
邏輯分析儀主要的技術(shù)指標(biāo)有:
* 最高采樣頻率:最高采樣頻率越高,捕獲帶寬越高。
* 通道數(shù):通道數(shù)越多,能同時捕獲的信號數(shù)也就越多。
* 存儲深度:存儲深度越大,能夠記錄的數(shù)據(jù)就越多。
* 輸入阻抗:輸入阻抗越高,對被測信號的影響越小。
* 觸發(fā)方式:觸發(fā)方式越多,使用起來越靈活。
其它技術(shù)指標(biāo)還有:觸發(fā)門限電平范圍、是否有協(xié)議分析工具等等,這些都決定了邏輯分析儀的性能。
現(xiàn)在,邏輯分析儀的發(fā)展出現(xiàn)了兩種趨勢:傳統(tǒng)邏輯分析儀和虛擬邏輯分析儀。傳統(tǒng)邏輯分析儀功能強(qiáng)大,數(shù)據(jù)采集、分析和波形顯示融于一身,但是價格十分昂貴;虛擬邏輯分析儀是PC技術(shù)和測量技術(shù)結(jié)合的產(chǎn)物,觸發(fā)和記錄功能由虛擬邏輯分析儀硬件完成,波形顯示、輸入設(shè)置等功能由PC機(jī)去完成,因此不會對邏輯分析儀性能造成影響,同時節(jié)省了顯示和輸入方面的成本,在開發(fā)工程師熟悉的Windows操作系統(tǒng)下工作操作起來更加方便。與傳統(tǒng)邏輯分析儀相比虛擬邏輯分析儀具有質(zhì)優(yōu)價廉、方面使用等優(yōu)點(diǎn)。
圖1 液晶時序圖
圖2 驅(qū)動數(shù)碼管的時序圖
圖3 讀寫E2PROM存儲器時序圖
圖4 經(jīng)I2C分析插件解碼后的時序圖[page]
圖5 SD卡CMD0命令時序圖
應(yīng)用
通常,嵌入式系統(tǒ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è)備運(yùn)行的環(huán)境比較惡劣,也會有高頻信號串入電路,造成毛刺。如果讓“毛刺”進(jì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是利用邏輯分析儀捕獲的液晶總線時序,并利用測量點(diǎn)來獲取建立時間和保持時間的信息。
驗(yàn)證電路邏輯
電路設(shè)計好后,通常利用邏輯分析儀對輸入輸出信號進(jìn)行采集分析,這樣可以比較可靠的驗(yàn)證電路的邏輯功能。筆者為NiosII處理器設(shè)計了一個用于動態(tài)掃描8位數(shù)碼管的IP核,由邏輯分析儀捕獲的數(shù)據(jù)輸出如圖2所示。
分析總線協(xié)議
在確定關(guān)鍵信號路徑上無“毛刺”干擾,且建立時間和保持時間符合器件時序要求后,下一步就是分析器件間是否能正常傳輸數(shù)據(jù),即協(xié)議是否正確。 MCU通過I2C總線對兩個外部E2PROM存儲器(器件地址分別是0xA0和0xA2)進(jìn)行操作的時序圖如所示。
若工程師要根據(jù)邏輯電平的高低進(jìn)行人工分析,顯然十分困難,更不要說區(qū)分哪些數(shù)據(jù)是發(fā)給E2PROM1的,哪些數(shù)據(jù)是發(fā)給E2PROM2的。這時,可以啟動邏輯分析儀的I2C分析插件。
常見的總線分析插件還有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ū)動程序就可以正常工作了。
綜上所述,邏輯分析儀在嵌入式系統(tǒng)調(diào)試中的應(yīng)用可以從基本數(shù)字電路的時序分析到器件間總線協(xié)議的分析,還以配合在線仿真器調(diào)試驅(qū)動軟件。借助在線仿真器+邏輯分析儀這種新的調(diào)試平臺,可以提高查找和解決問題的效率,增加產(chǎn)品的可靠性并能加快產(chǎn)品的上市速度。