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