關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于MATLAB GUI的鉆井工具姿態(tài)采集處理系統(tǒng)

基于MATLAB GUI的鉆井工具姿態(tài)采集處理系統(tǒng)

作者:丁旭東,周靜,李炳建 時間:2008-07-18 來源:電子測試 收藏

  0引 言

本文引用地址:http://www.butianyuan.cn/article/85907.htm

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

  1 系統(tǒng)介紹

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

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

  2硬件系統(tǒng)

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

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

 

  3下位機(jī)軟件

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

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

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

 

  4上位機(jī)軟件

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

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

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

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

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

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

 

 


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


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