SPI
背景知識
串行外設接口總線(SPI)初是摩托羅拉在20世紀80年代末為其68000 係列微控製器研製(zhì)的。由於該總線簡單、流行,許多其它(tā)製造商也已經采用這(zhè)一標準。它現在用於嵌(qiàn)入式係(xì)統設計常用的各種器件中。SPI主要用於微控製器和直接(jiē)外設(shè)之(zhī)間。它通常用於移動(dòng)電話、PDA和其它移動設備(bèi)中,在CPU、鍵盤、顯示器和內 存(cún)芯片之間通信。 |
工作方式
SPI (串行外設接口)總線是一種主/從結構的4線串行通信總線。4個信號是(shì)時鍾(SCLK), 主輸出/從(cóng)輸入(MOSI), 主輸入/從輸出(MISO)和從選(xuǎn)擇(SS)。在兩台設備通信時,一台設備稱為“主設備”,另一(yī)台設備稱(chēng)為“從設(shè)備”。主設備(bèi)驅動串行時鍾。它同時收發數據(jù),因此是一種全雙工協議(yì)。SPI 使(shǐ)用SS 線路指(zhǐ)明與哪台(tái)設備傳送數據(jù),而不是總線上的每台設備都(dōu)有一個的地址。這樣,總線(xiàn)上的(de)每台的設備都需要從主設備提供自己的(de)SS 信號。如果有3 台從設備,那麽主設(shè)備有 3 條SS 引線,每條引線都連(lián)接到每台從設備上,如圖 8 所示。
在(zài)圖(tú)8 中,每台從設備隻與主設備通話。但是,SPI可以串聯多台從設備,每台從設(shè)備依次進行操作,然後把結果發回主設備,如(rú)圖(tú)9所示(shì)。因此(cǐ)您可以看到,SPI實現方案(àn)沒有“標準”。在某(mǒu)些(xiē)情況下,在不要求從設備向回到主設備通信時,MISO 信號可以完(wán)全省略。
在SPI數據傳送發生時,8位數據字移出MOSI,不同的8位(wèi)數據(jù)字移入MISO。這(zhè)可以視為16 位(wèi)循環位移寄存器。在傳送發(fā)生時,這個16 位位移寄存器位移8 個位置,從而在主設備和從設備之間(jiān)交換8位數據。一對(duì)寄存器 - 時(shí)鍾極性(CPOL)和時鍾相(xiàng)位(wèi)(CPHA)決定著驅動數據的時鍾邊沿。每個寄存器有兩種可能(néng)的狀態,支持四種可能的組合,所有這些組(zǔ)合互不兼容。因(yīn)此,主/從設備對必(bì)須使用相同的(de)參數(shù)值進行通信(xìn)。如果使用多個固定在不同配置的從設備,那麽每次需要與不同的從設備通信時,主設備(bèi)必須重新進行配置。 |

圖8.常用的SPI配置。

圖9.串(chuàn)聯SPI配置。
|

圖10. SPI 總線設置菜單。 |
處理SPI
DPOxEMBD 串行觸發(fā)和分析應用模塊還(hái)可以為SPI 總線實現類似的功能。我們可以再次使用前麵板Bus按鈕,簡單地輸入總(zǒng)線基本參數,包括SCLK, SS, MOSI 和MISO位於哪條通道上、門限和極(jí)性,來定(dìng)義一條SPI 總線 (參見圖10)。
例如(rú),考慮一下圖11 中的嵌入式係統。一條SPI 總線連接到一個合成器、一個DAC及某個I/O 上。合成器(qì)連接到(dào)VCO上,VCO為其餘係統提供一(yī)個 2.5 GHz 時鍾。在啟動時,CPU應該對合成器編程。但是不知道哪裏出了問題,VCO在產生3 GHz的信號。調試這個問題的步是考察CPU和合成器之間的(de)信號,確定(dìng)存在信號,沒有物理連接(jiē)問題(tí),但(dàn)我(wǒ)們找(zhǎo)不到發生了什麽問題。然後(hòu),我(wǒ)們決定看一下SPI 總線上傳送的合成器編程使(shǐ)用(yòng)的實際信息。為捕獲這(zhè)些信息,我們把示波器設成(chéng)在合成器Slave Select信號(hào)激活時觸發(fā)采(cǎi)集,並對DUT 通電,捕獲啟動編程命令。采集結果如圖(tú)12 所(suǒ)示。
通道1 (黃色) 是SCLK,通道2 (青色) 是MOSI,通道3(洋紅色) 是SS。為確定我們是否對設備(bèi)正確編程,我們看一下合成器的產品資料。總線上的前三個消息假設是初(chū)始(shǐ)化合(hé)成(chéng)器、加載分路器比率、鎖存數據。根據技術數據,前三個傳(chuán)送中後半個(gè)字節 (一個十六進製字符)應(yīng)該分別是3, 0 和1,但我們(men)看到的是0, 0 和0。在消息末尾全是0 時,我(wǒ)們認識到(dào),我們在SPI 中犯了一個常見的錯誤,即在軟件中以相反的順序在每個(gè)24位字中對(duì)各個位編程。在(zài)迅速改變軟件配置後,得到下麵的采集,VCO 正確鎖定在2.5 GHz,如(rú)圖13 所(suǒ)示。
在上麵的(de)實例中,我們使用簡單的SS Active 觸發。MSO/DPO 係列中完整的SPI 觸發功能(néng)包括下述(shù)類型:
SS Active - 在從設備選擇行(háng)對從設備變真(zhēn)時觸發。
MOSI - 在(zài)從主設備到從設備用戶指定多16 個字節時觸(chù)發。
MISO - 在從設備到主設備用戶指定多16 個字節時觸(chù)發。
MOSI/MISO - 在(zài)主設備到從設備及從設備(bèi)到主設(shè)備用戶指定多16 個字節時觸發。
這些觸發也可以隔離感興趣的特定總線業務,解碼功(gōng)能則可以立即查看(kàn)采集中總線(xiàn)傳送的每條消息的內容。 |

