馬曉榮,吳銀川
(1.陜西職業技術學院 陜西 西安 710100;2.西安石油大學 陜西 西安 710065)
數據采集技術主要研究信號數據的采集、存儲、處理以及控制問題[1],數據采集技術在工業應用中極為廣泛[2-5]。本文以C8051F020單片機為核心設計了多通道數據采集硬件系統,該系統通過USB與計算機連接,USB實現采集系統的供電和數據通信。針對該硬件系統,采用VB6.0軟件設計了上位機控制軟件[6]。該系統實現8通道、12位A/D采集,最大采樣速率為100 ksps;采集系統通過計算機控制,實現多通道數據采集、數據處理以及數據文件二進制存儲等功能,實現數據的多通道便攜式數據采集。
數據采集系統框圖如圖1所示。整個采集系統由上位機計算機軟件(VB6.0軟件)控制,控制軟件實現采集通道、采樣頻率、采樣點數(時間)等參數選擇控制;控制軟件以二進制文件格式記錄采集數據,一次接收數據結束,軟件自動將包含參數、系統時間的文件存儲在指定目錄中,方便采集數據的保存。硬件采集系統與計算機通過USB連接,通過USB實現雙向通信,整個硬件采集系統的電源通過USB供電;由于C8051F020單片機和VB6.0軟件均不支持USB接口,這里采用Silicon Laboratories生產的 USB to UART器件 CP2102,廠家提供計算機驅動,在VB6.0軟件中采用虛擬串口技術實現USB的操作,方便用戶的計算機編程。單片機C8051F020是硬件采集系統的控制器件,一方面接收計算機的通信指令,解析通信指令并控制A/D的采集以及交叉開關的控制;另一方面將A/D采集的數據按約定的格式發送到計算機,實現數據的保存。采集系統中選用12位、最大采樣速率100 ksps的A/D轉換器,通過交叉開關實現信號的8通道采集。為了降低采集系統的復雜性,體現系統的便攜性,故選用C8051F020內部集成的A/D轉換器。

圖1 多通道數據采集系統框圖Fig.1 Block diagram of multi-channel data acquisition system
多通道數據采集系統控制軟件界面如圖2所示。輸入文件名(中英文均可);設置采集通道(可設置采集1通道到8通道,默認采集通道 AIN0)、采集時間(可設置 5~600 s,默認5 s)和采集頻率(10~100 ksps,默認 10 ksps);設置通信端口(COM1~COM5,默認是 COM1),軟件中利用虛擬串口技術,即把CP2102芯片所占用的USB口在VB6.0軟件中虛擬成COM口,具體系統分配的哪一個COM口,可在設備管理中查看即可,運行軟件時選擇對應的COM口,如圖2中系統中分配的是COM3,然后單擊打開端口控件,端口狀態指示變為紅色,說明通信端口設置正確,串口的傳輸速率固定為576 000 bps;單擊應用,軟件將以上參數設置編譯成相關的控制命令通過USB口發送到下位機C8051F020,下位機根據接收的命令執行相應的操作。

圖2 控制軟件界面圖Fig.2 Interface chart of control software
控制命令[7]由標志位(4 位,FL3~FL0)、通道選擇位(3 位,CH2~CH0)、采樣頻率位(7 位,SAF6~SAF0)和采樣時間位(10位,SAT9~SAT0)共24位數組成。標志位為固定的4位的二進制數1010,當下位機接收到控制命令時首先判斷標志位是否正確,若正確執行命令的解析,若錯誤不做任何操作。通道選擇由3位的二進制數表示,如表1所示,用000~111共8種組合表示同時采集模擬通道數。采樣頻率的范圍為0001010~1100100 (十進制數為10~100), 對應采樣頻率為10~100 ksps。 采樣時間的范圍為 000000101~1000001000(對應的十進制數為5~600),對應采樣時間的范圍為5~600 s。組合控制命令格式如表2所示。例如參數設置為:采集通道0、采樣頻率10 ksps、采樣時間5 s,依次發送到下位機的命令為:0xA0,0x28,0x0A,下位機 3 次接收完指令。

表1 采集通道選擇Tab.1 Acquisition channel selection
下位機接收到上位機的控制命令后,當接收到的FL3~FL0為1111時,下位機立即給上位機發送0xAA指令,上位機接收到0xAA后,彈出消息框說明指令發送成功。

