国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于數(shù)字熒光示波器的FlexRay總線協(xié)議分析系統(tǒng)及方法

      文檔序號:10597030閱讀:697來源:國知局
      一種基于數(shù)字熒光示波器的FlexRay總線協(xié)議分析系統(tǒng)及方法
      【專利摘要】本發(fā)明提出了一種基于數(shù)字熒光示波器的FlexRay總線協(xié)議分析系統(tǒng),包括:用戶設定模塊、PCIe模塊、參數(shù)寄存器模塊、解碼觸發(fā)模塊、解碼存儲模塊、采集模塊和顯示模塊。本發(fā)明的系統(tǒng)及方法,由于硬件解碼速度遠快于軟件解碼,當采用硬件觸發(fā)軟件解碼時其實硬件也在做解碼工作,這樣可以在硬件解碼判斷觸發(fā)的方案的基礎上把解碼信息以標簽的方式儲存起來,把觸發(fā)位置信息也儲存起來,上層應用軟件直接讀取存儲的標簽信息和觸發(fā)位置信息用來顯示,省去了軟件解碼時間,提高了總線分析速度,同時軟件也省去了再做一次解碼的人力開銷。
      【專利說明】
      一種基于數(shù)字熒光示波器的FI exRay總線協(xié)議分析系統(tǒng)及方法
      技術領域
      [0001]本發(fā)明涉及測試技術領域,特別涉及一種基于數(shù)字熒光示波器的FlexRay總線協(xié)議分析系統(tǒng),還涉及一種基于數(shù)字熒光示波器的FlexRay總線協(xié)議分析方法。
      【背景技術】
      [0002]FlexRay總線是由領先汽車公司和供應商組成的集團(FlexRay聯(lián)盟)提出的一種比較新的汽車總線。FlexRay適用于線控操作(X-by-Wire),而且相較于現(xiàn)有的汽車串行標準(如CAN和LIN)具有更靈活的數(shù)據(jù)通信方式、更快的傳輸速率、更高的安全性和更完善的容錯機制。FlexRay是在屏蔽雙絞線或非屏蔽雙絞線上運行的一種速率高達lOMb/s的差分總線,采用時間觸發(fā)協(xié)議,通過同時包含靜態(tài)幀和動態(tài)幀的通信周期,實現(xiàn)了同步和異步協(xié)議的雙重優(yōu)勢。FlexRay幀由三部分組成:包頭段、凈荷段和包尾段,幀結(jié)構(gòu)如圖1所示。
      [0003]FlexRay幀包括靜態(tài)幀和動態(tài)幀兩種,靜態(tài)幀和動態(tài)幀的解碼/編碼序列如圖2所示。TSS是傳輸起始序列,為一段時間的低電平。FSS是幀起始序列,為一段時間的高電平,在TSS之后。BSS是字節(jié)起始序列,為一段時間的高電平和一段時間的低電平,提供定時信息。FES是幀結(jié)束序列,為一段低電平和一段高電平,位于有效數(shù)據(jù)位之后。如果是動態(tài)幀,在FES后還有DTS序列,DTS是動態(tài)尾部序列,防止過早判斷總線空閑。
      [0004]當示波器分析串行總線信號時,采用常用觸發(fā)方式來捕捉用戶關心的幀信息時變得比較困難,為了更好的分析串行總線上的波形,需要專門的串行總線解碼觸發(fā)分析功能,該功能能使用戶在關心的總線幀結(jié)構(gòu)的特定部位觸發(fā),能以幀結(jié)構(gòu)的形式直觀顯示總線上的波形信息,能很好地方便用戶的使用。
      [0005]串行總線協(xié)議分析方法一般采用硬件觸發(fā)、軟件解碼顯示的方式。當采集啟動后,預觸發(fā)信號產(chǎn)生并送給硬件觸發(fā)模塊,硬件解碼模塊收到預觸發(fā)信號后對接收到的采集系統(tǒng)的采集數(shù)據(jù)進行分析,提取總線數(shù)據(jù)的幀信息,通過將提取的幀信息與用戶輸入的觸發(fā)條件比較判斷得出觸發(fā)信號,最后將觸發(fā)信號送到采集系統(tǒng)。軟件解碼模塊接收采集系統(tǒng)數(shù)字量化后的采集數(shù)據(jù),根據(jù)用戶設定的觸發(fā)電平參數(shù)得到采集數(shù)據(jù)傳輸?shù)谋忍匦畔?,然后結(jié)合特定總線協(xié)議得到總線傳輸?shù)男畔ⅰW詈?,將得到的總線傳輸信息交由上層應用軟件顯示。
      [0006]FlexRay總線的信息傳送是以幀序列的形式傳送,采用測量儀器的傳統(tǒng)觸發(fā)方式(如邊沿觸發(fā))不能有效地捕獲FlexRay總線上的特定幀信息,并且觸發(fā)采集后的數(shù)據(jù)是以模擬波形的方式顯示在屏幕上,用戶不方便解讀FlexRay總線信息。因此,有必要配備一種專門的FlexRay總線解碼與觸發(fā)方式。
      [0007]如果采用硬件觸發(fā)軟件解碼的方案,只有在軟件解碼完成后才能開始下一次采集過程,存在一定的死區(qū)時間,該時間由不同的軟件解碼平臺決定。

      【發(fā)明內(nèi)容】

      [0008]為解決上述現(xiàn)有技術中的不足,本發(fā)明提出一種基于數(shù)字熒光示波器的FlexRay總線協(xié)議分析系統(tǒng)及方法。
      [0009]本發(fā)明的技術方案是這樣實現(xiàn)的:
      [0010]一種基于數(shù)字熒光示波器的FlexRay總線協(xié)議分析系統(tǒng),包括:用戶設定模塊、PCI e模塊、參數(shù)寄存器模塊、解碼觸發(fā)模塊、解碼存儲模塊、采集模塊和顯示模塊;
      [0011]采集模塊首先對FlexRay總線上的模擬信號進行采樣,然后將采樣值與經(jīng)過數(shù)字量化后的用戶設定的觸發(fā)電平的數(shù)字值進行比較得到布爾值,最后將得到的布爾值送到解碼模塊;
      [0012]解碼模塊根據(jù)用戶設定的位速率生成合適的采樣時鐘和計數(shù)器計數(shù)時鐘,接收到采集啟動信號后啟動計數(shù)器計數(shù),并根據(jù)采樣時鐘對采集模塊送來的布爾值進行采樣,解碼模塊根據(jù)采樣值得到總線的幀信息,然后生成對應的標簽并存儲,同時更新標簽個數(shù)寄存器值和標簽存儲循環(huán)標志,然后解碼模塊將幀信息送往觸發(fā)模塊;
      [0013]觸發(fā)模塊接收到幀信息后將其與用戶設定的觸發(fā)條件比較,如滿足觸發(fā)條件則將此時的計數(shù)器值存儲到特定寄存器中并發(fā)送觸發(fā)信號給采集模塊;
      [0014]采集模塊收到觸發(fā)信號后繼續(xù)采集一段時間后結(jié)束采集并發(fā)送采集結(jié)束信號給解碼模塊;
      [0015]解碼模塊接收到采集結(jié)束信號后停止解碼,示波器上層應用程序讀取標簽信息、標簽長度信息、觸發(fā)位置信息、標簽存儲循環(huán)信息,然后做顯示、分析處理。
      [0016]可選地,所述解碼與觸發(fā)模塊包括:抽點模塊、解碼模塊、觸發(fā)模塊、觸發(fā)產(chǎn)生模塊;
      [0017]抽點模塊根據(jù)接收用戶設定的位速率參數(shù)N倍頻生成采樣時鐘,接收用戶信號類型判斷對幾路數(shù)據(jù)進行抽點;計數(shù)器時鐘接收位速率信號生成總線序列時間計數(shù)器時鐘,通過該計數(shù)器值可以計算得到在總線各個部分在屏幕上的位置;
      [0018]解碼模塊接收用戶設定信號類型判斷總線電平個數(shù)以及進行相位變換,接收用戶設定的通道類型參數(shù)判定校驗的計算方法,接收總線開關信號判定解碼與觸發(fā)的開始與停止,接收采集模塊的采集啟動和結(jié)束信號判定解碼活動的等待與繼續(xù)運行;
      [0019]觸發(fā)模塊接收觸發(fā)條件參數(shù)判斷觸發(fā)條件,接收采集模塊的預觸發(fā)信號判定觸發(fā)信號產(chǎn)生的開始;
      [0020]觸發(fā)產(chǎn)生模塊在接收到預觸發(fā)信號后產(chǎn)生觸發(fā)信號傳給采集模塊。
      [0021 ]可選地,所述觸發(fā)模塊接收的用戶設定的FI exRay總線觸發(fā)方式包括:幀開頭、指示符位、標識符、凈荷長度、循環(huán)數(shù)、包頭CRC、包頭字段組合、數(shù)據(jù)、錯誤、幀尾。
      [0022]可選地,所述觸發(fā)模塊針對幀不同字段都有相應的觸發(fā)比較器,用于產(chǎn)生觸發(fā)邏輯,解碼模塊將解碼的幀信息和計算的校驗數(shù)據(jù)傳輸給觸發(fā)模塊,觸發(fā)模塊根據(jù)不同的觸發(fā)類型調(diào)用幀頭比較器、包頭字段比較器、數(shù)據(jù)比較器、標識符比較器、幀尾比較器、錯誤比較器、幀尾校驗比較器中的幾個或者一個比較器判斷觸發(fā)條件傳給觸發(fā)信號產(chǎn)生模塊。
      [0023]本發(fā)明還提供了一種基于數(shù)字熒光示波器的FlexRay總線協(xié)議分析方法,包括以下步驟:
      [0024]步驟(I)、用戶設定FlexRay總線電平閾值參數(shù)存儲于參數(shù)寄存器中,采集模塊讀取閾值寄存器值,將數(shù)字量化后的值與閾值參數(shù)比較產(chǎn)生0/1序列信號送給抽點模塊,如果總線模擬信號為三電平,則設置高低兩個閾值參數(shù),采集模塊產(chǎn)生兩個0/1序列給抽點模塊;
      [0025]步驟(2)、用戶設定FlexRay總線位速率參數(shù)存儲于參數(shù)寄存器中,抽點模塊讀取寄存器值生成采樣時鐘,采樣時鐘為位速率N倍;
      [0026]步驟(3)、用戶設定FlexRay總線信號類型存儲于參數(shù)寄存器中,抽點模塊讀取寄存器值判斷為BM、BP則需要對虛擬通道中經(jīng)過兩個比較器比較的兩路0/1序列進行抽點,如果為Tx/Rx則只需對一路進行抽點。
      [0027]步驟(4)、用戶設定FlexRay總線位速率參數(shù)存儲于參數(shù)寄存器中,計數(shù)器時鐘模塊采用采樣時鐘相同的倍頻數(shù)生成計數(shù)時鐘;
      [0028]步驟(5)、用戶設定FlexRay總線通道類型,校驗碼計算模塊根據(jù)不同的通道類型計算校驗碼;
      [0029]步驟(6)、用戶設定FlexRay總線信號類型存儲于參數(shù)寄存器中,相位轉(zhuǎn)換模塊讀取寄存器值判斷是否進行相位變換,如果為BP則需要進行相位反轉(zhuǎn);
      [0030]步驟(7)、解碼模塊中的幀起始/結(jié)束檢測模塊讀取信號類型參數(shù),如果為BM或者BP則需要讀取兩路數(shù)據(jù),相同采樣時刻值不同的為總線空閑,如果信號類型為Tx/Rx,則只需讀取一路數(shù)據(jù);
      [0031 ]步驟(8)、比特提取模塊用每個位的中間采樣值代表該位的值,動態(tài)幀的DTS序列由于高低電平不是由固定位時間組成,不予處理;采樣值判定為高電平時,比特信息為“I”,采樣值判定為低電平時,比特信息為“O”,比特提取模塊將比特信息和采樣時鐘的N分頻一并發(fā)送給編碼冗余模塊;
      [0032]步驟(9)、幀起始到幀尾序列之間的幀序列都有一個字節(jié)起始序列,解碼模塊中的編碼冗余模塊對位個數(shù)計數(shù)剔除字節(jié)起始序列;
      [0033]步驟(10)、解碼模塊的校驗碼計算模塊接收比特位信息和編碼冗余模塊的采樣時鐘的N分頻時鐘,然后采用FlexRay總線協(xié)議規(guī)定的FlexRay總線包頭CRC和包尾CRC的檢驗方法計算校驗碼并送給觸發(fā)模塊,供校驗碼錯誤觸發(fā)比較使用;
      [0034]步驟(11)、解碼模塊中的幀字段提取模塊接收比特位信息和編碼冗余模塊的采樣時鐘的N分頻時鐘,對幀起始序列到幀結(jié)束之間的信息進行幀信息提取,并在幀結(jié)束后發(fā)送幀結(jié)束信號給幀起始/結(jié)束檢測序列,所述幀字段提取模塊解碼出幀結(jié)構(gòu)的不同字段信息;
      [0035]步驟(12)、計數(shù)器模塊接收幀起始檢測模塊的TSS開始信號和TSS結(jié)束信號鎖定計數(shù)器當前計數(shù)值作為觸發(fā)位置值,發(fā)送給標簽生成模塊,標簽生成模塊收到幀起始檢測模塊的TSS開始信號和TSS結(jié)束信號后分別生成TSS開始標簽和TSS結(jié)束標簽,計數(shù)器模塊還接收字段提取模塊發(fā)送的各字段標簽檢測成功信號鎖定相應的計數(shù)器值發(fā)送給標簽生成模塊,標簽生成模塊接收到幀字段提取模塊發(fā)送的標簽類信息類型和標簽信息信號后將計數(shù)器值、標簽信息和標簽信息類型整合成標簽送存儲;另外,計數(shù)器模塊接收觸發(fā)信號鎖定當前計數(shù)器值作為觸發(fā)位置信息發(fā)送給存儲模塊存儲,標簽生成模塊的標簽個數(shù)計數(shù)器每生成一個標簽加I,當檢測當前標簽個數(shù)超過最大存儲個數(shù)后清零并且循環(huán)標識寄存器置I,存儲模塊讀取該寄存器值來決定標簽存放位置,實現(xiàn)標簽循環(huán)存儲;
      [0036]步驟(13)、觸發(fā)模塊根據(jù)接收用戶設定的觸發(fā)方式參數(shù),根據(jù)觸發(fā)參數(shù)調(diào)用不同的比較器組合將解碼模塊生成的各幀信息與用戶設定的觸發(fā)條件比較,如果符合條件則產(chǎn)生觸發(fā)產(chǎn)生邏輯給觸發(fā)信號生成模塊產(chǎn)生觸發(fā)信號;
      [0037]步驟(14)、采集模塊收到觸發(fā)生成模塊發(fā)送的觸發(fā)信號后,繼續(xù)采集一段時間后結(jié)束采集,一個采集周期完成。
      [0038]可選地,所述步驟(7)中幀起始檢測的工作流程如下:
      [0039](a)對采樣值進行判斷,當連續(xù)出現(xiàn)NX 11個判斷為總線空閑的采樣值時,判斷為總線空閑;
      [0040](b)然后等待采樣值為低電平的值,當出現(xiàn)采樣值為低電平值時判斷為傳輸起始序列TSS開始,發(fā)送TSS開始信號給計數(shù)器模塊和標簽生成模塊,同時開始計數(shù)低電平采樣值個數(shù);
      [0041](c)如果大于等于NX 3并且小于等于NX 15個低電平采樣值出現(xiàn)后出現(xiàn)高電平采樣值,則判斷為TSS結(jié)束,發(fā)送TSS結(jié)束信號給計數(shù)器模塊和標簽生成模塊;
      [0042](d)如果出現(xiàn)小于NX 3則重新回到(a);
      [0043](e)如果出現(xiàn)大于NX 15,暫時不予處理;
      [0044]當幀起始/結(jié)束檢測模塊收到幀狀態(tài)字提取模塊發(fā)送的幀結(jié)束信號后,對采樣值進行檢測;如果出現(xiàn)低電平采樣值,則判定為動態(tài)幀,存在DTS序列,繼續(xù)檢測采樣值;當出現(xiàn)高電平時為DTS高電平段,計數(shù)N個采樣值后為DTS結(jié)束位置;當判定DTS結(jié)束后,該模塊重新進行幀起始檢測。
      [0045]可選地,所述步驟(9)具體包括:編碼冗余模塊在幀起始序列后檢測一個“I”值后面一個“O”值,如果為一個“I”值后面一個“O”值則判定為字節(jié)起始序列,從而剔除這兩個比特信息,不發(fā)送給幀字段提取模塊和校驗計算模塊,然后每隔8個比特信息檢測一個“I”值和一個“O”值,如果是則剔除;如果首先檢測到一個“O”然后是一個“I”,則為FES,不予處理,發(fā)送給幀字段提取序列,并且從此后面的采樣值不予處理,直接送給下面模塊,直到收到比特提取模塊的幀起始信號。
      [0046]可選地,所述幀字段提取模塊按以下10個狀態(tài)有序解碼出幀結(jié)構(gòu)的不同字段信息:
      [0047]狀態(tài)1:空閑狀態(tài),上電復位后,狀態(tài)機即處于該狀態(tài),在該狀態(tài)下,當收到編碼冗余模塊傳送給的幀起始信號,則進入狀態(tài)2,否則狀態(tài)不跳轉(zhuǎn);
      [0048]狀態(tài)2:檢測比特信息為“I”值,判定為幀起始,進入狀態(tài)3,否則狀態(tài)不跳轉(zhuǎn);
      [0049]狀態(tài)3:指示符位狀態(tài),指示符位包括預留位、凈荷前置碼指示符、空幀指示符、同步幀指示符、啟動幀指示符共五位,依次讀取輸入的5位比特信息后,進入狀態(tài)4,否則狀態(tài)不跳轉(zhuǎn);
      [0050]狀態(tài)4:幀號ID檢測狀態(tài),幀號ID由11組成,依次讀取11位輸入的幀比特信息,輸出幀號ID數(shù)據(jù)后,則進入狀態(tài)6,否則狀態(tài)不跳轉(zhuǎn);
      [0051 ]狀態(tài)5:凈荷長度檢測狀態(tài),依次讀取7位輸入的幀比特信息輸入移位寄存器進行串/并轉(zhuǎn)換,輸出凈荷長度數(shù)據(jù)并存儲后,進入狀態(tài)6,否則狀態(tài)不跳轉(zhuǎn);
      [0052]狀態(tài)6:包頭CRC檢測狀態(tài),包頭CRC由11位組成,依次讀取輸入的11位幀比特信息組成并輸出CRC信息,進入狀態(tài)7,否則狀態(tài)不跳轉(zhuǎn);
      [0053]狀態(tài)7:循環(huán)數(shù)量檢測狀態(tài),循環(huán)數(shù)量長度為6位,依次讀取輸入的6位幀比特信息組成循環(huán)數(shù)量,進入狀態(tài)8,否則狀態(tài)不跳轉(zhuǎn);
      [0054]狀態(tài)8:數(shù)據(jù)字段檢測狀態(tài),依次讀取幀比特輸入移位寄存器進行串/并轉(zhuǎn)換,同時數(shù)據(jù)字段計數(shù)器開始計數(shù),當計數(shù)值達到凈荷長度存儲器中的字節(jié)數(shù)X 8位數(shù)據(jù)后,移位寄存器輸出相應的數(shù)據(jù)字節(jié)信息,進入狀態(tài)9,否則狀態(tài)不跳轉(zhuǎn);
      [0055]狀態(tài)9:包尾CRC檢測狀態(tài),包尾CRC由三個字節(jié)組成,依次讀取幀比特輸入移位寄存器進行串/并轉(zhuǎn)換,同時包尾CRC計數(shù)器開始計數(shù),當計數(shù)值達到3 X 8位數(shù)據(jù)后,移位寄存器輸出相應的包尾CRC信息,進入狀態(tài)10,否則狀態(tài)不跳轉(zhuǎn);
      [0056]狀態(tài)10:幀結(jié)束序列檢測狀態(tài),依次讀取兩位幀比特信息,如果前一個比特位為“O”值,后一個比特位為“I”值,則判定為FES,則跳轉(zhuǎn)到狀態(tài)I,否則狀態(tài)不進行跳轉(zhuǎn)。
      [0057]可選地,所述步驟(13)中,用戶設定的觸發(fā)方式及比較方法如下:
      [0058](131)幀頭觸發(fā):幀頭比較器檢測到幀頭字段產(chǎn)生觸發(fā);
      [0059](132)指示符位觸發(fā):指示符位比較器將用戶設定的4位指示符位數(shù)據(jù)與解碼得到的指示符位信息比較產(chǎn)生觸發(fā);
      [0060](133)幀號ID觸發(fā):幀號ID比較器將用戶設定的11位幀號ID數(shù)據(jù)與解碼得到的ID信息比較產(chǎn)生觸發(fā);
      [0061](134)循環(huán)數(shù)觸發(fā):循環(huán)數(shù)比較器將用戶設定的循環(huán)數(shù)與解碼得到的循環(huán)數(shù)比較產(chǎn)生觸發(fā);
      [0062](135)包頭字段觸發(fā):指示符位比較器、幀號ID比較器、凈荷長度比較器、包頭CRC比較器和循環(huán)數(shù)比較器各自將用戶設定的參數(shù)與解碼得到的幀信息比較,產(chǎn)生觸發(fā)信號與運算后產(chǎn)生觸發(fā);
      [0063](136)數(shù)據(jù)觸發(fā):數(shù)據(jù)觸發(fā)比較器讀取用戶設定字節(jié)偏置值,數(shù)據(jù)比較器將解碼得到的從此數(shù)值后面的數(shù)據(jù)字節(jié)與用戶設定的數(shù)據(jù)字比較產(chǎn)生觸發(fā);
      [0064](137)ID和數(shù)據(jù)觸發(fā):ID觸發(fā)比較器幀號ID比較器將用戶設定的11位幀號ID數(shù)據(jù)與解碼得到的ID信息比較產(chǎn)生觸發(fā),數(shù)據(jù)觸發(fā)比較器讀取用戶設定字節(jié)偏置值,數(shù)據(jù)比較器將解碼得到的從此數(shù)值后面的數(shù)據(jù)字節(jié)與用戶設定的數(shù)據(jù)字比較產(chǎn)生觸發(fā),然后將兩者觸發(fā)信號與運算得到觸發(fā);
      [0065](138)幀尾觸發(fā):幀尾比較器檢測解碼信息中FES信息和有無DTS信息,判斷產(chǎn)生觸發(fā);
      [0066](139)錯誤觸發(fā):錯誤觸發(fā)包括包頭CRC錯誤、包尾CRC錯誤、空幀錯誤、同步幀錯誤和啟動幀錯誤,包頭CRC比較器將校驗碼計算模塊計算值與解碼模塊得到的包頭CRC幀信息比較,如果不相等產(chǎn)生錯誤觸發(fā),包尾CRC比較器將校驗碼計算模塊計算值與解碼模塊得到的包尾CRC幀信息比較,如果不相等產(chǎn)生錯誤觸發(fā),空幀錯誤觸發(fā)信號由指示符位比較器和幀尾比較器得到,同步幀和啟動幀由指示符位判斷解碼得到的指示符位信息得到。
      [0067]本發(fā)明的有益效果是:
      [0068](I)在帶有FlexRay總線信號解碼與觸發(fā)的測量儀器中,用戶除了能夠用傳統(tǒng)觸發(fā)方式觸發(fā)采集FlexRay總線信號外,還可以采用專門為FlexRay總線定制的解碼觸發(fā)方式來分析FlexRay解碼觸發(fā)顯示總線信息,采用定制的FlexRay總線解碼觸發(fā)方式,能在FlexRay總線的幀頭、指示符位、標識符、循環(huán)數(shù)量、數(shù)據(jù)、CRC和幀尾等幀序列的任意部位觸發(fā),還可以以包頭字段的任意組合、標識符與數(shù)據(jù)的組合、不同錯誤類型作為觸發(fā)條件觸發(fā),使得捕獲感興趣的事件變得簡單;
      [0069](2)總線顯示不僅有模擬波形還可以以幀格式和幀序列兩種方式顯示總線信息,使用戶讀取直觀易懂;
      [0070](3)由于硬件解碼速度遠快于軟件解碼,當采用硬件觸發(fā)軟件解碼時其實也在做解碼工作,這樣可以在硬件解碼判斷觸發(fā)的方案的基礎上把解碼信息以標簽的方式儲存起來,把觸發(fā)位置信息也儲存起來,上層應用軟件直接讀取存儲的標簽信息和觸發(fā)位置信息用來顯示,省去了軟件解碼時間,提高了總線分析速度,同時軟件也省去了再做一次解碼的人力開銷。
      【附圖說明】
      [0071]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
      [0072]圖1為FlexRay幀格式;
      [0073]圖2為FlexRay幀序列;
      [0074]圖3為本發(fā)明的FlexRay總線的硬件解碼觸發(fā)、軟件顯示的方案整體框圖;
      [0075]圖4本發(fā)明的FlexRay總線定義菜單示意圖;
      [0076]圖5為本發(fā)明的FlexRay總線觸發(fā)菜單結(jié)構(gòu);
      [0077]圖6本發(fā)明的總線解碼與觸發(fā)模塊結(jié)構(gòu)框圖;
      [0078]圖7為本發(fā)明的FlexRay解碼標簽格式示意圖。
      【具體實施方式】
      [0079]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
      [0080]本發(fā)明提出了一種基于數(shù)字熒光示波器的FlexRay總線協(xié)議分析系統(tǒng)及方法,該技術方案中硬件解碼并觸發(fā),軟件只負責顯示。
      [0081]基于數(shù)字熒光示波器的FlexRay總線協(xié)議分析系統(tǒng)的整體框圖如圖3所示,包括用戶設定模塊、PCIe模塊、參數(shù)寄存器模塊、解碼觸發(fā)模塊、解碼存儲模塊、采集模塊和顯示模塊。
      [0082]采集模塊首先對FlexRay總線上的模擬信號進行采樣,然后將采樣值與經(jīng)過數(shù)字量化后的用戶設定的觸發(fā)電平的數(shù)字值進行比較得到布爾值,最后將得到的布爾值送到解碼模塊;解碼模塊根據(jù)用戶設定的位速率生成合適的采樣時鐘和計數(shù)器計數(shù)時鐘,接收到采集啟動信號后啟動計數(shù)器計數(shù)(用來標定時間信息),并根據(jù)采樣時鐘對采集模塊送來的布爾值進行采樣,解碼模塊根據(jù)采樣值得到總線的幀信息,然后生成對應的標簽(此標簽包括幀信息值和一個計數(shù)值,該計數(shù)值用來標定與觸發(fā)位置的相對位置)并存儲同時更新標簽個數(shù)寄存器值和標簽存儲循環(huán)標志,然后解碼模塊將幀信息送往觸發(fā)模塊;觸發(fā)模塊接收到幀信息后將其與用戶設定的觸發(fā)條件比較,如滿足觸發(fā)條件則將此時的計數(shù)器值存儲到特定寄存器中并發(fā)送觸發(fā)信號給采集模塊;采集模塊收到觸發(fā)信號后繼續(xù)采集一段時間后結(jié)束采集并發(fā)送采集結(jié)束信號給解碼模塊;解碼模塊接收到采集結(jié)束信號后停止解碼,示波器上層應用程序讀取標簽信息、標簽長度信息、觸發(fā)位置信息、標簽存儲循環(huán)信息,然后做顯示、分析等處理。
      [0083]用戶設定模塊包括FlexRay總線定義設定、觸發(fā)類型和參數(shù)設定和運行控制設定。
      [0084]FlexRay總線定義菜單結(jié)構(gòu)如圖4所示,用戶不僅可以通過總線定義菜單設置FlexRay總線解碼觸發(fā)開或者關、輸入信號的物理特性(通道類型、極性)、閾值、位速率等解碼觸發(fā)參數(shù),也可以用來設置顯示屬性。
      [0085]FlexRay總線觸發(fā)菜單結(jié)構(gòu)如圖5所示,用戶可以通過觸發(fā)設置菜單設置FlexRay總線的觸發(fā)類型以及數(shù)據(jù)、標識符和錯誤觸發(fā)的特性。
      [0086]參數(shù)寄存器模塊用來存儲FlexRay總線的總線定義參數(shù)、觸發(fā)參數(shù)和運行控制參數(shù),其中總線定義參數(shù)包括信號輸入通道、信號的通道類型、信號極性、位速率等;觸發(fā)參數(shù)包括觸發(fā)類型、數(shù)據(jù)觸發(fā)參數(shù)、標識符觸發(fā)參數(shù)、觸發(fā)比較條件參數(shù)等;運行控制參數(shù)包括運行、停止、單次、總線開關等參數(shù)。
      [0087]采集模塊在總線解碼觸發(fā)方面的工作是接收觸發(fā)電平參數(shù)、對通道板輸出的模擬波形進行量化,將量化值與觸發(fā)電平參數(shù)值比較得到0/1序列值輸出給解碼觸發(fā)模塊。
      [0088]總線解碼與觸發(fā)模塊是FIexRay總線協(xié)議分析功能的核心,如圖6所示,該模塊包括:抽點模塊、解碼模塊、觸發(fā)模塊、觸發(fā)產(chǎn)生模塊等幾個小部分,這幾個小部分又有各自的組成部分。抽點模塊根據(jù)接收用戶設定的位速率參數(shù)N倍頻(N為8,16,32,64……)生成采樣時鐘,接收用戶信號類型判斷對幾路數(shù)據(jù)進行抽點。計數(shù)器時鐘接收位速率信號生成總線序列時間計數(shù)器時鐘,通過該計數(shù)器值可以計算得到在總線各個部分在屏幕上的位置。解碼模塊接收用戶設定信號類型判斷總線電平個數(shù)以及進行相位變換,該模塊接收用戶設定的通道類型參數(shù)判定校驗的計算方法,該模塊接收總線開關信號判定解碼與觸發(fā)的開始與停止,該模塊接收采集模塊的采集啟動和結(jié)束信號判定解碼活動的等待與繼續(xù)運行。觸發(fā)模塊接收觸發(fā)條件參數(shù)判斷觸發(fā)條件。觸發(fā)生成模塊接收采集模塊的預觸發(fā)信號判定觸發(fā)信號產(chǎn)生的開始。
      [0089]觸發(fā)模塊接收的用戶設定的FlexRay總線觸發(fā)方式包括:幀開頭、指示符位、標識符(ID)、凈荷長度、循環(huán)數(shù)、包頭CRC、包頭字段組合、數(shù)據(jù)、錯誤、幀尾。其中,錯誤觸發(fā)包括包頭CRC錯誤、包尾CRC錯誤、空幀錯誤、同步幀錯誤、啟動幀錯誤等,幀尾觸發(fā)包括靜態(tài)幀觸發(fā)、動態(tài)幀觸發(fā)、所有幀觸發(fā)等。觸發(fā)模塊針對幀不同字段都有相應的觸發(fā)比較器,用于產(chǎn)生觸發(fā)邏輯,解碼模塊將解碼的幀信息和計算的校驗數(shù)據(jù)傳輸給觸發(fā)模塊,觸發(fā)模塊根據(jù)不同的觸發(fā)類型調(diào)用幀頭比較器、包頭字段比較器、數(shù)據(jù)比較器、標識符比較器、幀尾比較器、錯誤比較器、幀尾校驗比較器等中的幾個或者一個比較器判斷觸發(fā)條件傳給觸發(fā)信號產(chǎn)生模塊。觸發(fā)生成模塊在接收到預觸發(fā)信號后產(chǎn)生觸發(fā)信號傳給采集模塊。
      [0090]解碼存儲模塊用來存儲解碼標簽、觸發(fā)位置、循環(huán)標識。解碼標簽由幀字段數(shù)據(jù)和位置信息組成。觸發(fā)位置是鎖存當前標簽的位置信息存儲得到。如果解碼標簽數(shù)量超過最大存儲數(shù)量時,標簽從開始位置覆蓋時間比較久的標簽循環(huán)存儲,循環(huán)標識用來標識此種情況。FlexRay總線解碼標簽有32種,通過這些標簽的組合可以容易地顯示幀信息。FlexRay總線解碼標簽包括:空標簽、TSS開始標簽、TSS結(jié)束標簽、幀開始標簽、指示符位開始標簽、正常幀標簽、凈荷幀標簽、空幀標簽、同步幀標簽、啟動幀標簽、幀ID開始標簽、幀ID中間字段標簽、幀ID結(jié)束標簽、凈荷長度開始標簽、凈荷長度結(jié)束標簽、包頭CRC開始標簽、包頭CRC中間字段標簽、包頭CRC結(jié)束字段標簽、循環(huán)數(shù)開始標簽、循環(huán)數(shù)結(jié)束標簽、數(shù)據(jù)字節(jié)開始標簽、數(shù)據(jù)字節(jié)結(jié)束標簽、包尾CRC開始標簽、包尾CRC中間字段I標簽、包尾CRC中間字段2標簽、包尾CRC結(jié)束標簽、FES標簽、通道空閑間隔開始標簽、通道空閑間隔結(jié)束標簽、包頭CRC校驗錯誤標簽、包尾CRC校驗錯誤標簽等。解碼標簽用8字節(jié)存儲,高32位為位置信息、低32存儲標簽類型、幀信息類型和幀數(shù)據(jù)信息,標簽格式如圖7。
      [0091]本發(fā)明的基于數(shù)字熒光示波器的FlexRay總線協(xié)議分析系統(tǒng)不只適用于FlexRay總線協(xié)議分析,也適用于其它總線協(xié)議分析,如CAN、LIN、MIL-STD-1553等。
      [0092]下面對本發(fā)明的基于數(shù)字熒光示波器的FlexRay總線協(xié)議分析方法進行說明:
      [0093](I)、用戶設定FlexRay總線電平閾值參數(shù)存儲于參數(shù)寄存器中,采集模塊讀取閾值寄存器值,將數(shù)字量化后的值與閾值參數(shù)比較產(chǎn)生0/1序列信號送給抽點模塊,如果總線模擬信號為三電平,則設置高低兩個閾值參數(shù),采集模塊產(chǎn)生兩個0/1序列給抽點模塊。
      [0094](2)、用戶設定FlexRay總線位速率參數(shù)存儲于參數(shù)寄存器中,抽點模塊讀取寄存器值生成采樣時鐘,采樣時鐘可以為位速率N倍,(N為8,16,32……)。
      [0095](3)、用戶設定FlexRay總線信號類型存儲于參數(shù)寄存器中,抽點模塊讀取寄存器值判斷為BM、BP則需要對虛擬通道中經(jīng)過兩個比較器比較的兩路0/1序列進行抽點,如果為Tx/Rx則只需對一路進行抽點。
      [0096](4)、用戶設定FlexRay總線位速率參數(shù)存儲于參數(shù)寄存器中,計數(shù)器時鐘模塊采用采樣時鐘相同的倍頻數(shù)生成計數(shù)時鐘。
      [0097](5)、用戶設定FlexRay總線通道類型,校驗碼計算模塊根據(jù)不同的通道類型計算校驗碼。
      [0098](6)、用戶設定FlexRay總線信號類型存儲于參數(shù)寄存器中,相位轉(zhuǎn)換模塊讀取寄存器值判斷是否進行相位變換,如果為BP則需要進行相位反轉(zhuǎn)。
      [0099](7)、解碼模塊中的幀起始/結(jié)束檢測模塊讀取信號類型參數(shù)如果為BM或者BP則需要讀取兩路數(shù)據(jù),相同采樣時刻值不同的為總線空閑,如果信號類型為Tx/Rx則只需讀取一路數(shù)據(jù),總線空閑的判斷條件為采樣值為高電平,幀起始檢測的工作流程如下:(a)對采樣值進行判斷,當連續(xù)出現(xiàn)NX 11個判斷為總線空閑的采樣值時,判斷為總線空閑;(b)然后等待采樣值為低電平的值,當出現(xiàn)采樣值為低電平值時可判斷為傳輸起始序列(TSS)開始,發(fā)送TSS開始信號給計數(shù)器模塊和標簽生成模塊,同時開始計數(shù)低電平采樣值個數(shù);(c)如果大于等于NX3并且小于等于NX 15個低電平采樣值出現(xiàn)后出現(xiàn)高電平采樣值,則判斷為TSS結(jié)束,發(fā)送TSS結(jié)束信號給計數(shù)器模塊和標簽生成模塊;(d)如果出現(xiàn)小于NX3則重新回到(a) ;(e)如果出現(xiàn)大于NX 15,暫時不予處理。當幀起始/結(jié)束檢測模塊收到幀狀態(tài)字提取模塊發(fā)送的幀結(jié)束信號后,對采樣值進行檢測如果出現(xiàn)低電平采樣值,則判定為動態(tài)幀,存在DTS序列,繼續(xù)檢測采樣值當出現(xiàn)高電平時為DTS高電平段,計數(shù)N個采樣值后為DTS結(jié)束位置。當判定DTS結(jié)束后,該模塊重新進行幀起始檢測。
      [0100](8)、因為幀起始到幀尾序列之間的幀序列都是由位組成,每個位都是固定時間的低電平或者高電平,因此比特提取模塊可以用每個位的中間采樣值代表該位的值,動態(tài)幀的DTS序列由于高低電平不是由固定位時間組成,不予處理。采樣值判定為高電平時,比特信息為“I”,采樣值判定為低電平時,比特信息為“O”,比特提取模塊將比特信息和采樣時鐘的N分頻一并發(fā)送給編碼冗余模塊。
      [0101](9)、因為幀起始到幀尾序列之間的幀序列都有一個字節(jié)起始序列,解碼模塊中的編碼冗余模塊對位個數(shù)計數(shù)剔除字節(jié)起始序列,工作方法:編碼冗余模塊在幀起始序列后檢測一個“I”值后面一個“O”值,如果為一個“I”值后面一個“O”值則判定為字節(jié)起始序列,從而剔除這兩個比特信息,不發(fā)送給幀字段提取模塊和校驗計算模塊,然后每隔8個比特信息檢測一個“I”值和一個“O”值,如果是則剔除,如果首先檢測到一個“O”然后是一個“I”則為FES,則不予處理,發(fā)送給幀字段提取序列,并且從此后面的采樣值不予處理,直接送給下面模塊,直到收到比特提取模塊的幀起始信號。
      [0102](10)、解碼模塊的校驗碼計算模塊接收比特位信息和編碼冗余模塊的采樣時鐘的N分頻時鐘,然后采用FlexRay總線協(xié)議規(guī)定的FlexRay總線包頭CRC和包尾CRC的檢驗方法計算校驗碼并送給觸發(fā)模塊,供校驗碼錯誤觸發(fā)比較使用。
      [0103](11)、解碼模塊中的幀字段提取模塊接收比特位信息和編碼冗余模塊的采樣時鐘的N分頻時鐘,對幀起始序列到幀結(jié)束之間的信息進行幀信息提取,并在幀結(jié)束后發(fā)送幀結(jié)束信號給幀起始/結(jié)束檢測序列,幀字段提取模塊按以下10個狀態(tài)有序解碼出幀結(jié)構(gòu)的不同字段信息:
      [0104]狀態(tài)1:空閑狀態(tài),上電復位后,狀態(tài)機即處于該狀態(tài),在該狀態(tài)下,當收到編碼冗余模塊傳送給的幀起始信號(邏輯I),則進入狀態(tài)2,否則狀態(tài)不跳轉(zhuǎn);
      [0105]狀態(tài)2:檢測比特信息為“I”值,判定為幀起始,進入狀態(tài)3,否則狀態(tài)不跳轉(zhuǎn);
      [0106]狀態(tài)3:指示符位狀態(tài),指示符位包括預留位、凈荷前置碼指示符、空幀指示符、同步幀指示符、啟動幀指示符共五位,依次讀取輸入的5位比特信息后,進入狀態(tài)4,否則狀態(tài)不跳轉(zhuǎn);
      [0107]狀態(tài)4:幀號ID(標識符)檢測狀態(tài),幀號ID由11組成,依次讀取11位輸入的幀比特信息,輸出幀號ID數(shù)據(jù)后,則進入狀態(tài)6,否則狀態(tài)不跳轉(zhuǎn);
      [0108]狀態(tài)5:凈荷長度檢測狀態(tài),依次讀取7位輸入的幀比特信息輸入移位寄存器進行串/并轉(zhuǎn)換,輸出凈荷長度數(shù)據(jù)并存儲后,進入狀態(tài)6,否則狀態(tài)不跳轉(zhuǎn);
      [0109]狀態(tài)6:包頭CRC檢測狀態(tài),包頭CRC由11位組成,依次讀取輸入的11位幀比特信息組成并輸出CRC信息,進入狀態(tài)7,否則狀態(tài)不跳轉(zhuǎn);
      [0110]狀態(tài)7:循環(huán)數(shù)量檢測狀態(tài),循環(huán)數(shù)量長度為6位,依次讀取輸入的6位幀比特信息組成循環(huán)數(shù)量,進入狀態(tài)8,否則狀態(tài)不跳轉(zhuǎn);
      [0111]狀態(tài)8:數(shù)據(jù)字段檢測狀態(tài),依次讀取幀比特輸入移位寄存器進行串/并轉(zhuǎn)換,同時數(shù)據(jù)字段計數(shù)器開始計數(shù),當計數(shù)值達到凈荷長度存儲器中的字節(jié)數(shù)X 8位數(shù)據(jù)后,移位寄存器輸出相應的數(shù)據(jù)字節(jié)信息,進入狀態(tài):9,否則狀態(tài)不跳轉(zhuǎn);
      [0112]狀態(tài)9:包尾CRC檢測狀態(tài),包尾CRC由三個字節(jié)組成,依次讀取幀比特輸入移位寄存器進行串/并轉(zhuǎn)換,同時包尾CRC計數(shù)器開始計數(shù),當計數(shù)值達到3 X 8位數(shù)據(jù)后,移位寄存器輸出相應的包尾CRC信息,進入狀態(tài):10,否則狀態(tài)不跳轉(zhuǎn);
      [0113]狀態(tài)10:幀結(jié)束序列檢測狀態(tài).依次讀取兩位幀比特信息,如果前一個比特位為“O”值,后一個比特位為“I”值,則判定為FES,則跳轉(zhuǎn)到狀態(tài)I,否則狀態(tài)不進行跳轉(zhuǎn)。
      [0114](12)、計數(shù)器模塊接收幀起始檢測模塊的TSS開始信號和TSS結(jié)束信號鎖定計數(shù)器當前計數(shù)值作為觸發(fā)位置值,發(fā)送給標簽生成模塊,標簽生成模塊收到幀起始檢測模塊的TSS開始信號和TSS結(jié)束信號后分別生成TSS開始標簽和TSS結(jié)束標簽,計數(shù)器模塊還接收字段提取模塊發(fā)送的各字段標簽檢測成功信號鎖定相應的計數(shù)器值發(fā)送給標簽生成模塊,標簽生成模塊接收到幀字段提取模塊發(fā)送的標簽類信息類型和標簽信息信號后將計數(shù)器值、標簽信息和標簽信息類型整合成標簽送存儲,另外計數(shù)器模塊接收觸發(fā)信號鎖定當前計數(shù)器值作為觸發(fā)位置信息發(fā)送給存儲模塊存儲,標簽生成模塊的標簽個數(shù)計數(shù)器每生成一個標簽加I,當檢測當前標簽個數(shù)超過最大存儲個數(shù)后清零并且循環(huán)標識寄存器置I,存儲模塊讀取該寄存器值來決定標簽存放位置,實現(xiàn)標簽循環(huán)存儲;
      [0115](13)、觸發(fā)模塊根據(jù)接收用戶設定的觸發(fā)方式參數(shù),根據(jù)觸發(fā)參數(shù)調(diào)用不同的比較器組合將解碼模塊生成的各幀信息與用戶設定的觸發(fā)條件比較,如果符合條件則產(chǎn)生觸發(fā)產(chǎn)生邏輯給觸發(fā)信號生成模塊產(chǎn)生觸發(fā)信號,用戶可設定的觸發(fā)方式及比較方法如下:
      [0116](131)幀頭觸發(fā):幀頭比較器檢測到幀頭字段產(chǎn)生觸發(fā);
      [0117](132)指示符位觸發(fā):指示符位比較器將用戶設定的4位指示符位數(shù)據(jù)與解碼得到的指示符位信息比較產(chǎn)生觸發(fā);
      [0118](133)幀號ID觸發(fā):幀號ID比較器將用戶設定的11位幀號ID數(shù)據(jù)與解碼得到的ID信息比較產(chǎn)生觸發(fā);
      [0119](134)循環(huán)數(shù)觸發(fā):循環(huán)數(shù)比較器將用戶設定的循環(huán)數(shù)與解碼得到的循環(huán)數(shù)比較產(chǎn)生觸發(fā);
      [0120](135)包頭字段觸發(fā):指示符位比較器、幀號ID比較器、凈荷長度比較器、包頭CRC比較器和循環(huán)數(shù)比較器各自將用戶設定的參數(shù)與解碼得到的幀信息比較,產(chǎn)生觸發(fā)信號與運算后產(chǎn)生觸發(fā);
      [0121](136)數(shù)據(jù)觸發(fā):數(shù)據(jù)觸發(fā)比較器可以讀取用戶可以設定字節(jié)偏置值,數(shù)據(jù)比較器將解碼得到的從此數(shù)值后面的數(shù)據(jù)字節(jié)與用戶設定的數(shù)據(jù)字比較產(chǎn)生觸發(fā);
      [0122](137)ID和數(shù)據(jù)觸發(fā):ID觸發(fā)比較器幀號ID比較器將用戶設定的11位幀號ID數(shù)據(jù)與解碼得到的ID信息比較產(chǎn)生觸發(fā),數(shù)據(jù)觸發(fā)比較器可以讀取用戶可以設定字節(jié)偏置值,數(shù)據(jù)比較器將解碼得到的從此數(shù)值后面的數(shù)據(jù)字節(jié)與用戶設定的數(shù)據(jù)字比較產(chǎn)生觸發(fā),然后將兩者觸發(fā)信號與運算得到觸發(fā);
      [0123](138)幀尾觸發(fā):幀尾比較器檢測解碼信息中FES信息和有無DTS信息,判斷產(chǎn)生觸發(fā);
      [0124](139)錯誤觸發(fā):錯誤觸發(fā)包括包頭CRC錯誤、包尾CRC錯誤、空幀錯誤、同步幀錯誤和啟動幀錯誤,包頭CRC比較器將校驗碼計算模塊計算值與解碼模塊得到的包頭CRC幀信息比較,如果不相等產(chǎn)生錯誤觸發(fā),包尾CRC比較器將校驗碼計算模塊計算值與解碼模塊得到的包尾CRC幀信息比較,如果不相等產(chǎn)生錯誤觸發(fā),空幀(靜態(tài)幀/動態(tài)幀)錯誤觸發(fā)信號由指示符位比較器和幀尾比較器得到,同步幀和啟動幀由指示符位判斷解碼得到的指示符位十目息得到;
      [0125](14)、采集模塊收到觸發(fā)生成模塊發(fā)送的觸發(fā)信號后,繼續(xù)采集一段時間后結(jié)束采集,一個采集周期完成。
      [0126]在帶有FlexRay總線信號解碼與觸發(fā)的測量儀器中,用戶除了能夠用傳統(tǒng)觸發(fā)方式觸發(fā)采集FlexRay總線信號外,還可以采用專門為FlexRay總線定制的解碼觸發(fā)方式來分析FlexRay解碼觸發(fā)顯示總線信息。采用定制的FlexRay總線解碼觸發(fā)方式,能在FlexRay總線的幀頭、指示符位、標識符、循環(huán)數(shù)量、數(shù)據(jù)、CRC和幀尾等幀序列的任意部位觸發(fā),還可以以包頭字段的任意組合、標識符與數(shù)據(jù)的組合、不同錯誤類型作為觸發(fā)條件觸發(fā),使得捕獲感興趣的事件變得簡單??偩€顯示不僅有模擬波形還可以以幀格式和幀序列兩種方式顯示總線信息,使用戶讀取直觀易懂。
      [0127]由于硬件解碼速度遠快于軟件解碼,當采用硬件觸發(fā)軟件解碼時其實也在做解碼工作,這樣可以在硬件解碼判斷觸發(fā)的方案的基礎上把解碼信息以標簽的方式儲存起來,把觸發(fā)位置信息也儲存起來,上層應用軟件直接讀取存儲的標簽信息和觸發(fā)位置信息用來顯示,省去了軟件解碼時間,提高了總線分析速度,同時軟件也省去了再做一次解碼的人力開銷。
      [0128]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
      【主權(quán)項】
      1.一種基于數(shù)字熒光示波器的FlexRay總線協(xié)議分析系統(tǒng),其特征在于,包括:用戶設定模塊、PCI e模塊、參數(shù)寄存器模塊、解碼觸發(fā)模塊、解碼存儲模塊、采集模塊和顯示模塊; 采集模塊首先對FlexRay總線上的模擬信號進行采樣,然后將采樣值與經(jīng)過數(shù)字量化后的用戶設定的觸發(fā)電平的數(shù)字值進行比較得到布爾值,最后將得到的布爾值送到解碼模塊; 解碼模塊根據(jù)用戶設定的位速率生成合適的采樣時鐘和計數(shù)器計數(shù)時鐘,接收到采集啟動信號后啟動計數(shù)器計數(shù),并根據(jù)采樣時鐘對采集模塊送來的布爾值進行采樣,解碼模塊根據(jù)采樣值得到總線的幀信息,然后生成對應的標簽并存儲,同時更新標簽個數(shù)寄存器值和標簽存儲循環(huán)標志,然后解碼模塊將幀信息送往觸發(fā)模塊; 觸發(fā)模塊接收到幀信息后將其與用戶設定的觸發(fā)條件比較,如滿足觸發(fā)條件則將此時的計數(shù)器值存儲到特定寄存器中并發(fā)送觸發(fā)信號給采集模塊; 采集模塊收到觸發(fā)信號后繼續(xù)采集一段時間后結(jié)束采集并發(fā)送采集結(jié)束信號給解碼豐旲塊; 解碼模塊接收到采集結(jié)束信號后停止解碼,示波器上層應用程序讀取標簽信息、標簽長度信息、觸發(fā)位置信息、標簽存儲循環(huán)信息,然后做顯示、分析處理。2.如權(quán)利要求1所述的一種基于數(shù)字熒光示波器的FlexRay總線協(xié)議分析系統(tǒng),其特征在于,所述解碼與觸發(fā)模塊包括:抽點模塊、解碼模塊、觸發(fā)模塊、觸發(fā)產(chǎn)生模塊; 抽點模塊根據(jù)接收用戶設定的位速率參數(shù)N倍頻生成采樣時鐘,接收用戶信號類型判斷對幾路數(shù)據(jù)進行抽點;計數(shù)器時鐘接收位速率信號生成總線序列時間計數(shù)器時鐘,通過該計數(shù)器值可以計算得到在總線各個部分在屏幕上的位置; 解碼模塊接收用戶設定信號類型判斷總線電平個數(shù)以及進行相位變換,接收用戶設定的通道類型參數(shù)判定校驗的計算方法,接收總線開關信號判定解碼與觸發(fā)的開始與停止,接收采集模塊的采集啟動和結(jié)束信號判定解碼活動的等待與繼續(xù)運行; 觸發(fā)模塊接收觸發(fā)條件參數(shù)判斷觸發(fā)條件,接收采集模塊的預觸發(fā)信號判定觸發(fā)信號產(chǎn)生的開始; 觸發(fā)產(chǎn)生模塊在接收到預觸發(fā)信號后產(chǎn)生觸發(fā)信號傳給采集模塊。3.如權(quán)利要求2所述的一種基于數(shù)字熒光示波器的FlexRay總線協(xié)議分析系統(tǒng),其特征在于,所述觸發(fā)模塊接收的用戶設定的FlexRay總線觸發(fā)方式包括:幀開頭、指示符位、標識符、凈荷長度、循環(huán)數(shù)、包頭CRC、包頭字段組合、數(shù)據(jù)、錯誤、幀尾。4.如權(quán)利要求3所述的一種基于數(shù)字熒光示波器的FlexRay總線協(xié)議分析系統(tǒng),其特征在于,所述觸發(fā)模塊針對幀不同字段都有相應的觸發(fā)比較器,用于產(chǎn)生觸發(fā)邏輯,解碼模塊將解碼的幀信息和計算的校驗數(shù)據(jù)傳輸給觸發(fā)模塊,觸發(fā)模塊根據(jù)不同的觸發(fā)類型調(diào)用幀頭比較器、包頭字段比較器、數(shù)據(jù)比較器、標識符比較器、幀尾比較器、錯誤比較器、幀尾校驗比較器中的幾個或者一個比較器判斷觸發(fā)條件傳給觸發(fā)信號產(chǎn)生模塊。5.—種基于數(shù)字熒光示波器的FlexRay總線協(xié)議分析方法,其特征在于,包括以下步驟: 步驟(I)、用戶設定FlexRay總線電平閾值參數(shù)存儲于參數(shù)寄存器中,采集模塊讀取閾值寄存器值,將數(shù)字量化后的值與閾值參數(shù)比較產(chǎn)生0/1序列信號送給抽點模塊,如果總線模擬信號為三電平,則設置高低兩個閾值參數(shù),采集模塊產(chǎn)生兩個0/1序列給抽點模塊; 步驟(2)、用戶設定FlexRay總線位速率參數(shù)存儲于參數(shù)寄存器中,抽點模塊讀取寄存器值生成采樣時鐘,采樣時鐘為位速率N倍; 步驟(3)、用戶設定FlexRay總線信號類型存儲于參數(shù)寄存器中,抽點模塊讀取寄存器值判斷為BM、BP則需要對虛擬通道中經(jīng)過兩個比較器比較的兩路0/1序列進行抽點,如果為Tx/Rx則只需對一路進行抽點。 步驟(4)、用戶設定FlexRay總線位速率參數(shù)存儲于參數(shù)寄存器中,計數(shù)器時鐘模塊采用采樣時鐘相同的倍頻數(shù)生成計數(shù)時鐘; 步驟(5)、用戶設定FlexRay總線通道類型,校驗碼計算模塊根據(jù)不同的通道類型計算fe驗碼; 步驟(6)、用戶設定FlexRay總線信號類型存儲于參數(shù)寄存器中,相位轉(zhuǎn)換模塊讀取寄存器值判斷是否進行相位變換,如果為BP則需要進行相位反轉(zhuǎn); 步驟(7)、解碼模塊中的幀起始/結(jié)束檢測模塊讀取信號類型參數(shù),如果為BM或者BP則需要讀取兩路數(shù)據(jù),相同采樣時刻值不同的為總線空閑,如果信號類型為Tx/Rx,則只需讀取一路數(shù)據(jù); 步驟(8)、比特提取模塊用每個位的中間采樣值代表該位的值,動態(tài)幀的DTS序列由于高低電平不是由固定位時間組成,不予處理;采樣值判定為高電平時,比特信息為“I”,采樣值判定為低電平時,比特信息為“O”,比特提取模塊將比特信息和采樣時鐘的N分頻一并發(fā)送給編碼冗余模塊; 步驟(9)、幀起始到幀尾序列之間的幀序列都有一個字節(jié)起始序列,解碼模塊中的編碼冗余模塊對位個數(shù)計數(shù)剔除字節(jié)起始序列; 步驟(10)、解碼模塊的校驗碼計算模塊接收比特位信息和編碼冗余模塊的采樣時鐘的N分頻時鐘,然后采用FlexRay總線協(xié)議規(guī)定的FlexRay總線包頭CRC和包尾CRC的檢驗方法計算校驗碼并送給觸發(fā)模塊,供校驗碼錯誤觸發(fā)比較使用; 步驟(11)、解碼模塊中的幀字段提取模塊接收比特位信息和編碼冗余模塊的采樣時鐘的N分頻時鐘,對幀起始序列到幀結(jié)束之間的信息進行幀信息提取,并在幀結(jié)束后發(fā)送幀結(jié)束信號給幀起始/結(jié)束檢測序列,所述幀字段提取模塊解碼出幀結(jié)構(gòu)的不同字段信息; 步驟(12)、計數(shù)器模塊接收幀起始檢測模塊的TSS開始信號和TSS結(jié)束信號鎖定計數(shù)器當前計數(shù)值作為觸發(fā)位置值,發(fā)送給標簽生成模塊,標簽生成模塊收到幀起始檢測模塊的TSS開始信號和TSS結(jié)束信號后分別生成TSS開始標簽和TSS結(jié)束標簽,計數(shù)器模塊還接收字段提取模塊發(fā)送的各字段標簽檢測成功信號鎖定相應的計數(shù)器值發(fā)送給標簽生成模塊,標簽生成模塊接收到幀字段提取模塊發(fā)送的標簽類信息類型和標簽信息信號后將計數(shù)器值、標簽信息和標簽信息類型整合成標簽送存儲;另外,計數(shù)器模塊接收觸發(fā)信號鎖定當前計數(shù)器值作為觸發(fā)位置信息發(fā)送給存儲模塊存儲,標簽生成模塊的標簽個數(shù)計數(shù)器每生成一個標簽加I,當檢測當前標簽個數(shù)超過最大存儲個數(shù)后清零并且循環(huán)標識寄存器置I,存儲模塊讀取該寄存器值來決定標簽存放位置,實現(xiàn)標簽循環(huán)存儲; 步驟(13)、觸發(fā)模塊根據(jù)接收用戶設定的觸發(fā)方式參數(shù),根據(jù)觸發(fā)參數(shù)調(diào)用不同的比較器組合將解碼模塊生成的各幀信息與用戶設定的觸發(fā)條件比較,如果符合條件則產(chǎn)生觸發(fā)產(chǎn)生邏輯給觸發(fā)信號生成模塊產(chǎn)生觸發(fā)信號; 步驟(14)、采集模塊收到觸發(fā)生成模塊發(fā)送的觸發(fā)信號后,繼續(xù)采集一段時間后結(jié)束采集,一個采集周期完成。6.如權(quán)利要求5所述的一種基于數(shù)字熒光示波器的FlexRay總線協(xié)議分析方法,其特征在于,所述步驟(7)中幀起始檢測的工作流程如下: (a)對采樣值進行判斷,當連續(xù)出現(xiàn)NX 11個判斷為總線空閑的采樣值時,判斷為總線空閑; (b)然后等待采樣值為低電平的值,當出現(xiàn)采樣值為低電平值時判斷為傳輸起始序列TSS開始,發(fā)送TSS開始信號給計數(shù)器模塊和標簽生成模塊,同時開始計數(shù)低電平采樣值個數(shù); (c)如果大于等于NX3并且小于等于NX15個低電平采樣值出現(xiàn)后出現(xiàn)高電平采樣值,則判斷為TSS結(jié)束,發(fā)送TSS結(jié)束信號給計數(shù)器模塊和標簽生成模塊; ⑷如果出現(xiàn)小于NX3則重新回到(a); (e)如果出現(xiàn)大于N X 15,暫時不予處理; 當幀起始/結(jié)束檢測模塊收到幀狀態(tài)字提取模塊發(fā)送的幀結(jié)束信號后,對采樣值進行檢測;如果出現(xiàn)低電平采樣值,則判定為動態(tài)幀,存在DTS序列,繼續(xù)檢測采樣值;當出現(xiàn)高電平時為DTS高電平段,計數(shù)N個采樣值后為DTS結(jié)束位置;當判定DTS結(jié)束后,該模塊重新進行幀起始檢測。7.如權(quán)利要求5所述的一種基于數(shù)字熒光示波器的FlexRay總線協(xié)議分析方法,其特征在于,所述步驟(9)具體包括:編碼冗余模塊在幀起始序列后檢測一個“I”值后面一個“O”值,如果為一個“I”值后面一個“O”值則判定為字節(jié)起始序列,從而剔除這兩個比特信息,不發(fā)送給幀字段提取模塊和校驗計算模塊,然后每隔8個比特信息檢測一個“I”值和一個“O”值,如果是則剔除;如果首先檢測到一個“O”然后是一個“I”,則為FES,不予處理,發(fā)送給幀字段提取序列,并且從此后面的采樣值不予處理,直接送給下面模塊,直到收到比特提取模塊的幀起始信號。8.如權(quán)利要求5所述的一種基于數(shù)字熒光示波器的FlexRay總線協(xié)議分析方法,其特征在于,所述幀字段提取模塊按以下10個狀態(tài)有序解碼出幀結(jié)構(gòu)的不同字段信息: 狀態(tài)1:空閑狀態(tài),上電復位后,狀態(tài)機即處于該狀態(tài),在該狀態(tài)下,當收到編碼冗余模塊傳送給的幀起始信號,則進入狀態(tài)2,否則狀態(tài)不跳轉(zhuǎn); 狀態(tài)2:檢測比特信息為“I”值,判定為幀起始,進入狀態(tài)3,否則狀態(tài)不跳轉(zhuǎn); 狀態(tài)3:指示符位狀態(tài),指示符位包括預留位、凈荷前置碼指示符、空幀指示符、同步幀指示符、啟動幀指示符共五位,依次讀取輸入的5位比特信息后,進入狀態(tài)4,否則狀態(tài)不跳轉(zhuǎn); 狀態(tài)4:幀號ID檢測狀態(tài),幀號ID由11組成,依次讀取11位輸入的幀比特信息,輸出幀號ID數(shù)據(jù)后,則進入狀態(tài)6,否則狀態(tài)不跳轉(zhuǎn); 狀態(tài)5:凈荷長度檢測狀態(tài),依次讀取7位輸入的幀比特信息輸入移位寄存器進行串/并轉(zhuǎn)換,輸出凈荷長度數(shù)據(jù)并存儲后,進入狀態(tài)6,否則狀態(tài)不跳轉(zhuǎn); 狀態(tài)6:包頭CRC檢測狀態(tài),包頭CRC由11位組成,依次讀取輸入的11位幀比特信息組成并輸出CRC信息,進入狀態(tài)7,否則狀態(tài)不跳轉(zhuǎn); 狀態(tài)7:循環(huán)數(shù)量檢測狀態(tài),循環(huán)數(shù)量長度為6位,依次讀取輸入的6位幀比特信息組成循環(huán)數(shù)量,進入狀態(tài)8,否則狀態(tài)不跳轉(zhuǎn); 狀態(tài)8:數(shù)據(jù)字段檢測狀態(tài),依次讀取幀比特輸入移位寄存器進行串/并轉(zhuǎn)換,同時數(shù)據(jù)字段計數(shù)器開始計數(shù),當計數(shù)值達到凈荷長度存儲器中的字節(jié)數(shù)X 8位數(shù)據(jù)后,移位寄存器輸出相應的數(shù)據(jù)字節(jié)信息,進入狀態(tài)9,否則狀態(tài)不跳轉(zhuǎn); 狀態(tài)9:包尾CRC檢測狀態(tài),包尾CRC由三個字節(jié)組成,依次讀取幀比特輸入移位寄存器進行串/并轉(zhuǎn)換,同時包尾CRC計數(shù)器開始計數(shù),當計數(shù)值達到3 X 8位數(shù)據(jù)后,移位寄存器輸出相應的包尾CRC信息,進入狀態(tài)10,否則狀態(tài)不跳轉(zhuǎn); 狀態(tài)10:幀結(jié)束序列檢測狀態(tài),依次讀取兩位幀比特信息,如果前一個比特位為“O”值,后一個比特位為T值,則判定為FES,則跳轉(zhuǎn)到狀態(tài)I,否則狀態(tài)不進行跳轉(zhuǎn)。9.如權(quán)利要求5所述的一種基于數(shù)字熒光示波器的FlexRay總線協(xié)議分析方法,其特征在于,所述步驟(13)中,用戶設定的觸發(fā)方式及比較方法如下: (131)幀頭觸發(fā):幀頭比較器檢測到幀頭字段產(chǎn)生觸發(fā); (132)指示符位觸發(fā):指示符位比較器將用戶設定的4位指示符位數(shù)據(jù)與解碼得到的指示符位信息比較產(chǎn)生觸發(fā); (133)幀號ID觸發(fā):幀號ID比較器將用戶設定的11位幀號ID數(shù)據(jù)與解碼得到的ID信息比較產(chǎn)生觸發(fā); (134)循環(huán)數(shù)觸發(fā):循環(huán)數(shù)比較器將用戶設定的循環(huán)數(shù)與解碼得到的循環(huán)數(shù)比較產(chǎn)生觸發(fā); (135)包頭字段觸發(fā):指示符位比較器、幀號ID比較器、凈荷長度比較器、包頭CRC比較器和循環(huán)數(shù)比較器各自將用戶設定的參數(shù)與解碼得到的幀信息比較,產(chǎn)生觸發(fā)信號與運算后產(chǎn)生觸發(fā); (136)數(shù)據(jù)觸發(fā):數(shù)據(jù)觸發(fā)比較器讀取用戶設定字節(jié)偏置值,數(shù)據(jù)比較器將解碼得到的從此數(shù)值后面的數(shù)據(jù)字節(jié)與用戶設定的數(shù)據(jù)字比較產(chǎn)生觸發(fā); (137)ID和數(shù)據(jù)觸發(fā):ID觸發(fā)比較器幀號ID比較器將用戶設定的11位幀號ID數(shù)據(jù)與解碼得到的ID信息比較產(chǎn)生觸發(fā),數(shù)據(jù)觸發(fā)比較器讀取用戶設定字節(jié)偏置值,數(shù)據(jù)比較器將解碼得到的從此數(shù)值后面的數(shù)據(jù)字節(jié)與用戶設定的數(shù)據(jù)字比較產(chǎn)生觸發(fā),然后將兩者觸發(fā)信號與運算得到觸發(fā); (138)幀尾觸發(fā):幀尾比較器檢測解碼信息中FES信息和有無DTS信息,判斷產(chǎn)生觸發(fā); (139)錯誤觸發(fā):錯誤觸發(fā)包括包頭CRC錯誤、包尾CRC錯誤、空幀錯誤、同步幀錯誤和啟動幀錯誤,包頭CRC比較器將校驗碼計算模塊計算值與解碼模塊得到的包頭CRC幀信息比較,如果不相等產(chǎn)生錯誤觸發(fā),包尾CRC比較器將校驗碼計算模塊計算值與解碼模塊得到的包尾CRC幀信息比較,如果不相等產(chǎn)生錯誤觸發(fā),空幀錯誤觸發(fā)信號由指示符位比較器和幀尾比較器得到,同步幀和啟動幀由指示符位判斷解碼得到的指示符位信息得到。
      【文檔編號】H04L29/08GK105959143SQ201610353483
      【公開日】2016年9月21日
      【申請日】2016年5月18日
      【發(fā)明人】賀增昊, 劉紀龍, 向前, 張成森, 劉洪慶
      【申請人】中國電子科技集團公司第四十研究所, 中國電子科技集團公司第四十一研究所
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1