隨著嵌入式技術(shù)的發(fā)展,,串行總線技術(shù)也被越來越多的應(yīng)用于各個(gè)領(lǐng)域。比如I2C,、SPI總線常被用于消費(fèi)電子設(shè)備之中,CAN,、LIN總線則在汽車電子領(lǐng)域被廣泛應(yīng)用,。為滿足開發(fā)者分析調(diào)試的需要,目前一些高端的數(shù)字示波器產(chǎn)品已經(jīng)加入了串行總線的觸發(fā)和分析功能,?;旧隙际轻槍?duì)目前主流的通用串行總線協(xié)議,如I2C,、SPI,、CAN、LIN,、UART等,,可以滿足大部分串行總線調(diào)試的需求。
但是,,在一些特殊情況下,,開發(fā)者所要調(diào)試的可能不是這種應(yīng)用廣泛的串行總線,比如只有列車上才會(huì)用到的WTB總線和MVB總線,;開發(fā)者也可能要對(duì)通用串行總線協(xié)議進(jìn)行修改來滿足自己的應(yīng)用需要,,從而形成一種非標(biāo)準(zhǔn)的串行總線協(xié)議。在這些情況下,,一般示波器提供的串行總線功能就無法勝任,。開發(fā)者或者付出高額成本采用邏輯分析儀進(jìn)行總線分析,或者使用比較原始的方法來手動(dòng)分析,,費(fèi)時(shí)費(fèi)力,。
為滿足用戶對(duì)特殊串行總線調(diào)試的需求,一些測(cè)試儀器廠商推出了具備自定義串行總線觸發(fā)和分析功能的示波器產(chǎn)品,用戶可根據(jù)自己的需要進(jìn)行簡單的設(shè)定就能實(shí)現(xiàn)非通用串行總線的調(diào)試,。下文以橫河電機(jī)公司新推出的DLM2000示波器為例,,詳細(xì)說明一下此種功能。
串行總線的分析功能分為兩個(gè)部分,,總線觸發(fā)和總線分析,。
自定義串行總線的觸發(fā):
圖表1 自定義串行總線觸發(fā)設(shè)定菜單
DLM2000支持標(biāo)準(zhǔn)的CAN/LIN/I2C/SPI/UART總線觸發(fā),在串行總線觸發(fā)菜單中有一項(xiàng)是<用戶定義>(User Define),。進(jìn)入這一項(xiàng)就可以進(jìn)行自定義總線的觸發(fā)設(shè)置,。在此菜單中可以進(jìn)行如下設(shè)置:
數(shù)據(jù)源(DATA):指定通道作為數(shù)據(jù)信號(hào)源。
激活電平(Active):指定將高電平或者低電平設(shè)為邏輯1,。
時(shí)鐘(Clock):對(duì)于通過時(shí)鐘同步的總線,,可以進(jìn)行時(shí)鐘的相關(guān)設(shè)置,選擇時(shí)鐘源以及設(shè)定在時(shí)鐘信號(hào)的上升沿或下降沿進(jìn)行采樣,。
片選(CS):當(dāng)使用時(shí)鐘同步信號(hào)時(shí),,通過片選信號(hào)來控制數(shù)據(jù)的有效性??梢栽O(shè)置片選源,,以及高電平有效或者低電平有效。
鎖存(Latch):可以指定時(shí)鐘同步采樣的數(shù)據(jù)源碼型與指定碼型進(jìn)行比較的時(shí)間,??梢允嵌ㄦi存源,以及在鎖存源的上升沿或是下降沿進(jìn)行比較,。
觸發(fā)條件:可以將數(shù)據(jù)碼型作為觸發(fā)條件使用,。當(dāng)采樣得到的數(shù)據(jù)源的碼型與指定碼型一致時(shí),數(shù)據(jù)碼型觸發(fā)條件成立,。
圖表2 自定義串行總線觸發(fā)條件設(shè)定
數(shù)據(jù)碼型的長度可以設(shè)為1~128位,,并制定按照二進(jìn)制或是十六進(jìn)制來設(shè)定碼型。
比特率:當(dāng)沒有同步時(shí)鐘源時(shí),,可以對(duì)信號(hào)的比特率進(jìn)行設(shè)定,,設(shè)定范圍從1kbps至50Mbps,步進(jìn)值為1kbps,。
下面是一個(gè)帶時(shí)鐘同步信號(hào)的自定義總線觸發(fā)示例,。
首先正確設(shè)置時(shí)鐘源、數(shù)據(jù)源,、片選信號(hào)和鎖存信號(hào),,再設(shè)置好相應(yīng)的觸發(fā)條件,就可以像通用串行總線一樣進(jìn)行觸發(fā),,捕獲所需要的信號(hào)波形,。
圖表3 時(shí)鐘同步串行總線觸發(fā)示例
自定義串行總線的分析:
l 解碼設(shè)置
進(jìn)行自定義總線的觸發(fā)之后,,就可以進(jìn)行解碼分析了。同樣要進(jìn)行相應(yīng)的設(shè)置,。與觸發(fā)的設(shè)置類似,,要指定數(shù)據(jù)源、時(shí)鐘源,、片選源和鎖存源,,并進(jìn)行相應(yīng)的設(shè)定;對(duì)于沒有時(shí)鐘同步的總線,,還要指定比特率,,可設(shè)置范圍也是1kbps~50Mbps。然后需要設(shè)置解碼的起始點(diǎn),。之所以要設(shè)置解碼起始點(diǎn),,是因?yàn)槭静ㄆ鳑]有內(nèi)置自定義總線的協(xié)議,無法判斷總線的幀結(jié)構(gòu),,所以需要手動(dòng)指定解碼的起始點(diǎn),。
圖表4 自定義串行總線分析設(shè)定
l 解碼顯示
打開解碼顯示功能,就可以在數(shù)據(jù)波形的下方看到解碼的結(jié)果了,。不過解碼顯示只有在關(guān)閉時(shí)鐘時(shí)才能出現(xiàn),。解碼結(jié)果可以以二進(jìn)制或者十六進(jìn)制進(jìn)行顯示。由于沒有內(nèi)置協(xié)議,,所以無法以幀結(jié)構(gòu)方式進(jìn)行顯示。
圖表5 自定義串行總線解碼顯示格式設(shè)定
l 數(shù)據(jù)搜索
如果想在大量的數(shù)據(jù)中找到自己想要的數(shù)據(jù),,可以使用搜索功能,,指定搜索的數(shù)據(jù)位數(shù)以及數(shù)據(jù)碼型,執(zhí)行搜索后很快就會(huì)將搜索到的結(jié)果標(biāo)記出來并顯示在縮放窗口中,。搜索設(shè)定與觸發(fā)條件設(shè)定類似,。
下面以列車上常用的MVB串行總線為例,介紹自定義串行總線功能的使用方法,。
多功能車廂總線MVB(Multifunction Vehicle Bus)是列車通信網(wǎng)絡(luò)TCN(Train Communication Network)為實(shí)現(xiàn)位于同一車輛或固定重聯(lián)的不同車輛中的標(biāo)準(zhǔn)設(shè)備之間的數(shù)據(jù)通信而定義的總線標(biāo)準(zhǔn),。
MVB總線上的串行數(shù)據(jù)采用異步差分傳輸?shù)?b>曼徹斯特碼,曼徹斯特編碼中的每個(gè)數(shù)據(jù)位應(yīng)用以下規(guī)范編碼:
a)一個(gè)“1”的編碼在位元的前半部分為“高”,,后半部分為“低”,;
b)一個(gè)“0”的編碼在位元的前半部分為“低”,后半部分為“高”,;
如果曼徹斯特碼中出現(xiàn)整個(gè)位元的高電平(NH)或整個(gè)位元的低電平(NL),,則被認(rèn)為非數(shù)據(jù)符,用于特殊場(chǎng)合,,如:幀頭,,幀尾標(biāo)識(shí),。
MVB總線屬于異步傳輸總線,所以在進(jìn)行觸發(fā)和分析時(shí)不需要設(shè)置時(shí)鐘源,、片選和鎖存等信號(hào),,只需要設(shè)定正確的比特率與合適的開始點(diǎn)。MVB總線的比特率一般為1.5Mbps,,正確設(shè)置就可以了,。
需要注意的是開始點(diǎn)的指定。因?yàn)镸VB總線采用曼徹斯特編碼,,不同于常用的高低電平來確定邏輯“0”和“1”的方式,,所以只有開始點(diǎn)的位置很合適才能正確解碼。
設(shè)置好之后,,解碼結(jié)果會(huì)顯示在波形下方,,通過人工對(duì)比可以簡單判斷解碼是否正確。通過顯示設(shè)置可以將解碼結(jié)果顯示為二進(jìn)制,、十六進(jìn)制或者ASCII形式,,便于讀取。
圖表6 MVB串行總線觸發(fā)分析
如上面示例那樣,,如果所調(diào)試的總線不是CAN,,LIN,I2C,,SPI以及UART這些通用串行總線,,DLM2000的自定義串行總線分析功能可在一定程度上為用戶的分析工作提供便利,而且不用付出高昂的費(fèi)用,。這也是當(dāng)初開發(fā)這個(gè)功能的初衷,。