馬曉榮,吳銀川
(1.陜西職業(yè)技術(shù)學(xué)院 陜西 西安 710100;2.西安石油大學(xué) 陜西 西安 710065)
數(shù)據(jù)采集技術(shù)主要研究信號數(shù)據(jù)的采集、存儲、處理以及控制問題[1],數(shù)據(jù)采集技術(shù)在工業(yè)應(yīng)用中極為廣泛[2-5]。本文以C8051F020單片機為核心設(shè)計了多通道數(shù)據(jù)采集硬件系統(tǒng),該系統(tǒng)通過USB與計算機連接,USB實現(xiàn)采集系統(tǒng)的供電和數(shù)據(jù)通信。針對該硬件系統(tǒng),采用VB6.0軟件設(shè)計了上位機控制軟件[6]。該系統(tǒng)實現(xiàn)8通道、12位A/D采集,最大采樣速率為100 ksps;采集系統(tǒng)通過計算機控制,實現(xiàn)多通道數(shù)據(jù)采集、數(shù)據(jù)處理以及數(shù)據(jù)文件二進制存儲等功能,實現(xiàn)數(shù)據(jù)的多通道便攜式數(shù)據(jù)采集。
數(shù)據(jù)采集系統(tǒng)框圖如圖1所示。整個采集系統(tǒng)由上位機計算機軟件(VB6.0軟件)控制,控制軟件實現(xiàn)采集通道、采樣頻率、采樣點數(shù)(時間)等參數(shù)選擇控制;控制軟件以二進制文件格式記錄采集數(shù)據(jù),一次接收數(shù)據(jù)結(jié)束,軟件自動將包含參數(shù)、系統(tǒng)時間的文件存儲在指定目錄中,方便采集數(shù)據(jù)的保存。硬件采集系統(tǒng)與計算機通過USB連接,通過USB實現(xiàn)雙向通信,整個硬件采集系統(tǒng)的電源通過USB供電;由于C8051F020單片機和VB6.0軟件均不支持USB接口,這里采用Silicon Laboratories生產(chǎn)的 USB to UART器件 CP2102,廠家提供計算機驅(qū)動,在VB6.0軟件中采用虛擬串口技術(shù)實現(xiàn)USB的操作,方便用戶的計算機編程。單片機C8051F020是硬件采集系統(tǒng)的控制器件,一方面接收計算機的通信指令,解析通信指令并控制A/D的采集以及交叉開關(guān)的控制;另一方面將A/D采集的數(shù)據(jù)按約定的格式發(fā)送到計算機,實現(xiàn)數(shù)據(jù)的保存。采集系統(tǒng)中選用12位、最大采樣速率100 ksps的A/D轉(zhuǎn)換器,通過交叉開關(guān)實現(xiàn)信號的8通道采集。為了降低采集系統(tǒng)的復(fù)雜性,體現(xiàn)系統(tǒng)的便攜性,故選用C8051F020內(nèi)部集成的A/D轉(zhuǎn)換器。
圖1 多通道數(shù)據(jù)采集系統(tǒng)框圖Fig.1 Block diagram of multi-channel data acquisition system
多通道數(shù)據(jù)采集系統(tǒng)控制軟件界面如圖2所示。輸入文件名(中英文均可);設(shè)置采集通道(可設(shè)置采集1通道到8通道,默認采集通道 AIN0)、采集時間(可設(shè)置 5~600 s,默認5 s)和采集頻率(10~100 ksps,默認 10 ksps);設(shè)置通信端口(COM1~COM5,默認是 COM1),軟件中利用虛擬串口技術(shù),即把CP2102芯片所占用的USB口在VB6.0軟件中虛擬成COM口,具體系統(tǒng)分配的哪一個COM口,可在設(shè)備管理中查看即可,運行軟件時選擇對應(yīng)的COM口,如圖2中系統(tǒng)中分配的是COM3,然后單擊打開端口控件,端口狀態(tài)指示變?yōu)榧t色,說明通信端口設(shè)置正確,串口的傳輸速率固定為576 000 bps;單擊應(yīng)用,軟件將以上參數(shù)設(shè)置編譯成相關(guān)的控制命令通過USB口發(fā)送到下位機C8051F020,下位機根據(jù)接收的命令執(zhí)行相應(yīng)的操作。
圖2 控制軟件界面圖Fig.2 Interface chart of control software
控制命令[7]由標志位(4 位,F(xiàn)L3~FL0)、通道選擇位(3 位,CH2~CH0)、采樣頻率位(7 位,SAF6~SAF0)和采樣時間位(10位,SAT9~SAT0)共24位數(shù)組成。標志位為固定的4位的二進制數(shù)1010,當下位機接收到控制命令時首先判斷標志位是否正確,若正確執(zhí)行命令的解析,若錯誤不做任何操作。通道選擇由3位的二進制數(shù)表示,如表1所示,用000~111共8種組合表示同時采集模擬通道數(shù)。采樣頻率的范圍為0001010~1100100 (十進制數(shù)為10~100), 對應(yīng)采樣頻率為10~100 ksps。 采樣時間的范圍為 000000101~1000001000(對應(yīng)的十進制數(shù)為5~600),對應(yīng)采樣時間的范圍為5~600 s。組合控制命令格式如表2所示。例如參數(shù)設(shè)置為:采集通道0、采樣頻率10 ksps、采樣時間5 s,依次發(fā)送到下位機的命令為:0xA0,0x28,0x0A,下位機 3 次接收完指令。
表1 采集通道選擇Tab.1 Acquisition channel selection
下位機接收到上位機的控制命令后,當接收到的FL3~FL0為1111時,下位機立即給上位機發(fā)送0xAA指令,上位機接收到0xAA后,彈出消息框說明指令發(fā)送成功。
表2 控制命令格式Tab.2 Control command format
數(shù)據(jù)采集系統(tǒng)A/D采樣率在10~100 ksps范圍內(nèi),每個采樣點需用兩個字節(jié) (12位)表示,這樣采樣間隔時間為10~100 μs。上位機和下位機之間的傳輸速率為576 000 bps,每個采樣點(2個字節(jié))的傳輸時間為28 μs,為了兼顧不同的采樣率,下位機緩存采集的數(shù)據(jù),適時發(fā)送數(shù)據(jù)。采集數(shù)據(jù)量按照為(采樣率×采樣時間×2)字節(jié),例如當采樣頻率為100 ksps,采樣時間為600 s時,數(shù)據(jù)存儲量為12×107字節(jié)。
多通道數(shù)據(jù)采集系統(tǒng)中選用12位A/D轉(zhuǎn)換器,每個采樣結(jié)果用12位的二進制數(shù)據(jù)表示,這里需要兩個字節(jié)。下位機單片機收到控制命令、解析控制命令并啟動A/D操作,單片機依次接收各通道的數(shù)據(jù),暫存數(shù)據(jù),并實時發(fā)送采集到的數(shù)據(jù),上位機接收數(shù)據(jù)后,以二進制格式寫入數(shù)據(jù)文件中,文件中的數(shù)據(jù)按照采樣通道的順序?qū)懭搿?/p>
數(shù)據(jù)文件名設(shè)計應(yīng)包含文件名、當前系統(tǒng)時間、采樣通道、采樣頻率、采樣時間等信息。如圖2所示參數(shù)設(shè)置對應(yīng)的文件名為:yali 20120528 AIN0 10 ksps 5 s這樣在后續(xù)的數(shù)據(jù)處理中,做到見名知義。
便于操作者使用,控制軟件在使用中采用交互式設(shè)計。若通信端口設(shè)置不正確,單擊打開端口按鈕,軟件會彈出錯誤提示語,要求操作者重新設(shè)置。控制命令發(fā)送后,若接收到下位機發(fā)來的握手指令,軟件則提示指令發(fā)送成功。接收數(shù)據(jù)時,通信指示燈不斷閃亮,提示數(shù)據(jù)正在傳輸;數(shù)據(jù)接收時有進度條顯示,顯示完成接收數(shù)據(jù)的百分數(shù),直至接收完成。
控制軟件的流程如圖3所示。啟動軟件后,輸入文件名設(shè)置采樣參數(shù)(采樣通道、采集時間和采樣頻率),選擇通信端口(根據(jù)計算機分配給CP2102的虛擬串口來設(shè)置),單擊打開端口按鈕,選擇正確端口狀態(tài)指示燈變紅,如圖2所示。當所有配置完成后單擊應(yīng)用按鈕,命令發(fā)送,下位機接收正確命令后,發(fā)送握手指令,上位機接收到正確的握手命令時,軟件提示指令發(fā)送成功。上位機軟件接收數(shù)據(jù)并按采集通道的順序存放,數(shù)據(jù)采集期間軟件顯示接收數(shù)據(jù)的百分數(shù),直至接收數(shù)據(jù)完成,至此,執(zhí)行數(shù)據(jù)采集完成,數(shù)據(jù)以二進制文件形式保存,方便后續(xù)對采集數(shù)據(jù)的后續(xù)處理。
圖3 控制軟件流程圖Fig.3 Flow chart of the control software
本文設(shè)計了一種多通道數(shù)據(jù)采集系統(tǒng),基于VB6.0軟件,設(shè)計了上位機控制軟件界面和控制命令,給出了控制軟件的流程圖,采集的多通道數(shù)據(jù)以二進制數(shù)據(jù)格式文件保存,文件名包含采樣參數(shù)信息,方便對采樣數(shù)據(jù)的后續(xù)處理。該設(shè)計成功用于陣列感應(yīng)測井儀器的實驗室研究中,實際應(yīng)用表明,系統(tǒng)便攜操作方便,達到了設(shè)計要求,取得滿意的使用效果。
[1]吳銀川,嚴正國,蘇娟.基于DAQBench的數(shù)據(jù)采集系統(tǒng)的設(shè)計[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]王東旅,楊俊峰,程宏才,等.地震數(shù)據(jù)采集系統(tǒng)中的數(shù)據(jù)傳輸系統(tǒng)設(shè)計[J].數(shù)據(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]張煜,竇延娟,張曉東.機載激光雷達數(shù)據(jù)采集及數(shù)據(jù)處理[J].長江科學(xué)院院報,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]王學(xué)偉,王彥碩.基于以太網(wǎng)的數(shù)據(jù)采集及監(jiān)控系統(tǒng)的數(shù)據(jù)通信研究[J].北京化工大學(xué)學(xué)報,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]梁志遠.多通道數(shù)據(jù)采集系統(tǒng)軟件設(shè)計[J].核電子學(xué)與探測技術(shù),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在智能儀表的數(shù)據(jù)采集與處理中的應(yīng)用[J].儀表技術(shù)與傳感器,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]張家田,呂軍,吳銀川.一種高分辨率數(shù)據(jù)采集系統(tǒng)的設(shè)計[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.