任際周,王洪輝,庹先國(guó),2,張貴宇
(1.成都理工大學(xué) 信 息工程學(xué)院,四川 成 都 6 10059;2.地質(zhì)災(zāi)害防治與地質(zhì)環(huán)境保護(hù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,四川 成 都 6 10059)
在相關(guān)性很強(qiáng)的數(shù)據(jù)采集系統(tǒng)中,高精度時(shí)間同步是許多應(yīng)用的必需條件。地質(zhì)勘探中的數(shù)據(jù)采集技術(shù),面臨著各通道之間的時(shí)間同步難題[1]。傳統(tǒng)工程勘探中,一般采用有線方式傳輸采集到的數(shù)據(jù),由于導(dǎo)線帶來(lái)的時(shí)間同步誤差較小,在研制儀器的過(guò)程中不必考慮非同步效應(yīng)。隨著勘探環(huán)境的日益復(fù)雜,無(wú)線通信技術(shù)以其可移動(dòng)性、架設(shè)簡(jiǎn)單、組網(wǎng)靈活等優(yōu)點(diǎn)在實(shí)際作業(yè)中表現(xiàn)出極大優(yōu)勢(shì)[1-2],但由此就帶來(lái)了無(wú)線傳輸?shù)耐骄葐?wèn)題,提高時(shí)間同步精度成為物探裝備研制的關(guān)鍵技術(shù)之一[3]。
目前無(wú)線技術(shù)已經(jīng)應(yīng)用到石油勘探中[3],但工程地質(zhì)普遍使用的彈性波測(cè)試儀還是有線電纜方式,施工需要大量的人力物力[4]。鑒于此,提出采用專用射頻芯片,實(shí)現(xiàn)彈性波的無(wú)線數(shù)據(jù)采集,并在微控制器(Micro Controller Unit,MCU)的指揮下配合時(shí)間同步協(xié)議,提高無(wú)線通信的時(shí)間同步精度。
系統(tǒng)包括數(shù)據(jù)采集與無(wú)線通信兩部分,此處重點(diǎn)研究無(wú)線通信系統(tǒng),從提高無(wú)線時(shí)間同步精度的目標(biāo)出發(fā),著重對(duì)其結(jié)構(gòu)組成、時(shí)間同步誤差來(lái)源、提高時(shí)間同步精度措施、硬件、軟件設(shè)計(jì)實(shí)現(xiàn)等進(jìn)行論述。其原理框圖如圖1所示[5]。
圖1系統(tǒng)采集、傳輸原理框圖Fig.1Block diagram of system acquisition and transmission
圖1左半部分為無(wú)線采集卡,實(shí)現(xiàn)檢波器模擬信號(hào)的數(shù)字量化并進(jìn)行無(wú)線傳輸,無(wú)線模塊實(shí)現(xiàn)采集卡與主機(jī)的通信,包括數(shù)據(jù)發(fā)送和命令接收。
圖1右半部分為主機(jī)接收站,MCU通過(guò)無(wú)線模塊完成對(duì)各采集卡的控制并進(jìn)行數(shù)據(jù)接收,采用FT245BM芯片實(shí)現(xiàn)與PC機(jī)的USB2.0實(shí)時(shí)傳輸[6],信號(hào)處理部分在上位機(jī)通過(guò)VC++軟件編程實(shí)現(xiàn)。
根據(jù)施工環(huán)境的不同,選用個(gè)數(shù)不等的無(wú)線采集卡,配合主機(jī)完成勘探任務(wù)。整個(gè)系統(tǒng)采用無(wú)線模塊nRF905[8]實(shí)現(xiàn)數(shù)據(jù)的無(wú)線傳輸,打破傳統(tǒng)工程勘探有線傳輸?shù)膯我痪置?,為施工帶?lái)極大便利。
彈性波數(shù)據(jù)采集系統(tǒng)動(dòng)作過(guò)程為:主機(jī)向各采集卡(從機(jī))發(fā)送命令,各采集卡接收到命令之后進(jìn)行指令解析,判斷出是采集命令后啟動(dòng)采集程序,并記錄當(dāng)前采集時(shí)間,當(dāng)接收到主機(jī)的數(shù)據(jù)回傳命令時(shí),對(duì)應(yīng)采集卡將采集的數(shù)據(jù)打包、壓縮,加上報(bào)頭(自身ID號(hào))一并發(fā)送,結(jié)構(gòu)圖如圖2所示。
圖2系統(tǒng)工作結(jié)構(gòu)圖Fig.2Structure diagram of system
在這個(gè)動(dòng)作過(guò)程中,可以發(fā)現(xiàn)產(chǎn)生時(shí)間不同步的有2個(gè)地方:一是各采集卡接收主機(jī)指令時(shí)間不一致,二是各采集卡解析指令(采集和回傳數(shù)據(jù)指令)時(shí)間不一致,導(dǎo)致采集卡采集到的信息并不是一個(gè)時(shí)刻點(diǎn)的。造成第一個(gè)時(shí)延差的因素較多,如主機(jī)到各從機(jī)的物理距離不一致(這個(gè)條件在近距離無(wú)線傳輸中可以忽略)、選用的無(wú)線模塊通過(guò)不斷切換頻點(diǎn)來(lái)與各模塊通信(切換產(chǎn)生主要時(shí)延差)等。造成第二個(gè)時(shí)延差的主要環(huán)節(jié)在于無(wú)線模塊本身解析指令存在時(shí)延差,一般在μs級(jí),要想提高無(wú)線時(shí)間同步精度到μs級(jí),就必需盡可能降低時(shí)延差。
時(shí)間同步誤差帶來(lái)的后果是各通道回傳的數(shù)據(jù)并不是同一時(shí)刻的彈性波信息,各通道數(shù)據(jù)之間存在一定的時(shí)延差,達(dá)幾十μs,給后續(xù)數(shù)據(jù)處理和解釋帶來(lái)較大誤差,甚至導(dǎo)致錯(cuò)誤的結(jié)論。
要解決時(shí)間同步問(wèn)題,理論上要做到兩點(diǎn):保證各采集模塊接收到主機(jī)指令的時(shí)間差為零;保證各無(wú)線模塊對(duì)主機(jī)指令的解析耗時(shí)一致。實(shí)際設(shè)計(jì)時(shí),只能盡量減小時(shí)間差,提高時(shí)間同步精度。
針對(duì)第1個(gè)時(shí)延差(即采集卡接收主機(jī)指令時(shí)間不一致),系統(tǒng)選用的nRF905模塊具有獨(dú)特的地址匹配監(jiān)測(cè)AM(Address Match,地址匹配)功能[7],當(dāng)接收到與自身地址號(hào)(也就是彈性波采集通道號(hào))相同的信息時(shí),產(chǎn)生一個(gè)硬件中斷信號(hào),通知MCU進(jìn)行處理,響應(yīng)時(shí)間極短(提高單片機(jī)時(shí)鐘頻率后可忽略不計(jì))。另外,主機(jī)向各從機(jī)發(fā)送指令時(shí),不必切換頻點(diǎn),只需更換報(bào)頭(AM1、AM2...),節(jié)省大量指令時(shí)間,達(dá)到控制時(shí)延差的目的。
針對(duì)第2個(gè)時(shí)延差(無(wú)線模塊本身解析指令時(shí)延差),系統(tǒng)設(shè)計(jì)了時(shí)間同步模式預(yù)調(diào)整進(jìn)程。即每次采集之前啟動(dòng)時(shí)間同步模式進(jìn)程,進(jìn)行時(shí)間同步模式調(diào)整。具體做法為:在時(shí)間同步模式下,把所有從機(jī)設(shè)置成相同的地址(如AM),主機(jī)向所有的從機(jī)發(fā)送一個(gè)同步指令(同步地址AM加上一個(gè)空的數(shù)據(jù)包),從機(jī)(如從機(jī)1號(hào))接收到這個(gè)地址的數(shù)據(jù)包,當(dāng)檢測(cè)地址(AM)匹配了以后,AM引腳產(chǎn)生電平跳變(由低變高),同時(shí)產(chǎn)生一個(gè)DR(Data Ready,數(shù)據(jù)準(zhǔn)備好)信號(hào),作為單片機(jī)的中斷脈沖源,在中斷服務(wù)程序里面記錄某個(gè)計(jì)數(shù)器的當(dāng)前值T1;發(fā)送第二次同步指令,同樣記錄同一個(gè)計(jì)數(shù)器的當(dāng)前值T2;連續(xù)同步多次(假定5次),得到T3,T4,T5。取時(shí)間間隔差ΔTn(Tn+1-Tn)的平均值ΔT=(ΔT1+ΔT2+ΔT3+ΔT4)/4,取5次時(shí)間的中間值T=(T1+T5)/2,做一個(gè)差值TT=T-ΔT作為同步點(diǎn)。同理,其他各采集卡也會(huì)有一個(gè)同步點(diǎn)TTx,當(dāng)接到主機(jī)的采集命令后,啟動(dòng)內(nèi)部計(jì)數(shù)器,當(dāng)計(jì)數(shù)時(shí)間達(dá)到TTx時(shí)立即啟動(dòng)ADC采樣,實(shí)現(xiàn)同步。
無(wú)線模塊采用Nordic半導(dǎo)體公司的核心射頻芯片nRF905,采用SPI(Serial Peripheral Interface,串行外圍設(shè)備接口)與單片機(jī)接口,工作在433/868/915 MHz頻段,增加了多點(diǎn)同時(shí)數(shù)據(jù)傳輸?shù)哪芰7]。所采用的高抗干擾GFSK調(diào)制,內(nèi)置完整的通信協(xié)議和CRC,傳輸速率可達(dá)100 kb/s,湖面通信距離500 m。另外,工作在低電壓范圍(1.9~3.6 V),電流消耗低,在發(fā)射功率為10 dBm時(shí),發(fā)射電流為11 mA,接收電流為12.5 mA,待機(jī)功耗2 μA有利于省電,延長(zhǎng)工作時(shí)間,目前已得到廣泛應(yīng)用[4-7]。
硬件上nRF905與MCU采用SPI總線接口連接,邏輯控制上采用MCU口線方式[7],如圖3所示。
軟件上采用了ATmega32L單片機(jī)內(nèi)部集成的SPI控制器,設(shè)置其數(shù)據(jù)傳輸速率為MCU時(shí)鐘的1/64,即8*1/64 MHz=128 kHz。采用AVR Studio IDE、C51語(yǔ)言編寫(xiě)了nRF905發(fā)送、接收兩個(gè)功能函數(shù)。
nRF905采用VLSI Shock-Burst技術(shù),在RX模式中,地址匹配AM和數(shù)據(jù)準(zhǔn)備就緒DR信號(hào)通知MCU一個(gè)有效的地址和數(shù)據(jù)包已經(jīng)各自接收完成。在TX模式中,nRF905自動(dòng)產(chǎn)生前導(dǎo)碼和CRC校驗(yàn)碼,DR信號(hào)通知MCU數(shù)據(jù)傳輸已經(jīng)完成。這兩種模式為節(jié)省指令時(shí)間、提高時(shí)間同步精度起到?jīng)Q定性作用。
1)Shock-Burst RX模式工作過(guò)程
圖3硬件接口電路圖Fig.3Circuit of hardware interface
通過(guò)設(shè)置TRX_CE高電平、TX_EN低電平來(lái)選擇RX模式。過(guò)程為:650 μs以后,nRF905監(jiān)測(cè)空中的信息;當(dāng)nRF905發(fā)現(xiàn)和接收頻率相同的載波時(shí),CD被置高電平;當(dāng)nRF905接收到有效的地址時(shí),AM被置高電平;當(dāng)nRF905接收到有效的數(shù)據(jù)包(CRC校驗(yàn)正確)時(shí),nRF905去掉前導(dǎo)碼地址和CRC位,DR被置高電平。
圖4為接收模式流程圖。采用了外部中斷觸發(fā)機(jī)制(INT0),減小了MCU運(yùn)行開(kāi)銷。
圖4無(wú)線接收流程圖Fig.4Flow chart of wireless receive
//外部中斷0中斷服務(wù)程序
ISR(INT0_vect)
{DR_FLAG=1;//置標(biāo)志位}//GET_MODEL:接收模式
set_nRF_status(RX);//設(shè)置nRF為接收模式
if(DR_FLAG==1)//判斷中斷標(biāo)志位
{DR_FLAG=0;//標(biāo)志位清0
set_nRF_status(STANDBY);//穩(wěn)定模式
addr=get_rx_address();//接收地址
data=get_rx_payload();//接收數(shù)據(jù)
set_nRF_status(RX);//連續(xù)接收}
2)Shock-Burst TX模式工作過(guò)程
MCU設(shè)置TRX_CE、TX_EN為高電平來(lái)激活一次傳輸。過(guò)程為:無(wú)線系統(tǒng)自動(dòng)上電;數(shù)據(jù)包完成添加前導(dǎo)碼和CRC校驗(yàn)碼;數(shù)據(jù)包發(fā)送100 kb/s GFSK曼徹斯特編碼。如果AUTO_RETRAN被設(shè)置為高電平,nRF905將連續(xù)地發(fā)送數(shù)據(jù)包直到TRX_CE被設(shè)置為低電平。當(dāng)發(fā)送結(jié)束后,新的模式被激活,圖5為無(wú)線發(fā)送模式流程圖。
圖5無(wú)線發(fā)送流程圖Fig.5Flow chart of wireless translation
//SEND_MODEL:發(fā)送模式
set_tx_address(channel_id);//設(shè)置發(fā)送地址
set_tx_payload(channel_data);//設(shè)置發(fā)送數(shù)據(jù)
set_nRF_status(TX);//設(shè)置nRF為發(fā)送模式
提出的時(shí)間同步協(xié)議已經(jīng)被成功應(yīng)用到所研制的彈性波測(cè)試儀中。同時(shí),在某地質(zhì)調(diào)查課題野外施工的基礎(chǔ)上,對(duì)傳輸距離和時(shí)間同步誤差進(jìn)行了測(cè)試。測(cè)試結(jié)果表明野外500 m無(wú)誤碼傳輸,實(shí)現(xiàn)48道(道間距3 m,偏移距50 m)彈性波無(wú)線數(shù)據(jù)采集;時(shí)間同步誤差控制在2 μs以內(nèi)。存在的問(wèn)題:隨著施工環(huán)境復(fù)雜度的增加,傳輸距離受到限制且誤碼率有所增加,選用大功率無(wú)線模塊時(shí)會(huì)使整機(jī)功耗增大。
總體來(lái)說(shuō),所提出的無(wú)線時(shí)間同步協(xié)議能較好地滿足實(shí)際要求。工作效率大大提高,時(shí)間縮短到有線方式的1/3,該技術(shù)具有較好的應(yīng)用前景。
[1]羅維炳.新一代無(wú)線局域網(wǎng)技術(shù)在地震數(shù)據(jù)采集系統(tǒng)中的應(yīng)用[J].石油儀器,2004,18(1):9-12,15.LUO Wei-bing.Application of new generation wireless local area network technology to the telemetry seismic data acquisition system[J].Petroleum Instruments,2004,18(1):9-12,15.
[2]王瑩,張大波.嵌入式無(wú)線智能家庭網(wǎng)絡(luò)的遠(yuǎn)程控制[J].微計(jì)算機(jī)信息,2008(23):48-50.WANG Ying,ZHANG Da-bo.Remote control of embedded wireless smart home network[J].Microcomputer Information,2008(23):48-50.
[3]王建國(guó),呂艷宗,王樹(shù)杰,等.高精度無(wú)線同步技術(shù)及其在石油勘探中的應(yīng)用[J].傳感器技術(shù),2005,24(8):74-76.WANG Jian-guo,LV Yan-zong,WANG Shu-jie,et al.Precise synchronization in wireless communication and its applicationinpetroleumreconnaissancetechnology[J].Journal of Transducer Technology,2005,24(8):74-76.
[4]重慶地質(zhì)儀器廠.DZQ48/24/12A高分辨地震儀(淺震儀)[EB/OL].(2008).http://www.cgif.com.cn.
[5]王洪輝,庹先國(guó),穆克亮,等.基于FPGA+MCU的全數(shù)字式滑移脈沖信號(hào)發(fā)生器的研制[J].核技術(shù),2007,30(10):868-871.WANG Hong-hui,TUO Xian-guo,MU Ke-liang,et al.Development of digital slip pulse generator based on FPGA&MCU[J].Nuclear Techniques,2007,30(10):868-871.
[6]岳桂軍,葉湘濱,虞武華.基于USB2.0的多功能測(cè)試系統(tǒng)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008,24(28):21-25.YUE Gui-jun,YE Xiang-bin,YU Wu-hua.Design of multifunctional testing system based on USB 2.0[J].Control&Automation,2008,24(28):21-25.
[7]Nordic公司單片無(wú)線收發(fā)器nRF905用戶數(shù)據(jù)手冊(cè)[M].挪威:Nordic半導(dǎo)體公司,2004.