新聞中心

EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 通過多個數(shù)據(jù)文件組合優(yōu)化INL/DNL分析

通過多個數(shù)據(jù)文件組合優(yōu)化INL/DNL分析

——
作者: 時間:2005-12-19 來源: 收藏
本文探討如何利用MATLAB強大的指令功能改進高速數(shù)據(jù)采集系統(tǒng)中存儲器受限的代碼密度,提高程序代碼的循環(huán)量,以滿足高速模/數(shù)轉(zhuǎn)換器(ADC)的INL、DNL測試需求。

本文簡單介紹了MATLAB™1數(shù)據(jù)處理軟件,在邏輯分析儀存儲容量有限的情況下用于增強程序代碼量。大多數(shù)工程師在使用配有HP16517A高速狀態(tài)卡的大型邏輯分析儀(LA) HP16500C設(shè)備采集超高速數(shù)據(jù)(數(shù)據(jù)速率高于135MHz)時,都會面臨存儲器受限的問題。
HP設(shè)備的標(biāo)準(zhǔn)配置中通常提供64k最大存儲器容量,每次測試只能存儲65536個數(shù)據(jù)點。為了準(zhǔn)確描述INL/DNL特性,64k存儲器所能捕獲的數(shù)據(jù)點還遠遠不能滿足需求。事實上,對于INL和DNL測試圖,邏輯分析儀需要采集256k到4M個數(shù)據(jù)點,提供給MATLAB或其它信號處理軟件進行分析。

采用上述64k標(biāo)準(zhǔn)數(shù)據(jù)采集系統(tǒng)的存儲容量時,為了精確描述INL/DNL特性,必須采集多組數(shù)據(jù)記錄并將其合并到一個文件中。例如,當(dāng)需要256k個數(shù)據(jù)點時,則要采集四組64k的數(shù)據(jù),在采用應(yīng)用筆記:Histogram Testing Determines DNL and INL Errors介紹的MATLAB軟件(或同類軟件)進行數(shù)據(jù)分析之前,需要將它們合并到一起。

可通過以下步驟將多個數(shù)據(jù)記錄合并到一個足夠大的INL/DNL文件中,以便進行INL/DNL數(shù)據(jù)處理: 

用高速狀態(tài)卡(HP16517A)采集64k個數(shù)據(jù)點。 
刪除所有程序文件中LA指定的、不屬于程序的代碼,并保存文件。 
A為文件內(nèi)容指定一個新變量。
MATLAB命令: a=load(’inltest1’); 
用高速狀態(tài)卡采集另一組64k數(shù)據(jù)記錄。 
再次刪除所有程序文件中LA指定的、不屬于程序的代碼,并保存文件。 
為新的數(shù)據(jù)文件內(nèi)容指定另一個新變量。
MATLAB命令: b=load(’inltest2’); 
合并兩組數(shù)據(jù)記錄(A和B),并為它們指定一個新的變量。
MATLAB命令: c=vertcat(a,b); 
如果需要檢測合并后數(shù)據(jù)記錄的數(shù)量,可以在MATLAB中輸入size(c); ,隨后應(yīng)該得到132k的數(shù)據(jù)記錄。 
將這組新的數(shù)據(jù)記錄保存為.TXT或.DAT文件,以便MATLAB計算INL/DNL時能夠處理這些數(shù)據(jù)。
MATLAB命令: save inldata.txt c -ascii; 
上述命令將文件保存為ASCII文件格式,存儲在預(yù)先定義的目錄下,INL/DNL測試程序可以根據(jù)需要獲得這些數(shù)據(jù)。 
如果所有步驟在一次MATLAB會話中完成,則執(zhí)行上述處理。也可以循環(huán)執(zhí)行預(yù)先合并的文件。對于這種情況,只需加載存儲數(shù)據(jù)的文件,指定一個新的變量即可。
MATLAB命令: d=load(’inldata.txt’); 
一旦完成這項工作,可以提取一組新的數(shù)據(jù),將其添加到現(xiàn)有數(shù)據(jù)中。只需采集另一組64k數(shù)據(jù)記錄,為其內(nèi)容指定另一矩陣變量。
MATLAB命令: e=load(’inltest3’); 
合并舊的文本文件(當(dāng)前變量為d),指定新的數(shù)據(jù)變量為e。
MATLAB命令: f=vertcat(d,e); 
按照第9步將新的、擴展后的數(shù)據(jù)矩陣保存到一個ASCII文件。 
也可以利用MATLAB中的命令: y=vertcat(a,b,c,d,e,f,g,h)一次合并多個變量,總之,可以利用多種方法、程序和配置方式,采用現(xiàn)有設(shè)備和簡單的軟件指令完成這些測試。這里提供的流程只是一個簡單的MATLAB應(yīng)用范例。 
為了構(gòu)建INL/DNL測試程序,只需簡單調(diào)用MATLAB中的INL/DNL測試子程序。運行該程序,并在有請求時將連續(xù)數(shù)據(jù)組加載到程序中。如果把合并后的數(shù)據(jù)保存到一個.TXT或.DAT文件內(nèi),須注意記錄矩陣文件的數(shù)據(jù)路徑。出現(xiàn)程序提示時,必須提供向測試子程序加載數(shù)據(jù)的準(zhǔn)確路徑和文件名。程序還要求提供數(shù)據(jù)點數(shù)(數(shù)據(jù)矩陣的尺寸)、轉(zhuǎn)換結(jié)果及其中間代碼。在運行INL/DNL測試程序之前,須確認你已擁有這些信息。

參考文獻: 
INL/DNL Measurements for High-Speed Analog-to-Digital Converters (ADCs)
Histogram Testing Determines DNL and INL Errors

交換機相關(guān)文章:交換機工作原理


存儲器相關(guān)文章:存儲器原理




關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