圖11.通過SPI控製的合成器

圖12. 采集SPI 總線之外的合(hé)成器配置消息。

圖13. 正確的合成(chéng)器配置(zhì)消息。 |
RS-232
背景知識
RS-232是(shì)近距離(lí)的兩台設備(bèi)之間進行串行通信廣(guǎng)泛使用的(de)標準,它主(zhǔ)要(yào)用於PC 串行端口,另外也用於嵌入式係統,作為調(diào)試端口使(shǐ)用或連接(jiē)兩台設備。RS-232-C標準於1969年問世,之後標準(zhǔn)修訂了兩次,但變(biàn)化(huà)很小,其信號能夠與(yǔ)RS-232-C 互通。業內還有(yǒu)幾個相關標準,如RS-422 和RS-485,這些標準(zhǔn)類似,但使用差分信令在遠距離內通信。
工作方式(shì)
兩(liǎng)台設備稱為DTE (數據終端設備)和DCE (數(shù)據電路端接設備)。在某些應用中,DTE 設備控製著DCE 設(shè)備;在其(qí)它應用中,這兩台設備是對等的,DTE 和DCE 之間的(de)區別可以是任意的(de)。
RS-232標準規定了各種各樣的信號,許多(duō)信號並不常用(yòng)。兩個重要的信號是(shì)發送的數據(Tx)和接收的數據(Rx)。Tx 把數據從DTE 傳(chuán)送到(dào)DCE。DTE 設備的Tx 線路是DCE 設備的Rx 線路。類似的,Rx 把數據從DCE傳送到(dào)DTE。
RS-232 標準(zhǔn)沒有規定使用哪些連接器。常用(yòng)的連接器是25針連接器和9針連接器。也可以使10 針、8 針或6 針連(lián)接器。還可以在不使用標準連接器的情況下,把(bǎ)同一塊電路板上(shàng)的兩台RS-232設備連接起來。
在連接兩台RS-232 設備時,通常要求零訊號調製器。這種(zhǒng)設備交換多條線路,包括Tx和Rx線路。通過這種方式,每台(tái)設(shè)備可以在Tx 線路上(shàng)發送(sòng)數據,在Rx 線路上(shàng)接收數據。表2 顯示了RS-232 信號常用的9 針連接器使用的針腳輸出。記住,如果信號(hào)已經傳(chuán)過零訊號調製解調器(qì),那麽(me)許多信(xìn)號將被交換。重要(yào)的是,將(jiāng)交換Tx 和(hé)Rx。 |
信號(hào)
|
|
針腳
|
Carrier Detect (載(zǎi)波檢測)
|
DCD
|
1
|
Received Data (接(jiē)收的數據)
|
Rx
|
2
|
Transmitted Data (發送的數據)
|
Tx
|
3
|
Data Terminal Ready (數據端子就緒)
|
DTR
|
4
|
Common Ground (公共接地(dì))
|
G
|
5
|
Data Set Ready (數據集就緒)
|
DSR
|
6
|
Request to Send (請求發送)
|
RTS
|
7
|
Clear to Send (清除(chú)發送)
|
CTS
|
8
|
Ring Indicator (振鈴(líng)指示符)
|
RI
|
9
|
表2. 常用的RS-232 連接器(qì)針腳輸出。 |
在探測RS-232信號時,通常要使用接續盒。這種設備允許簡便地探測RS-232電纜內部的信(xìn)號。接續盒成本低,可以從電子器件經(jīng)銷商處購買。
RS-232 標準沒有規定通過總線傳送的內容。ASCII 文本是常見的內容,但(dàn)也使用二進製(zhì)數據。數據通常(cháng)會劃分成數據包。在ASCII文本中,數據包(bāo)後通常帶有新行符或回車符。在二進製數據中,通常(cháng)使用(yòng)其它值,如00 或FF 十六進製。
設備通常使用通用異步接收機/ 發射機(UART) 實現RS-232。UART 在市麵上流行的部件中廣泛使用。UART 采用位移寄存器,把一個數據字節轉換成串行流,反之亦然。在嵌入式設計中(zhōng),UART 還直接通信,而不需使用RS-232 收發機。
圖14顯示了(le)RS-232數據的一個字節。這個字節由下述位組成:
開(kāi)始位-字節的開頭是一個開始(shǐ)位。
數(shù)據位-後麵跟著多個(gè)數據位。常見的是8個數據位,某些應用使用7 個數(shù)據(jù)位。即使在隻傳送7 個位時,數據通常也會非正式地稱為一(yī)個(gè)字節。在UART到UART 通信中,有時會(huì)使用9 位數(shù)據字。
奇偶性(xìng)-一個可選(xuǎn)的奇偶性位。
結束位- 1 個、1.5 個或2 個結束位(wèi)。RS-232總線沒有時鍾(zhōng)線(xiàn)路。每台設備使用自己的時鍾,確定什麽時候對數據線路采樣。在許多(duō)設計中,UART使用Tx 和(hé)Rx 信號的上升沿,把自己的時鍾與其它(tā)設備的時鍾同步(bù)起來。 |

