0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于MATLAB環(huán)境下采用C8051F060實(shí)現(xiàn)鉆井井眼姿態(tài)監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)

電子設(shè)計(jì) ? 來(lái)源:郭婷 ? 作者:電子設(shè)計(jì) ? 2019-09-29 08:03 ? 次閱讀

1 、引 言

在石油鉆井中,準(zhǔn)確測(cè)量井眼姿態(tài)是進(jìn)行井眼軌跡控制的前提。為此,本文充分結(jié)合單片機(jī)MATLAB的優(yōu)點(diǎn),基于事件驅(qū)動(dòng)的通信機(jī)制,提出了一種MATLAB環(huán)境下基于GUI的PC與片上系統(tǒng)C8051F060實(shí)時(shí)串行通信的可視化數(shù)據(jù)處理方法,并實(shí)現(xiàn)了對(duì)井眼姿態(tài)的監(jiān)測(cè)。該方法極大地簡(jiǎn)化了開(kāi)發(fā)流程,提高了系統(tǒng)開(kāi)發(fā)效率。更重要的是MATLAB的運(yùn)算能力,為數(shù)據(jù)處理提供了保障。

2 、系統(tǒng)介紹

在本系統(tǒng)中,上位機(jī)是PC,下位機(jī)采用silabs公司推出的高速片上系統(tǒng)(SoC)C8051F060,使用三軸加速度計(jì)來(lái)敏感井眼姿態(tài)的變化。三軸加速度計(jì)兩兩正交,輸出正方向滿足右手螺旋法則,將三軸加速度的輸出值通過(guò)坐標(biāo)間的相互轉(zhuǎn)換,利用三角關(guān)系式即可得到當(dāng)前井眼空間姿態(tài)。由于PC串口與SoC的UART使用的是不同的電壓標(biāo)準(zhǔn),所以兩者間通過(guò)電壓轉(zhuǎn)換芯片sp3223相連。三軸加速度敏感到的姿態(tài)信號(hào)經(jīng)過(guò)調(diào)理電路和多路開(kāi)關(guān)后,被SoC內(nèi)部的A/D采樣,采集得到的數(shù)據(jù)存儲(chǔ)到片外存儲(chǔ)器。數(shù)據(jù)的存儲(chǔ)設(shè)備采用三星公司生產(chǎn)的超大容量存儲(chǔ)器K9K8G08U0M,滿足了系統(tǒng)長(zhǎng)時(shí)間采集存儲(chǔ)的需要。

借助GUI開(kāi)發(fā)的上位機(jī)軟件通過(guò)串口實(shí)現(xiàn)與下位機(jī)間的命令及數(shù)據(jù)傳輸,并對(duì)下位機(jī)采集的數(shù)據(jù)進(jìn)行處理。

3 、硬件系統(tǒng)

C8051060是完全集成的混合信號(hào)片上系統(tǒng)型MCU,其內(nèi)部CIP-51內(nèi)核采用流水線結(jié)構(gòu),指令執(zhí)行速度可達(dá)25 MIPS。使用如此高性能的單片機(jī)使得系統(tǒng)硬件電路設(shè)計(jì)大為簡(jiǎn)化,單片機(jī)的UART、串口通過(guò)電壓轉(zhuǎn)換模塊SP3223與PC進(jìn)行通信,而C8051060的雙串口為多系統(tǒng)的級(jí)聯(lián)提供了方便。數(shù)據(jù)采集功能由其內(nèi)部的ADC完成,采集的數(shù)據(jù)通過(guò)口線存儲(chǔ)到片外的大容量存儲(chǔ)器K9K8G08U0M。

