用SoC的DMA方式記錄井下鉆具的振動
引言
本文引用地址:http://m.butianyuan.cn/article/84906.htm從上個世紀九十年代起,電子技術(shù)在鉆井井下得到應(yīng)用。但井下鉆具的振動會給很多傳感器帶來不利影響。
特別是對測量井下鉆頭姿態(tài)的慣性導(dǎo)航傳感器影響巨大,在隨鉆振動環(huán)境中,如果對信號不作處理,根本就不能測量出正確的井斜角和方位角,也就無法實現(xiàn)井眼軌跡隨鉆控制的要求。本文介紹應(yīng)用SoC芯片中的DMA技術(shù)對振動的高速采集和存儲功能的實現(xiàn)方法,并給出了鉆井環(huán)境中測試的結(jié)果。
方法的提出
傳統(tǒng)的數(shù)據(jù)采集方法采用CPU直接控制的方式進行數(shù)據(jù)采集,數(shù)據(jù)傳送需要經(jīng)過CPU的中轉(zhuǎn)才能存入存儲器,傳送速度慢且采集速率受到CPU的限制,極大影響了系統(tǒng)的采樣頻率,不能滿足對振動信號高速采集的要求。而在DMA傳送方式下,數(shù)據(jù)傳送不經(jīng)過CPU,由DMA控制器來實現(xiàn)內(nèi)存和外設(shè)之間數(shù)據(jù)的直接快速傳送。在XTCS的測控系統(tǒng)中,CPU采用的SoC芯片中集成有DMA,將其與其它器件協(xié)同工作就可以實現(xiàn)采集與存儲的同時進行,達到高速采集信號的目的,得到高保真的井下振動信號。
系統(tǒng)介紹
該采集系統(tǒng)以C8051F060 SoC為核心,C8051F060內(nèi)部集成有ADC和DMA。另外,以大容量存儲芯片K9F2808作為數(shù)據(jù)存儲器。系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 信號采集系統(tǒng)結(jié)構(gòu)圖
該系統(tǒng)應(yīng)用于井下相關(guān)信號的檢測裝置。由于通過壓力與振動傳感器所采集的壓力和振動信號比較微弱,故還需放大電路對信號進行調(diào)理放大。傳感器的輸出均為模擬信號,采集數(shù)據(jù)時會受到噪聲的干擾,為了消除噪聲并提高電路的共模抑制比和輸入阻抗,該采集放大電路使用了前置輸入緩沖器三運放結(jié)構(gòu)。由于SoC內(nèi)的ADC0只能采集正信號,因而在經(jīng)過調(diào)理放大電路后設(shè)有偏置電路,將-5V ~ +5V的電壓轉(zhuǎn)換為0V~+2.5V,以利于信號的采集。
CPU控制多路選擇開關(guān)進行信號的采集,然后通過ADC轉(zhuǎn)換,在DMA的傳送方式下,采集的數(shù)據(jù)直接寫入存儲器K9F2808中,在DMA存儲數(shù)據(jù)的同時,ADC也一直進行采集。經(jīng)軟件測試,即采用SoC內(nèi)集成的定時器2記錄采集一頁512個字節(jié)所需時間是1.277ms,而向片外存儲器K9F2808寫一頁數(shù)據(jù)需要0.722ms。ADC采集一頁的時間小于DMA向片外寫一頁數(shù)據(jù)的時間,因而可實現(xiàn)數(shù)據(jù)采集與存儲的同時進行,而不會出現(xiàn)數(shù)據(jù)覆蓋丟失現(xiàn)象,實現(xiàn)快速準確的數(shù)據(jù)采集。
硬件部分
C8051F060單片機與51系列單片機內(nèi)核兼容,其內(nèi)部集成有兩個16位SAR(逐次比較)ADC和一個DMA功能模塊。片內(nèi)有4352個字節(jié)的數(shù)據(jù)存儲器、64KB 閃存和64KB的數(shù)據(jù)存儲器接口,可以進行系統(tǒng)編程。兩個SAR ADC的精度為16位,可作為兩個單端或一個差分轉(zhuǎn)換器。若采用DMA直接將數(shù)據(jù)存儲到RAM中,就不再需要額外的軟件開銷。
K9F2808UOC存儲器是NAND結(jié)構(gòu)的超大容量數(shù)據(jù)存儲器件,在MP3、U盤、數(shù)碼相機和PDA中有廣泛的應(yīng)用。其電源電壓為1.7V~3.6V,體積小,功耗低,按頁進行讀寫,按塊擦除,通過I/O口分時復(fù)用作為命令/地址/數(shù)據(jù),端口支持實時雙向輸入輸出。將閃存的各控制端口與SoC的P3口連接,通用I/O口與SoC的P7口連接,通過控制SoC口線的輸出,可實現(xiàn)對FLASH存儲器的讀、寫、擦除操作。圖2為芯片的接口電路圖。
圖2 芯片接口電路圖
A/D轉(zhuǎn)換與數(shù)據(jù)存儲
C8051F060的ADC子系統(tǒng)中集成了跟蹤保持電路、可編程窗口檢測器和DMA接口。這兩個ADC可以被配置為兩個獨立的單端方式ADC或組成一個差分對。數(shù)據(jù)轉(zhuǎn)換方式、窗口檢測器和DMA接口都可用軟件特殊功能寄存器來控制。ADC控制寄存器ADCnCN中的ADnEN位被置為邏輯1時ADCn被使能。該系統(tǒng)選用的ADC0有4種轉(zhuǎn)換啟動方式,由ADC0CN中的ADC0啟動轉(zhuǎn)換方式位(AD0CM1,AD0CM0)的狀態(tài)決定。該測控系統(tǒng)軟件采用定時器3溢出進行定時的連續(xù)轉(zhuǎn)換采集。將ADC初始化后,定時器3溢出一次ADC就自動采集一次。當采集完一頁的數(shù)據(jù)后,在DMA傳送方式下,采集的數(shù)據(jù)直接存儲到片外的閃存存儲器K9F2808中,并對該芯片進行讀、寫及擦除。
評論