圖14. RS-232 字節結構。
|
處理RS-232
DPOxCOMP 應用(yòng)模塊支持串行觸發和分析RS-232總線。您可(kě)以在示波器上方(fāng)便地查看RS-232、RS-422、RS-485或(huò)UART 數據(jù),而不需連(lián)接PC 或專用解碼器。
通過使用前(qián)麵(miàn)板總線按鈕,我們可(kě)以輸入基本參數,如(rú)使用的通道、位速率和奇偶性,定義RS-232 總線(參見(jiàn)圖15)。 |

圖15. RS-232 總線設置菜單。
|
在本例中,我們選擇了ASCII解碼;MSO/DPO係列還作為二進製或十六進製顯示(shì)RS-232 數據。
想象一(yī)下您有(yǒu)一台設備輪(lún)詢傳感器,請求通(tōng)過RS-232總線傳送數據。傳感器沒有對數據請求作出應(yīng)答。您想確定傳(chuán)感器(qì)是不是沒有收到請(qǐng)求,或者是不是收到請求、但忽略了請求。
先,探測Tx 和Rx 線路,在示波器上設置一條總線。然(rán)後(hòu)把示波器設置成在通過(guò)Tx 線路發送(sòng)數據請求(qiú)時觸發采集(jí)。觸發後的采集(jí)如16 所示(shì)。
在這裏,我們可以看到數字通道1 上(shàng)的Tx 線路及數字通道0上的Rx線(xiàn)路。但是(shì),我們更關(guān)心解碼的(de)數據,其顯示在原始波形上方。我們放大查看傳(chuán)感器的響應。概況顯示了Tx線路上的(de)請(qǐng)求及Rx線(xiàn)路上的響應。光(guāng)標顯示在請求結束後大約37ms時(shí)發出(chū)回複。提高(gāo)控製器的超時可以解決這個(gè)問題,因為它為傳感器回複(fù)提供了足(zú)夠的時間。
|
MSO/DPO 係列示波器的RS-232 觸發包括下述功能:
Tx 開始位-在表明(míng)字節開始的位上(shàng)觸發。
Tx數據包尾- 在數據包後一(yī)個(gè)字節上觸發。數據包可(kě)以以某個字節結尾(wěi):零 (00 十六進製(zhì)), 換(huàn)行(0A十六進製), 回車(0D十六進製), 空格(20十六進製)或FF 十六(liù)進製(zhì)。
Tx 數據- 觸發多10 個字節(jiē)的用戶指(zhǐ)定數據值。
Rx 開始位、Rx 數(shù)據包尾(wěi)和Rx 數據- 這些與Tx 觸發(fā)類似(sì),但發生在(zài)Rx 線路上。通過MSO/DPO 係(xì)列示(shì)波器,可以(yǐ)簡便地查看RS-232信號,分析信號,把這些信號(hào)與設備中的其它活動關聯起來(lái)。 |

圖16. 測量兩條RS-232 總線上的消息時延。 |
CAN
背景知識
CAN (控製器區域網)總線是(shì)博世公司在20世紀80年(nián)代(dài)專門研製的一(yī)種分層串行數據通信協議,以在電氣噪聲環境中作為設備之間的通(tōng)信總線。1992年,梅塞德茲- 奔馳(chí)率先在(zài)其(qí)汽車(chē)係統中采用CAN。今天,幾乎每個汽車製造商(shāng)都(dōu)在使用CAN 控製器(qì)和網絡,控(kòng)製雨刷器馬達控製器、雨水傳感器、安全氣囊、門鎖、傳動係統和電動車窗等等。由於能夠容(róng)忍電(diàn)氣噪聲、減少連線、校(xiào)驗錯誤及高(gāo)速傳送(sòng)速率,CAN 正迅速(sù)擴展到其它(tā)應用(yòng)中,如工業控製、艦隊、醫(yī)療、航空等域。
工作方式
CAN總線是一種平衡(héng)的(差分)2線接口,在屏蔽雙絞線 (STP)、非屏蔽雙(shuāng)絞線 (UTP)或(huò)帶狀電纜上運行(háng)。每(měi)個節點(diǎn)使用公頭9 針連接器。非歸零 (NRZ) 位編碼與位填充一起使用,保證(zhèng)緊(jǐn)湊的消息及小的轉換數量(liàng)和高抗(kàng)噪聲能力。CAN總線接口采用異步傳輸方案,在總(zǒng)線空閑時每(měi)個節(jiē)點可以開始傳送信息。消息廣播到網(wǎng)絡(luò)上的所有(yǒu)節點。在多(duō)個節(jiē)點(diǎn)同時發起消息時,位(wèi)仲裁用來確定哪條消息的優先權較高。消息(xī)可以是(shì)四種類(lèi)型中的一種:數據幀、遠(yuǎn)程傳輸請求(RTR)幀、錯幀或過載幀。總線上檢測到錯誤的任何節點會傳輸一(yī)個錯(cuò)幀,導致總線上所(suǒ)有節點能夠看到當前消(xiāo)息不完整,傳(chuán)輸節點會重新(xīn)發送消息。接收(shōu)設備發起過載幀,表明還(hái)沒有準備好接收(shōu)數據。數據幀用來傳輸(shū)數據,遠程幀由用來請求數據。數據幀和遠程幀由每個幀開頭和(hé)結束的開(kāi)始位和停止位控製,包括下述(shù)字段(duàn):仲裁(cái)字段、控製字段、數據字段、CRC字段(duàn)和(hé)ACK字段,如圖(tú)17所示。 |

