《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 自定義串行總線(xiàn)的觸發(fā)和分析
自定義串行總線(xiàn)的觸發(fā)和分析
摘要: 隨著嵌入式技術(shù)的發(fā)展,,串行總線(xiàn)技術(shù)也被越來(lái)越多的應(yīng)用于各個(gè)領(lǐng)域,。比如I2C,、SPI總線(xiàn)常被用于消費(fèi)電子設(shè)備之中,,CAN、LIN總線(xiàn)則在汽車(chē)電子領(lǐng)域被廣泛應(yīng)用,。
Abstract:
Key words :

隨著嵌入式技術(shù)的發(fā)展,,串行總線(xiàn)技術(shù)也被越來(lái)越多的應(yīng)用于各個(gè)領(lǐng)域。比如I2C,、SPI總線(xiàn)常被用于消費(fèi)電子設(shè)備之中,,CAN、LIN總線(xiàn)則在汽車(chē)電子領(lǐng)域被廣泛應(yīng)用,。為滿(mǎn)足開(kāi)發(fā)者分析調(diào)試的需要,,目前一些高端的數(shù)字示波器產(chǎn)品已經(jīng)加入了串行總線(xiàn)的觸發(fā)和分析功能?;旧隙际轻槍?duì)目前主流的通用串行總線(xiàn)協(xié)議,,如I2C、SPI,、CAN,、LIN、UART等,,可以滿(mǎn)足大部分串行總線(xiàn)調(diào)試的需求,。

但是,在一些特殊情況下,,開(kāi)發(fā)者所要調(diào)試的可能不是這種應(yīng)用廣泛的串行總線(xiàn),,比如只有列車(chē)上才會(huì)用到的WTB總線(xiàn)和MVB總線(xiàn);開(kāi)發(fā)者也可能要對(duì)通用串行總線(xiàn)協(xié)議進(jìn)行修改來(lái)滿(mǎn)足自己的應(yīng)用需要,,從而形成一種非標(biāo)準(zhǔn)的串行總線(xiàn)協(xié)議,。在這些情況下,一般示波器提供的串行總線(xiàn)功能就無(wú)法勝任,。開(kāi)發(fā)者或者付出高額成本采用邏輯分析儀進(jìn)行總線(xiàn)分析,,或者使用比較原始的方法來(lái)手動(dòng)分析,,費(fèi)時(shí)費(fèi)力。

為滿(mǎn)足用戶(hù)對(duì)特殊串行總線(xiàn)調(diào)試的需求,,一些測(cè)試儀器廠商推出了具備自定義串行總線(xiàn)觸發(fā)和分析功能的示波器產(chǎn)品,,用戶(hù)可根據(jù)自己的需要進(jìn)行簡(jiǎn)單的設(shè)定就能實(shí)現(xiàn)非通用串行總線(xiàn)的調(diào)試。下文以橫河電機(jī)公司新推出的DLM2000示波器為例,,詳細(xì)說(shuō)明一下此種功能,。

串行總線(xiàn)的分析功能分為兩個(gè)部分,總線(xiàn)觸發(fā)和總線(xiàn)分析,。

自定義串行總線(xiàn)的觸發(fā):

自定義串行總線(xiàn) 觸發(fā)設(shè)定菜單

圖表1 自定義串行總線(xiàn)觸發(fā)設(shè)定菜單

DLM2000支持標(biāo)準(zhǔn)的CAN/LIN/I2C/SPI/UART總線(xiàn)觸發(fā),,在串行總線(xiàn)觸發(fā)菜單中有一項(xiàng)是<用戶(hù)定義>(User Define)。進(jìn)入這一項(xiàng)就可以進(jìn)行自定義總線(xiàn)的觸發(fā)設(shè)置,。在此菜單中可以進(jìn)行如下設(shè)置:  

