用USB接口的數(shù)據(jù)采集系統(tǒng),使用簡單方便,無需外接電源,還可以利用PC機強大的運算能力處理數(shù)據(jù)。這類系統(tǒng)一般都要用單片機做接口控制,對于不會使用單片機的人是個難題。這里介紹一個不用單片機的USB數(shù)據(jù)采集系統(tǒng),只要會用VB編程就可以實現(xiàn)。 一、系統(tǒng)的硬件 構成本系統(tǒng)的電原理如上圖,CH371是USB接口芯片,MAX197多路AD轉換器做數(shù)據(jù)采集,電腦對采集的數(shù)據(jù)進行處理。 CH371是南京沁恒電子出品的一種簡單易用的USB接口芯片,它包括芯片本身和計算機端的通用驅(qū)動程序。CH371以硬件邏輯實現(xiàn)了USB通信協(xié)議傳輸控制的整個過程,通用驅(qū)動程序通過軟件向計算機應用層提供設備級接口,因此用戶不必考慮USB通信協(xié)議、固件程序、驅(qū)動程序、底層數(shù)據(jù)傳輸過程等,就可以設計出各種USB接口設備。 CH371有多種工作方式,除了數(shù)據(jù)傳輸方式外,它還可以工作在一種主控方式,即使沒有連結單片機、DSP等控制器,也可以輸出控制信號和輸入數(shù)據(jù)。CH371的D7"D0、A3"A0都是雙向引腳,它們可以被分為兩組,分別設置用于輸入或輸出。把CH371的A3"A0與MAX197的CS、WR、RD、HBEN四根輸入控制線相連,把D7"D0和MAX197的并行數(shù)據(jù)端口相連,就可以通過軟件直接控制MAX197的工作。 MAX197是MAXIM推出的12位AD轉換器,單5伏供電,內(nèi)置4.096伏電壓基準,外圍電路很簡單,僅需外接幾只電容就可以工作。MAX197有內(nèi)外兩種時鐘和采樣模式,模擬輸入量程和極性可選,有0"5伏、0"10伏、±5伏、±10伏四種。有8個模擬輸入通道。所有這些都可以通過軟件來選擇,即向MAX197寫入一個字節(jié)的控制字來實現(xiàn),控制字的各位功能見下表: 位 PD1 PD0 ACQMOD RNG BIP A2 A1 A0 功能 內(nèi)外時鐘和電源管理模式 內(nèi)外控制采樣模式 模擬信號量程 模擬信號極性 模擬輸入通道選擇 二、系統(tǒng)的軟件設計 1. CH371計算機端的軟件接口 CH371在計算機端提供了三個層次的軟件接口,最高層是應用層接口。應用層接口是由CH371動態(tài)鏈接庫DLL提供的面向功能應用的API函數(shù)。每個函數(shù)實現(xiàn)一個具體的功能,并用簡便易用的API參數(shù)代替設備級接口中所要求的數(shù)據(jù)格式,所有API在調(diào)用后都有操作狀態(tài)返回,用戶只要選擇特定的API函數(shù)就可以實現(xiàn)所需的功能。 CH371動態(tài)鏈接庫DLL提供的的API函數(shù)包括設備管理、數(shù)據(jù)傳輸、中斷查詢、I2C操作和直接控制等幾類,我們這里要用的是兩個直接控制函數(shù)。 CH371GetStatus(ByVal iIndex As Long, ByVal iStatus As Long,ByRef iDataReg As Long)As Boolean 它的功能是通過CH371直接輸入數(shù)據(jù)和狀態(tài),其中iIndex指定CH37設備序號,iStatus指向一個雙字單元,用于保存狀態(tài)數(shù)據(jù)。Bit7"Bit0對應CH371的D7"D0引腳。IDataReg指向一個雙字單元,用于保存數(shù)據(jù)寄存器的數(shù)據(jù)。 CH371SetControl(ByVal iIndex As Long, ByVal iCtrData As Byte, ByVal iCtrlAddr As Byte,ByVal iData0e As Boolean, ByVal iAddr0e As Boolean)As Boolean 它的功能是通過CH371直接輸出控制信號。ICtrData是準備寫入D7"D0數(shù)據(jù)寄存器的數(shù)據(jù), iCtrlAddr是準備寫入A3"A0數(shù)據(jù)寄存器的數(shù)據(jù), 它們都必須在輸出使能時才可以輸出數(shù)據(jù)。iData0e控制D7"D0輸出使能,1輸出、0輸入。iAddr0e控制A3"A0輸出使能,1輸出、0輸入。 2. VB應用程序應用程序是用VB編寫的,它的核心就是調(diào)用上述兩個API函數(shù),通過CH371的D7"D0和A3"A0向MAX197寫入控制字,啟動模數(shù)轉換,最后讀出轉換結果。VB要使用CH371動態(tài)鏈接庫中的API函數(shù),首先要用Declare語句在全局模塊的代碼段聲明這些函數(shù),CH371芯片廠商在其提供的VB DEMO中,有兩個MODULE已經(jīng)包含了CH371所有的API函數(shù),用戶只需要在自己的工程項目中將其加入即可。通過這兩個函數(shù)調(diào)用,向MAX197寫入控制字,設定模數(shù)轉換器的工作方式、選擇輸入通道、啟動模數(shù)轉換,最后讀入轉換結果,存入電腦,再做進一步處理。 |