• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 測試測量 > 設計應用 > 基于虛擬儀器的汽車檢測儀設計與實現

    基于虛擬儀器的汽車檢測儀設計與實現

    作者: 時間:2009-12-03 來源:網絡 收藏


    0 引 言
    產業已成為國民經濟增長的一個亮點,隨著科學技術的發展,檢測經歷了人工檢驗、簡單儀器儀表測量、電腦控制的自診斷系統和專用的故障診斷儀等階段。這些檢測手段不同程度地存在著操作復雜、穩定性差、檢測效率低、檢測誤差大等缺點。電子技術和計算機技術在上的普及運用,對汽車售后維修服務提出了更高要求,促使在汽車的故障診斷中采用更多的快速、簡便和智能化儀器,要求器實時采集和反映汽車工況的技術數據或曲線,以此來進行汽車故障的診斷。近年來,國內外很多公司和高校把技術運用到生產和科研中,取得了一定的經濟和社會效益。相對于傳統儀器具有以下優勢:(1)儀器功能由用戶自行定義;(2)豐富并增強了傳統儀器的功能;(3)測量穩定性與重復性好;(4)經濟性好;(5)系統構建周期短,易于進行功能擴展。將引入到汽車行業,為汽車檢測技術帶來了新的活力。
    影響最大的虛擬儀器編程語言是美國NI公司的LabVEIW和LabWindoWs/CVI,還有其他基于WINDOWS操作系統的可視化編程工具如VB、C++、Delphi等。VB是一種非常方便的Windows應用程序編程開發平臺,它最有力的就是快速創建可視化用戶界面,把復雜而完善的Windows操作系統的使用融于易于學習和使用的高級語言中,因而受到廣大工程技術人員的普遍歡迎。

    本文引用地址:http://www.czjhyjcfj.com/article/195642.htm


    1 虛擬式汽車的結構
    開發的汽車是基于數據采集卡的PC-DAQ結構。系統的結構如圖1所示,由硬件和軟件兩大部分構成。

    硬件的核心是一臺PC,I/O接口設備采用阿爾泰的PCI2006數據采集卡。該卡具有14位分辨率的A/D轉換器,提供了16(雙極)/32(單極)模擬輸入通道,輸入信號幅度可以經程控增益放大至合適的范圍,保證最佳轉換精度;32位PCI總線,支持PCI2.2協議,即插即用;單通道400 kHz采樣頻率,偽同步采樣減少通道間的采樣時差,8 KB深度FIFO存儲器保證數據的完整性;軟件部分支持Windows XP系統下的I/O接口儀器驅動程序,包括對VB、C++、Delphi以及LabVEIW的驅動程序,編程使用的VB語言運用其相應的驅動程序對該卡進行數據采集的編程。
    該卡主要分為4大塊:(1)模擬前端的信號輸入、調理電路;(2)對模擬輸入信號進行AD轉換的模數轉換部分;(3)基于FPGA的控制部分;(4)和上位機進行通信的接口電路。


    2 PCI2006數據采集的編程實現
    該卡能用3種不同方式即非空查詢方式、半滿方式和中斷方式進行數據采集。
    2.1 PCI2006的設備管理
    由于驅動程序采用面向對象編程,所以要使用設備的一切功能,用CreateDevice函數創建一個設備對象句柄hDevice,有了這個句柄,就擁有了對該設備的絕對控制權。然后將此句柄作為參數傳遞給其他函數,如Init-DeviceProAD可以使用hDevice句柄以程序查詢方式初始化設備的A/D部件,ReadDeviceProAD函數可以用hDe-vice句柄實現對A/D數據的采樣讀取,SetDeviceDO函數可用實現開關量的輸出等。最后可以通過ReleaseDevice將hDevice釋放掉。
    2.2 用非空查詢方式采集數據
    有了hDevice設備對象句柄后,便可用InitDeviceProAD函數初始化A/D部件,關于采樣通道、頻率等參數的設置是由這個函數的pPara參數結構體決定的。只需要對這個pPara參數結構體的各個成員簡單賦值即可實現所有硬件參數和設備狀態的初始化。然后用StartDeviceProAD啟動A/D部件,開始A/D采樣,然后用ReadDeviceProAD_No-tEmpty反復讀取A/D數據以實現連續不間斷采樣。當需要暫停設備時,執行StopDeviceProAD,當需要關閉AD設備時,ReleaseDeviceProAD便可實現,但設備對象hDevice依然存在。ReadDeviceProAD_NotEmpty雖然主要面對批量讀取,高速連續采集而設計,但亦可用它以單點或幾點的方式讀取A/D數據,以滿足慢速采集需要。具體執行程序框圖如圖2所示。

    2.3 用半滿方式采集數據
    用StartDeviceProAD啟動A/D部件,開始A/D采樣,接著調用GetDevStatusAD_Half函數以查詢A/D的存儲器FIFO的半滿狀態,如果達到半滿狀態,即可用ReadDeviceProAD_Half函數一批半滿長度(或半滿以下)的A/D數據,然后再接著查詢FIFO的半滿狀態,若有效再讀取,就這樣反復查詢狀態反復瀆取A/D數據即可實現連續不間斷采樣。


    上一頁 1 2 3 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 同江市| 富民县| 湖州市| 淳化县| 凤庆县| 台北县| 台湾省| 洛南县| 襄汾县| 曲阜市| 萍乡市| 崇义县| 富阳市| 铜陵市| 加查县| 安岳县| 城市| 玛纳斯县| 西林县| 桂东县| 香港| 五台县| 红原县| 泾川县| 米脂县| 钟祥市| 无为县| 五台县| 通城县| 富裕县| 西林县| 明溪县| 玉门市| 沽源县| 高青县| 长顺县| 彰化市| 太湖县| 吉林省| 抚松县| 肃宁县|