蘇 湘,羅健飛,吳仲城,申 飛
(中國(guó)科學(xué)院合肥物質(zhì)科學(xué)研究院,合肥 230031)
數(shù)據(jù)采集技術(shù)應(yīng)用廣泛,如科學(xué)研究、生產(chǎn)過(guò)程及現(xiàn)場(chǎng)施工中瞬態(tài)信號(hào)和環(huán)境參數(shù)的采集[1-2]。Android是目前最為流行的移動(dòng)終端操作系統(tǒng),并保持迅猛的發(fā)展,并擴(kuò)展到平板和智能電視等領(lǐng)域[3]??蒲泻蜕a(chǎn)領(lǐng)域的數(shù)據(jù)采集在精度和速度上有較高要求,而Android是針對(duì)娛樂(lè)多媒體應(yīng)用的,在軟硬件架構(gòu)上并沒(méi)有像傳統(tǒng)桌面電腦一樣提供方便的數(shù)據(jù)采集接口和驅(qū)動(dòng)。但設(shè)備的便攜化是大勢(shì)所趨,如果能在Android移動(dòng)設(shè)備上實(shí)現(xiàn)數(shù)據(jù)采集接口,方便構(gòu)建專(zhuān)業(yè)的測(cè)試與分析系統(tǒng),將在科研與工業(yè)生產(chǎn)等領(lǐng)域有廣闊應(yīng)用前景。
目前移動(dòng)終端已具備較強(qiáng)的處理能力[4],CPU主頻可達(dá)2 GHz,機(jī)身存儲(chǔ)容量可達(dá)64 GB,這為移動(dòng)設(shè)備上測(cè)試分析系統(tǒng)的構(gòu)建提供了條件,但其具體實(shí)現(xiàn)仍有諸多難點(diǎn),如軟件開(kāi)發(fā)上涉及內(nèi)容廣,要同時(shí)熟悉操作系統(tǒng)底層架構(gòu)和上層應(yīng)用程序的設(shè)計(jì),另外用于數(shù)據(jù)傳輸?shù)慕涌谶x擇也相對(duì)較少。
本文基于C8051F320設(shè)計(jì)了16位精度的數(shù)據(jù)采集卡,支持6通道模擬電壓信號(hào)的實(shí)時(shí)采集,設(shè)計(jì)了多種數(shù)據(jù)連接方式便于不同應(yīng)用場(chǎng)合的使用,并設(shè)計(jì)了該數(shù)據(jù)采集卡的Android驅(qū)動(dòng)程序以及基于該驅(qū)動(dòng)程序接口的多維力傳感器[5]實(shí)時(shí)數(shù)據(jù)采集Android應(yīng)用程序。
該采集卡的設(shè)計(jì)是對(duì)Android下實(shí)現(xiàn)較高要求的數(shù)據(jù)采集任務(wù)的探索研究,對(duì)Android移動(dòng)設(shè)備下專(zhuān)業(yè)測(cè)試測(cè)量系統(tǒng)的構(gòu)建具有一定的參考作用。
C8051F320為增強(qiáng)型51內(nèi)核單片機(jī),采用流水線指令結(jié)構(gòu),速度可達(dá)25 MIPS。片內(nèi)集成了數(shù)據(jù)采集和控制系統(tǒng)中常用的模擬部件和其它數(shù)字外設(shè)及功能部件。C8051F320片內(nèi)自帶有USB收發(fā)器。系統(tǒng)的硬件架構(gòu)圖如圖1所示。
圖1 系統(tǒng)硬件架構(gòu)圖Fig.1 Hardware structure of the system
該采集卡用于實(shí)時(shí)采集外部傳感器輸出的模擬電壓信號(hào),進(jìn)行數(shù)據(jù)處理并傳輸至Android主機(jī),其硬件電路設(shè)計(jì)有電源管理、模數(shù)轉(zhuǎn)換和數(shù)據(jù)接口3個(gè)部分:
1)電源管理:設(shè)計(jì)的供電電壓為5 V,使用線性直流電壓轉(zhuǎn)換芯片轉(zhuǎn)換為3.3 V用于板上芯片供電。外部可選擇USB供電和外接直流電源供電,適合不同的使用場(chǎng)合。
2)模數(shù)轉(zhuǎn)換:提供6路模擬電壓輸入接口,對(duì)每通道模擬輸入進(jìn)行濾波去除高頻噪聲,模擬信號(hào)經(jīng)16位的AD芯片轉(zhuǎn)換為數(shù)字信號(hào)。
3)數(shù)據(jù)接口:設(shè)計(jì)了3種接口用于接入Android終端,分別是 USB Host(USB 主機(jī)方式),USB Device(USB從機(jī)方式)和UART,使用時(shí)通過(guò)電路板的短路帽連接進(jìn)行選擇。3種接口方式均由C8051F320的同一串口引出,這樣在使用不同的接口方式與Android終端連接時(shí)只需改變短路帽連接,而不需要修改采集卡的固件程序。與Android終端的USB Host和USB Device接口的連接是通過(guò)使用FTDI公司的FT230和FT312D芯片來(lái)完成橋接的。
該采集卡的固件程序用于控制模擬電壓信號(hào)的采集與傳輸,同時(shí)可接受主機(jī)發(fā)送來(lái)的命令字執(zhí)行相應(yīng)的處理,如采集的開(kāi)始與停止、采樣通道數(shù)和采樣頻率的改變。程序流程如圖2所示。
圖2 采集卡固件程序流程圖Fig.2 Flow chart of the DAQ card firmware
C8051F320上電后進(jìn)行一系列初始化,包括IO口、系統(tǒng)時(shí)鐘、定時(shí)器等,并對(duì)AD轉(zhuǎn)換器進(jìn)行初始配置。進(jìn)入主程序后首先會(huì)查詢定時(shí)器時(shí)間是否到達(dá),若定時(shí)時(shí)間到,則控制AD轉(zhuǎn)換器采集固定通道數(shù)的數(shù)據(jù),對(duì)采集的數(shù)據(jù)進(jìn)行平均濾波[6]去除白噪聲,然后將處理后的數(shù)據(jù)發(fā)送給主機(jī)。若定時(shí)時(shí)間未到,則直接進(jìn)行下一步操作。接下來(lái)會(huì)查詢主機(jī)是否有命令到達(dá),主機(jī)發(fā)送來(lái)的命令用中斷方式接收,如沒(méi)有收到命令,則回到上一步判斷定時(shí)時(shí)間是否到。一旦接收到主機(jī)發(fā)送的命令,就解析出命令字,執(zhí)行對(duì)應(yīng)的動(dòng)作,例如開(kāi)始采集和停止采集命令會(huì)導(dǎo)致開(kāi)或關(guān)定時(shí)器,采樣速率控制命令會(huì)改變定時(shí)時(shí)間的裝載值從而達(dá)到改變采樣速率的目的。采樣通道數(shù)可設(shè)置為1~6個(gè)通道,采樣頻率可設(shè)置到500 Hz。
本文在Windows操作系統(tǒng)下用LabVIEW圖形化編程語(yǔ)言[7]設(shè)計(jì)了該采集卡的測(cè)試系統(tǒng),測(cè)試系統(tǒng)的功能包括數(shù)據(jù)采集、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)分析與實(shí)時(shí)顯示等部分。圖3和圖4分別是采集的外部多維力傳感器原始數(shù)據(jù)的時(shí)域波形圖和FFT變換后的頻域波形圖。
圖3 多通道模擬輸入信號(hào)波形Fig.3 Oscillograph of Multi-channel analog input
圖4 某通道FFT頻域波形圖Fig.4 FFT oscillograph of one channel
從獲取的傳感器時(shí)域波形圖可看出該采集卡能實(shí)時(shí)穩(wěn)定的進(jìn)行多通道的模擬電壓信號(hào)的采集,數(shù)據(jù)隨著施加在多維力傳感器上力的改變而波動(dòng)。
傳感器靜止放置時(shí)對(duì)其中某一通道輸入信號(hào)進(jìn)行FFT變換后得到的頻域波形圖有一個(gè)很大的直流分量,其余頻率對(duì)應(yīng)的幅度均接近于0,微小的波動(dòng)為電路的隨機(jī)噪聲導(dǎo)致?;谝陨系臏y(cè)試結(jié)果,后期在采集卡的固件程序中設(shè)計(jì)了平均值濾波算法,獲得了更加精確穩(wěn)定的數(shù)據(jù)。
另外在測(cè)試系統(tǒng)中設(shè)計(jì)了采集卡的采樣頻率測(cè)試功能,通過(guò)對(duì)每秒最終采集的點(diǎn)數(shù)進(jìn)行統(tǒng)計(jì)分析,對(duì)比理論設(shè)計(jì)的采樣速率與實(shí)際能達(dá)到的采樣速率之間的差異。圖5為設(shè)置為120 Hz采樣速率下每秒實(shí)際的采樣點(diǎn)數(shù)的統(tǒng)計(jì)情況。
圖5 120Hz采樣速率下采樣點(diǎn)數(shù)統(tǒng)計(jì)結(jié)果Fig.5 Statistical result of 120Hz sample rate
從圖中可看到120 Hz的理論采樣率下實(shí)際能獲得118 Hz的平均采樣率,該采集卡能非常穩(wěn)定地進(jìn)行模擬電壓信號(hào)的采集。
本文使用的Android終端主板基于S5PV210開(kāi)發(fā),S5PV210是三星公司推出的ARM CortexTMA8內(nèi)核的處理器,主頻可達(dá)1 GHz,可實(shí)現(xiàn)2000 DMIPS的高性能運(yùn)算,并在該主板上移植了Android 4.0操作系統(tǒng)。該終端同時(shí)具備UART接口、USB Host接口和USB Device接口,便于采集卡的Android驅(qū)動(dòng)程序和數(shù)據(jù)采集應(yīng)用程序的設(shè)計(jì)和測(cè)試,下面將對(duì)程序設(shè)計(jì)的工作進(jìn)行介紹。
驅(qū)動(dòng)程序用于Android終端與采集卡之間的通信,包括采集卡的控制和數(shù)據(jù)的傳輸,應(yīng)用開(kāi)發(fā)者只需調(diào)用驅(qū)動(dòng)程序提供的接口就可方便構(gòu)建數(shù)據(jù)采集應(yīng)用系統(tǒng)。本文基于Google的開(kāi)源項(xiàng)目android-serialport-api(用于帶串口的Android設(shè)備與外部設(shè)備之間的串口通信項(xiàng)目)和FTDI公司官方的J2xx相關(guān)軟件包設(shè)計(jì)了采集卡的Android驅(qū)動(dòng)程序,實(shí)現(xiàn)了多種接口方式下Android終端與采集卡之間的通信,該驅(qū)動(dòng)程序提供的接口方法描述如表1所示。
表1 采集卡Android應(yīng)用程序接口方法描述Tab.1 Method description of the DAQ card API
Android是支持多任務(wù)多線程的移動(dòng)操作系統(tǒng),其應(yīng)用程序使用Java編程語(yǔ)言開(kāi)發(fā)。Android數(shù)據(jù)采集應(yīng)用程序采用了生產(chǎn)者/消費(fèi)者架構(gòu),創(chuàng)建一個(gè)線程用于傳感器數(shù)據(jù)的讀取,并將讀取到的有效數(shù)據(jù)放入緩沖隊(duì)列中,該數(shù)據(jù)讀取線程就是“生產(chǎn)者”。另外創(chuàng)建一個(gè)用于傳感器數(shù)據(jù)刷新顯示的線程,從緩沖隊(duì)列取出數(shù)據(jù)并實(shí)時(shí)刷新界面顯示,該數(shù)據(jù)刷新線程就是“消費(fèi)者”。Android的觸控界面交互是使用UI線程的事件觸發(fā)機(jī)制來(lái)完成的,對(duì)界面的控件注冊(cè)事件監(jiān)聽(tīng)器,當(dāng)有用戶界面事件發(fā)生時(shí)就執(zhí)行相應(yīng)的操作。圖6為Android數(shù)據(jù)采集應(yīng)用程序的流程圖。
圖6 數(shù)據(jù)采集Android應(yīng)用程序流程圖Fig.6 Flow chart of the DAQ application
在本文使用的Android終端下能實(shí)現(xiàn)多維力傳感器數(shù)據(jù)的實(shí)時(shí)采集,用戶界面交互流暢,采集卡運(yùn)行穩(wěn)定,Android下數(shù)據(jù)采集應(yīng)用程序運(yùn)行效果圖如圖7所示。
圖7 Android數(shù)據(jù)采集應(yīng)用程序運(yùn)行效果圖Fig.7 Effect of plans of Android DAQ application
數(shù)據(jù)采集系統(tǒng)更加小巧和便攜是未來(lái)的發(fā)展趨勢(shì)。創(chuàng)建測(cè)試測(cè)量應(yīng)用系統(tǒng)一般都在傳統(tǒng)桌面電腦環(huán)境下進(jìn)行,而便攜式Android終端下測(cè)試測(cè)量應(yīng)用系統(tǒng)的構(gòu)建因?yàn)殡y點(diǎn)頗多而沒(méi)有取得較大進(jìn)展。
本文設(shè)計(jì)的支持Android的多通道數(shù)據(jù)采集卡,是對(duì)Android移動(dòng)終端下專(zhuān)業(yè)數(shù)據(jù)采集任務(wù)實(shí)現(xiàn)的探究。系統(tǒng)的設(shè)計(jì)包括硬件電路設(shè)計(jì)與測(cè)試,硬件固件程序的設(shè)計(jì),數(shù)據(jù)采集卡的Android驅(qū)動(dòng)程序設(shè)計(jì)以及數(shù)據(jù)采集應(yīng)用程序的開(kāi)發(fā),最終該采集模塊能穩(wěn)定精確的獲取外部傳感器的數(shù)值并能實(shí)時(shí)顯示。
該采集模塊的設(shè)計(jì)對(duì)Android移動(dòng)設(shè)備下專(zhuān)業(yè)測(cè)試測(cè)量系統(tǒng)的構(gòu)建具有一定的參考作用,在科研工作和工業(yè)生產(chǎn)現(xiàn)場(chǎng)等場(chǎng)景下有很好的應(yīng)用前景。
[1] 馬明建.數(shù)據(jù)采集與處理技術(shù)[M].西安:西安交通大學(xué)出版社,2009.
[2] 張少敏,羅壯強(qiáng),宗勁沖.基于Android的平板電腦現(xiàn)場(chǎng)數(shù)據(jù)采集系統(tǒng)在供電公司的應(yīng)用與研究[J].電腦知識(shí)與技術(shù),2012,8(19):4581-4583.
[3] Reto Meier.Professinal Android 4 Application Development[M].Indiana:John Wiley&Sons,Inc,2012.
[4] 張寧.基于Android的移動(dòng)終端數(shù)據(jù)采集的實(shí)現(xiàn)[D].內(nèi)蒙古:內(nèi)蒙古大學(xué)電子信息工程學(xué)院,2013.
[5] Baoyuan Wu,JianfeiLuo,F(xiàn)eiShen,etal.Optimum design method of multi-axis force sensor integrated in humanoid robot foot system[J].Measurement,2011,44(9):1651-1660.
[6] 劉葉平.基于單片機(jī)系統(tǒng)的數(shù)字濾波方法[J].科技傳播,2012(17):205-206.
[7] Jeffrey Travis,Jim Kring.LabVIEW大學(xué)實(shí)用教程[M].喬瑞萍,等譯.北京:電子工業(yè)出版社,2009. ■