劉東明,羅明璋
(長江大學電子信息學院,湖北 荊州 434023)
一個數據采集系統的設計一般包括調理電路、以處理器為核心的A/D轉換模塊和數據傳輸接口[1]。以一個簡單的以單片機為核心的溫度采集系統設計與實現為例,其系統設計框圖[2]如圖1所示。

圖1 以單片機為核心的溫度采集系統設計框圖
在設計該數據采集系統時,要充分考慮各部分的細節,如單片機與各部分電路的硬件接口和驅動軟件[3]。設計流程包括原理圖設計、印刷電路板的設計與加工、元器件焊接、硬軟件調試等[4],開發周期往往較長,無法適應一些時效性要求高的工程需求。隨著電子技術的發展,各類集成度高的模塊化產品層出不窮,如Intel公司的電腦棒(M1s)和MPS系列的采集卡,為數據采集系統的開發提供了新思路。下面,筆者利用市場上成熟的功能模塊,以Intel公司的電腦棒(M1s)和MPS系列的采集卡為硬件平臺,在Qt集成開發環境下設計運行于電腦棒內的采集卡控制和數據處理程序,實現了一種高集成度、高效的數據采集系統,并通過實際應用檢驗其設計的先進性與可靠性。
電腦棒(型號為M1s)是一種微型電腦,與傳統全尺寸電腦一樣支持同樣的操作系統和相同的高質量配置:64位的四核處理器、4G的運行內存、64GB的硬盤、支持最大容量為128G的TF卡擴展、2.4G/5G雙頻WiFi、Win10系統、2個USB接口(USB3.0一個,USB2.0一個),而搭載尺寸卻只有手機大小。
采集系統針對工程物探中的地震波信號采集而設計。對大量現場地震波資料分析整理得出以下結論:地震波在一般軟巖中傳播的通帶頻率為200~400Hz,在硬巖中的通帶頻率為400~1000Hz,在新鮮的堅硬巖中的通帶頻率為1000~1500Hz[5]。根據采樣定理及實際工程需要,系統的采樣頻率在10kHz以上即可。
系統選用的采集卡為MPS系列的采集卡,其型號為MPS-140801。該采集卡內置24位模數轉換模塊、8通道,支持外部觸發,采樣率最高可達128kHz,單次數據采集深度可在1024~8192點動態可調,并具有完備的數據傳輸接口,能較好地滿足8路地震波高精度采集的需求。
整個硬件系統的核心為電腦棒和采集卡,電腦棒和采集卡均為市場化的成熟模塊,通過USB接口進行通信,其實物連接如圖2所示。

圖2 電腦棒與采集卡實物連接圖

圖3 數據采集系統硬件系統原理框圖
數據采集系統硬件系統原理框圖如圖3所示。系統采用鋰電池供電,通過2個DC-DC(5~12V)模塊分別給電腦棒(M1s)和采集卡(MPS-140801)供電。檢波器拾取的地震波信號經調理電路進行濾波、放大等處理后,在采集卡的A/D轉化模塊實現數字化,經USB總線傳輸到電腦棒,電腦棒通過擴展的WiFi接口將數據傳至終端,終端軟件對數據進行保存并繪制曲線。整個系統的工作流程由終端軟件和電腦棒里軟件共同控制完成。因此,該系統的開發核心為終端和電腦棒里軟件的開發。終端軟件負責與電腦棒的WiFi通信和數據的存儲顯示;電腦棒里的軟件主要負責采集卡的控制和與終端的WiFi通信。軟件均在Qt開發環境下開發,利用Qt的跨平臺特性,可以將軟件移植到Windows和Android系統,因此終端可以是Windows系統的電腦和Android系統的平板電腦,可視工作環境由用戶選擇終端。

