Posted on 2008-05-21 20:39
xlz 閱讀(469)
評論(0) 編輯 收藏 引用
作者博客:http://hi.baidu.com/xiazhifei 。如要轉(zhuǎn)載,請保持原文完整性,最好把這句話也加上。
我對ATE的理解
本來我是想寫成論文格式的,但查閱了不少別人的論文,發(fā)現(xiàn)我的想法大部分沒什么新意,即使寫了,也只能叫做低級重復(fù),有點(diǎn)新意的那一部分呢,還沒得到證
實(shí),充其量只能叫做設(shè)想,達(dá)不到我想象中的論文要求。寫成這種類似帖子的格式,目的也是一樣的,就是告之后來人一些經(jīng)驗(yàn),提供點(diǎn)參考,但就可以不那么嚴(yán)
謹(jǐn),可以發(fā)揮的余地就比較大了,而且本人更加喜歡這種文章的風(fēng)格。
本文所寫的是我對ATE的理解,重點(diǎn)包含對ATLAS語言的理解,所寫的是個人看法,如要比較嚴(yán)謹(jǐn)?shù)慕忉專梢詤⒄障嚓P(guān)論文。
對ATE的整體看法
ATE就是自動測試設(shè)備的英文首字母的縮寫,我們?yōu)槭裁匆a(chǎn)ATE設(shè)備,顯而易見,為了省事,省得人工去測試。但自動測試設(shè)備要能完成人所能完成的功
能,就要有類似人的傳感器代替人的各種感覺器官,有執(zhí)行機(jī)構(gòu)代替人手來操作被測產(chǎn)品,有固化的程序之類的代替人的思維。當(dāng)然這些傳感器、執(zhí)行機(jī)構(gòu)可以做得
比人更為精確、迅速,程序也可以做成那樣,但靈活性就不如人了,遇到特殊情況也不行了。其實(shí)不管什么東西,都是信號輸入,經(jīng)過處理,再輸出的,至于如何實(shí)
現(xiàn)每一步的,我估計(jì)隨便一個細(xì)節(jié)都可以成為一門學(xué)科的,下文會給出稍微詳細(xì)的解釋的。
我對傳感器的看法
言歸正傳,傳感器一般有測量電壓、電流、溫度、濕度、功率等等,當(dāng)今社會,一般人能想到的基本上也應(yīng)該能做到了,我們做的只不過要挑選適合自己的。速度、
精度、價格、壽命、可操作性等都是要考慮的因素,使用起來也是千差萬別,但這種產(chǎn)品會越來越容易操作,生產(chǎn)廠家一般都會給出詳細(xì)使用說明,我們只要做好外
部接口,依葫蘆畫瓢就可以了。當(dāng)然我也見過要用諸如單片機(jī)發(fā)送特殊格式的命令字才能工作的傳感器,但操作起來也是依葫蘆畫瓢就可以了。得到的數(shù)據(jù)也是千差
萬別,常見的是電壓和特定格式的編碼,照者DEMO做就可以了。
我對執(zhí)行機(jī)構(gòu)的看法
如果說傳感器有一千種,那執(zhí)行機(jī)構(gòu)就有一萬種了。但用起來也不難,也是依葫蘆畫瓢就可以了。一般有產(chǎn)生電壓、電流的,當(dāng)然也有帶動某個輪子呼呼轉(zhuǎn)的,有簡
單的也有復(fù)雜的,要操作起來也是有方便的也有麻煩的。但歸根結(jié)底是不怎么要去自己想一種新的方法去使用的,和傳感器一樣,最多是照者DEMO做就可以了。
解釋以下我所說的DEMO就是類似一種例子程序,使用起來一般只要修改修改參數(shù)就可以了,要變化的話也只是把幾個DEMO修改后一起做,那都是算復(fù)雜的了。
我對程序的看法
程序這一塊就相對靈活得多了,當(dāng)然有現(xiàn)成的DEMO可以照抄是最好的,但DEMO不可能有那么多,也不可能像如傳感器、執(zhí)行機(jī)構(gòu)的DEMO那樣可以基本窮
盡所有具體用法。有人說執(zhí)行的語句就那么幾種,怎么不能窮盡,我說英文字母也就才26個。也許我接觸的軟件不算太多,我的理解就是程序就是語法加算法(這
句話其實(shí)是一位計(jì)算機(jī)史上的泰斗說的)。語法很容易,就曾經(jīng)有人號稱兩天學(xué)會了JAVA,這我是相信的,語法也就那么多固定的語句,ATLAS據(jù)說是最復(fù)
雜的語言之一,但不也就那一兩千個單詞,常用的也就一百個吧。算法才是本質(zhì),就像你要寫本書,沒準(zhǔn)你認(rèn)識的字比魯迅還多,但寫出來的文章能夠比他好嗎?程
序的算法好象是可以申請知識產(chǎn)權(quán)的,道理我也就不多說了。
算法得表示出來,大家認(rèn)同,共同研究的算法才是能夠得到發(fā)展的,但表示的格式可以不拘一格的,程序員之間甚至就可以寫一個DEMO就可以表示他的思想了。
但對大部分人來說,雖然算法最終要用程序來實(shí)現(xiàn),但他不懂程序,或還沒能達(dá)到用程序的思維去思考程序(說得有點(diǎn)懸乎了,但可參考老師常說的用英文的思考方
式去讀英文,不要老想著把它翻譯成中文后再理解這句話),怎么辦,我們可以用信號流圖,框圖等來表示,本質(zhì)上這些還是程序(第四代語言好象就往這方面靠
攏),但只要看那么幾分鐘就會明白,因?yàn)椴还苁切盘柫鲌D還是框圖,只有順序、分支、循環(huán)還有一個用得很少的跳轉(zhuǎn)這幾種形式。
有人說這每一句我都看得懂,但這一段就不明白了。每一句都看得懂電腦也能啊,要人干什么,我認(rèn)為這才是人的用武之地。看這個首先要“斷句”,分成一塊一塊
的,有不少塊還是重復(fù)的,可一略而過,重點(diǎn)要分析的就要重點(diǎn)分析(廢話,但很有用)。這也是一個靠經(jīng)驗(yàn)的活,見多識廣在這里是真理。各人分析的方法不一
樣,可由下而上,可由上而下,也可兩者結(jié)合。我喜歡由上而下,一般的程序用它也就足夠了。總體把握了,就知道每一步是在干什么,要怎么干,當(dāng)然由下而上也
有它的好處,當(dāng)然要應(yīng)時應(yīng)勢而變。有人說這每一小段我都知道要干什么,具體到ATLAS語言就是這一小段是測啥測啥的,夠了,不識廬山真面目,只源身在此
山中,除了看懂每一段,還要整理出來,再進(jìn)行分析,就高了一個層次,具體怎么辦,涉及商業(yè)秘密和知識產(chǎn)權(quán),就是不說。我現(xiàn)在就是在干這個,雖然有不少進(jìn)
展,但沒完全弄清楚,發(fā)言權(quán)就不多了,當(dāng)然其它方法我還沒試過。
我對ATLAS的看法
前面那些分析是做鋪墊的,下面的才是本人查遍萬方、維普,外帶IEEE,嘔心瀝血一兩個月來得出的“一家之言”。如有錯誤,請及時告之,不勝感激!
和所有語言一樣,開始我還以為它有多艱深,還是主席說得好,戰(zhàn)略上要藐視敵人。
先COPY一段簡介:ATLAS作為國際通用的自動測試語言 ,應(yīng)用在航空領(lǐng)域是航空電子系統(tǒng)簡略測試語言(Abbreviated Test
Language for Avionics Systems)的英文縮寫;在其它領(lǐng)域,則是所有系統(tǒng)簡略測試語言(Abbreviated Test
language for All Systems)的英文縮寫。ATLAS廣泛應(yīng)用于國際軍用和民用ATE中。ATLAS作為標(biāo)準(zhǔn)的
TPS程序語言,當(dāng)初是基于
FORTRAN語言制定的,但經(jīng)過幾十年的發(fā)展演變,如今更趨近于C語言。ATLAS測試程序是ATE TPS的重要組成部分,通用 ATE
成功與否也就在于其擁有的TPS數(shù)量的多寡程度。分析研究
ATLAS測試程序的結(jié)構(gòu),對編寫出好的測試程序極為重要,也可以知道如何根據(jù)已有的ATLAS程序來自己做個達(dá)到其功能的ATE,除了不受制于人外,還
能省不少$呢。
ATLAS測試規(guī)范和
ATLAS測試程序是有些區(qū)別的,再COPY一段:ATLAS語言是一種用于測試的人機(jī)通訊的高級語言,是面向UUT而與測試設(shè)備無關(guān)的信號描述語言,沒
有提供特定測試系統(tǒng)執(zhí)行測試程序所需的全部細(xì)節(jié)。ATLAS測試規(guī)范只說明與UUT相關(guān)的測試需求,因而,要在ATE上執(zhí)行測試規(guī)范,需要增添一些必要的
細(xì)節(jié),包括對ATE的說明和它的資源、限制條件以及UUT接口情況。這個處理工作通常由ATLAS編譯器或解釋器來完成,它用測試系統(tǒng)規(guī)定的信息,將
ATLAS轉(zhuǎn)換成可執(zhí)行程序。(補(bǔ)充一點(diǎn),這種編譯器對于你現(xiàn)有的硬件條件也未必適用,而且D版的也要¥1000,小弟只想FREE,誰有D版的
PAWS,告訴我,我會感激涕淋的,EMAIL:xiazhifei@yahoo.com.cn。)因此,ATLAS測試規(guī)范和
ATLAS測試過程與測試設(shè)備是相互獨(dú)立的,而ATLAS測試程序才與某種測試系統(tǒng)有關(guān)聯(lián)。測試規(guī)范只有在考慮了測試設(shè)備的限制條件、編譯器如何工作和儀
表精度等因素后,才能將其轉(zhuǎn)化為測試程序。因此,某個UUT的ATLAS測試規(guī)范,指的是UUT獨(dú)立于測試設(shè)備的測試需求。ATLAS測試程序是在具體的
ATE上執(zhí)行該 UUT的測試規(guī)范。但住
ATLAS標(biāo)準(zhǔn)文本或日常使中,總是“程序(Program)來指“規(guī)范”(Specification)、“過程”(Procedure)或“需求”
(Requirement),遇到“ATLA測試程序”一詞時,須注意區(qū)分其內(nèi)涵。航空電子 CMM
手冊中提供的ATLAS文件,通常是ATLAS測試規(guī)范或 ATLAS測試過程。
要寫的比較多,改天繼續(xù)寫。
我對ATE的一些看法
在整體看法那一段是我個人看法,以下是一篇論文中的看法:典型的ATE系統(tǒng)中有如下幾類組件:開關(guān),矩陣和標(biāo)準(zhǔn)儀器,前兩類為連接裝置,用于在UUT與儀器間建立通路,標(biāo)準(zhǔn)儀器我就不多說了,可以相當(dāng)于傳感器,也可以是執(zhí)行機(jī)構(gòu)。
也有這樣的看法,把ATE可以細(xì)分:測試控制器、激勵資源、檢測資源、開關(guān)系統(tǒng)與信號接口裝置。測試控制器實(shí)現(xiàn)自動測試系統(tǒng)中各種激勵資源、檢測資源和開
關(guān)系統(tǒng)的自動配置,并決定其工作方式、狀態(tài)、功能和參數(shù),控制測試信號的通道選擇與切換。測試系統(tǒng)與被測單元的信號交聯(lián)則是通過信號接口裝置實(shí)現(xiàn)。
我對開發(fā)ATE的看法
這方面經(jīng)驗(yàn)不多,只好借鑒別人的經(jīng)驗(yàn),以下只是眾多方法中的一種:
①需求分析。對每個UUT的測試過程進(jìn)行分析,得出所有的UUT對自動測試系統(tǒng)的全部需求,即需要自動測試系統(tǒng)提供的資源,包括設(shè)備能力、開關(guān)能力,根據(jù)這些需求進(jìn)行 自動測試系統(tǒng)設(shè)計(jì),這是整個ATE設(shè)計(jì)的基礎(chǔ)和目標(biāo) ;
②ATE系統(tǒng)設(shè)計(jì)。根據(jù)需求分析,系統(tǒng)設(shè)計(jì)規(guī)定了ATE需要的設(shè)備能力、開關(guān)能力、各部分的接口關(guān)系等,這是下面步驟的基礎(chǔ)和目標(biāo);
③ATE硬件構(gòu)形。硬件設(shè)計(jì)規(guī)范必須采用國際上先進(jìn)的、成熟的工業(yè)標(biāo)準(zhǔn),以保證功能模塊的兼容性,根據(jù)需求分析構(gòu)形 ATE 硬件平臺,目前ATE硬件構(gòu)形主要是VXI、PXI、PCI、GPIB等標(biāo)準(zhǔn)化接口的構(gòu)形方式 ;
④設(shè)備數(shù)據(jù)庫開發(fā)。設(shè)備數(shù)據(jù)庫提供ATE測試程序設(shè)備服務(wù)的能力,根據(jù)上述的系統(tǒng)設(shè)計(jì)來開發(fā)測試系統(tǒng)中設(shè)備的驅(qū)動程序,使設(shè)備能夠滿足上述需求;
⑤開關(guān)數(shù)據(jù)庫開發(fā)。開關(guān)數(shù)據(jù)庫提供ATE為測試程序開關(guān)服務(wù)的能力,根據(jù)上述的系統(tǒng)設(shè)計(jì)來開發(fā)測試系統(tǒng)中開關(guān)的驅(qū)動程序,使開關(guān)能夠滿足上述需求;
⑥使用 ATLAS語言開發(fā)每個UUT的測試程序。
其中后面3步可以并行開發(fā)。
這中間比較基礎(chǔ)的是需求分析,開始一定要弄正確,至少要越正確越好,要不然謬之毫厘,失之千里。對于軟件工程的話,可能這是最重要的,但ATE的需求分析
相對應(yīng)簡單不少。最靈活變化的應(yīng)該是系統(tǒng)設(shè)計(jì),沒實(shí)踐過,我也沒啥好說的。要費(fèi)事的可能要數(shù)數(shù)據(jù)庫的開發(fā),我感覺這有點(diǎn)像在修改DEMO之類的,雖每一個
不難,但數(shù)量眾多,要有耐心,不過重復(fù)的多,會越做越快的。到最后是用ATLAS開發(fā),但估計(jì)一般的廠家會用如CVI、LabView之類的替代,道理也
很簡單,ATLAS編譯器太貴了,還不一定好用,而用NI等公司產(chǎn)品的無論是人還是相關(guān)資料都是比較多的,性價比高。
我對UUT程序的看法
這程序吧,思考的角度不一樣,得出得結(jié)果肯定會不一樣,還是那句話,要應(yīng)時應(yīng)勢而異。不管是寫程序還是根據(jù)已有的程序得到適合自己的程序時,基本也就要考慮以下部分:
一般測試流程為:(1)根據(jù)UUT的被測特征來為其分配一個合適的測試儀器;(2)將UUT和分配到的儀器連接起來;(3)測試儀器根據(jù)測試需求作出一些測試動作;(4)測試完畢后斷開連接。其中第1步是測試中最重要的一步。
也有這樣的流程:(1)證實(shí)待測UUT是否正確:(2)UUT安全檢測;(3)上電安全檢測;(4)讀故障存儲器; (5)BITE 測試:(6)UUT各功能測試。
還有這樣的,把ATLAS的每一步測量細(xì)分:1)將虛擬資源、信號類型、被測量及參數(shù)描述字符串映射翻具體的資源
;2)將連接描述字符串映射到具體的繼電器;3)閉合相應(yīng)的繼電器; 4)延遲; 5)調(diào)資源的驅(qū)動,測量信號參數(shù)值
,并放到測量描述字符串對應(yīng)的變量中; 6)斷開繼電器,儀器復(fù)位。
反正如果要是沒有PAWS之類的軟件或硬件不一樣,現(xiàn)有的軟件用處不大的話,有一點(diǎn)是一樣的,就需要人工實(shí)現(xiàn)由虛擬資源到實(shí)際資源的轉(zhuǎn)化,當(dāng)然根據(jù)自己的硬件情況,寫個編譯器是最好的:-)。
我對資源的看法
先COPY一點(diǎn):儀器的性能數(shù)據(jù)由REQUIRE語句提供。REQUIRE總結(jié)出了所有需要的測試資源,并把它們作為虛擬資源
。這些虛擬資源是根據(jù)UUT信號需求定義的,而不是根據(jù)在具體測試系統(tǒng)中所用實(shí)際資源的性能定義的,一個實(shí)際資源沒有必要只對應(yīng)一個虛擬資源
。比如,一個現(xiàn)代的數(shù)字萬用表就可以對應(yīng)多個虛擬資源,如包含交流電壓表,直流電壓表,電阻表,直流表等。其實(shí)實(shí)際資源與虛擬資源也可以說是多對多的關(guān)
系,有時一個檢測步驟需要測量N種參數(shù),可以用多種儀器測量。在這里會存在一張資源分配表,而且應(yīng)該是動態(tài)的,每個設(shè)備使用的時間甚至有什么特殊情況都是
不可預(yù)見的,使用完了才能釋放相應(yīng)資源,讓其它接口使用。可編程開關(guān)、開關(guān)矩陣、繼電器等就是用來根據(jù)需要,動態(tài)地在ATE的實(shí)際資源和UUT之間起一個
連接作用的。當(dāng)然如果系統(tǒng)比較簡單,可以人工靜態(tài)地給它分配好,這樣無論是寫程序還是做硬件實(shí)現(xiàn)起來會很省事。基本原理我估計(jì)就是這樣,但實(shí)現(xiàn)起來,我沒
有實(shí)踐,也就沒發(fā)言權(quán)了。
我對根據(jù)已有的ATLAS制作ATE設(shè)備的看法
如果你同意以上我說的,請繼續(xù)往下看,否則對你來說可能是誤導(dǎo):-)。
很多種情況下,我們都是已經(jīng)有現(xiàn)成的CMM手冊,當(dāng)然也有ATLAS源程序(應(yīng)該叫測試規(guī)范,但叫程序習(xí)慣了,先入為主),但就是沒有對應(yīng)的ATE硬件平臺,買不到或不想買那些硬件平臺,怎么辦,就要根據(jù)已有的ATLAS,已有的可買到的硬件制作ATE設(shè)備了。
前面說過,一般用如NI公司的一些產(chǎn)品來實(shí)現(xiàn),但人家NI公司的產(chǎn)品不支持ATLAS,就要連同源ATLAS程序都要修改了,改成符合他們標(biāo)準(zhǔn)的如
LabView、CVI等支持的語言了。(等哪天中國強(qiáng)大了,也自己制作標(biāo)準(zhǔn))。驅(qū)動也要用符合他們標(biāo)準(zhǔn)的,機(jī)箱也要用符合他們標(biāo)準(zhǔn)的,我相對比較關(guān)心的
就是如何根據(jù)ATLAS源程序選用什么樣的硬件,怎樣能把ATLAS源程序變?yōu)镃VI程序。
說到這,我想起來一個笑話,說某一天,主持人問大家,有一個水龍頭,一個空壺,一個爐子,怎樣才能得到一壺?zé)崴蠹艺f,先把水壺裝滿水,再放爐子上燒
熱,就可以了。 再問如果壺里有水,怎么辦?一物理學(xué)家說,直接放到爐子上燒熱就可以了。一數(shù)學(xué)家說,把壺里水倒掉,然后按照大家剛才說的那樣去做。
我想程序之間的轉(zhuǎn)化,我愿意成為那個數(shù)學(xué)家。有時雖然這一段ATLAS語言你很容易明白,甚至你可以簡單地用一個C語句表示,但整本ATLAS語言就不能
每句都是那樣了,每句都要分析透徹到干啥干啥的,起什么作用,在這段占什么地位也不容易,也不省事,也未必是件好事。ATLAS中的動詞就那么幾個,無非
是比較,測量得到一個什么結(jié)果,發(fā)送點(diǎn)什么信號啊、碼啊,再有就是如延時、要求于用戶互動,要求用戶輸入,再給用戶輸出點(diǎn)什么,這些東西應(yīng)該完全能用C語
言替代,甚至可以到一句替代一句的程度,只是一般用C還省事一些。
有人說替代不會得到我要的那種圖形化界面的要求,這是肯定的,當(dāng)初人家美國人寫ATLAS語句的時候WINDOWS可能還沒出世呢,但得到一個DOS界面
下的程序還是完全可以的。有人說你C語言能實(shí)現(xiàn)虛擬資源到真實(shí)資源的轉(zhuǎn)化嗎?那本來應(yīng)該是ATLAS編譯器的事,這就是我下面要說的重點(diǎn)。還有其它問題,
如ATLAS能一句就實(shí)現(xiàn)測量什么什么參數(shù),C能嗎?C當(dāng)然用函數(shù)實(shí)現(xiàn),調(diào)用下層函數(shù),直至驅(qū)動真實(shí)儀器工作(一般應(yīng)該是數(shù)據(jù)采集卡一類的),然后由真實(shí)
儀器返回參數(shù),直至剛才調(diào)用它的C語言函數(shù)。當(dāng)然了,實(shí)現(xiàn)起來應(yīng)該可能是比較麻煩,但思路是很清晰的,不會有理論上的難點(diǎn)。其它如發(fā)送什么特定格式的數(shù)
據(jù),加身什么電壓、電流都可以依此類推,至于加什么電阻、電容、電感之類的,雖然沒有特定的儀器,但可以用可編程矩陣開關(guān)、可編程電阻等實(shí)現(xiàn),理論上不
難,實(shí)際上我還沒實(shí)踐過,不說了。
我對虛擬資源轉(zhuǎn)實(shí)際資源的看法
這應(yīng)該是個難點(diǎn),我閉門造車,想出了一種方法,自認(rèn)為簡單實(shí)用。
不管是虛擬資源還是實(shí)際資源,都要有一張表,暫稱為虛擬資源表和實(shí)際資源表,關(guān)鍵就是把這兩者一一聯(lián)系起來。虛擬資源程序很好實(shí)現(xiàn),要什么,在表中做個標(biāo)
記,用完了,再做個標(biāo)記。實(shí)際資源也可以根據(jù)真實(shí)儀器來實(shí)現(xiàn),在用的有一個標(biāo)記,空閑的有一個標(biāo)記,在系統(tǒng)執(zhí)行每個測量函數(shù)之類的,這表都要檢查,這樣雖
然可能系統(tǒng)每執(zhí)行一句,這兩個表都可能有改動,但現(xiàn)在計(jì)算機(jī)速度很快,這就是小菜一碟,內(nèi)存1G才100多,不在乎。當(dāng)然還有一張表,就是虛擬資源到實(shí)際
資源之間的連接表,這個就涉及開關(guān)矩陣和適配器了,我最多每用一次查一遍。所有的這些都是用的時候去查,去臨時構(gòu)建,這樣就省去了麻煩。有人用有向圖動態(tài)
實(shí)現(xiàn),算法復(fù)雜。有人基于靜態(tài)的資源關(guān)系,人為先配置好,雖編程簡單,但人為把資源匹配,數(shù)據(jù)多的時候較費(fèi)人力。自我感覺有些創(chuàng)意,還小高興一下,但發(fā)現(xiàn)
郭瑞的論文早就提到,諸位想得到比較嚴(yán)謹(jǐn)?shù)恼f法,還是看看人家寫的。
但有一點(diǎn)可以說是我獨(dú)創(chuàng),用C++中的CLASS來做比喻,可以充分利用CLASS的繼承、派生特性,ATLAS中的REQUIRE完全可以定義為
CLASS,測量語句中的MEASURE就如同CLASS的實(shí)體,測量范圍比原定義小,是派生,又省去寫不少重復(fù)的要求,是繼承,再小高興一下。
話說到此處,該說的也差不多都說了,但要實(shí)現(xiàn)起來,還是比較艱巨的。ATE這一塊是博大精深,我現(xiàn)在涉及的只是冰山一角,感謝眾多前輩做的工作,使我可以
延著你們已經(jīng)開辟的道路走下去。本文沒打算做論文寫,文中引用的語句皆未標(biāo)出來源(本人也比較懶),望見量。其實(shí)要得到這些出處也不難,keywords
用ATLAS的論文就是了,總共也沒幾篇。在此再次請求,誰有ATLAS編譯器如PAWS,共享之,不勝感激。Email:xiazhifei@yahoo.com.cn
|