圖17. CAN 數據/ 遠程幀。 |
SOF - 幀以幀頭 (SOF) 位開始。
仲裁 - 仲裁字段包括標識符(地址)和遠程傳輸請求(RTR)位,用來(lái)區分數據幀和數據請求幀,其也稱為遠程幀。標識符可以采取標準(zhǔn)格式(11位-2.0A 版)或擴展格式(29位 - 2.0B版)。
控製 - 控製字段由6個位組成,包括標識符擴展(IDE)位,它區分CAN2.0A (11 位標識符) 標準幀(zhēn)和CAN 2.0B (29位標識符)擴展(zhǎn)幀。控製字段還包括數據長度代碼 (DLC)。DLC長4 位,表明數(shù)據幀中數據字段的字節數或遠程幀請求的字節數。
數據 - 數據(jù)字段由(yóu)0-8個數據字(zì)節組成。
CRC - 15位循環冗餘(yú)校(xiào)驗代碼和隱性分隔符位。
ACK - 確認(rèn)字段(duàn)長兩位。個位是時隙位,作為隱性位傳輸,但之(zhī)後被成功(gōng)地收到傳輸消息的任 何節點傳送的顯性位覆蓋。第二個位是是隱(yǐn)性分隔符位。
EOF - 七個隱(yǐn)性位,表明幀尾(wěi)(EOF)。
三個隱性位的間斷 (INT) 字段表明總線空閑。總線空閑時間可以是任意長度(dù),包括(kuò)零。
它(tā)定義了大量的不同數據速率,高數據速率為(wéi)1Mb/s,低數據速率為5kb/s。所有模塊必須支持至少20kb/s的速率(lǜ)。電纜長度取決於使用的數據速率。正常情況下,係統中所有(yǒu)設備都(dōu)以統一的固定位速率傳送信息。大線路長度在(zài)低速時(shí)可以達到幾千米;典型(xíng)情況是1Mbps 時40 米。在電(diàn)纜每端使用端接電阻器(qì)。
處理CAN
MSO/DPO 係列的DPOxAUTO和DPO4AUTOMAX串行觸發和分析應(yīng)用(yòng)模(mó)塊可以對CAN總(zǒng)線實現(xiàn)類似(sì)的觸發和(hé)分析功(gōng)能。我們可以再(zài)次使用前(qián)麵板 B1或B2按(àn)鈕,簡單地輸入總線的基本參數,包括(kuò)探測的CAN 信(xìn)號類型及位於(yú)哪條通(tōng)道上、位速率、門限和樣點(diǎn)(位(wèi)時間的%),來定義CAN 總線,參見圖18。 |

