一種應用于串行總線分析儀器的can總線協(xié)議解碼ip核的制作方法
【技術領域】
[0001] 本發(fā)明設及一種串行總線分析技術,具體設及基于測試儀器系統(tǒng)的CAN總線協(xié)議 解碼技術。
【背景技術】
[0002] 面對日益復雜的串行總線協(xié)議分析問題,現(xiàn)代測試儀器系統(tǒng)對串行總線協(xié)議分析 的要求越來越高,總線協(xié)議解碼技術逐漸應用于串行總線協(xié)議分析設計中。
[0003] 總線協(xié)議解碼技術可W對多種復雜的串行總線信號進行定性和定量的測試分析。 對于現(xiàn)代測試系統(tǒng)總線分析領域來說,總線協(xié)議解碼技術有利于提高從總線數(shù)據(jù)中獲取有 用信息的準確性、可靠性和靈活性,因此成為現(xiàn)代測試系統(tǒng)中不可或缺的技術,可W滿足現(xiàn) 代高速復雜設備的測試需求。
[0004] 在現(xiàn)代總線協(xié)議分析領域中,面對日益復雜的串行總協(xié)議分析,總線協(xié)議解碼技 術往往只是孤立地使用信號分析功能進行調試,孤立地使用模擬信號分析功能,不能做到 對信號進行數(shù)據(jù)域的協(xié)議分析。而且,CAN總線的數(shù)據(jù)類型繁雜,數(shù)據(jù)格式復雜,并且具有較 長的數(shù)據(jù)長度,從數(shù)據(jù)域的角度進行協(xié)議分析,總線協(xié)議解碼技術可能無法滿足復雜的測 試要求。因此CAN總線協(xié)議解碼技術,在現(xiàn)代測試系統(tǒng)的串行總線分析領域有著迫切的應用 需求和實際意義。
[0005] 如何對CAN總線數(shù)據(jù)進行準確的協(xié)議解碼,也是現(xiàn)代測試儀器系統(tǒng)開發(fā)和研制的 重點。
【發(fā)明內容】
[0006] 本發(fā)明是為了解決現(xiàn)有的協(xié)議解碼技術對傳輸?shù)臄?shù)據(jù)進行協(xié)議解碼的準確性和 可靠性低的問題,本發(fā)明提供了一種應用于串行總線分析儀器的CAN總線協(xié)議解碼IP核系 統(tǒng)。
[0007] -種應用于串行總線分析儀器的CAN總線協(xié)議解碼IP核,它包括輸入接口控制模 塊、CAN總線協(xié)議解碼核屯、控制模塊和輸出接口控制模塊;
[000引輸入接口控制模塊中內嵌一個1號AXI8位內存映射型從端口模塊和一個數(shù)據(jù)輸入 緩沖FIFO模塊,用于將寫入1號AXI8位內存映射型從端口模塊的CAN總線數(shù)據(jù)讀取出來,并 存儲到數(shù)據(jù)輸入緩沖FIFO模塊中;
[0009] CAN總線協(xié)議解碼核屯、控制模塊,用于從數(shù)據(jù)輸入緩沖FIFO模塊中讀取CAN總線數(shù) 據(jù),并將讀取的CAN總線數(shù)據(jù)進行解碼后,發(fā)送至輸出接口控制模塊;
[0010] 輸出接口控審臘塊中內嵌一個2號AXI8位內存映射型從端口模塊和一個數(shù)據(jù)輸出 緩沖FIFO模塊,用于將寫入到數(shù)據(jù)輸出緩沖FIFO模塊中的解碼結果通過2號AXI8位內存映 射型從端口模塊讀出。
[0011] 所述的CAN總線協(xié)議解碼核屯、控制模塊對讀取的CAN總線數(shù)據(jù)進行解碼的具體過 程為:
[001^ 步驟1、將讀取的CAN總線的原始模擬數(shù)據(jù)進行中值濾波處理,去除毛刺;
[001引步驟2、將中值濾波處理后的CAN總線數(shù)據(jù)進行差分處理,獲得差分后的CAN總線數(shù) 據(jù)化化i;
[0014]步驟3、計算差分后的CAN總線數(shù)據(jù)化tai中每個數(shù)據(jù)對應的時間標志,具體計算公 式如下:
(公式二),
[0016]其中,DataTimei代表第i個模擬數(shù)據(jù)的時間標志,SampRate代表總線數(shù)據(jù)采集的 采樣率,i為整數(shù),表示在整個采集的總線數(shù)據(jù)中,第i個模擬數(shù)據(jù),DataSize表示總線數(shù)據(jù) 長度;
[0017]步驟4、根據(jù)設定的闊值化reshold,將差分后的具有時間標記的CAN總線數(shù)據(jù) Datai轉換成數(shù)字數(shù)據(jù)Dig;ma化i,具體轉換過程如下: Di咨iLk;ta > Threshold ,.,
[001 引 I . ' .... . \,0<i< DaiaSize (公A ''); D 卿L>at€i重二Data^ < I hreshoi'J
[0019] 步驟5、在轉換后的數(shù)字數(shù)據(jù)Digi化化1中查找帖的個數(shù)及每個帖的帖起始位置;
[0020] 步驟6、解碼每一帖,從每一帖的帖起始位置開始計算該帖中每比特數(shù)據(jù)的電平, 直至帖結束位置,確定每帖CAN總線數(shù)據(jù)中每比特數(shù)據(jù)的電平后,根據(jù)CAN總線協(xié)議規(guī)范對 每帖CAN總線數(shù)據(jù)進行串行協(xié)議解碼,翻譯成與協(xié)議格式對應的文本內容,完成對CAN總線 的原始模擬數(shù)據(jù)的解碼;其中,每比特數(shù)據(jù)的電平為顯性電平或隱性電平。
[0021] 所述的步驟1中將讀取的CAN總線的原始模擬數(shù)據(jù)進行中值濾波處理,去除毛刺的 具體過程為:
[0022] Datai = Data_HrData_l^i,0<i<Da1:aSize (公式一),
[002引其中,化tai代表做差分后的CAN總線數(shù)據(jù),Data_出代表CAN總線上的高通道CAN_H 線上的總線數(shù)據(jù),Data_Li代表CAN總線上的低通道CAN_L線上的總線數(shù)據(jù)。
[0024]所述的步驟5中找到每個帖的起始位置后,從帖起始位置開始計算該帖中每比特 數(shù)據(jù)的電平的具體過程為:
[00巧]首先,通過公式四獲得平均值AverLe ve Ik,且
(公式四),
[0027]其中,AverLevelk表示第k位數(shù)據(jù)的1比特數(shù)字數(shù)據(jù)平均值,F(xiàn)rameSize表示一帖數(shù) 據(jù)中包含的比特數(shù),k為整數(shù),Poin證e巧it表示每比特數(shù)據(jù)中包含的數(shù)字數(shù)據(jù)個數(shù);
[002引其次,將得到的平均值AverLevelk與設置的電平闊值化reshold_Bit作比較,判斷 每比特數(shù)據(jù)電平是顯性電平還是隱性電平,判斷條件如下: D咕IJah:! Bill 二 l,A、\rL乂化'!,>Th!\'shold 孜
[0029] - " - f.l<k<l'-nm!cShc (公 AZ!.), 以腳i_公1'//. = 0, /1 化tZ"乂乂 < 7知-"'々化/(/_化7'
[0030] 其中,Digi化化_Bitk表示1比特數(shù)據(jù)的電平,DigiData_Bitk = 1中的1代表顯性電 平,DigiData_Bitk=0中的0代表隱性電平。
[0031] 所述的電平闊值!'虹e sho I d_B i t為0.8。
[0032] 所述的解碼帖類型為標準格式數(shù)據(jù)帖、擴展格式數(shù)據(jù)帖、標準格式遙控帖、擴展格 式遙控帖、錯誤帖或過載帖。
[0033] 所述的錯誤類型包括CRC錯誤、DLC錯誤和ACKLost錯誤。
[0034] 所述的與協(xié)議格式對應的文本內容包括解碼帖類型、帖ID、數(shù)據(jù)長度、數(shù)據(jù)內容、 帖CRC W及錯誤類型。
[0035] 本發(fā)明帶來的有益效果是,一種應用于串行總線分析儀器的CAN總線協(xié)議解碼IP 核將采集到的CAN總線數(shù)據(jù)根據(jù)指定的CAN總線協(xié)議,翻譯成與協(xié)議格式對應的文本內容。 在文本內容中具有時間標記,該時間標記能夠和模擬波形對應。并且按照文本內容進行標 識(帖起始、帖結束、帖ID、數(shù)據(jù)及內容、帖類型、帖CRC),并且能夠識別協(xié)議中的錯誤(CRC錯 誤、DLC錯誤、ACKLost錯誤),使得協(xié)議解碼的準確性提高了5% W上和可靠性提高了5% W 上。
【附圖說明】
[0036] 圖1為本發(fā)明所述的一種應用于串行總線分析儀器的CAN總線協(xié)議解碼IP核的原 理不意圖;
[0037] 圖2為本發(fā)明所述的一種應用于串行總線分析儀器的CAN總線協(xié)議解碼IP核與上 位機和串行總線數(shù)據(jù)源模塊連接關系結構圖。
【具體實施方式】
【具體實施方式】 [0038] 一:參見圖1說明本實施方式,本實施方式所述的一種應用于串行總 線分析儀器的CAN總線協(xié)議解碼IP核,它包括輸入接口控制模塊1、CAN總線協(xié)議解碼核屯、控 制模塊2和輸出接口控制模塊3;
[0039] 輸入接口控制模塊1中內嵌一個1號AXI8位內存映射型從端口模塊1-1和一個數(shù)據(jù) 輸入緩沖FIFO模塊1-2,用于將寫入巧AXI8位內存映射型從端口模塊1-1的CAN總線數(shù)據(jù)讀 取出來,并存儲到數(shù)據(jù)輸入緩沖FIFO模塊1-2中;
[0040] CAN總線協(xié)議解碼核屯、控制模塊2,用于從數(shù)據(jù)輸入緩沖FIFO模塊1-2中讀取CAN總 線數(shù)據(jù),并將讀取的CAN總線數(shù)據(jù)進行解碼后,發(fā)送至輸出接口控制模塊3;
[0041] 輸出接口控制模塊3中內嵌一個2號AXI8位內存映射型從端口模塊3-1和一個數(shù)據(jù) 輸出緩沖FIFO模塊3-2,用于將寫入到數(shù)據(jù)輸出緩沖FIFO模塊3-2中的解碼結果通過2號 AXI8位內存映射型從端口模塊3-1讀出。
【具體實施方式】 [0042] 二:本實施方式與一所述的一種應用于串行總線分析 儀器的CAN總線協(xié)議解碼IP核的區(qū)別在于,所述的CAN總線協(xié)議解碼核屯、控制模塊2對讀取 的CAN總線數(shù)據(jù)進行解碼的具體過程為:
[0043] 步驟1、將讀取的CAN總線的原始模擬數(shù)據(jù)進行中值濾波處理,去除毛刺;
[0044] 步驟2、將中值濾波處理后的CAN總線數(shù)據(jù)進行差分處理,獲得差分后的CAN總線數(shù) 據(jù)化化i;
[0045] 步驟3、計算差分后的CAN總線數(shù)據(jù)化tai中每個數(shù)據(jù)對應的時間標志,具體計算公 式如下:
(公式二),
[0047]其中,DataTimei代表第i個模擬數(shù)據(jù)的時間標志,SampRate代表總線數(shù)據(jù)采集的 采樣率,i為整數(shù),表示在整個采集的總線數(shù)據(jù)中,第i個模擬數(shù)據(jù),DataSize表示總線數(shù)據(jù) 長度;
[004引步驟4、根據(jù)設定的闊值化reshold,將差分后的具有時間標記的CAN總線數(shù)據(jù) Datai轉換成數(shù)字數(shù)據(jù)Digi化化i,具體轉換過程如下: DigiLkiki,二 \、Lkiia,> Threshold 入 。一、
[0049] . 么i<!)奶施i泌 (公'式二)., D咕 1-)加 1 二 O'LkWa <'l'hresh(,!(J
[0050] 步驟5、在轉換后的數(shù)字數(shù)據(jù)Digi化化I中查找帖的個數(shù)及每個帖的帖起始位置;
[0051] 步驟6、解碼每一帖,從每一帖的帖起始位置開始計算該帖中每比特數(shù)據(jù)的電平, 直至帖結束位置,確定每帖CAN總線數(shù)據(jù)中每比特數(shù)據(jù)的電平后,根據(jù)CAN總線協(xié)議規(guī)范對 每帖CAN總線數(shù)據(jù)進行串行協(xié)議解碼,翻譯成與協(xié)議格式對應的文本內容,完成對CAN總線 的原始模擬數(shù)據(jù)的解碼;其中,每比特數(shù)據(jù)的電平為顯性電平或隱性電平。
[0052] 本實施方式,通過步驟3可W在文本內容中進行時間標記,該時間標記能夠和模擬 波形、轉換后的數(shù)字數(shù)據(jù)對應。
[0053] 可W根據(jù)CAN總線的模擬數(shù)據(jù)大小決定闊值,保證闊值可W合理的將CAN總線數(shù)據(jù) 分成兩個狀態(tài)(〇、1)。
[0054] 步驟5中,在轉換后的數(shù)字數(shù)據(jù)中,從0到化taSize查找帖起始(SOF)位置,CAN總線 空閑狀態(tài)是隱性電平,每種格式帖的帖起始條件是一位顯性電平。為了保證查找帖起始位 置的準確率,需要添加一個判斷條件:因為每帖的帖結束化OF)段是連續(xù)7位隱性電平,先找 到連續(xù)7位隱性電平,滿足運個判斷條件就可W保證在總線空閑狀態(tài)下查找帖起始,在空閑 狀態(tài)下找到的第一位顯性電平就是帖起始,即先確定找到化in巧erBi巧7個連