隨著嵌入式技術的發展,串行總線技術也被越來越多的應用于各個領域。比如CAN 是Controller Area Network 的縮寫(以下稱為CAN),是ISO國際標準化的串行通信協議。在當前的汽車產業中,出于對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統被開發了出來。由于這些系統之間通信所用的數據類型及對可靠性的要求不盡相同,由多條總線構成的情況很多,線束的數量也隨之增加。為適應“減少線束的數量”、“通過多個LAN,進行大量數據的高速通信”的需要,1986 年德國電氣商博世公司開發出面向汽車的CAN 通信協議。此后,CAN 通過ISO11898 及ISO11519 進行了標準化,現在在歐洲已是汽車網絡的標準協議。
為滿足用戶對特殊串行總線調試的需求,一些測試儀器廠商推出了具備自定義串行總線觸發和分析功能的示波器產品,用戶可根據自己的需要進行簡單的設定就能實現非通用串行總線的調試。下文以橫河電機公司新推出的DLM2000示波器為例,詳細說明一下此種功能。
總線,英文叫作“BUS”,即我們中文的“公共車”,這是非常形象的比如,公共車走的路線是一定的,我們任何人都可以坐公共車去該條公共車路線的任意一個站點。如果把我們人比作是電子信號,這就是為什么英文叫它為“BUS”而不是“CAR”的真正用意。當然,從專業上來說,總線是一種描述電子信號傳輸線路的結構形式,是一類信號線的集合,是子系統間傳輸信息的公共通道。通過總線能使整個系統內各部件之間的信息進行傳輸、交換、共享和邏輯控制等功能。如在計算機系統中,它是CPU、內存、輸入、輸出設備傳遞信息的公用通道,主機的各個部件通過主機相連接,外部設備通過相應的接口電路再于總線相連接。
串行總線的分析功能分為兩個部分,總線觸發和總線分析。
自定義串行總線的觸發:
圖表1 自定義串行總線觸發設定菜單
DLM2000支持標準的CAN/LIN/I2C/SPI/UART總線觸發,在串行總線觸發菜單中有一項是<用戶定義>(User Define)。進入這一項就可以進行自定義總線的觸發設置。在此菜單中可以進行如下設置:
數據源(DATA):指定通道作為數據信號源。
激活電平(Active):指定將高電平或者低電平設為邏輯1。
時鐘(Clock):對于通過時鐘同步的總線,可以進行時鐘的相關設置,選擇時鐘源以及設定在時鐘信號的上升沿或下降沿進行采樣。
片選(CS):當使用時鐘同步信號時,通過片選信號來控制數據的有效性??梢栽O置片選源,以及高電平有效或者低電平有效。
鎖存(Latch):可以指定時鐘同步采樣的數據源碼型與指定碼型進行比較的時間??梢允嵌ㄦi存源,以及在鎖存源的上升沿或是下降沿進行比較。
觸發條件:可以將數據碼型作為觸發條件使用。當采樣得到的數據源的碼型與指定碼型一致時,數據碼型觸發條件成立?!?/p>
圖表2 自定義串行總線觸發條件設定
數據碼型的長度可以設為1~128位,并制定按照二進制或是十六進制來設定碼型。
比特率:當沒有同步時鐘源時,可以對信號的比特率進行設定,設定范圍從1kbps至50Mbps,步進值為1kbps。
下面是一個帶時鐘同步信號的自定義總線觸發示例。
首先正確設置時鐘源、數據源、片選信號和鎖存信號,再設置好相應的觸發條件,就可以像通用串行總線一樣進行觸發,捕獲所需要的信號波形。
圖表3 時鐘同步串行總線觸發示例
自定義串行總線的分析:
l 解碼設置
進行自定義總線的觸發之后,就可以進行解碼分析了。同樣要進行相應的設置。與觸發的設置類似,要指定數據源、時鐘源、片選源和鎖存源,并進行相應的設定;對于沒有時鐘同步的總線,還要指定比特率,可設置范圍也是1kbps~50Mbps。之所以要設置解碼起始點,是因為示波器沒有內置自定義總線的協議,無法判斷總線的幀結構,所以需要手動指定解碼的起始點。
圖表4 自定義串行總線分析設定
l 解碼顯示
打開解碼顯示功能,就可以在數據波形的下方看到解碼的結果了。由于沒有內置協議,所以無法以幀結構方式進行顯示。
圖表5 自定義串行總線解碼顯示格式設定
l 數據搜索
如果想在大量的數據中找到自己想要的數據,可以使用搜索功能,指定搜索的數據位數以及數據碼型,執行搜索后很快就會將搜索到的結果標記出來并顯示在縮放窗口中。搜索設定與觸發條件設定類似。
下面以列車上常用的MVB串行總線為例,介紹自定義串行總線功能的使用方法。
多功能車廂總線MVB(MulTIfunctiON Vehicle Bus)是列車通信網絡TCN(Train Communication Network)為實現位于同一車輛或固定重聯的不同車輛中的標準設備之間的數據通信而定義的總線標準。
MVB總線上的串行數據采用異步差分傳輸的曼徹斯特碼,曼徹斯特編碼中的每個數據位應用以下規范編碼:
a)一個“1”的編碼在位元的前半部分為“高”,后半部分為“低”;
b)一個“0”的編碼在位元的前半部分為“低”,后半部分為“高”;
如果曼徹斯特碼中出現整個位元的高電平(NH)或整個位元的低電平(NL),則被認為非數據符,用于特殊場合,如:幀頭,幀尾標識。
MVB總線屬于異步傳輸總線,所以在進行觸發和分析時不需要設置時鐘源、片選和鎖存等信號,只需要設定正確的比特率與合適的開始點。MVB總線的比特率一般為1.5Mbps,正確設置就可以了。
需要注意的是開始點的指定。因為MVB總線采用曼徹斯特編碼,不同于常用的高低電平來確定邏輯“0”和“1”的方式,所以只有開始點的位置很合適才能正確解碼。
設置好之后,解碼結果會顯示在波形下方,通過人工對比可以簡單判斷解碼是否正確。通過顯示設置可以將解碼結果顯示為二進制、十六進制或者ASCII形式,便于讀取。
圖表6 MVB串行總線觸發分析
如上面示例那樣,如果所調試的總線不是CAN,LIN,I2C,SPI以及UART這些通用串行總線,DLM2000的自定義串行總線分析功能可在一定程度上為用戶的分析工作提供便利,而且不用付出高昂的費用。這也是當初開發這個功能的初衷。