圖18. CAN 總線設置(zhì)菜單。 |
想象一下您需(xū)要進行相關定時測量,確(què)定從司機(jī)在司機車門儀表板上按下搖車窗開(kāi)關開始到車窗實際開始移動之(zhī)間(jiān)的時延。通過(guò)指定司機車門中CAN模(mó)塊的ID 及與“下搖車窗”命令有關的數(shù)據,您可以觸發采集正在查找的數據幀。通過同時探(tàn)測司機車門的下(xià)搖車(chē)窗開關及車門中的馬達驅動,可以非常簡便地完成(chéng)這一定時測量,如圖19 所示。
圖中的白三角形是我們放在波形上作為參考點的標記(jì)。通過簡單地(dì)按示波(bō)器前麵板(bǎn)上Set/Clear Mark (設置(zhì)/清除標記(jì))按(àn)鈕,可以在屏幕中增加或從屏幕(mù)中刪除標記。按前麵板上的Previous和Next按鈕,縮放窗口從一(yī)個標記跳到另一個標記(jì),從而(ér)可以簡便地在采集中感興趣的事件之間導航。
現在想象一(yī)下,如果沒有這些功能會怎(zěn)樣執行這一任(rèn)務。
如果沒有CAN觸發功能,您將不得(dé)不觸發開關本身,捕獲時(shí)間窗口足夠長的活動,然(rán)後在(zài)CAN 總線上逐幀手動解碼,直到終找到適當的幀。以(yǐ)前(qián)需要幾十分鍾或幾個小時(shí)完成的工作,現在隻(zhī)需要一會兒就可以完成。
MSO/DPO強大的CAN 觸發功能包括下述類型:
幀頭:觸發(fā)SOF 字段。
幀類(lèi)型:選項包括數據幀、遠程幀、錯幀和過載幀
標識符:使用讀/寫判定觸發特定的11位或29位標
識(shí)符(fú)
數據:觸發1-8 字節用戶指定的數據
Missing Ack:在接(jiē)收設備沒有(yǒu)提供確認時觸發
幀(zhēn)尾-:觸發EOF 字段
這些觸發類型可以輕鬆隔離CAN總線上查找的幾乎任何項目。但(dàn)觸發隻是開始。調試通常(cháng)要求檢查觸發前觸發後的消息內(nèi)容。可以通過MSO/DPO係列的(de)事件表簡單地查(chá)看一次采集中的多個消息的內容(róng),如圖17所示。
事件表以帶時戳的(de)表格形式顯(xiǎn)示了采集(jí)中每條(tiáo)消息解碼的消息內容。它不僅可以簡便地查看總線上的所(suǒ)有業務,還可以簡(jiǎn)便地在消息之間進行定時測量。事件表還可以用於MSO/DPO 係列示波器支持的所有總線(xiàn)類型。 |

圖19. 觸發CAN 總線上的特定標識符和(hé)數據,解碼采集中的所有消(xiāo)息。

圖20. CAN 事件(jiàn)表。
|

圖21. LIN 幀的結構。
|
LIN
背景知識
本地互連網(wǎng)絡(LIN)總線是LIN 聯盟在1999 年開發的,在不需要CAN 總線那麽高(gāo)的成本、通用性和速度的應用中,作為CAN 總線的低成本替代方案(àn)。這(zhè)些應用一般包括智能傳感器和製動器之間的通信,如車窗控製、門鎖、雨水傳感器、雨刷控製、氣(qì)候控製等等。
但是,由於能夠(gòu)容忍電氣噪聲、錯誤檢測功能及高速數據(jù)傳(chuán)送,CAN 目前仍用於引(yǐn)擎定時控製、防抱死刹車係(xì)統、傳動係控製(zhì)等應用中。 |
工作方式
LIN總線是一種基於增強ISO9141標準的低成本單線實現方案。LIN網絡有一(yī)個主設備,有一個或多(duō)個從(cóng)設備。所有消息都(dōu)由主設備發起,每條(tiáo)消息隻有一個從設備作出響應,因此不象CAN那樣需要碰撞檢測和仲裁(cái)功能。通信基(jī)於UART/SCI,數據在(zài)8 位(wèi)字節中與開始位、結束位和非奇偶性位一起傳送。數據速率在(zài)1 k b / s -20kb/s之間,盡管(guǎn)聽起來很慢,但(dàn)它適合許多預(yù)計的應用,使EMI 達到(dào)小。LIN 總線總是處於兩種狀態中的一種狀態:活動狀態或(huò)睡眠狀態。在活動(dòng)狀態下(xià),總線上所有節點是醒著的,收聽相關的(de)總線命(mìng)令。通過使用(yòng)主設(shè)備簽發Sleep Frame(睡眠幀),或總線不活動時間長於預先確定的時間,可以使總線上的節點進入睡眠狀態。然後在任何節點請求喚醒或主設備(bèi)簽(qiān)發中斷字段時(shí),總線會被喚醒。
LIN幀由兩(liǎng)個主要部分(fèn)組成:包頭和響應。包頭由主設備發出,響應則由從設備發出。包頭和響應都有(yǒu)自己的構成,如圖21所示。
包頭構成:
中斷字段-中斷(duàn)字段用來表明新幀的開頭。它激活(huó)和(hé)命令所有從設備接聽包頭的其餘部分。
同步字段-從設備使用同步字段確定主節點使用(yòng)的波(bō)特率,相應地進行(háng)同步。
標識符字段-標(biāo)識符指明哪台從設備采取行(háng)動。
響應構成:
數據-指定的從設備應答1-8 個字節的數據。
校驗和-計算得出的字段,用來檢測數據傳輸中的錯誤。LIN標(biāo)準已經演進了多個版本,使用兩種不同形式的校驗和。典型的校驗和隻在數據字節上計算,用於1.x版LIN係統中。增強(qiáng)校驗和在數據字節和標識符上(shàng)計算,用於2.x 版LIN 係統中。
|

圖22. LIN 總(zǒng)線設置菜單和解碼後的幀。

