文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2014)10-0049-04
0 引言
數(shù)據(jù)采集是指從傳感器和其他待測(cè)設(shè)備等模擬和數(shù)字被測(cè)單元中自動(dòng)采集非電量或者電量信號(hào),送到上位機(jī)中進(jìn)行分析、處理。傳統(tǒng)數(shù)據(jù)采集系統(tǒng)大部分是基于有線的通用微型計(jì)算機(jī)數(shù)據(jù)采集系統(tǒng)。雖然有線數(shù)據(jù)采集系統(tǒng)采集精度高,能夠?qū)崿F(xiàn)同步數(shù)據(jù)采集,但也存在布線繁瑣、耗材多、造價(jià)高、功耗大、擴(kuò)展性能差等不足之處。本設(shè)計(jì)針對(duì)有線數(shù)據(jù)采集系統(tǒng)的不足,在保證數(shù)據(jù)的同步采集和允許誤差范圍前提下,提出了以單片機(jī)C8051F020微處理器為核心的無(wú)線分布式同步數(shù)據(jù)采集系統(tǒng)。
1 系統(tǒng)方案設(shè)計(jì)
本分布式無(wú)線同步數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)包括通信控制中心與多個(gè)無(wú)線數(shù)據(jù)采集單元,系統(tǒng)總體框圖如圖1所示。通信控制中心主要由上位機(jī)和無(wú)線模塊組成,無(wú)線模塊與上位機(jī)之間通過(guò)USB接口連接。整個(gè)系統(tǒng)由上位機(jī)控制,可以遠(yuǎn)程實(shí)時(shí)配置系統(tǒng)參數(shù),控制無(wú)線數(shù)據(jù)采集單元實(shí)現(xiàn)數(shù)據(jù)的采集、接收、存儲(chǔ)和處理。
2 系統(tǒng)硬件設(shè)計(jì)
由圖1可知,系統(tǒng)硬件電路設(shè)計(jì)主要包括通信控制電路和無(wú)線數(shù)據(jù)采集單元的設(shè)計(jì)。
2.1 通信電路控制電路設(shè)計(jì)
通信控制電路的主要功能是將上位機(jī)發(fā)出的控制命令轉(zhuǎn)發(fā)給各無(wú)線數(shù)據(jù)采集單元,并接收無(wú)線數(shù)據(jù)采集單元回傳的數(shù)據(jù),發(fā)送到上位機(jī)進(jìn)行數(shù)據(jù)后期處理。系統(tǒng)通信電路主要由上位機(jī)與無(wú)線模塊之間的通信電路設(shè)計(jì)以及無(wú)線通信模塊與各無(wú)線數(shù)據(jù)采集單元之間的通信電路設(shè)計(jì)兩部分組成。
2.1.1 上位機(jī)與無(wú)線模塊電路設(shè)計(jì)
上位機(jī)與無(wú)線模塊之間采用USB轉(zhuǎn)串口的通信連接,通過(guò)Silicon Laboratories公司的USB接口與RS232串口轉(zhuǎn)換器CP2102芯片實(shí)現(xiàn)[1]。USB轉(zhuǎn)RS-232串口電路設(shè)計(jì)如圖2所示。通過(guò)轉(zhuǎn)換電路,實(shí)現(xiàn)了USB端口的數(shù)據(jù)傳輸端(D-和D+)與RS-232串口的數(shù)據(jù)通信端(TXD和RXD)之間的通信。
無(wú)線模塊選用美國(guó)DIGI公司的XBee-PRO RF模塊,該模塊操作在ISM 2.4 GHz,低功耗,低成本,高性能,而且使用簡(jiǎn)易。數(shù)據(jù)輸出DOUT接至CP2102的串口接收RXD,數(shù)據(jù)輸入DIN連接至CP2102的串口發(fā)送TXD。電路設(shè)計(jì)如圖3所示。
2.1.2 無(wú)線模塊與無(wú)線模塊通信
在數(shù)據(jù)采集系統(tǒng)中使用無(wú)線模塊的透明傳輸模式,它起到替代串口線的作用。所有通過(guò)DIN引腳接收到的UART數(shù)據(jù)依次由RF模塊發(fā)送。收到RF數(shù)據(jù)時(shí),數(shù)據(jù)被直接送出到DOUT腳。相鄰無(wú)線模塊之間可以自組網(wǎng),以此拓寬無(wú)線通信的傳輸距離[2]。
2.2 無(wú)線數(shù)據(jù)采集單元設(shè)計(jì)
無(wú)線數(shù)據(jù)采集單元電路設(shè)計(jì)框圖如圖4所示,主控制單元為無(wú)線數(shù)據(jù)采集單元的核心,它控制采集系統(tǒng)的A/D轉(zhuǎn)換、GPS模塊和無(wú)線模塊。GPS模塊為系統(tǒng)提供位置信息、時(shí)鐘信息和秒脈沖PPS信號(hào),與主控單元通過(guò)異步串行端口進(jìn)行通信,實(shí)現(xiàn)時(shí)鐘、位置信息的接收,秒脈沖輸出PPS引腳接入主控單元的外部中斷源/INT0,控制無(wú)線數(shù)據(jù)采集系統(tǒng)同步采集[3]。
3 系統(tǒng)軟件設(shè)計(jì)
為了使程序編寫、調(diào)試方便以及結(jié)構(gòu)清晰,軟件開發(fā)采用模塊化設(shè)計(jì),整個(gè)數(shù)據(jù)采集系統(tǒng)主要包括以下幾個(gè)模塊:主程序設(shè)計(jì)、數(shù)據(jù)采集程序設(shè)計(jì)、GPS程序設(shè)計(jì)和無(wú)線通信程序設(shè)計(jì)[4]。
3.1 主程序設(shè)計(jì)
系統(tǒng)主程序流程框圖如圖5所示。系統(tǒng)上電進(jìn)入初始化后,處于等待上位機(jī)下發(fā)命令狀態(tài)。各數(shù)據(jù)采集單元收到上位機(jī)下發(fā)的命令后進(jìn)行ID號(hào)匹配,只有ID號(hào)與上位機(jī)下發(fā)的ID號(hào)匹配才開始解析上位機(jī)下發(fā)的命令。解析成功之后執(zhí)行相應(yīng)的指令。
3.2 數(shù)據(jù)采集程序設(shè)計(jì)
系統(tǒng)數(shù)據(jù)采集部分由地震檢波器將地震波信號(hào)轉(zhuǎn)換成電信,經(jīng)過(guò)調(diào)理電路放大、濾波等處理后,經(jīng)差分輸入接入A/D轉(zhuǎn)換,進(jìn)行模數(shù)轉(zhuǎn)換得到數(shù)字信號(hào)。A/D采集程序流程圖如圖6所示。系統(tǒng)通過(guò)GPS模塊的PPS信號(hào)使個(gè)數(shù)據(jù)采集單元進(jìn)行同步采集。
3.3 GPS程序設(shè)計(jì)
GPS數(shù)據(jù)接收程序流程圖如圖7所示,圖中GPS_RX為GPS接收數(shù)據(jù)計(jì)數(shù)器。當(dāng)無(wú)線數(shù)據(jù)采集單元接收到上傳GPS命令時(shí),主程序中使能GPS數(shù)據(jù)接收,串口0中斷服務(wù)程序中接收GPS數(shù)據(jù),首先檢測(cè)GPS數(shù)據(jù)幀頭開始“$”,檢測(cè)到“$”后,開始接收串口0的數(shù)據(jù),接收到6個(gè)數(shù)據(jù)時(shí),判斷數(shù)據(jù)幀頭其余數(shù)據(jù)是否正確,正確的數(shù)據(jù)幀頭為“GPGGA”。如果數(shù)據(jù)幀頭接收正確,則其后的數(shù)據(jù)幀均接收到接收緩存數(shù)組;如果數(shù)據(jù)幀頭接收不正確,則清零GPS接收數(shù)據(jù)計(jì)數(shù)器GPS_RX,重新開始GPS數(shù)據(jù)接收。NMEA-0183標(biāo)準(zhǔn)語(yǔ)句格式幀結(jié)束為CR+LF,當(dāng)接收到0x0d和0x0a時(shí),說(shuō)明GPS數(shù)據(jù)已接收完。
3.4 無(wú)線通信程序設(shè)計(jì)
為了保證無(wú)線數(shù)據(jù)采集單元能接收到上位機(jī)發(fā)送的命令,串口1一直處于打開狀態(tài)。命令接收程序流程圖如圖8所示。上位機(jī)下發(fā)命令為8 B,其中前4個(gè)字節(jié)為數(shù)據(jù)幀頭“$DZD”,第5個(gè)字節(jié)為ID號(hào),第6個(gè)字節(jié)為命令字,第7、8個(gè)字節(jié)為參數(shù)。如果數(shù)據(jù)幀頭接收正確,則其后的數(shù)據(jù)幀均接收到串口1接收數(shù)據(jù)數(shù)組;如果數(shù)據(jù)幀頭不正確,則清零命令接收計(jì)數(shù)器CMD_RX,重新開始命令接收[5]。
無(wú)線數(shù)據(jù)采集單元上傳的數(shù)據(jù)包括GPS數(shù)據(jù)、數(shù)據(jù)采集單元狀態(tài)數(shù)據(jù)和有效數(shù)據(jù)。主控單元通過(guò)串口1將要上傳的數(shù)據(jù)發(fā)送給無(wú)線模塊,無(wú)線模塊轉(zhuǎn)發(fā)給上位機(jī)。GPS數(shù)據(jù)、狀態(tài)數(shù)據(jù)和有效數(shù)據(jù)上傳程序設(shè)計(jì)思想類似。
上傳回上位機(jī)的有效數(shù)據(jù)包含觸發(fā)坐標(biāo)、起始時(shí)刻和有效數(shù)據(jù),3組數(shù)據(jù)之間通過(guò)回車符分開,3組數(shù)據(jù)的幀頭分別為“$CFZB”、“$QSSK”和“$YXSJ”, 每組數(shù)據(jù)幀頭后增加ID號(hào),再發(fā)送有效數(shù)據(jù)。
4 系統(tǒng)測(cè)試
無(wú)線同步數(shù)據(jù)采集系統(tǒng)的測(cè)試分為兩個(gè)階段進(jìn)行。第一個(gè)階段為電路板測(cè)試,測(cè)試系統(tǒng)各部分功能是否正常;第二個(gè)階段為現(xiàn)場(chǎng)測(cè)試,測(cè)試系統(tǒng)在真實(shí)地理環(huán)境中數(shù)據(jù)采集的精確度、穩(wěn)定性和可靠性。
4.1 電路板測(cè)試
系統(tǒng)單個(gè)無(wú)線數(shù)據(jù)采集單元調(diào)試中,測(cè)試電路ID號(hào)為2號(hào),系統(tǒng)上電后處于待機(jī)狀態(tài),調(diào)試軟件選擇COM口,配置波特率為57 600 b/s,測(cè)試上傳GPS和查詢狀態(tài)命令結(jié)果如圖9所示,左側(cè)窗口為ASCII碼顯示,右側(cè)窗口為16進(jìn)制顯示。通過(guò)調(diào)試端口發(fā)送上傳GPS命令, 命令16進(jìn)制顯示為“24 44 5A 44 02 12 00 00”,收到上傳的GPS數(shù)據(jù),包括ID號(hào)02、時(shí)間信息、經(jīng)緯度信息等;再發(fā)送查詢狀態(tài)命令“24 44 5A 44 02 44 00 00”,返回02號(hào)單元處于12命令狀態(tài)。通過(guò)測(cè)試1說(shuō)明,通信控制中心與無(wú)線數(shù)據(jù)采集單元之間的無(wú)線通信正常,無(wú)線數(shù)據(jù)采集單元上傳GPS命令和查詢狀態(tài)命令工作正常。
系統(tǒng)采集數(shù)據(jù)的測(cè)試結(jié)果如圖10所示。等待GPS模塊信號(hào)穩(wěn)定后,發(fā)送啟動(dòng)采集命令“24 44 5A 44 02 77 00 00”,再發(fā)送查詢狀態(tài)命令,返回?cái)?shù)據(jù)表明02號(hào)單元處于采集狀態(tài)77,狀態(tài)正確,等待震動(dòng)觸發(fā)。若沒有觸發(fā)信號(hào),則發(fā)送上傳有效數(shù)據(jù)命令,返回?cái)?shù)據(jù)“NODATA”。若敲擊02號(hào)單元產(chǎn)生震動(dòng)信號(hào),則發(fā)送上傳有效數(shù)據(jù)命令,返回起始時(shí)刻,觸發(fā)坐標(biāo),還有200個(gè)(系統(tǒng)默認(rèn)上傳有效數(shù)據(jù)個(gè)數(shù)為200)有效數(shù)據(jù)。通過(guò)測(cè)試2說(shuō)明系統(tǒng)采集部分工作正常。
系統(tǒng)設(shè)置參數(shù)的測(cè)試結(jié)果如圖11所示。上位機(jī)發(fā)送有效數(shù)據(jù)長(zhǎng)度設(shè)置命令“24 44 5A 44 02 66 00 64”,命令中66為命令字,參數(shù)為2 B,修改有效數(shù)據(jù)長(zhǎng)度為100,十六進(jìn)制表示為64。接著查詢狀態(tài),返回02號(hào)單元處于參數(shù)設(shè)置狀態(tài)66。然后再進(jìn)行數(shù)據(jù)采集,觀察有效數(shù)據(jù)長(zhǎng)度是否已修改,由返回?cái)?shù)據(jù)可見,有效數(shù)據(jù)長(zhǎng)度參數(shù)設(shè)置成功,返回有效數(shù)據(jù)100個(gè)。通過(guò)測(cè)試3說(shuō)明系統(tǒng)參數(shù)設(shè)置程序工作正常,能夠?qū)崿F(xiàn)參數(shù)的遠(yuǎn)程配置。
4.2 現(xiàn)場(chǎng)測(cè)試
系統(tǒng)進(jìn)行了現(xiàn)場(chǎng)實(shí)地測(cè)試,測(cè)試多個(gè)無(wú)線數(shù)據(jù)采集單元能否實(shí)現(xiàn)數(shù)據(jù)的同步采集。將6個(gè)無(wú)線數(shù)據(jù)采集單元在1 m范圍內(nèi)排布成圓形,以保證無(wú)線數(shù)據(jù)采集單元能夠采集到震動(dòng)信號(hào)。通信控制中心距離無(wú)線數(shù)據(jù)采集單元5 m的地方。實(shí)驗(yàn)開始后,首先打開電源開關(guān),上傳GPS信號(hào),配置比較電壓值為100,有效數(shù)據(jù)長(zhǎng)度為200。發(fā)送采集數(shù)據(jù)命令,查詢系統(tǒng)狀態(tài),6個(gè)無(wú)線數(shù)據(jù)采集單元處于采集狀態(tài),在圓形中央人工激發(fā)震動(dòng),上位機(jī)下發(fā)上傳有效數(shù)據(jù)命令,接收有效數(shù)據(jù)。將接收的有效數(shù)據(jù)利用上位機(jī)測(cè)試軟件繪制成波形,如圖12所示。
分析采集數(shù)據(jù)波形圖可知,6個(gè)無(wú)線數(shù)據(jù)采集單元的有效數(shù)據(jù)都接收完整,大于比較電壓的數(shù)據(jù)為震動(dòng)觸發(fā)數(shù)據(jù),在圖中為波形起伏部分。波形左側(cè)為單元ID號(hào),起始時(shí)刻和觸發(fā)坐標(biāo)。采集單元距離震源遠(yuǎn)近不同,從圖中數(shù)據(jù)可以看出觸發(fā)坐標(biāo)相差1~2個(gè)點(diǎn)。6個(gè)采集單元的起始時(shí)刻完全相同,都為“24907”,說(shuō)明起始時(shí)刻為2點(diǎn)49分07秒,07秒6個(gè)單元同步采集數(shù)據(jù)。為了驗(yàn)證系統(tǒng)的可靠性,現(xiàn)場(chǎng)做了多次觸發(fā)采集,結(jié)果基本相同。說(shuō)明系統(tǒng)能夠完成數(shù)據(jù)的無(wú)線同步采集,達(dá)到了預(yù)期設(shè)計(jì)目標(biāo)。
5 結(jié)論
實(shí)驗(yàn)證明,該分布式無(wú)線同步數(shù)據(jù)采集系統(tǒng)能夠達(dá)到數(shù)據(jù)的同步采集和數(shù)據(jù)的無(wú)線傳輸。系統(tǒng)工作穩(wěn)定,操作簡(jiǎn)單,具有較高的工程使用價(jià)值,給基于分布式的系統(tǒng)設(shè)計(jì)提供了參考。
參考文獻(xiàn)
[1] 劉妍,馬艷娥,陳思.一種基于單片機(jī)串口的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].電子測(cè)試,2011,9(9):59-60.
[2] 詹新生,張江偉.基于AT89S51的無(wú)線數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].實(shí)驗(yàn)室研究與探索,2011,30(4):201-202.
[3] 堯鵬,謝志江,余中云.一種高精度數(shù)據(jù)采集無(wú)線傳輸系統(tǒng)硬件設(shè)計(jì)[J].重慶大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,29(4):9-10.
[4] 陳湘平,房莉.基于ZigBee的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].測(cè)控自動(dòng)化,2009,25(4-1):99-100.
[5] 朱衛(wèi)華.基于單片機(jī)射頻收發(fā)器的無(wú)線數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].南華大學(xué)學(xué)報(bào)(理工版),2003,17(4):51-52.