數(shù)據(jù)源(DATA:指定通道作為數(shù)據(jù)信號(hào)源,。

激活電平(Active:指定將高電平或者低電平設(shè)為邏輯1。

時(shí)鐘(Clock:對(duì)于通過(guò)時(shí)鐘同步的總線(xiàn),,可以進(jìn)行時(shí)鐘的相關(guān)設(shè)置,,選擇時(shí)鐘源以及設(shè)定在時(shí)鐘信號(hào)的上升沿或下降沿進(jìn)行采樣。

片選(CS:當(dāng)使用時(shí)鐘同步信號(hào)時(shí),,通過(guò)片選信號(hào)來(lái)控制數(shù)據(jù)的有效性,。可以設(shè)置片選源,,以及高電平有效或者低電平有效,。

鎖存(Latch:可以指定時(shí)鐘同步采樣的數(shù)據(jù)源碼型與指定碼型進(jìn)行比較的時(shí)間??梢允嵌ㄦi存源,以及在鎖存源的上升沿或是下降沿進(jìn)行比較,。

觸發(fā)條件:可以將數(shù)據(jù)碼型作為觸發(fā)條件使用,。當(dāng)采樣得到的數(shù)據(jù)源的碼型與指定碼型一致時(shí),數(shù)據(jù)碼型觸發(fā)條件成立,。

 

自定義串行總線(xiàn) 觸發(fā)條件設(shè)定

圖表2 自定義串行總線(xiàn)觸發(fā)條件設(shè)定

數(shù)據(jù)碼型的長(zhǎng)度可以設(shè)為1~128位,,并制定按照二進(jìn)制或是十六進(jìn)制來(lái)設(shè)定碼型。

比特率:當(dāng)沒(méi)有同步時(shí)鐘源時(shí),,可以對(duì)信號(hào)的比特率進(jìn)行設(shè)定,,設(shè)定范圍從1kbps至50Mbps,步進(jìn)值為1kbps,。

 

下面是一個(gè)帶時(shí)鐘同步信號(hào)的自定義總線(xiàn)觸發(fā)示例,。

首先正確設(shè)置時(shí)鐘源、數(shù)據(jù)源,、片選信號(hào)和鎖存信號(hào),,再設(shè)置好相應(yīng)的觸發(fā)條件,,就可以像通用串行總線(xiàn)一樣進(jìn)行觸發(fā),捕獲所需要的信號(hào)波形,。

 

時(shí)鐘同步串行總線(xiàn) 觸發(fā)示例

圖表3 時(shí)鐘同步串行總線(xiàn)觸發(fā)示例

 

自定義串行總線(xiàn)的分析:

l         解碼設(shè)置

進(jìn)行自定義總線(xiàn)的觸發(fā)之后,,就可以進(jìn)行解碼分析了。同樣要進(jìn)行相應(yīng)的設(shè)置,。與觸發(fā)的設(shè)置類(lèi)似,,要指定數(shù)據(jù)源、時(shí)鐘源,、片選源和鎖存源,,并進(jìn)行相應(yīng)的設(shè)定;對(duì)于沒(méi)有時(shí)鐘同步的總線(xiàn),,還要指定比特率,,可設(shè)置范圍也是1kbps~50Mbps。然后需要設(shè)置解碼的起始點(diǎn),。之所以要設(shè)置解碼起始點(diǎn),,是因?yàn)槭静ㄆ鳑](méi)有內(nèi)置自定義總線(xiàn)的協(xié)議,無(wú)法判斷總線(xiàn)的幀結(jié)構(gòu),,所以需要手動(dòng)指定解碼的起始點(diǎn),。

 

自定義串行總線(xiàn) 分析設(shè)定

圖表4 自定義串行總線(xiàn)分析設(shè)定

l         解碼顯示

打開(kāi)解碼顯示功能,就可以在數(shù)據(jù)波形的下方看到解碼的結(jié)果了,。不過(guò)解碼顯示只有在關(guān)閉時(shí)鐘時(shí)才能出現(xiàn),。解碼結(jié)果可以以二進(jìn)制或者十六進(jìn)制進(jìn)行顯示。由于沒(méi)有內(nèi)置協(xié)議,,所以無(wú)法以幀結(jié)構(gòu)方式進(jìn)行顯示,。

 

自定義串行總線(xiàn)解碼顯示格式 設(shè)定

圖表5 自定義串行總線(xiàn)解碼顯示格式設(shè)定

l         數(shù)據(jù)搜索

如果想在大量的數(shù)據(jù)中找到自己想要的數(shù)據(jù),可以使用搜索功能,,指定搜索的數(shù)據(jù)位數(shù)以及數(shù)據(jù)碼型,,執(zhí)行搜索后很快就會(huì)將搜索到的結(jié)果標(biāo)記出來(lái)并顯示在縮放窗口中。搜索設(shè)定與觸發(fā)條件設(shè)定類(lèi)似,。

 

下面以列車(chē)上常用的MVB串行總線(xiàn)為例,,介紹自定義串行總線(xiàn)功能的使用方法。

多功能車(chē)廂總線(xiàn)MVB(Multifunction Vehicle Bus)是列車(chē)通信網(wǎng)絡(luò)TCN(Train Communication Network)為實(shí)現(xiàn)位于同一車(chē)輛或固定重聯(lián)的不同車(chē)輛中的標(biāo)準(zhǔn)設(shè)備之間的數(shù)據(jù)通信而定義的總線(xiàn)標(biāo)準(zhǔn),。

MVB總線(xiàn)上的串行數(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總線(xiàn)屬于異步傳輸總線(xiàn),,所以在進(jìn)行觸發(fā)和分析時(shí)不需要設(shè)置時(shí)鐘源、片選和鎖存等信號(hào),,只需要設(shè)定正確的比特率與合適的開(kāi)始點(diǎn),。MVB總線(xiàn)的比特率一般為1.5Mbps,正確設(shè)置就可以了,。

需要注意的是開(kāi)始點(diǎn)的指定,。因?yàn)镸VB總線(xiàn)采用曼徹斯特編碼,不同于常用的高低電平來(lái)確定邏輯“0”和“1”的方式,,所以只有開(kāi)始點(diǎn)的位置很合適才能正確解碼,。

設(shè)置好之后,解碼結(jié)果會(huì)顯示在波形下方,,通過(guò)人工對(duì)比可以簡(jiǎn)單判斷解碼是否正確,。通過(guò)顯示設(shè)置可以將解碼結(jié)果顯示為二進(jìn)制、十六進(jìn)制或者ASCII形式,,便于讀取,。

MVB 串行總線(xiàn)觸發(fā)分析

圖表6  MVB串行總線(xiàn)觸發(fā)分析

 

如上面示例那樣,如果所調(diào)試的總線(xiàn)不是CAN,,LIN,,I2C,SPI以及UART這些通用串行總線(xiàn),,DLM2000的自定義串行總線(xiàn)分析功能可在一定程度上為用戶(hù)的分析工作提供便利,,而且不用付出高昂的費(fèi)用。這也是當(dāng)初開(kāi)發(fā)這個(gè)功能的初衷,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。