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