系統(tǒng)硬件框圖如圖1所示,其中實(shí)線為數(shù)據(jù)流,虛線為控制流。系統(tǒng)工作時(shí),由上位機(jī)通過(guò)命令來(lái)控制下位機(jī)進(jìn)行相應(yīng)的操作。進(jìn)行數(shù)據(jù)采集時(shí),單片機(jī)控制電源傳感器供電。各路信號(hào)經(jīng)過(guò)各自的調(diào)理電路后被送入多路開(kāi)關(guān)。單片機(jī)通過(guò)控制多路開(kāi)關(guān)來(lái)選擇所要采樣的信號(hào),并將其送入SoC內(nèi)置的ADC進(jìn)行采樣。采樣值被存儲(chǔ)后等待與上位機(jī)的通信。

基于MATLAB環(huán)境下采用C8051F060實(shí)現(xiàn)鉆井井眼姿態(tài)監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)

4 、下位機(jī)軟件

下位機(jī)SoC接收到PC的下發(fā)消息后,通過(guò)串口中斷程序轉(zhuǎn)入相應(yīng)的子程序,執(zhí)行相應(yīng)操作,最后返回一個(gè)握手信號(hào)做為狀態(tài)標(biāo)志,確認(rèn)命令是否被正確執(zhí)行。

C8051060使用UART0與PC進(jìn)行串行通信。將該串口的工作方式設(shè)置為方式3,具有硬件地址識(shí)別和多處理器通訊的功能,并且用定時(shí)器1作為波特率發(fā)生器,設(shè)定波特率為115 200 b/s,每幀數(shù)據(jù)占11位--1個(gè)起始位,8個(gè)數(shù)據(jù)位,1個(gè)可編程的第九位,1個(gè)結(jié)束位。

該軟件的子程序包括:清參數(shù)區(qū)、清數(shù)據(jù)區(qū)、發(fā)送參數(shù)、接收參數(shù)、開(kāi)始采集、接收數(shù)據(jù)、復(fù)位等,各子程序的具體實(shí)現(xiàn)在此不進(jìn)行詳細(xì)描述。軟件框圖如圖2所示。

基于MATLAB環(huán)境下采用C8051F060實(shí)現(xiàn)鉆井井眼姿態(tài)監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)

5 、上位機(jī)軟件

本系統(tǒng)使用MATLAB提供的圖像用戶界面開(kāi)發(fā)環(huán)境(GUIDE)完成界面設(shè)計(jì)及上位機(jī)軟件編制。GUI“所見(jiàn)即所得”的編程方式簡(jiǎn)單明快,非常容易上手。本軟件借助MATLAB自帶的工具箱和系統(tǒng)中的Activex控件,編制了菜單欄和工具欄及各功能模塊,實(shí)現(xiàn)了命令、參數(shù)以及數(shù)據(jù)的雙向傳輸及顯示、數(shù)據(jù)的濾波處理及繪圖。

5.1 串行通信的實(shí)現(xiàn)

MATLAB本身是一個(gè)跨平臺(tái)的軟件,并不具備直接訪問(wèn)硬件的能力,但是可以通過(guò)對(duì)serial類的操作,實(shí)現(xiàn)MATLAB對(duì)串口的支持。

要想在MATLAB中使用串行口,首先要借助serial類建立串口對(duì)象,并在使用前將該串口對(duì)象打開(kāi)。數(shù)據(jù)傳輸完畢后,需關(guān)閉該串口對(duì)象,避免影響其他程序無(wú)法對(duì)該串口對(duì)象的使用。在系統(tǒng)不再使用該串口或者退出系統(tǒng)時(shí),需要將該串口對(duì)象清除并從MATLAB工作空間清除,避免占用內(nèi)存和影響其他系統(tǒng)使用。

在使用串口進(jìn)行數(shù)據(jù)傳輸時(shí),需要對(duì)串口進(jìn)行讀寫(xiě)操作。讀寫(xiě)串口的方式分為二進(jìn)制、文本兩種,類似于一般的文件操作。為了提高傳輸?shù)乃俣?,結(jié)合實(shí)際情況,本系統(tǒng)采用串口二進(jìn)制異步讀寫(xiě)方式。MATLAB程序通過(guò)串行口將命令發(fā)送到下位機(jī),并通過(guò)串行口接收下位機(jī)上傳的握手信號(hào)及數(shù)據(jù)。