圖4 軟件結構圖
軟件分為2部分,均在Qt集成環境下開發:一部分為運行在電腦棒里的程序,其主要功能包括采集卡的驅動和與終端的網絡通信;另一部分為運行在終端里的程序,主要功能模塊為與電腦棒的網絡通信接口和數據的存儲、顯示(圖4)。電腦棒和終端的網絡通信采用C/S架構,其中電腦棒為服務器端,終端為客戶端。軟件系統設計充分利用Qt的跨平臺特性,客戶端程序可以安裝在Windows系統或Android系統下,終端選擇就可以有2種:Windows系統的電腦、Android系統的平板電腦或手機,可以由用戶自行選擇。
服務器端程序包括采集卡驅動和網絡通信2個模塊。
2.2.1 采集卡驅動
MPS-140801 采用 DLL(Dynamic Linkable Library,動態鏈接庫)的方式來進行編程驅動。DLL的編制與具體的編程語言及編譯器無關,只要遵循約定的DLL接口規范和調用方式,用各種語言編寫的DLL都可以相互調用。MPS-140801提供的驅動DLL文件名為MPS-140801.dll,內部的驅動函數分別為打開設備、關閉設備、配置參數、開始采集、關閉采集、讀取數據等操作函數。該系統使用C++語言在Qt環境下調用DLL:
1)定義一個函數指針typedef void (* FUNC )(void);
2)定義一個函數指針變量FUNC Func;
3)加載DLL:QLibrary mylib(“MPS-140801.DLL”);mylib.load();
4)找到DLL中的函數Func=(FUNC) mylib.resolve (“FuncInDLL”);
5)調用函數Func()。
2.2.2 網絡通信
服務器的網絡通信分為2部分:
1)使用UDP協議。UDP協議作為一種無連接的協議,可面向網絡中的所有主機發送數據包而不需要與其中的主機連接[6,7],所有主機接收數據包后,根據自身需要決定是否處理。在該系統中電腦棒連接WiFi后的IP地址會變化,使用TCP/IP時,客戶端與服務器端的連接的前提是要知道服務器端的IP,變化后的IP需要告知客戶端,系統使用UDP協議在每次服務器程序啟動后將連接WiFi后的IP地址以數據包的形式發送出來,由于客戶端連接同一WiFi,客戶端可以收到數據包并解析出IP地址,進而客戶端就可以與服務器連接,服務器使用UDP套接字QUDPSocket(Qt下的UDP套接字)發送數據包。
2)使用TCP/IP協議與客戶端通信。服務器監聽IP地址和8080端口,等待客戶端的連接請求,一旦客戶端有連接請求,服務器便獲取套接字,用該套接字便可與客戶端通信。
客戶端程序包括軟件界面、文件系統和網絡通信3個模塊。
2.3.1 軟件界面

圖5 客戶端軟件界面圖
軟件界面分為采集操作區、文件選擇區(選擇保存好的文件查看波形)、參數區、波形顯示區。采集操作區實現采集和關閉采集操作,采集有2種選擇:由軟件觸發采集,采集按鈕按下后觸發采集;外部觸發采集,對應的按鈕按下后,采集卡等待外部觸發信號觸發采集。文件選擇區供用戶選擇相應文件,參數設置供用戶設置采樣率和采樣長度,在采集完成后,將采集的數據的波形繪制在波形顯示區。圖5為實現的軟件界面。
2.3.2 文件系統
采集的數據以二進制文件保存,二進制文件分通道進行保存,一個通道保存按照“頭結構-通道數據-尾結構”保存,頭尾結構為2個字節的16進制數據,通道數據按低字節在前、高字節在后的順序存儲。
2.3.3 網絡通信
客戶端的網絡通信部分與服務器一樣,有2個部分:
1)使用UDP協議套接字接收服務器發來的IP地址數據包,解析出IP地址;
2)使用TCP/IP協議套接字以IP地址和8080端口為參數,使用connect()函數請求連接服務器,連接成功后,便可用套接字與服務器通信。
客戶端與服務器連接成功后,客戶端可以向服務器發送命令以控制采集,發送的命令長度為8字節,格式定義如下:
【G 命令類型 命令長度 命令參數 g 校驗和】
1 2 3 4~6 7 8
G:幀頭
命令類型: 0x33——關閉采集系統
0x55——采集
0xcc——停止采集
0x77——請求服務器傳送采集數據
命令長度:一個命令的大小
命令參數:當命令類型為0x55時,4:采樣率/1000 5:采樣長度/1024,其余情況各位均為為0。
g:幀尾
校驗和:前面各位的異或和
服務器接收客戶端的采集命令后,驅動采集卡工作,采集完畢后,服務器將數據上傳客戶端。數據以幀為單位傳送,一幀長度為71字節,格式定義如下:

1B1B1B1B64B1B1B1BABCDEFGH
其中,A和B為幀頭,均為1字節; C和D為幀序號,C為低字節,D為高字節,均為1字節; E為有效數據,64字節; F和G為幀尾,各占1字節; H為異或校驗位,1字節。

