高 亮,宮久路,諶德榮
(北京理工大學(xué) 機電學(xué)院,北京 100081)
在武器系統(tǒng)電氣系統(tǒng)中,非標接口主要用于系統(tǒng)之間以及系統(tǒng)內(nèi)部傳遞具有特殊傳輸要求的信息(如:指令)。非標接口往往由系統(tǒng)工程師設(shè)計時序或選用標準時序,產(chǎn)品工程師采用可編程電路實現(xiàn)時序,測試工程師利用示波器對時序進行抽樣檢測。武器電氣系統(tǒng)工作環(huán)境復(fù)雜且條件惡劣,其應(yīng)用環(huán)境存在多種引起時序變化的因素(如:溫度的變化),電氣系統(tǒng)需要在地面進行大量的環(huán)境適應(yīng)性試驗。如果在地面環(huán)境試驗中對接口參數(shù)進行連續(xù)定量地監(jiān)測,獲取非標接口時序參數(shù)的分布特性,則可為非標接口時序參數(shù)的最優(yōu)設(shè)計提供精確的數(shù)據(jù)支撐。
對接口時序的一致性分析主要采用仿真加抽樣測試來完成[1]。對于標準接口,采用為示波器或邏輯分析儀配置協(xié)議插件實現(xiàn)對I2C、CAN等標準總線時序的自動測試和上層協(xié)議分析[2-3],典型產(chǎn)品有廣州致遠電子公司生產(chǎn)的ZDS4000系列示波器;對于非標接口,測試則依賴定制化系統(tǒng)[4-5],相關(guān)研究多集中于特定應(yīng)用領(lǐng)域的系統(tǒng)設(shè)計[6-7]。時序監(jiān)測系統(tǒng)的智能化、通用化是亟待解決的重要課題[8]。
本文通過建立時序參數(shù)模型,設(shè)計被測參數(shù)的圖形化輸入接口,以事件碼序列為觸發(fā)條件,設(shè)計Dynamic Event Warping-Boyer Moore (DEW-BM)算法從數(shù)據(jù)流中捕獲目標時序,根據(jù)參數(shù)模型定位受約束信號沿位置,將信號沿之間的時間距離作為被測參數(shù)的測量值,通過驗證時序參數(shù)是否滿足約束不等式給出分析結(jié)果,實現(xiàn)對非標接口時序一致性的長期連續(xù)定量監(jiān)測。
接口時序一致性分析是指對信號波形的建立時間,保持時間等參數(shù)進行測量,并與規(guī)定的約束值對比,檢查所有周期的波形是否符合協(xié)議標準。對比測試是時序一致性分析的常用方法,其主要測試流程如圖1所示。
圖1 對比測試基本流程圖
本文基于虛擬邏輯分析儀結(jié)構(gòu)設(shè)計時序監(jiān)測的硬件系統(tǒng),如圖2所示;利用DSLogic邏輯分析儀模塊實現(xiàn)接口信號數(shù)據(jù)采集及閾值比較,其性能參數(shù)如表1所示;通過USB總線接收數(shù)據(jù)流并以二進制文件存儲到服務(wù)器硬盤。
圖2 監(jiān)測系統(tǒng)結(jié)構(gòu)框圖
表1 DSLogic性能參數(shù)表
名稱最大采樣率通道數(shù)輸入電壓范圍/V參數(shù)值20M@1640M@816-30~30
基于B/S架構(gòu)設(shè)計時序分析軟件,如圖3所示,通過讀取數(shù)據(jù)文件和輸入被測參數(shù)信息進行時序一致性檢測,并在前端頁面顯示時序一致性分析結(jié)果。
圖3 時序分析軟件工作流程圖
對比測試的關(guān)鍵在于標準模式庫的建立,傳統(tǒng)上通過編寫協(xié)議插件實現(xiàn)模式庫的生成,缺乏接口時序統(tǒng)一的描述模型和輸入接口,這是現(xiàn)有時序監(jiān)測系統(tǒng)難以通用化的根本原因。建立時序描述模型,實現(xiàn)被測時序的輸入接口,是解決時序監(jiān)測系統(tǒng)通用化問題的可行方法。
時序一致性分析中常見的測試項目有:建立時間、保持時間、電平持續(xù)時間等[9],在本質(zhì)上這些參數(shù)都是描述兩個信號沿之間的時間間隔。因此只需要知道被測參數(shù)的起始位置,終止位置和約束值三個參數(shù)便可以使計算機實現(xiàn)自動測量。時序參數(shù)的測量示意圖如圖4所示,對應(yīng)地需要輸入信號沿a,信號沿b和約束值Tsu的數(shù)值描述,其中Tsu直接由接口時序規(guī)定,具有明確的數(shù)值,而信號沿的位置則需要建立一種規(guī)則來準確描述,本文通過定義信號的沿函數(shù),利用沿函數(shù)值來標識信號沿在時序周期中的位置。
圖4 時序參數(shù)測量示意圖
定義1:設(shè)有(0,1)域上的二元時間序列Xg:
Xg=[x(g)1x(g)2…x(g)n]
若存在整數(shù)p,使得x(g)p-1+x(g)p=1且x(g)p-1×x(g)p=0,則稱Xg在p處有沿,若Xg在p1,p2,…,pN處有沿,且p1 (1) 按照上述定義,信號沿a的位置可描述為(A,4),信號沿b的位置可描述為(B,2)。為了實現(xiàn)自動對比還需要輸入測試值與約束值的約束關(guān)系,分為最大值約束和最小值約束兩類,因此Tsu可由參數(shù)模型表示為: (A4B2minTsu) (2) 被測參數(shù)均表示為形如式(2)的矢量模型,當需要輸入多個參數(shù)時,即對應(yīng)輸入多個約束矢量。為了便于工程實現(xiàn),本文設(shè)計基于csv文件的時序參數(shù)輸入接口,其輸入格式如圖5所示。 圖5 基于csv文件的時序參數(shù)輸入格式 接口時序一般具有周期性,在上一個工作周期結(jié)束至下一個工作周期開始前存在無關(guān)時序,工作時序呈片段離散地分布于整個監(jiān)測數(shù)據(jù)流中,因此篩選出目標時序片段是時序分析需解決的首要問題。其難點在于當接口時序發(fā)生錯誤時,目標時序片段可能不再符合觸發(fā)條件,作為無關(guān)時序被過濾,導(dǎo)致時序錯誤未被發(fā)現(xiàn)。因此設(shè)計一種具有時序容錯能力和高效的數(shù)據(jù)捕獲方法,成為時序一致性分析正確性的保證。 傳統(tǒng)上,邏輯分析儀通過設(shè)置邊沿、碼型等觸發(fā)條件捕獲目標信號[10],但捕獲正確性低,需依賴人工滑動定位目標時序,無法直接應(yīng)用于自動測量。目標信號捕獲通過協(xié)議分析軟件實現(xiàn),其分析對象是已經(jīng)被離散化后的布爾時間序列,因此碼型觸發(fā)是最優(yōu)選擇。在理想時序下只存在一種碼型,但由于實際電路中的信號存在抖動,信號沿重疊處附近會產(chǎn)生額外的碼字,如圖6所示,01和10分別是b信號沿偏離理想位置時額外產(chǎn)生的碼字。若同一有效沿處重疊信號沿數(shù)量為n,則產(chǎn)生的碼字最多有n-1個,最少有0個,目標時序呈現(xiàn)出多模式的特征,模式集隨并行信號數(shù)量的增加呈指數(shù)級增長。為了降低匹配的復(fù)雜度,提出事件碼并以事件碼序列作為觸發(fā)條件,接口時序可用唯一的事件碼序列表征,實現(xiàn)將多模式匹配簡化為單模式匹配。 2.2.1 事件碼 數(shù)字系統(tǒng)依靠信號間邏輯值的不同組合實現(xiàn)不同的邏輯事件,本文將理想時序下邏輯事件有效時各信號對應(yīng)的邏輯值組合稱為事件碼。數(shù)字系統(tǒng)由時鐘驅(qū)動,邏輯事件的有效時刻即對應(yīng)著時鐘信號的有效沿,以圖4所示時序為例,若clk的下降沿為有效時刻,則A和B信號對應(yīng)的事件碼為(11 01 11 00 10 10 11 11 01 00 00 00),對連續(xù)相同的事件碼合并得到事件碼序列(11 01 11 00 10 11 01 00)。對于信號沿不重疊的時序,其信號抖動不會改變時序的事件碼序列,如(A,5)和(B,3)信號沿偏離理想位置;當存在信號沿重疊時,如(A,3)和(B,1)發(fā)生偏移則會產(chǎn)生新的碼字,當采樣分辨率高于偏移距離時,這些碼字就能被觀測到。但是這些碼字不具有實際的邏輯操作,因此不能認為是事件碼,用擾動碼符號*標識并說明重疊信號的數(shù)量,則圖4時序的事件碼序列表示為(11 01 11 *2 00 10 11 01 00)。當有n個信號沿重疊時,可最多插入n-1個完全不同的擾動碼,信號抖動會造成信號沿在理想位置附近移動,但不會造成信號的二次翻轉(zhuǎn),所以擾動碼不能與插入位置前后的事件碼相同,即上述事件碼序列中的*不能為(11)和(00),則事件碼序列長度為: m≤l≤m+r-k (3) 式中,m表示事件碼的數(shù)量,r表示在理想時序下重疊的信號沿數(shù)量之和,k表示有k個不同的時鐘有效沿時刻發(fā)生重疊。 2.2.2 匹配算法 設(shè)被測接口時序有p個可測信號,采樣頻率為fsamp,采樣時長為t,對各信號同步采樣,則采樣數(shù)據(jù)可表示為: (4) 數(shù)據(jù)序列的長度q=t×fsamp,將上述矩陣中同一列的數(shù)據(jù)點編為一個碼元,由于采樣頻率一般是信號最大頻率的數(shù)倍,相鄰碼元存在大量的重復(fù)性,游程壓縮后可得到數(shù)值序列Dn和游程序列Tn: Dn[d1d2…dn] (5) Tn[t1t2…tn] (6) 式中,ti表示壓縮前最后一個di對應(yīng)的時刻,目標信號捕獲即為從數(shù)據(jù)序列Dn中搜索與事件碼序列Pl完全匹配的子序列,這是具有通配符的單模式串匹配問題,常見的串匹配算法有Brute-Force(BF),Knuth-Morris-Pratt(KMP)和Boyer-Morre(BM)算法等[11]。但由于事件碼序列含有通配符*且長度不確定,因此無法直接應(yīng)用上述算法。文獻[12]指出BM算法在最壞情況下具有最好的計算復(fù)雜性,在最好情況下的計算復(fù)雜性優(yōu)于KMP算法,因此本文以BM算法為基礎(chǔ),通過對事件進行動態(tài)彎折,設(shè)計信號的模糊匹配算法DEW-BM(Dynamic Event Warping-Boyer Morre),實現(xiàn)對目標信號捕獲,詳細算法步驟如下: 1)將事件序列P的首字符p1和數(shù)據(jù)序列D中的某一字符di對齊,稱位置i為嘗試位置。由式(3)可知最后一個事件碼一定位于di+m-1到di+m+r-k-1之間,以di+m+r-k-1為起點,從右至左開始匹配第一個符合條件的字符,若存在字符di+s=pm且di+s在Tn對應(yīng)的時間點ti+s不超過匹配閾值τ,則對齊di+s和pm;若不存在匹配字符,則對齊di+m-1和pm。 2)以pm為起點,從右向左匹配后綴,匹配時如果pi是通配符*,則按3)中的規(guī)則執(zhí)行,直至出現(xiàn)p1=di或pk≠di+k-1(1≤k≤m-1),前者表示匹配成功;后者表示匹配失敗并繼續(xù)后續(xù)步驟,將D中首次出現(xiàn)的不匹配字符di+k-1稱為壞字符,將已匹配成功的序列pk+1,pk+2,…,pm稱為好后綴。 3)當pj=dj且pj-1=*number時(*為擾動碼,number表示重疊數(shù)),若從dj-1到dj-number中存在字符dchar與pj-2匹配,則將dj至dchar之間的數(shù)據(jù)序列彎折與pj-1對齊;若不存在匹配字符,則將dj-1至dj-number的數(shù)據(jù)序列與pj-1對齊。上述兩種情況對齊后,均表示pj-1匹配成功,繼續(xù)匹配下一字符pj-2。 4)計算壞字符的移動距離shiftbc,在P中從右至左查找首次出現(xiàn)的壞字符di+k-1,以bmBc[char]表示壞字符在P中的位置序號,若P中不存在壞字符,則將P移動至壞字符的下一個字符,令bmBc[char]=-1;若存在一個或多個壞字符,則選取P中最右的那個字符移動至與壞字符對齊;綜上shifbbc=k-1-bmBc[char]。 5)對P做掃描后綴匹配預(yù)處理,計算匹配度數(shù)組suffix,suffix[i]的值表示從pi開始向前掃描,能夠與P后綴匹配的最大長度。 6)計算好后綴的移動距離shiftgs,以bmGs[char]表示子串后綴的最后一個字符在P中的位置序號,若P中存在與好后綴前導(dǎo)字不同的子串,則將最靠右邊的字串對齊;若無符合條件的子串,則尋找P中的最長前綴使其與好后綴的后綴對齊;若上述兩者都不滿足,則直接移動P至壞字符的下一個字符,并令bmGs[char]=-1;上述匹配過程可通過步驟5)預(yù)處理完成,通過查詢suffix數(shù)組可直接獲取匹配結(jié)果,綜上shiftgs=m-bmGs[char]。 7)選取shiftbc和shiftgs中的較大值作為下一次匹配的移動距離,跳轉(zhuǎn)步驟1),執(zhí)行下一次匹配。 算法流程如圖7所示,右對齊位置的確定和通配符匹配規(guī)則設(shè)計是DEW-BM算法的動態(tài)彎折實現(xiàn),主要用于解決傳統(tǒng)BM算法應(yīng)用時面臨的兩個問題:1)模式序列和目標數(shù)據(jù)序列的長度不一致;2)缺少通配符的匹配法則。 圖7 DEW-BM算法流程圖 當時序參數(shù)不滿足接口時序所規(guī)定的約束值時稱為異常時序,時序一致性分析的過程就是從捕獲的信號數(shù)據(jù)中測量出各個時序參數(shù)的實際值,再與約束值進行比較。 2.3.1 時序參數(shù)測量 時序參數(shù)具有形如式(2)的描述,參數(shù)測量具有獨立性,因此對于n個參數(shù)的測量可劃分為n個并行的測量過程。設(shè)捕獲的數(shù)據(jù)可描述為形如式(4)的數(shù)據(jù)矩陣,以式(2)所描述的參數(shù)為例,說明測量過程,設(shè)信號A由通道1測試,信號B由通道2測試,則有: 1)對d(1)行向量計算沿函數(shù),初始化當前沿函數(shù)值index=0,若d(1)i與d(1)i+1的值不相同,則index=index+1,當index=4時,讀取此時若d(1)i對應(yīng)的若ti,記作tA;同理,讀取B信號沿對應(yīng)的時間值tB。 2)若約束關(guān)系為min,則判斷|tA-tB|≥Tsu;若約束關(guān)系為max,則判斷|tA-tB|≤Tsu。 3)若存在時序參數(shù)不滿足約束不等式,則判定當前捕獲數(shù)據(jù)存在異常時序,并記錄異常時序的時間位置。 4)分別獨立統(tǒng)計各測量參數(shù)的最大值和最小值,并在每次時序分析完成后更新。 2.3.2 測量誤差分析 (7) max約束關(guān)系下的時序正確狀態(tài)修正為: (8) min約束關(guān)系下的時序正確狀態(tài)修正為: (9) 時序一致性分析系統(tǒng)的核心在于時序分析軟件功能的正確實現(xiàn),為了驗證時序分析軟件的分析結(jié)果具備一定的正確性和可靠性,基于信號完整性的分析,利用matlab模擬生成某FIFO的異步寫入時序在各種噪聲環(huán)境下的信源采樣數(shù)據(jù),時序關(guān)系如圖8中的a至b段所示,時序約束如圖9所示。時序分析軟件通過讀取采樣數(shù)據(jù)文件進行分析,將分析結(jié)果與信源設(shè)定的期望結(jié)果進行對比。 圖8 FIFO異步寫入時序圖 圖9 FIFO異步寫入?yún)?shù) 時鐘信號是其他信號設(shè)計的參照,為了模擬信號的真實情況,需考慮時鐘信號存在的時鐘偏移、時鐘抖動以及占空比失真等不穩(wěn)定因素。其中時鐘抖動是造成時序問題的最主要原因,文本在信源設(shè)計中僅考慮時鐘抖動的影響。時鐘抖動可分為固定性抖動fDj(t)和隨機性抖動兩類,其中隨機性抖動接近高斯分布,固定性抖動一般不具有隨機性,其分布形式表現(xiàn)為峰峰值2μ[14-15]。為了能用統(tǒng)一的概率分布模型描述固定性抖動,將峰值分布近似為高斯分布的左右兩個部分,在第nT個系統(tǒng)時鐘附近,時鐘信號的固定性抖動的概率密度函數(shù)如下: (10) 時鐘信號的總體抖動fTj(t)可表示為隨機性抖動和固定性抖動的線性疊加: (11) 由上述公式可知,時鐘抖動時多重高斯分布的疊加,在計算時會對應(yīng)多個σ值,為了降低計算復(fù)雜性,計算式中的σ取相同值。同理,在確定時鐘信號有效沿位置后,數(shù)據(jù)信號也會相對于時鐘信號沿存在隨機性抖動,其分布規(guī)律符合高斯分布。通過設(shè)置不同的σ,可模擬生成不同噪聲條件下的信源,通過設(shè)置不同的采樣頻率fsamp和采樣時長t,可得到不同測試條件下的測試數(shù)據(jù)。在信源生成過程中,以FIFO異步時序為一個最小周期T,生成周期性信源數(shù)據(jù)并存儲為二進制文件,其詳細的參數(shù)設(shè)置如表2所示。 表2 信源設(shè)計參數(shù) 1)按表2所示設(shè)置參數(shù),利用matlab模擬生成3個不同的數(shù)字信源,將生成數(shù)據(jù)存儲為二進制文件; 2)將FIFO異步寫入時序的參數(shù)和事件碼序列信息填入csv文件,并上傳至?xí)r序分析軟件,填寫信息如圖10所示。 圖10 FIFO時序輸入配置 3)時序分析軟件分別讀取3個數(shù)據(jù)文件進行時序一致性分析,輸出測試結(jié)果; 4)統(tǒng)計測試結(jié)果,如表3和表4所示,并與期望結(jié)果對比,驗證系統(tǒng)檢測的正確性。 表3 異常時序測試結(jié)果 表4 干擾信源時序參數(shù)測量結(jié)果 ns 測試項目測量值最大值最小值平均值期望值tWRpwl534850.250tWRpwh726869.770tSFD12710.110tFDH11710.010tXFD615859.960 測試表明,時序分析軟件能夠完全捕獲理想信源和正確信源的目標周期,干擾信源目標周期捕獲遺漏三個,故障和警告時序的位置定位正確。干擾信源中各時序參數(shù)測量值與信源設(shè)計時的期望值相符,說明數(shù)據(jù)分析軟件能夠?qū)Ξ惓r序定位,分析結(jié)果具有較高的正確性和可靠性。 經(jīng)分析,未被捕獲的三個周期均為時序異常周期,且時序異常類型為邏輯值翻轉(zhuǎn),導(dǎo)致目標時序的事件碼序列發(fā)生改變,未能與時序模式序列匹配成功,因此未能捕獲目標時序。 本文基于對比測試原理設(shè)計時序一致性連續(xù)定量監(jiān)測系統(tǒng),針對系統(tǒng)實現(xiàn)涉及的關(guān)鍵技術(shù)展開研究。通過建立時序參數(shù)模型實現(xiàn)被測參數(shù)的圖形化輸入,取代傳統(tǒng)的協(xié)議插件;利用事件碼序列表征目標時序特征,在BM算法的基礎(chǔ)上通過動態(tài)事件彎折和通配符匹配規(guī)則的設(shè)計提出了DEW-BM算法,并成功應(yīng)用于目標信號的捕獲;基于誤差分析對時序異常檢測方法作出修正,將誤差范圍內(nèi)無法自動判別的時序設(shè)為警告狀態(tài)。最后基于虛擬儀器的結(jié)構(gòu)搭建了時序一致性分析監(jiān)測系統(tǒng),并通過信源設(shè)計,對時序分析軟件的功能正確性進行測試。結(jié)果表明數(shù)據(jù)分析軟件能正確獲取基于csv文件輸入的時序信息,對不同信源的時序分析結(jié)果與期望結(jié)果一致,具有一定的正確性和可靠性。但目前的研究中還存在不足之處,后期研究將重點解決以下問題: 1)對監(jiān)測系統(tǒng)的實時處理能力進行分析和設(shè)計,使系統(tǒng)由離線處理轉(zhuǎn)變?yōu)閷崟r處理; 2)缺乏真實接口時序的測試實驗,補充對實際電路時序的相關(guān)測試與分析; 3)當接口時序出現(xiàn)邏輯功能性錯誤時,事件碼觸發(fā)方法不能完全捕獲目標時序,需完善觸發(fā)條件設(shè)計。2.2 目標信號捕獲
2.3 異常時序分析
3 驗證實驗
3.1 信源設(shè)計
3.2 測試方法
3.3 測試結(jié)果
4 結(jié)束語