串行通信的部分源碼如下:

基于MATLAB環(huán)境下采用C8051F060實(shí)現(xiàn)鉆井井眼姿態(tài)監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)

基于MATLAB環(huán)境下采用C8051F060實(shí)現(xiàn)鉆井井眼姿態(tài)監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)

使用串口進(jìn)行讀寫(xiě)操作時(shí),還需注意的一點(diǎn)就是對(duì)串口數(shù)據(jù)校驗(yàn)方式屬性(Parity)的設(shè)置,如果該設(shè)置與下位機(jī)軟件不匹配,將造成讀寫(xiě)錯(cuò)誤而又難以查找原因。

5.2 GUI界面中activx控件的使用

在MATLAB的GUIDE中所提供的基本控件非常少,難以滿足本系統(tǒng)的需要。因此本系統(tǒng)調(diào)用系統(tǒng)中的Activex控件FlexArray、FlexGrid實(shí)現(xiàn)了數(shù)據(jù)在表格中的顯示,調(diào)用axes控件實(shí)現(xiàn)了數(shù)據(jù)圖形繪制。

本程序中用到的控件(包括Activex控件),在其創(chuàng)建及屬性設(shè)置過(guò)程中,使用了全程序法、GUIDE屬性法和兩者相結(jié)合的方法。全程序法是只借助MATLAB提供的句柄功能創(chuàng)建及設(shè)置控件。而GUIDE屬性法類似VB的設(shè)計(jì)風(fēng)格,容易上手,但是這種方法使得m文件過(guò)于依賴fig文件。兩者結(jié)合的方法使得設(shè)計(jì)更加靈活。下面以GUIDE屬性法和全程序法相結(jié)合的方法創(chuàng)建、調(diào)用FlexArray控件為例,講解本系統(tǒng)中的數(shù)據(jù)顯示部分。基本控件的操作比較簡(jiǎn)單,在此不進(jìn)行詳述。

FlexArray控件的全稱是,該控件的文件即C:\WINDOWS\System32\VSFLEX3.OCX,如果本機(jī)上沒(méi)有的話,可以到網(wǎng)上下載,或到其他機(jī)子上復(fù)制,然后使用regsvr32.exe注冊(cè)即可。做好這些準(zhǔn)備工作之后,點(diǎn)擊GUI左側(cè)的工具箱中的Activex按鈕后,在設(shè)計(jì)區(qū)拖拉,彈出“Select an Activex Control”對(duì)話框,對(duì)話框中的“Activex Control List”列表框列出了在當(dāng)前計(jì)算機(jī)上注冊(cè)的所有Activex控件,在該列表框中選中 控件,單擊“Create”按鈕,該控件便在GUI的空白編輯區(qū)被創(chuàng)建。

創(chuàng)建成功后,GUI自動(dòng)為該控件生成的句柄做為圖形窗口句柄handles的成員被存儲(chǔ),對(duì)于第N個(gè)被創(chuàng)建的Activex控件,其句柄為handles.activexN,以后借用該句柄就可以通過(guò)函數(shù)來(lái)調(diào)用對(duì)應(yīng)的Activex控件??丶膶傩栽O(shè)置可以通過(guò)雙擊控件或者右鍵菜單打開(kāi)屬性設(shè)置窗口來(lái)進(jìn)行,也可以通過(guò)在m文件中通過(guò)set命令設(shè)定。通過(guò)get可以獲取Activex控件的屬性。

要讀取或設(shè)定FlexArray控件表格中某單元格的內(nèi)容時(shí),首先通過(guò)handles.activexl.row=i;handles.activexl.col=j;語(yǔ)句指向目標(biāo)單元格,然后通過(guò)fa=get(handles.activexl,′text′);fa=str2num(fa);語(yǔ)句將目標(biāo)單元格中的內(nèi)容轉(zhuǎn)換為數(shù)值賦給變量fa.通過(guò)set命令設(shè)置目標(biāo)單元格中的內(nèi)容,也可以設(shè)置固定欄標(biāo)題,只是注意對(duì)于行固定欄的行號(hào)是0,列固定欄的列號(hào)是0。

