邏輯分析儀針對特定協(xié)議的觸發(fā)功能
1引言
為了節(jié)省存儲空間,邏輯分析儀都會有觸發(fā)功能。該功能可以讓邏輯分析儀檢測到被測信號滿足設(shè)定的條件后才開始采集數(shù)據(jù),而且與示波器只具備上升沿、下降沿等簡單的觸發(fā)方式相比,邏輯分析儀的觸發(fā)功能更加強大。邏輯分析儀不但可以對信號的上升沿、下降沿等進行觸發(fā),還提供了總線觸發(fā)、脈寬觸發(fā)、延遲觸發(fā)等多種方式。邏輯分析儀為了使用方便通常也具有協(xié)議分析功能,可以對常用的協(xié)議進行解碼。現(xiàn)在有些高檔的邏輯分析儀可以將上述的兩種功能結(jié)合起來實現(xiàn)一個新的功能,即針對特定協(xié)議的觸發(fā)功能。
2針對特定協(xié)議的觸發(fā)功能
我們在用邏輯分析儀采集UART數(shù)據(jù)時,肯定有過這樣的想法:可不可以讓邏輯分析儀采集到開始位時才觸發(fā),或者可不可以采集到的UART的數(shù)據(jù)等于0x31時才觸發(fā)?這對于傳統(tǒng)的邏輯分析儀來說確實是個不小的挑戰(zhàn),因為傳統(tǒng)邏輯分析儀的上升沿、下降沿、總線觸發(fā)、脈寬觸發(fā)、延遲觸發(fā)等都滿足不了這個要求。就算有些邏輯分析儀有自定義高級觸發(fā)功能,也要求使用者對協(xié)議非常熟悉,而且如果波特率或者奇偶校驗等信號的參數(shù)發(fā)生變化,又要重新設(shè)置觸發(fā)條件,使用起來既繁瑣又容易出錯。為了解決這個問題,有些邏輯分析儀廠商開發(fā)出了針對特定協(xié)議的觸發(fā)功能。下面就以I2c協(xié)議為例來說明這個功能的使用。
3I2C總線介紹及工作原理
I2C(Inter-Integrated circun)總線是一種由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。I2C總線最主要的優(yōu)點是其簡單性和有效性。由于接口直接在組件之上,因此I2C總線占用的空間非常小,減少了電路板的空間和芯片管腳的數(shù)量,降低了互聯(lián)成本。
I2C總線是由數(shù)據(jù)線SDA和時鐘SCL構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。在CPU與被控IC之間、IC與IC之間進行雙向傳送,最高傳送速率400kbps。I2C應用拓展如圖1所示。各種被控制電路均并聯(lián)在這條總線上,但就像電話機一樣只有撥通各自的號碼才能工作,所以每個電路和模塊都有唯一的地址,在信息的傳輸過程中,I2C總線上并接的每一模塊電路既是主控器(或被控器),又是發(fā)送器(或接收器),這取決于它所要完成的功能。CPU發(fā)出的控制信號分為地址碼和控制量兩部分,地址碼用來選址,即接通需要控制的電路,確定控制的種類;控制量決定該調(diào)整的類別(如對比度、亮度等)及需要調(diào)整的量。這樣,各控制電路雖然掛在同一條總線上,卻彼此獨立,互不相關(guān)。
I2C總線在傳送數(shù)據(jù)過程中共有3種類型信號,它們分別是:開始信號、結(jié)束信號和應答信號。
開始信號:SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。
結(jié)束信號:SCL為高電平時,SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。
應答信號:接收數(shù)據(jù)的從控器在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的主控器發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。CPU向從控器發(fā)出一個信號后,等待從控器發(fā)出一個應答信號,CPU接收到應答信號后,根據(jù)實際情況做出是否繼續(xù)傳遞信號的判斷。若未收到應答信號,判斷為受控單元出現(xiàn)故障。這些信號中,起始信號是必需的,結(jié)束信號和應答信號,都可以不要。
4針對I2C信號設(shè)置觸發(fā)條件
首先用邏輯分析儀來分析I2C信號,連接好邏輯分析儀,像分析其他信號一樣,通過zlglogic將I2C,總線中的數(shù)據(jù)采集下來,然后單擊“工具”-“插件管理器”調(diào)出如圖2所示的插件管理對話框。
選中列表中的“IIC/SMbus總線分析”插件,單擊“設(shè)置”按鈕彈出I2C總線解碼設(shè)置對話框,如圖3所示。
圖3中的“總線設(shè)置”中的“時鐘總線”和“數(shù)據(jù)總線”需要選擇的都是之前在“總線分配對話框”分配好的信號,再進行一些顏色的設(shè)置后單擊“OK”按鈕即可完成解碼。解碼的效果如圖4所示。
從圖4中可以看出,軟件已經(jīng)將I2C信號正確地解碼,其中紅顏色是在圖3中插件設(shè)置對話框中設(shè)置的開始位的顏色,綠色的是讀位,黃色的是應答位。同時也可以從波形下面的滾動條看出,波形前面還有一段無用的數(shù)據(jù),大概占了整個波形長度的1/3。因為采用的是SCL下降沿觸發(fā),所以觸發(fā)位置并不是非常準確,現(xiàn)在采用針對特定協(xié)議的觸發(fā)功能,使觸發(fā)位置更準確,也更合理的利用邏輯分析儀的存儲空間。單擊“觸發(fā)設(shè)置”菜單,調(diào)出觸發(fā)設(shè)置對話框,如圖5所示。
單擊“插件相關(guān)”,設(shè)置當?shù)刂窞?xA0時觸發(fā),然后采集剛才一樣的波形,可以得到如圖6所示的波形。
從圖6可以看到,當?shù)刂吩O(shè)為0xA0后,邏輯分析儀觸發(fā)并開始采集數(shù)據(jù),從滾動條和時間刻度上也可以發(fā)現(xiàn),邏輯分析儀的空間被充分的利用了。