<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于VPP規范的VXI總線(xiàn)模塊的軟件開(kāi)發(fā)

基于VPP規范的VXI總線(xiàn)模塊的軟件開(kāi)發(fā)

作者: 時(shí)間:2013-03-30 來(lái)源:網(wǎng)絡(luò ) 收藏

部件函數包括初始化、配置、動(dòng)作/狀態(tài)、數據、實(shí)用和關(guān)閉函數。初始化函數是訪(fǎng)問(wèn)儀器時(shí)調用的第一個(gè)函數,用于初始化軟件連接,使儀器處于某種默認的狀態(tài)。關(guān)閉函

數是最后調用的,用于關(guān)閉儀器的軟件連接。配置函數對儀器進(jìn)行配置,以便執行所希望的操作。動(dòng)作/狀態(tài)函數使儀器執行一項操作或者報告正在執行的或已經(jīng)掛起的操作的狀態(tài)。數據函數用來(lái)從儀器取回數據或向儀器發(fā)送數據。實(shí)用函數包括許多標準的儀器操作,例如執行復位、自檢、詢(xún)問(wèn)驅動(dòng)程序版本信息和錯誤處理等。

應用函數是一組面向測試的高級函數,它們指出如何使用部件函數。這些程序通過(guò)配置、觸發(fā)和從儀器讀取數據來(lái)完成整個(gè)測試操作,不僅提供了如何使用部件函數的有價(jià)值實(shí)例,而且當用戶(hù)僅需要單一的面向測試函數接口,而不是使用單個(gè)部件函數時(shí),它們是非常有用的。

VPP-3.2規范還給出了一組函數模板,并且要求每個(gè)儀器驅動(dòng)器都必須實(shí)現這些函數。它們是:Initialize,Close,Reset,Self-Test,Error Query,Error Message,Revision Query.規范對每個(gè)函數的輸入參數、輸出狀態(tài)和操作都做了詳細的說(shuō)明。

在開(kāi)發(fā)儀器驅動(dòng)器時(shí),采用了兩種簡(jiǎn)便的方法:一是在Lab Windows/CVI中提供了儀器驅動(dòng)器的核心程序,它包括了所要求的所有模板函數的實(shí)現,可在此基礎上添加其它函數;二是根據已有的具有類(lèi)似儀器功能的儀器驅動(dòng)器進(jìn)行改造。但首先我們都必須熟悉儀器各項功能和指令集。如果儀器是寄存器基的,通過(guò)直接讀寫(xiě)其寄存器進(jìn)行操作;如果是消息基的,則可發(fā)送ASCII碼指令來(lái)控制。

開(kāi)發(fā)儀器驅動(dòng)器采用了自頂向下的方式,步驟如下:

①命名儀器驅動(dòng)器。采用廠(chǎng)家名稱(chēng)縮寫(xiě)+模塊號的方式命名儀器驅動(dòng)器,即AMC1410,并將此名稱(chēng)作為每個(gè)儀器驅動(dòng)器函數的前綴,這可使得多個(gè)廠(chǎng)家的儀器驅動(dòng)器運行于同一系統中而不會(huì )發(fā)生沖突。

②定義儀器的功能和功能分類(lèi)。

③創(chuàng )建儀器驅動(dòng)器的函數樹(shù),它對應儀器的功能層次。

④對儀器驅動(dòng)器的每個(gè)函數:

a.定義函數的入口參數包括變量類(lèi)型、數值范圍,輸出狀態(tài)。

b.如果采用LabWindows/CVI作為開(kāi)發(fā)工具,為每個(gè)函數創(chuàng )建函數面板,包括面板和控制的幫助信息。

c.為每個(gè)函數寫(xiě)源代碼。

d.調試函數源代碼。

⑤為最終的儀器驅動(dòng)器創(chuàng )建包含文件,包括函數聲明和常數定義。

⑥生成儀器驅動(dòng)器的動(dòng)態(tài)連接庫文件和入口函數庫文件。

數字電壓表模塊的函數組織圖見(jiàn)圖2。

在開(kāi)發(fā)儀器驅動(dòng)器時(shí),我們使用VISA庫函數和VISA定義的數據類(lèi)型。VISA是虛擬儀器軟件結構的簡(jiǎn)稱(chēng),是的又一重要成果。它為不同的操作系統和不同的硬件接口提供了同一I/O軟件層,無(wú)論是選用GPIB、VXI/MXI、串口或以太網(wǎng)接口,還是選用DOS、Windows、UNIX操作系統,都可使用相同的函數與儀器通訊,這打破了過(guò)去不同廠(chǎng)商的I/O接口軟件互不兼容的局面,大大增強了驅動(dòng)程序的可移植性。

2.3開(kāi)發(fā)儀器軟面板

由廠(chǎng)商隨儀器一同發(fā)貨的儀器軟面板為用戶(hù)提供了交互式操作儀器的圖形接口,它取代傳統的臺式儀器的前面板,在計算機屏幕上顯示用于控制儀器的各種按鍵、旋鈕和儀器的輸出信息,用鼠標和鍵盤(pán)進(jìn)行操作。軟面板有兩個(gè)重要功能:一是幫助用戶(hù)檢驗系統通訊接口和儀器是否正確配置、正常工作;二是幫助用戶(hù)熟悉儀器的主要功能。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>