圖23. 同時捕獲和解碼(mǎ)多(duō)條汽車串行總線。 |
處理LIN
MSO/DPO係列通過DPOxAUTO或DPO4AUTOMAX串行(háng)觸發和分(fèn)析應用模塊提供LIN支持。再次使用前麵板Bus 按(àn)鈕,我們可以簡單地(dì)輸(shū)入總線的基(jī)本參數(shù),如使用的LIN 版本、位速率、極性、門限及在哪裏對數據采樣(位時間的百分比),定義一條(tiáo)LIN總線。LIN設(shè)置菜單及解碼後的LN 幀如圖22 所示。
MSO/DPO 係列擁有一種強(qiáng)大的功能,能夠同時定義和解碼多四條串行總線。回到前(qián)麵的CAN 總線實例,現在想象一下LIN總線運行車窗控製裝置。在司機按下Passenger WindowDown 控製(zhì)裝置時,司機窗戶中的LIN 總線上會發起一條消息(xī),這條消(xiāo)息(xī)傳過中央CAN 網(wǎng)關,然後發送到司機車門的另一個LIN網(wǎng)絡中。在這(zhè)種情況下,我們可以觸發其中一條總線(xiàn)上的(de)相(xiàng)關消息,同時捕獲和解碼全部三條總線,在業務通過係統從一條總線傳送到另一條總線時,可以非常簡便地查看業務(wù)。如圖(tú)23 所示,我們觸發了條(tiáo)LIN消息,捕(bǔ)獲了全部(bù)三條總線。
MSO/DPO 係列LIN 觸發功能包括下述(shù)類型:
-同步-觸發同步字段。
-標識符-觸發特定的標(biāo)識符。
-數據-觸發1-8個字節的特定(dìng)數據值或數據值範圍。
標(biāo)識符和數據(jù)-觸發(fā)標識符和(hé)數據組合。
喚醒幀-觸(chù)發喚醒幀。
睡眠幀-觸發睡眠幀。
錯誤-觸發同步錯誤、ID奇偶性錯誤或校驗和錯誤。
這些(xiē)觸發類(lèi)型允許比以前更快地隔離LIN總線上查找的一切特性。通過MSO/DPO 係列(liè)中的其它串行功能,如事件表及搜索和標記功能(néng),調試基於LIN的汽車設計變得前所未有的簡便。
FlexRay
背景知識
FlexRay 是(shì)一種相對較新(xīn)的汽車總線,目前,由先汽車公司和供應商組成(chéng)的集團(稱為FlexRay聯盟)對這一總線的開發工作仍在進(jìn)行中。隨著汽車智能化程度不(bú)斷提高及電子器件進入(rù)越來越多的汽車應用,製(zhì)造商發現現有的汽車串行標準(zhǔn)(如CAN 和LIN)沒有滿足X-bywire應用要求的速度、可靠性(xìng)或冗餘(yú)性,如線路製動或線路轉向應用。今天,這些功(gōng)能主要采用機械係(xì)統和水壓係統。將來,它們將被代之以(yǐ)由傳感器和高(gāo)度可靠的電子組成(chéng)的網絡,這不僅可以降低(dī)汽車的成本,還可(kě)以(yǐ)明顯提高(gāo)乘客的安全性,因為它提供了許多基於智能電子的功能,如(rú)提前製動(dòng)、避免碰撞、自(zì)適應巡航控製(zhì)、等等(děng)。 |

圖24. FlexRay 幀結構
|
工(gōng)作方式
FlexRay是在屏蔽雙絞線(STP)或(huò)非屏蔽雙絞線(xiàn)(UTP)上(shàng)運行的一(yī)種(zhǒng)速率高達10 Mb/s的差分總線,其速度明顯高於LIN 的20 kb/s 或CAN 的1 Mb/s 速率。FlexRay采用雙(shuāng)通道結構,有兩大優勢。,可(kě)以配置兩條通道,在關鍵安全應用中提供冗餘通信,如(rú)x-by-wire應用,保證消息通過(guò)。第二,可以配置兩條通道,在(zài)每條通道上以10 Mb/s速率發送的信息,在安全(quán)重要程度較低的應用中實現20 Mb/s 的整體(tǐ)總線傳(chuán)送速率。
FlexRay 采用時間觸發協議,通過同時包含(hán)靜態幀和動態幀(zhēn)的通信周期,實現了以前的同步協議和異步協議的優勢。靜(jìng)態幀是為(wéi)總(zǒng)線上每台設備分配(pèi)的時隙(xì)或預(yù)定長度(dù),以在每個周期期間通信。總線上的每台(tái)設備也有機會(huì)通過動態幀(zhēn)在每(měi)個周期中通(tōng)信,動態幀的長度(和時間)可能會變化。FlexRay幀由三(sān)個主要(yào)段組成(chéng):包頭段、淨荷段和包尾段。每個(gè)段都有自己的構成,如圖24 所示。
包頭段的構成:
指示符位-前5 個位稱為(wéi)指示符位,表明傳送的(de)幀的類型。選項包括正常幀、淨荷幀、空幀、同步(bù)幀和(hé)啟動幀。
幀(zhēn)號-幀號定義(yì)了應該在哪個時隙中傳(chuán)送幀。幀號在1-2047 之間,在通信周期中每條通道(dào)內任何單獨幀號(hào)使用的次數不多於一次(cì)。
淨荷長度- 淨荷長(zhǎng)度字段用來指明淨荷(hé)字段中有多少個數(shù)據字。
包頭CRC-使用同步幀指示(shì)符(fú)、啟動幀指示符、幀(zhēn)號(hào)和淨荷長度計算得出的循環冗餘校(xiào)驗(CRC)代碼。
循環數量- 當前通信周期的值,範(fàn)圍為0-63。
淨荷段的構成:
數(shù)據-數據字段包含多(duō)254 字節的數據。對在靜態(tài)段中傳送的幀,淨荷(hé)段的前0-12個字節可以選擇作為網絡管理矢量使用。幀包頭中的淨荷前置碼指示符指明淨荷(hé)段是否包含網絡管理矢量。對在動態段中傳送的幀,淨荷段(duàn)的(de)前兩個字節可以選擇(zé)作為消息ID 字段使用,允許接收節點根據這(zhè)個(gè)字段的內容過濾或掌控數據。幀包頭中的(de)淨荷前置碼指示符指明淨荷段是否(fǒu)包含消息ID。段中傳送的幀,淨荷段的前兩(liǎng)個字節(jiē)可(kě)以選擇作為消息ID 字段使用,允許接收(shōu)節點根據(jù)這(zhè)個字段的內容過濾(lǜ)或掌控數據。幀包頭中的淨荷前置碼指示符指明淨荷段是(shì)否包含消息ID。
包尾段構成:
CRC- 使用幀的包頭段和淨荷估計算得出的循環冗餘校驗(CRC)代碼。動態幀有一個額外的成分,位於包尾CRC 後麵,稱為動態尾部序列(liè)(DTS),防止總線接收機過早地檢測通道空閑狀態。 |

