張晶威
(中北大學電子測試技術國家重點實驗室,太原030051)
工程爆破中,藥包爆炸后能量的釋放、傳遞、做功中必然有一部分能量轉化為地震波[1-2]。由地震波而引起的地表物體顛簸搖晃的現(xiàn)象和后果是地震效應,是影響最大的工程爆破危害[1-4]。
目前對地震波的振動測量是監(jiān)測與評估爆破地震效應的重要途徑。地震波在空間中的方向并不確定,但是矢量在三維空間可以分解,因此測量三維空間的地震波矢量分量是必要的。測量三維的地震波矢量分量需要時間上同步,保證疊加后的矢量和是實際地震波矢量。
在振動觀測點,傳感器信號采集到的多路模擬信號是時間同步的。模擬信號經(jīng)過量化,在數(shù)字信號處理和存儲后,識別的數(shù)字信號也需同步以便后期處理。傳統(tǒng)上的方法多為模擬信號經(jīng)過多路模擬開關,模數(shù)轉換器件分時處理[5-7]。事實上,這并沒有實現(xiàn)嚴格意義上的時間同步。
本文介紹了一種利用現(xiàn)場可編程邏輯器件FPGA作為爆破振動數(shù)據(jù)記錄儀的設計方案,同時結合FPGA的嵌入式處理器內核,構建了邏輯控制與CPU一體的SoC架構。
本設計方案整體思路是對3路獨立的A/D轉換器分別設置雙時鐘FIFO存儲單元,保持采樣同步一致性。在3路A/D轉換器采樣的同一個模數(shù)轉換周期,將FIFO存儲數(shù)據(jù)順序讀出并順序寫入SDRAM。
FPGA芯片為主控制器,主要包含如下邏輯結構:A/D控制單元、FIFO、嵌入式軟核處理器、存儲觸發(fā)控制單元。
本系統(tǒng)使用的是Altera公司的CycloneII系列芯片。3路A/D轉換控制單元分別控制串行A/D轉換器,控制單元共用同一個系統(tǒng)時鐘分頻后的時鐘和系統(tǒng)復位。控制單元還包含A/D轉換器的控制時鐘,數(shù)據(jù)串/并轉換,FIFO寫時鐘和FIFO的寫使能信號。使用FPGA中的雙時鐘FIFO宏模塊,寫入時鐘由A/D控制模塊驅動,讀時鐘和SDRAM存儲器共同使用系統(tǒng)時鐘。嵌入式NiosII軟核處理器中添加了PIO接口模塊、SDRAM接口、Flash接口。
基于FPGA芯片的系統(tǒng)框架如圖1所示。
圖1 控制器系統(tǒng)框架
A/D控制單元是FPGA中的邏輯功能模塊,3路A/D控制單元由同一時鐘驅動,并共用系統(tǒng)復位,保證工作時序同步。
該系統(tǒng)的目標采樣信號頻率在10~103Hz范圍,采用Burr Brown公司一款串行A/D轉換器ADS1286。該A/D轉換器為12位精度,連續(xù)采樣狀態(tài)為16個A/D驅動時鐘完成一次采樣—數(shù)據(jù)輸出。其時序工作圖如圖2所示[8]。
圖2 ADS1286基本工作時序
在A/D轉換器的信號采樣段,即一個采樣過程的前兩個時鐘周期執(zhí)行對目標信號的采集;在數(shù)據(jù)轉換段執(zhí)行12位數(shù)據(jù)由高位至低位的串行輸出。片選使能信號置高后完成一次數(shù)據(jù)采集過程,此時處理輸出的數(shù)據(jù)是完整的一個采樣點數(shù)據(jù)。
該A/D控制單元包含以下5個模塊:
①通過系統(tǒng)時鐘分頻模塊得到A/D轉換器的驅動時鐘。
②片選使能信號模塊控制連續(xù)的數(shù)據(jù)采樣,經(jīng)過15個A/D驅動時鐘生成一個片選使能信號的高電平,此高電平占A/D驅動時鐘一個周期,即16個A/D驅動時鐘完成一次采樣。
③串行—并行數(shù)據(jù)轉換。考慮芯片I/O引腳限制,并且系統(tǒng)的采樣頻率不高,采用串行輸出的A/D轉換器比較合適,但系統(tǒng)內部的數(shù)據(jù)總線為并行,因此A/D控制模塊需要將串行數(shù)據(jù)轉換成同總線同位寬的并行格式[9-10]。該模塊工作過程是,首先在FPGA中構建一個12位的存儲空間,在A/D采樣輸出串行數(shù)據(jù)開始,每個A/D驅動時鐘傳輸至相應的12位存儲空間位置,最低位數(shù)據(jù)在AD驅動時鐘的上升沿采樣完成,片選使能信號在時鐘的下降沿變化,因此在片選使能信號的上升沿處理的數(shù)據(jù)是完整的一次采樣數(shù)據(jù)。
④輸出寫FIFO的時鐘。FIFO具有雙時鐘,其中寫時鐘頻率較低。16個A/D驅動的時鐘周期完成一次完整的數(shù)據(jù)采樣,因此將A/D驅動時鐘8分頻得到寫FIFO驅動時鐘。
⑤觸發(fā)SDRAM存儲信號。該信號同F(xiàn)IFO寫滿信號輸入或門,輸出至NiosII軟核的一個PIO輸入接口,提供一個中斷標志,觸發(fā)SDRAM存儲。
結合Modelsim仿真波形和A/D控制單元的波形圖,可知A/D控制單元的控制時序邏輯。另外A/D控制單元的邊沿控制穩(wěn)定,確保了采集數(shù)據(jù)可靠。
同步采集的3路信號在FIFO中存儲,FIFO完成了數(shù)據(jù)的緩沖,然后將FIFO中的數(shù)據(jù)順序轉移至外部存儲器。
FIFO存儲數(shù)據(jù)向SDRAM轉移的由一個PIO中斷觸發(fā),該中斷標志由A/D控制單元設定FIFO存儲數(shù)據(jù)量,計數(shù)器記滿后產(chǎn)生一個出發(fā)標志,計數(shù)器參數(shù)可調。另外FIFO深度是有限的,存滿后產(chǎn)生FIFO滿信號,將二信號輸入或門,輸出為SDRAM的存儲觸發(fā)標志。一路FIFO讀空以后,下一路FIFO數(shù)據(jù)讀出。3路FIFO數(shù)據(jù)由FIFO讀出轉移至SDRAM的過程要在下一次FIFO寫入數(shù)據(jù)之前,也就是由15個A/D驅動時鐘的時間完成此工作,而讀FIFO和寫SDRAM都是由系統(tǒng)時鐘(是A/D驅動時鐘的103倍)驅動的,故單路FIFO存儲數(shù)據(jù)可以由此來確定。
SDRAM存儲器的優(yōu)點是存儲空間大、價格低,適合做數(shù)據(jù)的緩沖區(qū);缺點是控制相對復雜,使用NiosII軟核控制器可以降低SDRAM控制的難度。NiosII提供了SDRAM 的控制接口,硬件結構搭建完成后,在NiosII IDE集成開發(fā)環(huán)境中編寫C語言程序控制SDRAM。當總線訪問SDRAM接口時,通過寫操作函數(shù)IOWR和讀操作函數(shù)IORD即可進行SDRAM存儲器的讀寫[11-12]。
基于SRAM原理的FPGA芯片掉電后程序丟失,另外暫存在SDRAM芯片中的數(shù)據(jù)也會掉電丟失。利用Flash芯片的掉電程序保持特性實現(xiàn)對FPGA的初始化配置和大量采集數(shù)據(jù)的保持。需要注意的是,寫入Flash的偏移地址大于程序代碼在Flash存儲空間的地址,否則系統(tǒng)程序被覆蓋,無法對FPGA正確配置。
圖3為系統(tǒng)在某工程采集的爆破振動加速度波形。工程上采用了高精度的電子雷管,設置段間延期為1 s。從圖中采集波形可以看出,段與段之間的數(shù)據(jù)采集嚴格分開。另外從圖中Z軸(垂直地面方向)對應X、Y軸的波形,可見3路數(shù)據(jù)采集波形的一致性好。
圖3 某工程3路采集加速度波形
本文提出的基于FPGA的多路數(shù)據(jù)同步采集系統(tǒng)實現(xiàn)了多路數(shù)據(jù)采集的時間同步,為工程爆破振動分析提供更有價值的數(shù)據(jù),是爆破振動分析監(jiān)測的得力工具。另外,嵌入式軟核與邏輯模塊結合成片上系統(tǒng),設計的電路系統(tǒng)更為簡單可靠。此外本系統(tǒng)還可以多臺組網(wǎng),通過安置方式的不同來靈活設計監(jiān)測方案,此方面尚需進一步研究。
[1]張雪亮,黃樹堂.爆破地震效應[M].北京:地震出版社,1981.
[2]孟吉復,惠新斌.爆破測試技術[M].北京:冶金工業(yè)出版社,1992.
[3]張立.爆破器材性能與爆炸效應測試[M].合肥:中國科學技術大學出版社,2006.
[4]言志信,等.爆破地震測試及建筑結構安全標準研究[J].巖石力學與工程學報,2003,22(11):1907-1911.
[5]周朝陽,等.基于FPGA的多通道串行A/D轉換器的控制器設計[J].現(xiàn)代電子技術,2008(20):55-58.
[6]Kirianaki N V.Data acquisition and signal processing for smart sensors[M].John Wiley&Sons,2001:51-58.
[7]張東升,等.基于FPGA的高速采集系統(tǒng)設計與實現(xiàn)[J].電子技術應用,2006(5):76-77.
[8]Texas Instruments.12-Bit Micro Power Sampling Analog-To-Digital Converter,2000.
[9]Peter Wilson.FPGA 設計實戰(zhàn)[M].杜生海,譯.北京:人民郵電出版社,2009.
[10]EDA先鋒工作室.Altera FPGA/CPLD設計[M].北京:人民郵電出版社,2011.
[11]Altera Corporation.NiosII Software Developer's Handbook,2009.
[12]Altera Corporation.Embeded Design Handbook,2011.