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