基于ARM的高速數(shù)據(jù)采集卡
主任務(wù)不斷的讀取端點(diǎn)1,當(dāng)接收到PC機(jī)發(fā)來的讀命令時(shí),就激活高優(yōu)先級(jí)讀任務(wù)的準(zhǔn)備就緒信號(hào)量。讀任務(wù)被喚醒進(jìn)入讀中斷服務(wù)程序,將緩存器的數(shù)據(jù)通過USB總線發(fā)送給PC機(jī),發(fā)送完畢后就關(guān)閉讀任務(wù)的就緒信號(hào)量,返回到主任務(wù)的循環(huán)中,等待PC機(jī)發(fā)來的下一個(gè)命令。寫任務(wù)與此相似,不再敘述。
4.2 基于LabWindow/CVI的主機(jī)軟件編程
4.2.1 LabWindows/CVI簡介
作為虛擬測(cè)量儀器,關(guān)鍵是要具有易于生成良好操作界面和強(qiáng)大數(shù)據(jù)處理能力的工具軟件。本系統(tǒng)的程序設(shè)計(jì)是用LabVIEW開發(fā)的。LabVIEW是美國NI公司開發(fā)的基于C/C++的專門用于虛擬儀表及過程控制的可視化編程語言,采用LabVIEW提供的控制件庫(包括開關(guān)、旋鈕、圖表等)很容易地設(shè)計(jì)出符合實(shí)際要求、新穎美觀的操作界面。此外LabVIEW具有很強(qiáng)的數(shù)據(jù)處理功能,它提供了豐富的庫函數(shù)用于數(shù)據(jù)輸入接口、數(shù)據(jù)處理(FFT等)和圖形顯示等功能,為開發(fā)應(yīng)用軟件帶來極大方便。圖5為LabVIEW開發(fā)的系統(tǒng)操作界面。
4.2.2 程序設(shè)計(jì)
整個(gè)設(shè)計(jì)程序包括四個(gè)部分:面板設(shè)計(jì)、初始化、數(shù)據(jù)采集、數(shù)據(jù)處理和結(jié)果顯示,通過精心設(shè)計(jì)程序,基本完成了預(yù)定的各項(xiàng)測(cè)量功能。并保證了系統(tǒng)的運(yùn)行速度。各部分功能介紹如下。
(1) 面板設(shè)計(jì):提供友好的操作界面,符合常規(guī)測(cè)量儀器的操作習(xí)慣。
(2) 初始化:完成系統(tǒng)初始化功能,包括復(fù)位、送工作方式字、設(shè)置程序運(yùn)行參數(shù)等。
(3) 數(shù)據(jù)采集:LabVIEW不能直接訪問用戶自己設(shè)計(jì)的硬件,作為一個(gè)開放式開發(fā)平臺(tái),LabVIEW提供了DLL接口,使用戶在LabVIEW平臺(tái)上能調(diào)用其他軟件平臺(tái)編譯的模塊。并提供對(duì)象連接和嵌入技術(shù)(簡稱OLE)的支持。筆者利用VC++6.0編寫了DLL文件,并在LabVIEW環(huán)境下調(diào)用該文件,實(shí)現(xiàn)了LabVIEW程序與數(shù)據(jù)采集卡的數(shù)據(jù)通信。
評(píng)論