<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

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

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

作者:丁旭東,周靜,李炳建 時(shí)間:2008-07-18 來(lái)源:電子測試 收藏

  0引 言

本文引用地址:http://dyxdggzs.com/article/85907.htm

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

  1 系統介紹

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

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

  2硬件系統

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

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

 

  3下位機軟件

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

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

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

 

  4上位機軟件

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

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

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

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

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

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

 

 


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


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>