調(diào)試嵌入式系統(tǒng)是一項(xiàng)極具挑戰(zhàn)性的工作,尤其是在涉及通信接口的時(shí)候。信號(hào)之間最微小的定時(shí)偏移可能是接收到信號(hào)或沒有接收到信號(hào)之間的差別。開發(fā)新的驅(qū)動(dòng)程序或接口時(shí),監(jiān)控通信信號(hào)以確保信號(hào)時(shí)序甚至消息內(nèi)容可能至關(guān)重要。嵌入式開發(fā)人員用于調(diào)試和監(jiān)控嵌入式系統(tǒng)上的通信接口的最基本工具之一是邏輯分析儀。
邏輯分析儀是一種功能強(qiáng)大的設(shè)備,它與硬件信號(hào)線進(jìn)行物理接口,類似于多通道示波器的連接方式。與示波器不同,邏輯分析儀不能檢測(cè)電壓范圍,而是檢測(cè)通道是處于數(shù)字邏輯0(地)還是邏輯1(電源)。這有助于從信號(hào)中去除干擾特征,例如上時(shí)間、過沖、噪聲和其他信號(hào)偽像。
大多數(shù)邏輯分析儀至少支持8個(gè)通道的數(shù)據(jù),這些數(shù)據(jù)通常以帶狀圖的形式顯示。這允許每個(gè)通道在同一時(shí)刻與所有其他通道進(jìn)行比較。Saleae邏輯的輸出示例如下所示
邏輯分析儀允許自動(dòng)解碼不同類型的標(biāo)準(zhǔn)接口。根據(jù)分析儀的不同,可能包括UART、SPI、I2C、can等。即使嵌入式開發(fā)人員正在調(diào)試的接口不能自動(dòng)解碼,信號(hào)至少可以記錄下來,然后手動(dòng)解碼。
大多數(shù)邏輯分析儀的功能與示波器相似。這些功能包括調(diào)整定時(shí)、采樣率和觸發(fā)模式。事實(shí)上,一些高端示波器內(nèi)置了一個(gè)邏輯分析儀,可以同時(shí)監(jiān)控模擬和數(shù)字信號(hào)。這些工具給開發(fā)周期帶來的力量是驚人的!
邏輯分析儀不僅可用于監(jiān)控通信,它們也可以用來獲得系統(tǒng)定時(shí)。系統(tǒng)上的備用輸入/輸出線可用于確定一個(gè)功能何時(shí)開始執(zhí)行以及何時(shí)完成。這是通過在切換輸入/輸出位的函數(shù)調(diào)用前后散布一些測(cè)試代碼來實(shí)現(xiàn)的。這對(duì)于分析系統(tǒng)中不同任務(wù)的運(yùn)行時(shí)間非常有幫助??梢栽O(shè)置邏輯分析儀來測(cè)量每個(gè)觸發(fā)器的寬度。然后取平均值,得到平均運(yùn)行時(shí)間。觀察最大和最小運(yùn)行時(shí)間是有幫助的。這可以用來了解整個(gè)系統(tǒng)的時(shí)序。
購(gòu)買邏輯分析儀是工程師為他們的工具平臺(tái)所能做的最好的事情之一。這些工具對(duì)于調(diào)試嵌入式系統(tǒng)是必不可少的。畢竟,你不能調(diào)試你看不到的東西,邏輯分析儀是嵌入式開發(fā)人員的眼睛。