表2 控制命令格式Tab.2 Control command format
數據采集系統A/D采樣率在10~100 ksps范圍內,每個采樣點需用兩個字節 (12位)表示,這樣采樣間隔時間為10~100 μs。上位機和下位機之間的傳輸速率為576 000 bps,每個采樣點(2個字節)的傳輸時間為28 μs,為了兼顧不同的采樣率,下位機緩存采集的數據,適時發送數據。采集數據量按照為(采樣率×采樣時間×2)字節,例如當采樣頻率為100 ksps,采樣時間為600 s時,數據存儲量為12×107字節。
多通道數據采集系統中選用12位A/D轉換器,每個采樣結果用12位的二進制數據表示,這里需要兩個字節。下位機單片機收到控制命令、解析控制命令并啟動A/D操作,單片機依次接收各通道的數據,暫存數據,并實時發送采集到的數據,上位機接收數據后,以二進制格式寫入數據文件中,文件中的數據按照采樣通道的順序寫入。
數據文件名設計應包含文件名、當前系統時間、采樣通道、采樣頻率、采樣時間等信息。如圖2所示參數設置對應的文件名為:yali 20120528 AIN0 10 ksps 5 s這樣在后續的數據處理中,做到見名知義。
便于操作者使用,控制軟件在使用中采用交互式設計。若通信端口設置不正確,單擊打開端口按鈕,軟件會彈出錯誤提示語,要求操作者重新設置。控制命令發送后,若接收到下位機發來的握手指令,軟件則提示指令發送成功。接收數據時,通信指示燈不斷閃亮,提示數據正在傳輸;數據接收時有進度條顯示,顯示完成接收數據的百分數,直至接收完成。
控制軟件的流程如圖3所示。啟動軟件后,輸入文件名設置采樣參數(采樣通道、采集時間和采樣頻率),選擇通信端口(根據計算機分配給CP2102的虛擬串口來設置),單擊打開端口按鈕,選擇正確端口狀態指示燈變紅,如圖2所示。當所有配置完成后單擊應用按鈕,命令發送,下位機接收正確命令后,發送握手指令,上位機接收到正確的握手命令時,軟件提示指令發送成功。上位機軟件接收數據并按采集通道的順序存放,數據采集期間軟件顯示接收數據的百分數,直至接收數據完成,至此,執行數據采集完成,數據以二進制文件形式保存,方便后續對采集數據的后續處理。

圖3 控制軟件流程圖Fig.3 Flow chart of the control software
本文設計了一種多通道數據采集系統,基于VB6.0軟件,設計了上位機控制軟件界面和控制命令,給出了控制軟件的流程圖,采集的多通道數據以二進制數據格式文件保存,文件名包含采樣參數信息,方便對采樣數據的后續處理。該設計成功用于陣列感應測井儀器的實驗室研究中,實際應用表明,系統便攜操作方便,達到了設計要求,取得滿意的使用效果。
[1]吳銀川,嚴正國,蘇娟.基于DAQBench的數據采集系統的設計[J].儀器儀表用戶,2008,15(3):32-33.WU Yin-chuan,YAN Zheng-guo,SU Juan.Design of data acquisition system based on DAQBench[J].Electronic Instrumentation Customer,2008,15(3):32-33.
[2]王東旅,楊俊峰,程宏才,等.地震數據采集系統中的數據傳輸系統設計[J].數據采集與處理,2011,26(4):494-498.WANG Dong-lv,YANG Jun-feng,CHENG Hong-cai,et al.Data transmission system design in marine seismic data acquisition system[J].Journal of Data Acquisition &Processing,2011,26(4):494-498.
[3]張煜,竇延娟,張曉東.機載激光雷達數據采集及數據處理[J].長江科學院院報,2010,27(1):13-16,21.ZHANG Yu, DOU Yan-juan,ZHANG Xiao-dong.Airborne lidar data gathering and data processing[J].Journal of Yangtze River Scientific Research Institute,2010,27(1):13-16,21.
[4]王學偉,王彥碩.基于以太網的數據采集及監控系統的數據通信研究[J].北京化工大學學報,2006,33(1):109-111.WANG Xue-wei,WANG Yan-shuo.Data communication based on Ethernet data acquisition and monitoring system[J].Journal of Beijing University of Chemical Technology,2006,33(1):109-111.
[5]梁志遠.多通道數據采集系統軟件設計[J].核電子學與探測技術,2010,30(3):426-428.LIANG Zhi-yuan.A design of software about multi-channel dataacquisition[J].NuclearElectronics&Detection Technology,2010,30(3):426-428.
[6]劉篤喜,王彩霞.VB在智能儀表的數據采集與處理中的應用[J].儀表技術與傳感器,2008(12):44-45 LIU Du-xi,WANG Cai-xia.Application of VB in data acquisition from intelligent instrument and data processing[J].Instrument Technique and Sensor,2008(12):44-45.
[7]張家田,呂軍,吳銀川.一種高分辨率數據采集系統的設計[J].儀器儀表用戶,2011,18(5):89-90.ZHANG Jia-tian,LV Jun,WU Yin-chuan.Design of high resolution data acquisition system[J].Electronic Instrumentation Customer,2011,18(5):89-90.