5.3 濾波處理及圖形繪制

如果使用采集到的傳感器輸出數(shù)據(jù)直接計(jì)算井眼姿態(tài),將會(huì)造成較大的誤差。主要原因是:(1)在鉆進(jìn)中,由于鉆進(jìn)環(huán)境惡劣,振動(dòng)和旋轉(zhuǎn)都會(huì)對(duì)傳感器輸出造成較大影響;(2)電路本身的電氣噪聲,對(duì)采集數(shù)據(jù)存在一定的影響。

在消除旋轉(zhuǎn)對(duì)實(shí)驗(yàn)數(shù)據(jù)的影響后,再借助MATLAB語(yǔ)言實(shí)現(xiàn)濾波功能,具體實(shí)現(xiàn)流程如下:根據(jù)實(shí)驗(yàn)數(shù)據(jù),在MATLAB的FDAtool工具箱中設(shè)計(jì)濾波器,濾波效果與實(shí)際情況吻合后,將該濾波器的傳遞函數(shù)使用MATLAB語(yǔ)言實(shí)現(xiàn),添加到“數(shù)據(jù)處理”功能按鈕對(duì)應(yīng)的程序中,完成數(shù)據(jù)處理的全部功能。

將濾波前后的數(shù)據(jù)借助axeS控件繪圖顯示,可以看到數(shù)據(jù)處理前后對(duì)真實(shí)井眼姿態(tài)描述的差異。

6 、應(yīng)用實(shí)例

本系統(tǒng)已經(jīng)應(yīng)用于智能旋轉(zhuǎn)導(dǎo)向系統(tǒng)的室內(nèi)實(shí)驗(yàn),圖3是在室內(nèi)直井鉆井平臺(tái)上進(jìn)行模擬鉆井實(shí)驗(yàn)的鉆進(jìn)過(guò)程中,利用本軟件進(jìn)行操作的截圖。該圖較好地展示了該軟件的功能:數(shù)據(jù)、命令的雙向傳輸及顯示、數(shù)據(jù)的后續(xù)處理功能。圖中曲線顯示區(qū)域黑線代表的是采集到的y軸重量加速度的數(shù)值GY,紅線代表的是經(jīng)過(guò)數(shù)據(jù)處理后的GY,不難發(fā)現(xiàn),后者的波動(dòng)范圍明顯縮小,曲線更為光滑。然后利用處理過(guò)的三軸加速度數(shù)值,對(duì)鉆井工具的空間姿態(tài)角進(jìn)行計(jì)算,能夠得到與實(shí)際情況較為吻合的空間姿態(tài),為礦井的鉆進(jìn)中空間姿態(tài)的準(zhǔn)確測(cè)量,提供了一個(gè)可供借鑒和參考的方法,能夠使鉆井過(guò)程中減少停鉆次數(shù),為提高鉆井效率和鉆井安全增加了保證。

基于MATLAB GUI的鉆井工具姿態(tài)采集

7 、結(jié)論

