用SoC的DMA方式記錄井下鉆具的振動(dòng)
軟件設(shè)計(jì)
本文引用地址:http://www.ex-cimer.com/article/84906.htm在該測(cè)控系統(tǒng)中,采用VB語言編寫上位機(jī)程序,采用C51語言編寫下位機(jī)程序。通過上位機(jī)來控制下位機(jī)執(zhí)行相應(yīng)的任務(wù)。由于該系統(tǒng)的SoC集成有UART,可以通過PC機(jī)的RS232串口實(shí)現(xiàn)通信,下位機(jī)每次接收到任務(wù)命令后,下位機(jī)程序跳入到相應(yīng)的串行中斷程序中執(zhí)行任務(wù)。下位機(jī)主程序包括連續(xù)啟動(dòng)DMA程序、調(diào)用片外存儲(chǔ)器K9F2808UOC的寫程序,將用DMA方式采集的512字節(jié)送到K9F2808中,實(shí)現(xiàn)采集與存儲(chǔ)同步進(jìn)行。主程序流程圖如圖3所示。子程序主要包括:晶振初始化、端口初始化、串口初始化、ADC初始化、DMA初始化、定時(shí)器3初始化、片外存儲(chǔ)器K9F2808UOC的擦除程序、延遲程序等。
圖3 下位機(jī)主程序流程圖
這里,晶振初始化主要完成對(duì)外部振蕩器使用的配置;端口初始化完成對(duì)端口p0~p7的初始化配置;串口初始化完成對(duì)定時(shí)計(jì)數(shù)器T0和T1的配置及對(duì)波特率的設(shè)定;ADC0初始化對(duì)ADC0進(jìn)行配置;DMA0初始化主要完成對(duì)DMA0的配置,設(shè)置外部數(shù)據(jù)存儲(chǔ)器開始值,ADC0開啟模式等;定時(shí)器3初始化主要完成對(duì)重裝載值的設(shè)定,激發(fā)ADC0進(jìn)行采集;片外存儲(chǔ)器K9F2808的擦除程序完成對(duì)K9F2808內(nèi)數(shù)據(jù)的擦除。
性能測(cè)試與室內(nèi)實(shí)驗(yàn)
硬軟件調(diào)試結(jié)束后,我們把測(cè)試電路和傳感器送到石油儀器儀表質(zhì)量檢驗(yàn)中心的標(biāo)準(zhǔn)振動(dòng)臺(tái)上,在(10g,1000Hz)、(25g,100Hz)、 (25g,200Hz)、(25g,1000Hz)條件下對(duì)測(cè)試系統(tǒng)進(jìn)行標(biāo)定,證明對(duì)振動(dòng)幅度的測(cè)量精度為1%,振動(dòng)頻率的測(cè)量精度為5‰,這樣的精度可以滿足導(dǎo)向鉆井系統(tǒng)對(duì)振動(dòng)測(cè)量的要求。
參考文獻(xiàn):
1. 周靜,付鑫生.利用敏感井底鉆具振動(dòng)傳遞地面信息的方法[J] . 石油學(xué)報(bào),2005.2
2. 童長飛. C8051F系列單片機(jī)開發(fā)與C語言編程[M]. 北京:北京航空航天大學(xué)出版社,2005
3. C8051F060X Data sheet
4. K9F2808(16)Q(U)OC datasheet
評(píng)論