圖25. FlexRay 總線設置菜(cài)單。
|
處理FlexRay
MSO/DPO4000 係列通過DPO4AUTOMAX 模塊支持FlexRay,在所有三項汽車標準上(shàng)提供(gòng)了串行觸發和分析功能,即CAN、LIN 和FlexRay,並在FlexRay 上提供了眼圖(tú)分(fèn)析(xī)和關鍵定時測量功(gōng)能。為定義FlexRay總線(xiàn),我們進(jìn)入總線菜單,從支持的標準列表中選擇FlexRay。FlexRay 設置菜單如圖25 所示。
然後,我們使用Define Inputs 菜單,告訴示波我們是(shì)在查看FlexRay 通道A 還(hái)是通道B、我們正在探測哪類信號(差分、半差分對或控製器和總線驅動器之間的邏輯信號),然後設置門(mén)限和位速率。與4000係列(liè)上支持的其它串行標準不同,FlexRay 在查看非(fēi)Tx/Rx 信號時要(yào)求(qiú)設置兩個門(mén)限,因為它是一種三電平(píng)總(zǒng)線。這樣,示波(bō)器可以識別Data High 和Data Low 及兩個信號電壓相(xiàng)同(tóng)的空閑狀態。
MSO/DPO4000 係列強大的FlexRay 功(gōng)能集(jí)如圖(tú)26 所示,其中我們觸發了Frame ID = 4 和Cycle Count = 0組(zǔ)合,捕獲了大約80 個FlexRay 幀,解(jiě)碼了整個采集,然後讓示波(bō)器(qì)搜索采集數據,找到和標記發生的所有同步幀。所有這一切隻需使用100,000 點的(de)記錄長度完成。MSO/DPO4000 係列(liè)在所有通道上可以實現深10M 點的記錄(lù)長度,捕獲串(chuàn)行活動的(de)長時間窗口。
MSO/DPO4000 係列FlexRay觸(chù)發功能包(bāo)括(kuò)下述類型:
幀頭-觸發幀頭序列(FSS)的後沿。
指示符位-觸發正常幀、淨荷幀、空幀、同步幀或啟動幀。
標識符-觸發特定幀號或一(yī)個幀號(hào)範(fàn)圍。
循環數量-觸發特定(dìng)的循環數量值或一個循環數量值範圍。
包頭字(zì)段-觸發(fā)任意包頭字段或所有(yǒu)包頭字段中用(yòng)戶指定值的(de)組合,包括指示符位、幀號、淨荷長度、包(bāo)頭CRC 和循環數量。
數據-觸發多16 個字節的數據。數據窗口可以(yǐ)偏移幀中用戶指定字節數(shù)及非常長的數據淨(jìng)荷。可以作為特(tè)定值或取值範圍指定所需的數據(jù)。
標識符和(hé)數據- 觸發(fā)幀號和數據組合(hé)。
幀尾-觸發靜態幀、動態(tài)幀或所有幀。
錯誤- 觸(chù)發大量的(de)不同錯誤類型,包括包頭CRC錯誤(wù)、包尾(wěi)CRC 錯誤、空幀錯誤、同步幀錯誤和啟動幀錯誤。
|

圖26. 觸發幀號(hào)和(hé)循環數,搜索采(cǎi)集的數據,找到啟動幀。

圖27. FlexRay 信(xìn)號的眼圖分析。

