應(yīng)用指南—如何使用DSLogic分析CAN/CAN-FD 信號(hào)?
一 文檔介紹
本文將一步步介紹如何使用DSLogic邏輯分析儀采集并分析 CAN/CAN-FD 信號(hào),因?yàn)?CAN 信號(hào)的測(cè)量和 CAN-FD 的大致一樣,所以下文以 CAN-FD 舉例,在有區(qū)別之處,將會(huì)做特別說(shuō)明。
此次演示的案例特征為:
-
仲裁域波特率 500Kbps
-
數(shù)據(jù)域波特率 1Mbps
-
發(fā)送 “01 23 45 67 89 AB CD EF ….(其余數(shù)據(jù)位補(bǔ)0)” 共 64 位數(shù)據(jù)到 ID 地址”0x100″。
二 需要測(cè)量哪幾個(gè)信號(hào)
CAN-FD 協(xié)議是半雙工的,在 MCU 端使用 TX/RX 進(jìn)行收發(fā)信號(hào),發(fā)送端并不是通過(guò) TX/RX 直接接到別的節(jié)點(diǎn)的 MCU ,而是先將 TX/RX 接入到 CAN-FD 收發(fā)器,將 TTL 電平轉(zhuǎn)換為差分信號(hào) CAN-FD_H和 CAN-FD_L,測(cè)量信號(hào)時(shí)需要注意接的是 TTL 邏輯端,還是 CAN-FD 總線端。
圖1 MCU與收發(fā)器結(jié)構(gòu)
所以,如果你要測(cè)量 TTL 信號(hào),則將探頭接入到 TX 引腳,如果要測(cè)量總線端信號(hào),則接入到 CAN-FD_L ,你可能要問(wèn),可以接入到 CAN-FD_H ?單獨(dú)觀察波形的話,是可以的,但因?yàn)槲覀兪鞘褂眠壿嫹治鰞x對(duì)信號(hào)進(jìn)行解碼,而 CAN-FD_L 的電平變化和 TTL 端的電平變化是一致的,CAN-FD_H 和 TTL 端是反相的,所以為了方便對(duì)比觀察解碼結(jié)果,要接入 CAN-FD_L。
三 信號(hào)的實(shí)際模樣
邏輯分析儀分析的是數(shù)字信號(hào),在采集分析之前,我們推薦先用示波器觀察下信號(hào)實(shí)際是什么樣子的,對(duì)真實(shí)波形有一個(gè)基本的認(rèn)知。
下面我們使用璞石示波器來(lái)完成捕獲模擬波形的演示。
3.1 MCU 側(cè) TTL 信號(hào)
測(cè) TTL 時(shí)探頭接 TTL 信號(hào),探頭使用 X1 擋位,探頭接地夾接邏輯端的參考地,一般是 MCU 的 GND 引腳,此處是使用接地彈簧接 GND。
圖2 探頭測(cè)試 TX 信號(hào)
示波器 0 通道探頭放在靠近 MCU 的 TX 引腳處,夾子接邏輯側(cè)參考地,啟動(dòng) CAN-FD 發(fā)送數(shù)據(jù),按下 AUTO,捕獲波形,如下圖所示。
圖3 示波器顯示 TX 信號(hào)
可以看到這是一個(gè)符合 TTL 標(biāo)準(zhǔn),幅度為 3.4V 的波形。
3.3 收發(fā)器側(cè)差分信號(hào)
因?yàn)樵陔娐吩O(shè)計(jì)中一般都會(huì)對(duì)總線端的電源做隔離,所以在測(cè) CAN-FD 時(shí),兩個(gè)探頭分別接 CAN-FD_H 和 CAN-FD_L 信號(hào),但是探頭接地夾需要接總線端的參考地,一般是 CAN-FD 收發(fā)器芯片的 GND 引腳,不要接到 MCU 的 GND 上去了。
圖4 探頭測(cè)試差分信號(hào)
圖 4 左邊三個(gè)座子依次為 CAN-FD_H,GND,CAN-FD_L。
示波器 0 通道探頭放在 CAN-FD_H,接地彈簧接總線側(cè)參考地 。示波器 1 通道探頭放在 CAN-FD_L,接地彈簧接總線側(cè)參考地,啟動(dòng) CAN-FD 發(fā)送數(shù)據(jù),按下 AUTO,捕獲波形,將波形光標(biāo)重合在一起,如下圖所示。
圖5 差分信號(hào)
可以看到 CAN-FD 中空閑時(shí)差分電平壓差為 0,當(dāng) CAN-FD_L 出現(xiàn)低電平時(shí)開(kāi)始數(shù)據(jù)的傳輸??梢钥吹紺AN-FD_L的波形和TTL端的信號(hào)是同向的,而CAN-FD_H的波形和TTL端的信號(hào)是反向的。
同時(shí),也可以觀察到CAN-FD信號(hào)高低電平的特殊之處,以CAN-FD_L為例,它的低電平并不是0V。通常標(biāo)準(zhǔn)CAN/CAN-FD總線信號(hào)的L端低電平為1.5V,高電平為2.5V。
也有一些CAN系統(tǒng),總線信號(hào)的電平和標(biāo)準(zhǔn)不太一致,這也是為什么我們推薦先用示波器觀察實(shí)際波形的原因。因?yàn)樵谑褂眠壿嫹治鰞x分析波形時(shí),需要設(shè)置正確的“閾值”電壓,邏輯分析儀才能采集到正確的信號(hào)。
四 信號(hào)的采樣與解碼
在示波器上可以觀察到信號(hào)的波形質(zhì)量,但是示波器不擅長(zhǎng)長(zhǎng)時(shí)間抓取波形,同時(shí)進(jìn)行解碼分析。所以當(dāng)想要分析協(xié)議通訊的內(nèi)容時(shí),使用DSLogic邏輯分析儀是最合適的工具。
4.1 信號(hào)的連接
在DSLogic Plus中,可以選擇任意通道對(duì)波形進(jìn)行采集。我們使用 1 通道來(lái)采集 CAN-FD_L 信號(hào)。
連接排線至邏輯分析儀的采樣端口,圖 6 顯示了排線和通道的對(duì)應(yīng)關(guān)系。
圖6 排線與邏輯分析儀的連接
連接 1 通道至 CAN-FD_L,黑色信號(hào)線為接地信號(hào)線,連接 CAN-FD 收發(fā)器的 GND。連接效果如圖。
圖7 連接信號(hào)
4.2 采樣設(shè)置
打開(kāi) DSView,在左上角點(diǎn)擊“選項(xiàng)”,按照?qǐng)D4 參數(shù)設(shè)置,其中關(guān)于閾值電壓,在圖5 中,我們可以看到通訊波形中 CAN-FD_L 的電壓范圍大致在 1.5V – 2.5V 之間,所以閾值可以設(shè)置為 2V 左右。
采樣率一般推薦設(shè)置為波形最大速率的 10 倍。例如此處選擇 10MHz采樣率進(jìn)行采集分析。
通道選項(xiàng)的所有選項(xiàng)都符合我們的要求,我們選擇就選第一個(gè)。其他選項(xiàng)保持默認(rèn),點(diǎn)擊確定。
圖8 選項(xiàng)設(shè)置
設(shè)備選項(xiàng)設(shè)置完成后,采樣時(shí)間這里設(shè)置為 5ms,在”模式“中,我們選擇“單次”。關(guān)鍵的閾值、采樣時(shí)間和采樣率設(shè)置完成后,我們接下來(lái)設(shè)置觸發(fā)方式。
從圖5 可以看到 CAN-FD_L 出現(xiàn)下降沿開(kāi)始通訊,所以我們?cè)O(shè)置觸發(fā)方式為下降沿觸發(fā),點(diǎn)擊1 通道左側(cè)的下降沿標(biāo)識(shí),顯示為藍(lán)色則為下降沿觸發(fā)。
圖9 觸發(fā)設(shè)置
完成以上接線和設(shè)置后,其他設(shè)置保持默認(rèn),點(diǎn)擊 DSView 菜單欄的“開(kāi)始”,此時(shí)邏輯分析儀正在等待觸發(fā)波形的出現(xiàn),然后啟動(dòng) CAN-FD 傳輸,觸發(fā)后等待波形采集完成。
以上是對(duì) CAN-FD 的采樣設(shè)置,對(duì)于 CAN 波形的測(cè)試,可以和 CAN-FD 的一致。
4.3 解碼設(shè)置
波形采集完成后會(huì)在軟件界面顯示,此時(shí)可以對(duì)波形進(jìn)行解碼操作,具體操作是點(diǎn)擊菜單欄的“解碼”按鈕,在協(xié)議框中輸入“CAN”,點(diǎn)選在下方出現(xiàn)的”CAN-FD“,在彈出的解碼設(shè)置中進(jìn)行解碼設(shè)置。
圖10 解碼設(shè)置
-
右側(cè)帶有眼睛圖標(biāo)的選項(xiàng)表示是否要在解碼中查看這些內(nèi)容,默認(rèn)是要查看,如果不想看到相關(guān)內(nèi)容,將其勾選掉即可。
-
在”CAN“選項(xiàng)中選擇連接 CAN-FD_L 信號(hào)的通道,我們的通道是 1 通道,所以選擇 1。
-
“Nominal bitrate” 表示仲裁段波特率,我們的信號(hào)是 500Kbps,所以輸入 500000。
-
“Fast bitrate” 表示數(shù)據(jù)段波特率,我們的信號(hào)是 1Mbps,所以輸入 1000000。
-
“Sample point” 表示采樣點(diǎn)位置,在 MCU 對(duì) CAN/CAN-FD 協(xié)議進(jìn)行配置時(shí),不同的廠家采樣點(diǎn)設(shè)置不一樣,一般采樣點(diǎn)設(shè)置在 70% ,請(qǐng)根據(jù)實(shí)際情況設(shè)置。
-
如果在波形中插入了光標(biāo),可以使用光標(biāo)來(lái)限制解碼的范圍,默認(rèn)是對(duì)所有波形進(jìn)行解碼。
圖11 解碼器選項(xiàng)
解碼成功后對(duì)波形展開(kāi),配合協(xié)議列表顯示,可以知道我們對(duì)地址為”0x100″的設(shè)備發(fā)送了“01 23 45 67 89 AB CD EF”等數(shù)據(jù)。
圖12 解碼結(jié)果
對(duì)于 CAN 波形的測(cè)試, 只需要設(shè)置一個(gè)”bitrate” 即可,其他操作和設(shè)置與 CAN-FD 的一致。