調試嵌入式系統設計中的低速串行總線(二)
SPI背景知識
串行外設接口總線(SPI)最初是摩托羅拉在20世紀80年代末為其68000 系列微控制器研制的。由于該總線簡單、流行,許多其它制造商也已經采用這一標準。它現在用于嵌入式系統設計常用的各種器件中。SPI主要用于微控制器和直接外設之間。它通常用于移動電話、PDA和其它移動設備中,在CPU、鍵盤、顯示器和內 存芯片之間通信。
工作方式
SPI (串行外設接口)總線是一種主/從結構的4線串行通信總線。4個信號是時鐘(SCLK), 主輸出/從輸入(MOSI), 主輸入/從輸出(MISO)和從選擇(SS)。在兩臺設備通信時,一臺設備稱為“主設備”,另一臺設備稱為“從設備”。主設備驅動串行時鐘。它同時收發數據,因此是一種全雙工協議。SPI 使用SS 線路指明與哪臺設備傳送數據,而不是總線上的每臺設備都有一個唯一的地址。這樣,總線上的每臺唯一的設備都需要從主設備提供自己的SS 信號。如果有3 臺從設備,那么主設備有 3 條SS 引線,每條引線都連接到每臺從設備上,如圖 8 所示。
在圖8 中,每臺從設備只與主設備通話。但是,SPI可以串聯多臺從設備,每臺從設備依次進行操作,然后把結果發回主設備,如圖9所示。因此您可以看到,SPI實現方案沒有“標準”。在某些情況下,在不要求從設備向回到主設備通信時,MISO 信號可以完全省略。
在SPI數據傳送發生時,8位數據字移出MOSI,不同的8位數據字移入MISO。這可以視為16 位循環位移寄存器。在傳送發生時,這個16 位位移寄存器位移8 個位置,從而在主設備和從設備之間交換8位數據。一對寄存器 - 時鐘極性(CPOL)和時鐘相位(CPHA)決定著驅動數據的時鐘邊沿。每個寄存器有兩種可能的狀態,支持四種可能的組合,所有這些組合互不兼容。因此,主/從設備對必須使用相同的參數值進行通信。如果使用多個固定在不同配置的從設備,那么每次需要與不同的從設備通信時,主設備必須重新進行配置。
圖8.常用的SPI配置。
圖9.串聯SPI配置。
圖10. SPI 總線設置菜單。
處理SPI
DPOxEMBD 串行觸發和分析應用模塊還可以為SPI 總線實現類似的功能。我們可以再次使用前面板Bus按鈕,簡單地輸入總線基本參數,包括SCLK, SS, MOSI 和MISO位于哪條通道上、門限和極性,來定義一條SPI 總線 (參見圖10)。
例如,考慮一下圖11 中的嵌入式系統。一條SPI 總線連接到一個合成器、一個DAC及某個I/O 上。合成器連接到VCO上,VCO為其余系統提供一個 2.5 GHz 時鐘。在啟動時,CPU應該對合成器編程。但是不知道哪里出了問題,VCO在產生3 GHz的信號。調試這個問題的第一步是考察CPU和合成器之間的信號,確定存在信號,沒有物理連接問題,但我們找不到發生了什么問題。然后,我們決定看一下SPI 總線上傳送的合成器編程使用的實際信息。為捕獲這些信息,我們把示波器設成在合成器Slave Select信號激活時觸發采集,并對DUT 通電,捕獲啟動編程命令。采集結果如圖12 所示。
通道1 (黃色) 是SCLK,通道2 (青色) 是MOSI,通道3(洋紅色) 是SS。為確定我們是否對設備正確編程,我們看一下合成器的產品資料。總線上的前三個消息假設是初始化合成器、加載分路器比率、鎖存數據。根據技術數據,前三個傳送中最后半個字節 (一個十六進制字符)應該分別是3, 0 和1,但我們看到的是0, 0 和0。在消息末尾全是0 時,我們認識到,我們在SPI 中犯了一個最常見的錯誤,即在軟件中以相反的順序在每個24位字中對各個位編程。在迅速改變軟件配置后,得到下面的采集,VCO 正確鎖定在2.5 GHz,如圖13 所示。
在上面的實例中,我們使用簡單的SS Active 觸發。MSO/DPO 系列中完整的SPI 觸發功能包括下述類型:
SS Active - 在從設備選擇行對從設備變真時觸發。
MOSI - 在從主設備到從設備用戶指定最多16 個字節時觸發。
MISO - 在從設備到主設備用戶指定最多16 個字節時觸發。
MOSI/MISO - 在主設備到從設備及從設備到主設備用戶指定最多16 個字節時觸發。
這些觸發也可以隔離感興趣的特定總線業務,解碼功能則可以立即查看采集中總線傳送的每條消息的內容。
圖11.通過SPI控制的合成器
圖12. 采集SPI 總線之外的合成器配置消息。
圖13. 正確的合成器配置消息。
RS-232
背景知識
RS-232是近距離的兩臺設備之間進行串行通信廣泛使用的標準,它主要用于PC 串行端口,另外也用于嵌入式系統,作為調試端口使用或連接兩臺設備。RS-232-C標準于1969年問世,之后標準修訂了兩次,但變化很小,其信號能夠與RS-232-C 互通。業內還有幾個相關標準,如RS-422 和RS-485,這些標準類似,但使用差分信令在遠距離內通信。
工作方式
兩臺設備稱為DTE (數據終端設備)和DCE (數據電路端接設備)。在某些應用中,DTE 設備控制著DCE 設備;在其它應用中,這兩臺設備是對等的,DTE 和DCE 之間的區別可以是任意的。
RS-232標準規定了各種各樣的信號,許多信號并不常用。兩個最重要的信號是發送的數據(Tx)和接收的數據(Rx)。Tx 把數據從DTE 傳送到DCE。DTE 設備的Tx 線路是DCE 設備的Rx 線路。類似的,Rx 把數據從DCE傳送到DTE。
RS-232 標準沒有規定使用哪些連接器。最常用的連接器是25針連接器和9針連接器。也可以使10 針、8 針或6 針連接器。還可以在不使用標準連接器的情況下,把同一塊電路板上的兩臺RS-232設備連接起來。
在連接兩臺RS-232 設備時,通常要求零訊號調制器。這種設備交換多條線路,包括Tx和Rx線路。通過這種方式,每臺設備可以在Tx 線路上發送數據,在Rx 線路上接收數據。表2 顯示了RS-232 信號常用的9 針連接器使用的針腳輸出。記住,如果信號已經傳過零訊號調制解調器,那么許多信號將被交換。最重要的是,將交換Tx 和Rx。
表2. 常用的RS-232 連接器針腳輸出。
在探測RS-232信號時,通常要使用接續盒。這種設備允許簡便地探測RS-232電纜內部的信號。接續盒成本低,可以從電子器件經銷商處購買。
RS-232 標準沒有規定通過總線傳送的內容。ASCII 文本是最常見的內容,但也使用二進制數據。數據通常會劃分成數據包。在ASCII文本中,數據包最后通常帶有新行符或回車符。在二進制數據中,通常使用其它值,如00 或FF 十六進制。
設備通常使用通用異步接收機/ 發射機(UART) 實現RS-232。UART 在市面上流行的部件中廣泛使用。UART 采用位移寄存器,把一個數據字節轉換成串行流,反之亦然。在嵌入式設計中,UART 還直接通信,而不需使用RS-232 收發機。
圖14顯示了RS-232數據的一個字節。這個字節由下述位組成:
開始位-字節的開頭是一個開始位。
數據位-后面跟著多個數據位。最常見的是8個數據位,某些應用使用7 個數據位。即使在只傳送7 個位時,數據通常也會非正式地稱為一個字節。在UART到UART 通信中,有時會使用9 位數據字。
奇偶性-一個可選的奇偶性位。
結束位- 1 個、1.5 個或2 個結束位。RS-232總線沒有時鐘線路。每臺設備使用自己的時鐘,確定什么時候對數據線路采樣。在許多設計中,UART使用Tx 和Rx 信號的上升沿,把自己的時鐘與其它設備的時鐘同步起來。
圖14. RS-232 字節結構。
處理RS-232
DPOxCOMP 應用模塊支持串行觸發和分析RS-232總線。您可以在示波器上方便地查看RS-232、RS-422、RS-485或UART 數據,而不需連接PC 或專用解碼器。
通過使用前面板總線按鈕,我們可以輸入基本參數,如使用的通道、位速率和奇偶性,定義RS-232 總線(參見圖15)。
圖15. RS-232 總線設置菜單。
在本例中,我們選擇了ASCII解碼;MSO/DPO系列還作為二進制或十六進制顯示RS-232 數據。
想象一下您有一臺設備輪詢傳感器,請求通過RS-232總線傳送數據。傳感器沒有對數據請求作出應答。您想確定傳感器是不是沒有收到請求,或者是不是收到請求、但忽略了請求。
首先,探測Tx 和Rx 線路,在示波器上設置一條總線。然后把示波器設置成在通過Tx 線路發送數據請求時觸發采集。觸發后的采集如16 所示。
在這里,我們可以看到數字通道1 上的Tx 線路及數字通道0上的Rx線路。但是,我們更關心解碼的數據,其顯示在原始波形上方。我們放大查看傳感器的響應。概況顯示了Tx線路上的請求及Rx線路上的響應。光標顯示在請求結束后大約37ms時發出回復。提高控制器的超時可以解決這個問題,因為它為傳感器回復提供了足夠的時間。
MSO/DPO 系列示波器的RS-232 觸發包括下述功能:
Tx 開始位-在表明字節開始的位上觸發。
Tx數據包尾- 在數據包最后一個字節上觸發。數據包可以以某個字節結尾:零 (00 十六進制), 換行(0A十六進制), 回車(0D十六進制), 空格(20十六進制)或FF 十六進制。
Tx 數據- 觸發最多10 個字節的用戶指定數據值。
Rx 開始位、Rx 數據包尾和Rx 數據- 這些與Tx 觸發類似,但發生在Rx 線路上。通過MSO/DPO 系列示波器,可以簡便地查看RS-232信號,分析信號,把這些信號與設備中的其它活動關聯起來。
圖16. 測量兩條RS-232 總線上的消息時延。
CAN
背景知識
CAN (控制器區域網)總線是博世公司在20世紀80年代專門研制的一種分層串行數據通信協議,以在電氣噪聲環境中作為設備之間的通信總線。1992年,梅塞德茲- 奔馳率先在其汽車系統中采用CAN。今天,幾乎每個汽車制造商都在使用CAN 控制器和網絡,控制雨刷器馬達控制器、雨水傳感器、安全氣囊、門鎖、傳動系統和電動車窗等等。由于能夠容忍電氣噪聲、減少連線、校驗錯誤及高速傳送速率,CAN 正迅速擴展到其它應用中,如工業控制、艦隊、醫療、航空等領域。
工作方式
CAN總線是一種平衡的(差分)2線接口,在屏蔽雙絞線 (STP)、非屏蔽雙絞線 (UTP)或帶狀電纜上運行。每個節點使用公頭9 針連接器。非歸零 (NRZ) 位編碼與位填充一起使用,保證緊湊的消息及最小的轉換數量和高抗噪聲能力。CAN總線接口采用異步傳輸方案,在總線空閑時每個節點可以開始傳送信息。消息廣播到網絡上的所有節點。在多個節點同時發起消息時,位仲裁用來確定哪條消息的優先權較高。消息可以是四種類型中的一種:數據幀、遠程傳輸請求(RTR)幀、錯幀或過載幀。總線上檢測到錯誤的任何節點會傳輸一個錯幀,導致總線上所有節點能夠看到當前消息不完整,傳輸節點會重新發送消息。接收設備發起過載幀,表明還沒有準備好接收數據。數據幀用來傳輸數據,遠程幀由用來請求數據。數據幀和遠程幀由每個幀開頭和結束的開始位和停止位控制,包括下述字段:仲裁字段、控制字段、數據字段、CRC字段和ACK字段,如圖17所示。
圖17. CAN 數據/ 遠程幀。
SOF - 幀以幀頭 (SOF) 位開始。
仲裁 - 仲裁字段包括標識符(地址)和遠程傳輸請求(RTR)位,用來區分數據幀和數據請求幀,其也稱為遠程幀。標識符可以采取標準格式(11位-2.0A 版)或擴展格式(29位 - 2.0B版)。
控制 - 控制字段由6個位組成,包括標識符擴展(IDE)位,它區分CAN2.0A (11 位標識符) 標準幀和CAN 2.0B (29位標識符)擴展幀。控制字段還包括數據長度代碼 (DLC)。DLC長4 位,表明數據幀中數據字段的字節數或遠程幀請求的字節數。
數據 - 數據字段由0-8個數據字節組成。
CRC - 15位循環冗余校驗代碼和隱性分隔符位。
ACK - 確認字段長兩位。第一個位是時隙位,作為隱性位傳輸,但之后被成功地收到傳輸消息的任 何節點傳送的顯性位覆蓋。第二個位是是隱性分隔符位。
EOF - 七個隱性位,表明幀尾(EOF)。
三個隱性位的間斷 (INT) 字段表明總線空閑。總線空閑時間可以是任意長度,包括零。
它定義了大量的不同數據速率,最高數據速率為1Mb/s,最低數據速率為5kb/s。所有模塊必須支持至少20kb/s的速率。電纜長度取決于使用的數據速率。正常情況下,系統中所有設備都以統一的固定位速率傳送信息。最大線路長度在低速時可以達到幾千米;典型情況是1Mbps 時40 米。在電纜每端使用端接電阻器。
處理CAN
MSO/DPO 系列的DPOxAUTO和DPO4AUTOMAX串行觸發和分析應用模塊可以對CAN總線實現類似的觸發和分析功能。我們可以再次使用前面板 B1或B2按鈕,簡單地輸入總線的基本參數,包括探測的CAN 信號類型及位于哪條通道上、位速率、門限和樣點(位時間的%),來定義CAN 總線,參見圖18。
圖18. CAN 總線設置菜單。
想象一下您需要進行相關定時測量,確定從司機在司機車門儀表板上按下搖車窗開關開始到車窗實際開始移動之間的時延。通過指定司機車門中CAN模塊的ID 及與“下搖車窗”命令有關的數據,您可以觸發采集正在查找的數據幀。通過同時探測司機車門的下搖車窗開關及車門中的馬達驅動,可以非常簡便地完成這一定時測量,如圖19 所示。
圖中的白三角形是我們放在波形上作為參考點的標記。通過簡單地按示波器前面板上Set/Clear Mark (設置/清除標記)按鈕,可以在屏幕中增加或從屏幕中刪除標記。按前面板上的Previous和Next按鈕,縮放窗口從一個標記跳到另一個標記,從而可以簡便地在采集中感興趣的事件之間導航。
現在想象一下,如果沒有這些功能會怎樣執行這一任務。
如果沒有CAN觸發功能,您將不得不觸發開關本身,捕獲時間窗口足夠長的活動,然后在CAN 總線上逐幀手動解碼,直到最終找到適當的幀。以前需要幾十分鐘或幾個小時完成的工作,現在只需要一會兒就可以完成。
MSO/DPO強大的CAN 觸發功能包括下述類型:
幀頭:觸發SOF 字段。
幀類型:選項包括數據幀、遠程幀、錯幀和過載幀
標識符:使用讀/寫判定觸發特定的11位或29位標
識符
數據:觸發1-8 字節用戶指定的數據
Missing Ack:在接收設備沒有提供確認時觸發
幀尾-:觸發EOF 字段
這些觸發類型可以輕松隔離CAN總線上查找的幾乎任何項目。但觸發只是開始。調試通常要求檢查觸發前觸發后的消息內容。可以通過MSO/DPO系列的事件表簡單地查看一次采集中的多個消息的內容,如圖17所示。
事件表以帶時戳的表格形式顯示了采集中每條消息解碼的消息內容。它不僅可以簡便地查看總線上的所有業務,還可以簡便地在消息之間進行定時測量。事件表還可以用于MSO/DPO 系列示波器支持的所有總線類型。
圖21. LIN 幀的結構。
LIN
背景知識
本地互連網絡(LIN)總線是LIN 聯盟在1999 年開發的,在不需要CAN 總線那么高的成本、通用性和速度的應用中,作為CAN 總線的低成本替代方案。這些應用一般包括智能傳感器和制動器之間的通信,如車窗控制、門鎖、雨水傳感器、雨刷控制、氣候控制等等。
但是,由于能夠容忍電氣噪聲、錯誤檢測功能及高速數據傳送,CAN 目前仍用于引擎定時控制、防抱死剎車系統、傳動系控制等應用中。
工作方式
LIN總線是一種基于增強ISO9141標準的低成本單線實現方案。LIN網絡有一個主設備,有一個或多個從設備。所有消息都由主設備發起,每條消息只有一個從設備作出響應,因此不象CAN那樣需要碰撞檢測和仲裁功能。通信基于UART/SCI,數據在8 位字節中與開始位、結束位和非奇偶性位一起傳送。數據速率在1 k b / s -20kb/s之間,盡管聽起來很慢,但它適合許多預計的應用,使EMI 達到最小。LIN 總線總是處于兩種狀態中的一種狀態:活動狀態或睡眠狀態。在活動狀態下,總線上所有節點是醒著的,收聽相關的總線命令。通過使用主設備簽發Sleep Frame(睡眠幀),或總線不活動時間長于預先確定的時間,可以使總線上的節點進入睡眠狀態。然后在任何節點請求喚醒或主設備簽發中斷字段時,總線會被喚醒。
LIN幀由兩個主要部分組成:包頭和響應。包頭由主設備發出,響應則由從設備發出。包頭和響應都有自己的構成,如圖21所示。
包頭構成:
中斷字段-中斷字段用來表明新幀的開頭。它激活和命令所有從設備接聽包頭的其余部分。
同步字段-從設備使用同步字段確定主節點使用的波特率,相應地進行同步。
標識符字段-標識符指明哪臺從設備采取行動。
響應構成:
數據-指定的從設備應答1-8 個字節的數據。
校驗和-計算得出的字段,用來檢測數據傳輸中的錯誤。LIN標準已經演進了多個版本,使用兩種不同形式的校驗和。典型的校驗和只在數據字節上計算,用于1.x版LIN系統中。增強校驗和在數據字節和標識符上計算,用于2.x 版LIN 系統中。
處理LIN
MSO/DPO系列通過DPOxAUTO或DPO4AUTOMAX串行觸發和分析應用模塊提供LIN支持。再次使用前面板Bus 按鈕,我們可以簡單地輸入總線的基本參數,如使用的LIN 版本、位速率、極性、門限及在哪里對數據采樣(位時間的百分比),定義一條LIN總線。LIN設置菜單及解碼后的LN 幀如圖22 所示。
MSO/DPO 系列擁有一種強大的功能,能夠同時定義和解碼最多四條串行總線。回到前面的CAN 總線實例,現在想象一下LIN總線運行車窗控制裝置。在司機按下Passenger WindowDown 控制裝置時,司機窗戶中的LIN 總線上會發起一條消息,這條消息傳過中央CAN 網關,然后發送到司機車門的另一個LIN網絡中。在這種情況下,我們可以觸發其中一條總線上的相關消息,同時捕獲和解碼全部三條總線,在業務通過系統從一條總線傳送到另一條總線時,可以非常簡便地查看業務。如圖23 所示,我們觸發了第一條LIN消息,捕獲了全部三條總線。
MSO/DPO 系列LIN 觸發功能包括下述類型:
-同步-觸發同步字段。
-標識符-觸發特定的標識符。
-數據-觸發1-8個字節的特定數據值或數據值范圍。
標識符和數據-觸發標識符和數據組合。
喚醒幀-觸發喚醒幀。
睡眠幀-觸發睡眠幀。
錯誤-觸發同步錯誤、ID奇偶性錯誤或校驗和錯誤。
這些觸發類型允許比以前更快地隔離LIN總線上查找的一切特性。通過MSO/DPO 系列中的其它高級串行功能,如事件表及搜索和標記功能,調試基于LIN的汽車設計變得前所未有的簡便。
FlexRay
背景知識
FlexRay 是一種相對較新的汽車總線,目前,由領先汽車公司和供應商組成的集團(稱為FlexRay聯盟)對這一總線的開發工作仍在進行中。隨著汽車智能化程度不斷提高及電子器件進入越來越多的汽車應用,制造商發現現有的汽車串行標準(如CAN 和LIN)沒有滿足X-bywire應用要求的速度、可靠性或冗余性,如線路制動或線路轉向應用。今天,這些功能主要采用機械系統和水壓系統。將來,它們將被代之以由傳感器和高度可靠的電子組成的網絡,這不僅可以降低汽車的成本,還可以明顯提高乘客的安全性,因為它提供了許多基于智能電子的功能,如提前制動、避免碰撞、自適應巡航控制、等等。
圖24. FlexRay 幀結構
工作方式
FlexRay是在屏蔽雙絞線(STP)或非屏蔽雙絞線(UTP)上運行的一種速率高達10 Mb/s的差分總線,其速度明顯高于LIN 的20 kb/s 或CAN 的1 Mb/s 速率。FlexRay采用雙通道結構,有兩大優勢。第一,可以配置兩條通道,在關鍵安全應用中提供冗余通信,如x-by-wire應用,保證消息通過。第二,可以配置兩條通道,在每條通道上以10 Mb/s速率發送唯一的信息,在安全重要程度較低的應用中實現20 Mb/s 的整體總線傳送速率。
FlexRay 采用時間觸發協議,通過同時包含靜態幀和動態幀的通信周期,實現了以前的同步協議和異步協議的優勢。靜態幀是為總線上每臺設備分配的時隙或預定長度,以在每個周期期間通信。總線上的每臺設備也有機會通過動態幀在每個周期中通信,動態幀的長度(和時間)可能會變化。FlexRay幀由三個主要段組成:包頭段、凈荷段和包尾段。每個段都有自己的構成,如圖24 所示。
包頭段的構成:
指示符位-前5 個位稱為指示符位,表明傳送的幀的類型。選項包括正常幀、凈荷幀、空幀、同步幀和啟動幀。
幀號-幀號定義了應該在哪個時隙中傳送幀。幀號在1-2047 之間,在通信周期中每條通道內任何單獨幀號使用的次數不多于一次。
凈荷長度- 凈荷長度字段用來指明凈荷字段中有多少個數據字。
包頭CRC-使用同步幀指示符、啟動幀指示符、幀號和凈荷長度計算得出的循環冗余校驗(CRC)代碼。
循環數量- 當前通信周期的值,范圍為0-63。
凈荷段的構成:
數據-數據字段包含最多254 字節的數據。對在靜態段中傳送的幀,凈荷段的前0-12個字節可以選擇作為網絡管理矢量使用。幀包頭中的凈荷前置碼指示符指明凈荷段是否包含網絡管理矢量。對在動態段中傳送的幀,凈荷段的前兩個字節可以選擇作為消息ID 字段使用,允許接收節點根據這個字段的內容過濾或掌控數據。幀包頭中的凈荷前置碼指示符指明凈荷段是否包含消息ID。段中傳送的幀,凈荷段的前兩個字節可以選擇作為消息ID 字段使用,允許接收節點根據這個字段的內容過濾或掌控數據。幀包頭中的凈荷前置碼指示符指明凈荷段是否包含消息ID。
包尾段構成:
CRC- 使用幀的包頭段和凈荷估計算得出的循環冗余校驗(CRC)代碼。動態幀有一個額外的成分,位于包尾CRC 后面,稱為動態尾部序列(DTS),防止總線接收機過早地檢測通道空閑狀態。
圖25. FlexRay 總線設置菜單。
處理FlexRay
MSO/DPO4000 系列通過DPO4AUTOMAX 模塊支持FlexRay,在所有三項汽車標準上提供了串行觸發和分析功能,即CAN、LIN 和FlexRay,并在FlexRay 上提供了眼圖分析和關鍵定時測量功能。為定義FlexRay總線,我們進入總線菜單,從支持的標準列表中選擇FlexRay。FlexRay 設置菜單如圖25 所示。
然后,我們使用Define Inputs 菜單,告訴示波我們是在查看FlexRay 通道A 還是通道B、我們正在探測哪類信號(差分、半差分對或控制器和總線驅動器之間的邏輯信號),然后設置門限和位速率。與4000系列上支持的其它串行標準不同,FlexRay 在查看非Tx/Rx 信號時要求設置兩個門限,因為它是一種三電平總線。這樣,示波器可以識別Data High 和Data Low 及兩個信號電壓相同的空閑狀態。
MSO/DPO4000 系列強大的FlexRay 功能集如圖26 所示,其中我們觸發了Frame ID = 4 和Cycle Count = 0組合,捕獲了大約80 個FlexRay 幀,解碼了整個采集,然后讓示波器搜索采集數據,找到和標記發生的所有同步幀。所有這一切只需使用100,000 點的記錄長度完成。MSO/DPO4000 系列在所有通道上可以實現最深10M 點的記錄長度,捕獲串行活動的長時間窗口。
MSO/DPO4000 系列FlexRay觸發功能包括下述類型:
幀頭-觸發幀頭序列(FSS)的后沿。
指示符位-觸發正常幀、凈荷幀、空幀、同步幀或啟動幀。
標識符-觸發特定幀號或一個幀號范圍。
循環數量-觸發特定的循環數量值或一個循環數量值范圍。
包頭字段-觸發任意包頭字段或所有包頭字段中用戶指定值的組合,包括指示符位、幀號、凈荷長度、包頭CRC 和循環數量。
數據-觸發最多16 個字節的數據。數據窗口可以偏移幀中用戶指定字節數及非常長的數據凈荷。可以作為特定值或取值范圍指定所需的數據。
標識符和數據- 觸發幀號和數據組合。
幀尾-觸發靜態幀、動態幀或所有幀。
錯誤- 觸發大量的不同錯誤類型,包括包頭CRC錯誤、包尾CRC 錯誤、空幀錯誤、同步幀錯誤和啟動幀錯誤。
圖26. 觸發幀號和循環數,搜索采集的數據,找到啟動幀。
圖28. 在CAN 總線采集中搜索指定的標識符的數據。
除上面介紹的觸發和解碼功能外,DPO4AUTOMAX 還提供了FlexRay眼圖分析功能,幫助診斷物理層問題。用戶只需把軟件包裝到PC 上,通過LAN 或USB 把PC 連接到示波器,點擊Acquire Data按鈕,就可以獲得信息豐富的顯示畫面,如圖27 所示。分析功能包括:
眼圖- 使用采集中的所有信息構建眼圖,當前選擇的幀用藍色突出顯示。與TP1或TP4模板簡便地進行對比,違規的地方用紅色突出顯示。
解碼-在模擬波形上解碼當前選擇的幀,整個采集在下面的表格中解碼。
時間間隔誤差(TIE)圖-簡便地目測幀內的抖動。
錯誤校驗- 錯誤用紅色突出顯示。計算包頭和包尾CRC,并與傳送的幀進行對比。
定時測量-上升時間、下降時間、TSS 時長、幀時間、平均位時間、前一個同步、下一個同步、前一個周期幀、下一個周期幀。
查找-根據分組內容隔離感興趣的特定幀。
保存-把解碼后的采集保存到.csv 文件中,以進一步離線分析。
由于提供了這套完善的FlexRay觸發功能及前面討論的CAN 和LIN 功能,MSO/DPO4000 系列已經成為最優秀的汽車設計調試工具。
觸發與搜索
正如我們在本應用指南中討論的那樣,必需擁有強大的觸發系統,隔離串行總線上感興趣的事件。但是,一旦已經采集了數據(示波器被停止),而且想分析數據,那么觸發就沒有什么用了。如果示波器具有類似觸發的資源、分析停止的波形數據不是更好嗎?MSO/DPO系列的Wave Inspector為您提供了強大的搜索功能。本文中討論的所有總線觸發功能還作為已采集數據的搜索標準使用。例如,在圖18中,示波器已經在長采集記錄中搜索了具有特定地址和數據內容的每條CAN 消息,并在顯示屏頂部在每條消息上標明空心的白三角形。為在發生的消息之間導航,用戶只需按前面板上的Previous和Next按鈕即可。
當然,搜索也可以用于比較傳統的觸發類型。搜索類型包括邊沿、脈寬、欠幅脈沖、建立時間和保持時間、邏輯和上升時間/下降時間。
總結
盡管嵌入式系統設計從并行總線轉向串行總線帶來了許多好處,但它也給設計工程師帶來了許多挑戰。通過傳統測試測量工具,觸發查找的事件要困難得多,這些工具僅僅查看模擬信號,幾乎不可能告訴用戶其提供了哪些信息,而且手動解碼長時間的總線活動、診斷問題是非常耗時、非常容易出錯的過程。MSO/DPO系列改變了這一切。由于其強大的觸發、解碼和搜索功能,當前的設計工程師可以以極高的效率解決嵌入式系統設計問題。
評論
查看更多