從上個世紀九十年代起,電子技術在鉆井井下得到應用。但井下鉆具的振動會給很多傳感器帶來不利影響。
特別是對測量井下鉆頭姿態的慣性導航傳感器影響巨大,在隨鉆振動環境中,如果對信號不作處理,根本就不能測量出正確的井斜角和方位角,也就無法實現井眼軌跡隨鉆控制的要求。本文介紹應用SoC芯片中的DMA技術對振動的高速采集和存儲功能的實現方法,并給出了鉆井環境中測試的結果。
1、方法的提出
傳統的數據采集方法采用CPU直接控制的方式進行數據采集,數據傳送需要經過CPU的中轉才能存入存儲器,傳送速度慢且采集速率受到CPU的限制,極大影響了系統的采樣頻率,不能滿足對振動信號高速采集的要求。而在DMA傳送方式下,數據傳送不經過CPU,由DMA控制器來實現內存和外設之間數據的直接快速傳送。在XTCS的測控系統中,CPU采用的SoC芯片中集成有DMA,將其與其它器件協同工作就可以實現采集與存儲的同時進行,達到高速采集信號的目的,得到高保真的井下振動信號。
2、系統介紹
該采集系統以C8051F060 SoC為核心,C8051F060內部集成有ADC和DMA。另外,以大容量存儲芯片K9F2808作為數據存儲器。系統結構如圖1所示。
圖1 信號采集系統結構圖
該系統應用于井下相關信號的檢測裝置。由于通過壓力與振動傳感器所采集的壓力和振動信號比較微弱,故還需放大電路對信號進行調理放大。傳感器的輸出均為模擬信號,采集數據時會受到噪聲的干擾,為了消除噪聲并提高電路的共模抑制比和輸入阻抗,該采集放大電路使用了前置輸入緩沖器三運放結構。由于SoC內的ADC0只能采集正信號,因而在經過調理放大電路后設有偏置電路,將-5V ~ +5V的電壓轉換為0V~+2.5V,以利于信號的采集。
CPU控制多路選擇開關進行信號的采集,然后通過ADC轉換,在DMA的傳送方式下,采集的數據直接寫入存儲器K9F2808中,在DMA存儲數據的同時,ADC也一直進行采集。經軟件測試,即采用SoC內集成的定時器2記錄采集一頁512個字節所需時間是1.277ms,而向片外存儲器K9F2808寫一頁數據需要0.722ms。
ADC采集一頁的時間小于DMA向片外寫一頁數據的時間,因而可實現數據采集與存儲的同時進行,而不會出現數據覆蓋丟失現象,實現快速準確的數據采集。
3、硬件部分
C8051F060單片機與51系列單片機內核兼容,其內部集成有兩個16位SAR(逐次比較)ADC和一個DMA功能模塊。片內有4352個字節的數據存儲器、64KB 閃存和64KB的數據存儲器接口,可以進行系統編程。兩個SAR ADC的精度為16位,可作為兩個單端或一個差分轉換器。若采用DMA直接將數據存儲到RAM中,就不再需要額外的軟件開銷。
K9F2808UOC存儲器是NAND結構的超大容量數據存儲器件,在MP3、U盤、數碼相機和PDA中有廣泛的應用。其電源電壓為1.7V~3.6V,體積小,功耗低,按頁進行讀寫,按塊擦除,通過I/O口分時復用作為命令/地址/數據,端口支持實時雙向輸入輸出。將閃存的各控制端口與SoC的P3口連接,通用I/O口與SoC的P7口連接,通過控制SoC口線的輸出,可實現對FLASH存儲器的讀、寫、擦除操作。圖2為芯片的接口電路圖。
圖2 芯片接口電路圖
4、A/D轉換與數據存儲
C8051F060的ADC子系統中集成了跟蹤保持電路、可編程窗口檢測器和DMA接口。這兩個ADC可以被配置為兩個獨立的單端方式ADC或組成一個差分對。數據轉換方式、窗口檢測器和DMA接口都可用軟件特殊功能寄存器來控制。ADC控制寄存器ADCnCN中的ADnEN位被置為邏輯1時ADCn被使能。該系統選用的ADC0有4種轉換啟動方式,由ADC0CN中的ADC0啟動轉換方式位(AD0CM1,AD0CM0)的狀態決定。該測控系統軟件采用定時器3溢出進行定時的連續轉換采集。將ADC初始化后,定時器3溢出一次ADC就自動采集一次。當采集完一頁的數據后,在DMA傳送方式下,采集的數據直接存儲到片外的閃存存儲器K9F2808中,并對該芯片進行讀、寫及擦除。
在該測控系統中,采用VB語言編寫上位機程序,采用C51語言編寫下位機程序。通過上位機來控制下位機執行相應的任務。由于該系統的SoC集成有UART,可以通過PC機的RS232串口實現通信,下位機每次接收到任務命令后,下位機程序跳入到相應的串行中斷程序中執行任務。下位機主程序包括連續啟動DMA程序、調用片外存儲器K9F2808UOC的寫程序,將用DMA方式采集的512字節送到K9F2808中,實現采集與存儲同步進行。主程序流程圖如圖3所示。子程序主要包括:晶振初始化、端口初始化、串口初始化、ADC初始化、DMA初始化、定時器3初始化、片外存儲器K9F2808UOC的擦除程序、延遲程序等。
圖3 下位機主程序流程圖
這里,晶振初始化主要完成對外部振蕩器使用的配置;端口初始化完成對端口p0~p7的初始化配置;串口初始化完成對定時計數器T0和T1的配置及對波特率的設定;ADC0初始化對ADC0進行配置;DMA0初始化主要完成對DMA0的配置,設置外部數據存儲器開始值,ADC0開啟模式等;定時器3初始化主要完成對重裝載值的設定,激發ADC0進行采集;片外存儲器K9F2808的擦除程序完成對K9F2808內數據的擦除。
5、性能測試與室內實驗
硬軟件調試結束后,我們把測試電路和傳感器送到石油儀器儀表質量檢驗中心的標準振動臺上,在(10g,1000Hz)、(25g,100Hz)、 (25g,200Hz)、(25g,1000Hz)條件下對測試系統進行標定,證明對振動幅度的測量精度為1%,振動頻率的測量精度為5‰,這樣的精度可以滿足導向鉆井系統對振動測量的要求。
-
芯片
+關注
關注
456文章
50936瀏覽量
424674 -
cpu
+關注
關注
68文章
10878瀏覽量
212167 -
數據采集
+關注
關注
39文章
6157瀏覽量
113760
發布評論請先 登錄
相關推薦
評論