圖6 系統測試工作原理圖
采集系統在測試時采集卡接三分量檢波器,采集電火花震源激勵的地震信號。電火花震源是一種新型的綠色震源,利用電容器充電放電的基本原理,進行蓄能和釋放能量,產生地震波。筆者使用的電火花震源由長江大學物探科技公司研制,該電火花震源采用光纖信號轉化的下降沿信號作為采集卡的外部觸發信號,與采集卡實現同步。客戶端軟件安裝在Windows 10系統的筆記本電腦。
系統測試工作原理圖如圖6所示。采集系統由電腦客戶端軟件設置采樣參數并將采集卡設置為外部觸發采集方式。電火花震源作為產生地震波的裝置,由操作人員通過控制器使其充電到合適電壓(一般為5kV左右)后放電。電火花電容器中的高電壓通過插在水中的電極釋放,使周圍水電離并汽化,電能轉化為地震波能、部分熱能和光能,與此同時電火花震源的光纖同步盒產生下降沿信號并輸送到采集系統的采集卡,觸發采集卡開始采集。三分量檢波器拾取地震波信號,并作為輸入信號傳給采集系統的采集卡,采集卡將信號數字化并傳給電腦棒,電腦棒的服務器軟件將采集的數據通過無線網絡傳到客戶端軟件處理。
系統測試步驟如下:
1)連接好電火花震源各個模塊,將放電電極插入裝有水的井中;
2)將光纖同步盒信號線連接到采集系統的采集卡的外部觸發輸入端,將三分量檢波器連接到采集卡;
3)分別打開電火花震源和采集系統(包括硬件系統和終端電腦),打開電腦客戶端軟件(電腦棒中的服務器軟件設為開機自啟動,故不需要手動打開),使終端電腦連接采集系統無線網絡;
4)使電火花震源充電并放電,此為電火花震源預熱過程(由于沒有將采集卡置為外部觸發狀態,故采集系統不會進行采集),多次進行,充電電壓從0.5kV到4kV逐級升高,充電到4kV放電后結束預熱;
5)設置采樣參數和將采集卡置為外部觸發采集方式;
6)電火花震源充電并放電,充電電壓為4~6kV;
7)分析客戶端軟件顯示的數據曲線,如需要再次測試,返回5);

圖7 采集數據波形顯示圖
8)結束測試。
采集系統成功采集到數據,采集數據波形顯示如圖7所示。綠色曲線為三分量檢波器的X軸數據曲線,紅色曲線為Y軸數據曲線,藍色為Z軸數據曲線。曲線橫坐標為采集時間,單位為ms,縱坐標為檢波器采集的信號在采集卡中轉換后的電壓值,單位為mV。
通過測試可知,該系統能有效通過外部觸發采集電火花激勵的地震信號,采集的數據可靠,采用C/S架構的軟件,讓實際操作變得簡單,系統工作穩定,服務器能夠很好地驅動采集卡工作,及時地傳輸采集數據,客戶端接收數據并繪制數據的曲線,數據曲線符合三分量檢波器采集的數據的規律。
筆者研究的數據采集系統在成熟的硬件平臺上進行集成開發,縮短了數據采集系統的開發周期。通過Qt開發C/S架構的軟件,服務器程序實現對采集卡的控制,并將采集到的數據通過網絡傳送至客戶端。客戶端軟件充分利用Qt的跨平臺特性,可以在Windows和Android系統下運行,終端電腦可以是Windows系統的電腦、Android系統的平板電腦或手機,增加了系統的靈活性。系統在應用中與電火花震源配套使用,能有效的觸發并順利采集數據,具有較好的穩定性。
[1]陳德運,高明,李偉,等.新型ECT數據采集系統設計與實現[J].電機與控制學報,2013,17(5):87~92.
[2]楊述斌.工業現場溫度采集系統設計與實現[J].中國科技信息,2007(23):75~76,78.
[3]張燕紅,鄭仲橋.基于單片機AT89C52的數據采集系統[J].化工自動化及儀表,2010,37(3):110~112.
[4]鄭偉軍,王保良,黃志堯,等.高速ECT的數據采集系統設計[J].儀器儀表學報,2008,29(9):1883~1887.
[5]劉云禎,梅汝吾.TGP隧道地質超前預報技術的優勢[J].隧道建設,2011,31(1):21~32.
[6]劉源,張剛.可靠UDP協議棧的FPGA實現[J].火力與指揮控制,2017,42(7):139~143.
[7]張翼德,馮鋼.無線傳感器網絡數據采集系統研究[J].電子科技大學學報,2008(S1):40~43,57.