具有數(shù)據(jù)處理、串口操作控制功能和Activex控件合理調(diào)用功能的上位機(jī)軟件,再加上高性能片上系統(tǒng)C8051F060作為主芯片的井下電路,兩者組成了模擬鉆井姿態(tài)采集處理系統(tǒng),在115200的串口波特率下,實(shí)現(xiàn)了對(duì)多路井下信號(hào)的采集、處理,從實(shí)驗(yàn)結(jié)果來(lái)看,井斜角、工具面角等空間角度的計(jì)算結(jié)果與實(shí)際情況較為符合,完全適用于鉆井工具的空間姿態(tài)測(cè)量應(yīng)用。強(qiáng)大的數(shù)據(jù)處理功能,再加上人機(jī)操作界面,這使得MATLAB在工業(yè)現(xiàn)場(chǎng)監(jiān)控方面將獲得更廣闊的應(yīng)用。


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • matlab
    +關(guān)注

    關(guān)注

    179

    文章

    2947

    瀏覽量

    229558
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7377

    瀏覽量

    163152
  • soc
    soc
    +關(guān)注

    關(guān)注

    38

    文章

    4033

    瀏覽量

    217154
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    關(guān)于c8051f060單片機(jī)擴(kuò)展62256的問(wèn)題

    我使用c8051f060單片機(jī)進(jìn)行大量數(shù)據(jù)運(yùn)算,由于空間不夠,所以擴(kuò)展了一片62256,但是只能進(jìn)行1024個(gè)float數(shù)據(jù)(也就是8K的數(shù)據(jù))的運(yùn)算,再增加數(shù)據(jù)量的時(shí)候,輸出的數(shù)據(jù)就不對(duì)了,是存在什么問(wèn)題呢?
    發(fā)表于 01-06 15:39

    基于uCOS II嵌入式系統(tǒng)C8051F060應(yīng)用

    隨著集成電路的高速發(fā)展和CMOS工藝水平的不斷提高,系統(tǒng)級(jí)芯片SOC已經(jīng)開(kāi)始成為設(shè)計(jì)的主流。C8051F060單片機(jī)由美國(guó)Cygnal公司設(shè)計(jì)并制造,是一款完全集成的混合信號(hào)片上系統(tǒng)SOC,具有
    發(fā)表于 07-16 06:53

    怎么學(xué)習(xí)c8051f060內(nèi)置can通信?

    初入傳感器生產(chǎn)企業(yè),接到一個(gè)有關(guān)can通信的項(xiàng)目,請(qǐng)問(wèn)各位如何能快速學(xué)習(xí)c8051f060內(nèi)置can通信?由于本人水平較低,僅停留在天祥老師的10天學(xué)會(huì)單片機(jī)水平,求各位朋友能推薦一適合我學(xué)習(xí)的相關(guān)資料,視頻最好,或者通過(guò)哪些渠道可以進(jìn)行這方面的學(xué)習(xí)?
    發(fā)表于 03-24 22:40

    18位AD7674與C8051F060之間并口通信的接口電路設(shè)計(jì)

    18位 AD7674與 C8051F060 之間并口通信的接口電路設(shè)計(jì)
    發(fā)表于 12-22 07:49

    單片機(jī)C8051F060相關(guān)資料下載

    概述:C8051F060是一款與51系列單片機(jī)內(nèi)核兼容的單片機(jī),其內(nèi)核采用流水線結(jié)構(gòu),速度可達(dá)25MIPS(25MHz晶振),比普通的51單片機(jī)快10倍;其指令與標(biāo)準(zhǔn)系列51單片機(jī)兼容,因而掌握開(kāi)發(fā)過(guò)程非常容易;該芯
    發(fā)表于 04-06 08:34

    采用AD7674和C8051F060構(gòu)成的數(shù)據(jù)采集系統(tǒng),不看肯定后悔

    AD7674和C8051060簡(jiǎn)介AD7674與C8051F060的接口介紹AD7674如何采用NORMAL模式進(jìn)行數(shù)據(jù)采樣轉(zhuǎn)換?
    發(fā)表于 04-08 06:40

    請(qǐng)問(wèn)如何利用單片機(jī)C8051F060設(shè)計(jì)直流電機(jī)轉(zhuǎn)速測(cè)量系統(tǒng)

    本文介紹了一種由單片機(jī)C8051F060作為主控制器,使用霍爾傳感器進(jìn)行測(cè)最的直流電機(jī)轉(zhuǎn)速測(cè)量系統(tǒng)。
    發(fā)表于 04-09 06:47

    請(qǐng)問(wèn)AD7674與C8051F060的接口是如何設(shè)計(jì)的?

    AD7674和C8051060分別是什么?AD7674與C8051F060的接口是如何設(shè)計(jì)的?怎樣去設(shè)計(jì)AD7674與C8051F060的軟件?
    發(fā)表于 04-20 06:27

    基于新型高速高集成度單片機(jī)C8051F060

    簡(jiǎn)要介紹了智能勵(lì)磁功率柜的概念及C8051F060單片機(jī)的特點(diǎn),詳細(xì)論述了基于C8051F060的智能勵(lì)磁功率柜的結(jié)構(gòu)、原理以及與CAN總線通信的實(shí)現(xiàn)方法.該控制方案系統(tǒng)集成度高、硬件
    發(fā)表于 04-24 14:56 ?101次下載

    基于C8051F060的數(shù)據(jù)采集存儲(chǔ)系統(tǒng)的設(shè)計(jì)

    介紹一種基于C8051F060單片機(jī)和NAND Flash的數(shù)據(jù)采集存儲(chǔ)系統(tǒng),該系統(tǒng)實(shí)現(xiàn)3路信號(hào)采樣,每路采樣率為5KS/s,通過(guò)異步串行通信接口
    發(fā)表于 12-23 16:21 ?91次下載

    采用單片機(jī)C8051F060的智能功率柜的原理及設(shè)計(jì)

    采用單片機(jī)C8051F060的智能功率柜的原理及設(shè)計(jì) 概述:簡(jiǎn)要介紹了智能勵(lì)磁功率柜的概念及C8051F060單片機(jī)的特點(diǎn),詳細(xì)論述了基于C8051F060的智能
    發(fā)表于 03-06 17:13 ?1423次閱讀
    <b class='flag-5'>采用</b>單片機(jī)<b class='flag-5'>C8051F060</b>的智能功率柜的原理及設(shè)計(jì)

    C8051F060設(shè)計(jì)的超聲波導(dǎo)盲系統(tǒng)

    C8051F060設(shè)計(jì)的超聲波導(dǎo)盲系統(tǒng)  盲人既是普通人民中的一員,又是一個(gè)特殊群體,他們由于先天的生理缺陷在日常生活中比常人會(huì)遇到更多的不
    發(fā)表于 05-11 10:04 ?1781次閱讀
    <b class='flag-5'>C8051F060</b>設(shè)計(jì)的超聲波導(dǎo)盲<b class='flag-5'>系統(tǒng)</b>

    基于C8051F060的堿濃度計(jì)的研制_周怡君

    基于C8051F060的堿濃度計(jì)的研制_周怡君
    發(fā)表于 03-19 11:33 ?11次下載

    基于C8051F060單片機(jī)溫濕壓數(shù)字傳感器系統(tǒng)設(shè)計(jì)

    控制中心模塊的工作原理主要負(fù)責(zé)控制SHT15采集溫濕度數(shù)據(jù)以及采集和轉(zhuǎn)換經(jīng)過(guò)跟隨濾波之后的壓力數(shù)據(jù),然后對(duì)這些信號(hào)進(jìn)行數(shù)據(jù)處理(濾波處理、數(shù)據(jù)編幀、數(shù)據(jù)緩存等);同時(shí),由于C8051F060單片機(jī)自身具有CAN通信接口,因此它還可以實(shí)現(xiàn)數(shù)據(jù)傳輸。
    發(fā)表于 03-14 09:23 ?2186次閱讀
    基于<b class='flag-5'>C8051F060</b>單片機(jī)溫濕壓數(shù)字傳感器<b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)

    基于高性能單片機(jī)C8051F060的CAN節(jié)點(diǎn)設(shè)計(jì)方案

    電子發(fā)燒友網(wǎng)站提供《基于高性能單片機(jī)C8051F060的CAN節(jié)點(diǎn)設(shè)計(jì)方案.pdf》資料免費(fèi)下載
    發(fā)表于 10-25 10:46 ?2次下載
    基于高性能單片機(jī)<b class='flag-5'>C8051F060</b>的CAN節(jié)點(diǎn)設(shè)計(jì)方案