圖28. 在CAN 總線采集(jí)中搜索指定的標識符的數據(jù)。 |
除上麵介紹的觸(chù)發和解碼功能外,DPO4AUTOMAX 還提供了FlexRay眼圖分析功(gōng)能,幫助診斷物理層問題。用戶隻(zhī)需把軟件包裝到PC 上,通(tōng)過LAN 或USB 把PC 連接到示波器,點擊Acquire Data按鈕,就可以獲得信息豐富的顯示畫麵,如圖27 所示。分析(xī)功能包(bāo)括:
眼圖- 使用采集中的所有信息構建(jiàn)眼圖,當前選擇的幀用藍色突(tū)出顯示。與TP1或TP4模板簡便地進行對比,違規的地方用紅色突出顯示。
解(jiě)碼-在模擬波形上解碼當前選擇的幀,整個采集在下麵的表(biǎo)格中解碼。
時間間隔誤差(TIE)圖-簡便地目測幀內的抖動。
錯誤校驗- 錯誤用紅色(sè)突出顯示。計算包頭和包(bāo)尾CRC,並與傳(chuán)送的幀進行對比。
定時測量-上升時間、下降時間、TSS 時長、幀時間(jiān)、平均位時間、前一個同步、下一個同步、前一個周(zhōu)期幀、下一(yī)個周期幀。
查找-根據分組內容隔離感興趣的特(tè)定幀。
保存-把解碼後的采(cǎi)集(jí)保存到.csv 文件中,以進一步離線分析。
由於提供了這套完善的FlexRay觸發(fā)功能及前麵(miàn)討論的CAN 和LIN 功能,MSO/DPO4000 係列已經成為的汽車(chē)設(shè)計調試工具。 |
觸發與搜索
正如我們在本應用指南中(zhōng)討(tǎo)論的那樣,必需(xū)擁有強大的觸發係統,隔離串行總線上感興趣(qù)的事件。但是,一旦已經采集了數據(示波器被停止),而且想分析數據,那麽觸發就沒有什麽用(yòng)了。如果示波器具有(yǒu)類似觸發的資(zī)源、分析停止的波形數據不是更好嗎?MSO/DPO係(xì)列的(de)Wave Inspector為您提供了強大的搜索功能(néng)。本文中討論的所有總線觸發功能還作為已采集數據的搜索標準使用。例如,在圖18中(zhōng),示波(bō)器已經在長采集記錄中搜索(suǒ)了具有特定地址和數據內容的每條(tiáo)CAN 消息,並在顯示屏頂部在每條消息上標明空(kōng)心的白三角形。為在發生(shēng)的消息之間導航,用(yòng)戶隻需(xū)按(àn)前(qián)麵板上(shàng)的Previous和Next按鈕即可。
當然,搜索也可以用於比較(jiào)傳統的觸(chù)發類(lèi)型。搜索類型包括邊沿、脈寬、欠幅脈(mò)衝、建立時間和保持時間、邏輯和上升時間/下降時間。
總結
盡管嵌入式係統設計從並行總線轉向串行總線(xiàn)帶來了許多好處,但(dàn)它也給設計工程師帶來了許多挑戰。通過傳統測試(shì)測量工具,觸發查找的事件要困難(nán)得多,這些工具僅僅查看模擬信號,幾乎不可能告訴用戶其提供了哪些信息,而且手動(dòng)解碼長時間的總線活動、診斷問題是非常耗時、非常容易出錯的過程。MSO/DPO係列改變了這一切。由於其強大的觸發、解碼和搜索功能,當前(qián)的設(shè)計工程師可以(yǐ)以極高的效率解決(jué)嵌(qiàn)入式係統設計問題。 |
|
MSO/DPO4000 係列
|
DPO3000 係列
|
MSO/DPO2000 係列
|
帶寬
|
1GHz,500MHz,350 MHz
|
500MHz,300MHz,100MHz
|
200MHz,100MHz
|
通道數量
|
2條或4條模擬通道
16條數字通道(MSO係列)
|
2條(tiáo)或4條(tiáo)模擬通(tōng)道
|
2條或4條模擬通道
16條數字通道(MSO係列)
|
記錄長度(所(suǒ)有(yǒu)通道)
|
10 M
|
5 M
|
1 M
|
采樣率(模擬(nǐ))
|
5 GS/s*, 2.5 GS/s
|
2.5 GS/s
|
1 GS/s
|
彩色顯(xiǎn)示器
|
10.4 英寸XGA
|
9 英寸WVGA
|
7 英寸WQVGA
|
串行總線觸發和分析模塊
|
DPO4EMBD: I2C, SPI
DPO4COMP:
RS-232/422/485/UART
DPO4AUTO: CAN, LIN
DPO4AUTOMAX:
CAN, LIN, FlexRay
|
DPO3EMBD: I2C, SPI
DPO3COMP:
RS-232/422/485/UART
DPO3AUTO: CAN, LIN
|
DPO2EMBD: I2C, SPI
DPO2COMP
RS-232/422/485/UART
DPO2AUTO: CAN, LIN
|
同時顯(xiǎn)示的
串行總線數量
|
4
|
2
|
2
|
*1 GHz 帶寬型(xíng)號。
|
|