摘要:本文主要設計了一個用在壓裝監測設備上的嵌入式實時數據采集系統。該數據采集系統采用單片機C8051f060作為主控芯片,并在上面移植了UCOS-II實時操作系統。C8051f060集成了許多該采集系統的功能模塊,使得該系統外圍驅動設備很簡單,由于引入了UCOS-II實時操作系統,在程序的編寫調試和功能模塊的擴展都得到大大簡化。系統采用多任務并行的運行方式,使得采集和發送數據具有很好的實時性,從而保證整個壓裝監測設備能穩定地運行,并大大提高壓裝零件判斷的準確率。 引言 隨著經濟和社會的發展,我國的工業水平和信息技術水平也得到了飛速發展。其中工業中最為常見的零部件組裝和裝備壓裝監測設備也得到了不斷的改進。壓裝的過程其實就是按規定的技術要求將零部件進行組培和連接,使之成為半成品或者成品的工藝過程[1]。如圖1所示,就是將兩個零部件進行過盈無鍵組裝配合,使之牢固結合在一起。工業中很多機械設備都是通過這種壓裝方式組合到一起的,包括火車輪對、軸承、汽車發動機、變速器、底盤等關鍵部件[2]。壓裝的質量決定了以后產品的使用質量和人民的生命財產都息息相關。我們知道壓裝質量的評判標準,主要是根據壓裝過程中壓力和位移的變化曲線來確定的[3]。而壓力位移曲線的獲取這就需要由良好的運行穩定的數據采集系統來提供。基于此,本文提出一種基于UCOS-II的數據采集系統,在保證實時準確的數據的基礎上,使整個壓裝監測設備能準確地實時監測壓裝曲線[4],自動判斷壓裝結果,并將結果進行存儲和統計。 1 壓裝監測設備系統總述 如圖2所示,該壓裝監測系統主要由兩部分組成,第一部分是由主控芯片S3C2440構成核心控制和數據處理單元[5];它實現壓力位移的數據曲線圖繪制、數據的分析處理、數據的存儲以及人機交互相關功能的實現[6]。第二部分是由C8051f060作為控制單元的數據采集系統,主要的任務是數據實時采集、數據發送、指令的接收以及PLC控制。系統的大概工作流程如下:首先通過人機交互S3C2440發送指令給C8051f060,C8051f060處理指令之后通過PROFIBUS總線實現對PLC的開始或停止等相關操作,當接收到開始指令時,C8051f060會同時采集壓裝過程的位移和壓力數據,并將這些數據實時發送給S3C2440,最后S3C2440會對這些數據進行曲線圖繪制、結果判定等操作。 2 壓裝數據采集系統 本文的重點是對壓裝設備的采集系統進行論述。根據上面的系統總述,我們知道該數據采集系統必須達到以下方面的要求。第一,ADC的選擇,ADC必須是精度足夠高,由于同時采集壓力和位移數據,并且采集的數據量很大,所以必須選擇多通道的高速高精度AD轉換器[7]。第二,數據傳輸能力,由于設備壓裝一次所需要的時間很短,為了保證采集之后的數據能迅速并實時地在ARM上繪制并判斷,所以數據傳輸必須采用高速的傳輸協議。第三,I/O口的數量,由于該數據采集系統除了采集數據之外,它還得實現對PLC的控制,所以在除去其它包括存儲芯片I/O,采集I/O,數據傳輸I/O等I/O口之外,必須還得留有多余的I/O口對PLC進去控制,所以I/O口數量要求比較多。 2.1 數據采集系統硬件設計 鑒于以上要求,我們選取C8051f060作為該數據采集系統的控制芯片[8]。C8051f060是完全集成的混合信號片上系統型MCU,里面具有兩個16位精度1Msps最高轉換速度的AD轉換器,轉換數據直接存儲到RAM中,不需額外軟件開銷,可同時使用的硬件SMBus,高速SPI及兩個UART串行端口,具有 59 個數字 I/O 引腳[9]。其中串口和SPI口都可直接和ARM連接無需其它驅動電路。傳感器方面,該系統采用壓力傳感器C9B,位移傳感器PY1,然后對其產生的電壓信號進行濾波放大送到單片機的AD采集端。 2.2 數據采集系統軟件設計 由于該數據采集系統是以8為單片機為控制控制芯片,它得同時處理數據采集轉換、SPI數據傳輸、串口接收、PLC控制等多個任務[10]。而且對于壓裝系統來說,由于機器壓裝一次速度很快,并且所采集的數據量也很大,所采集及傳輸必須具有很高的實時性。如果用傳統的單片機編寫程序模式,它的程序規模會很大,系統調試復雜,特別在這種需要運行多個并行任務的情況,就顯得有些力不從心,更主要的是系統的穩定性和實時性很難得到保障。 所以本數據采集系統采用能實現多任務同時運行的UCOS-II實時操作系統[11]。UCOS-II是有Micrium公司提供的一款可移植、可裁剪的小型多任務實時操作系統,它具有執行效率高、占用空間小、實時性優良和擴展性良好的特點。雖然體積小但它包含了任務調度、任務管理、時間管理、內存管理和任務間的通信和同步等功能。UCOS-II中最大可支持64個任務,分別對應優先級為0—63,高優先級任務可以搶占低優先級CPU資源。多任務操作系統是把CPU的執行分為多個很多個時間塊,任務A執行完后它會把CPU的使用權交給任務B,而且高優先級的任務每執行會主動放棄一段CPU的使用時間,把使用權交給其它的任務,這樣多個任務依次輪轉運行,由于時間塊很短,這些任務就好像是在同步并行運行了[12]。 本數據采集系統如圖3所示將其功能模塊劃分為四個任務:數據采集任務、數據發送任務、PLC通信任務、串口讀寫任務。 (1)數據采集任務:數據采集任務就是每次壓裝開始時,通過C8051f060單片機片內的AD轉換器進行雙通道的數據采集,采集的速度為5kHz。并同時將采集到的數據通過DMA方式保存到片外RAM中去。壓裝停止時,停止采集。 (2)數據發送任務:數據發送任務是將放在片外RAM中所采集的壓力和位移數據,通過SPI協議傳輸給ARM處理器,ARM再對這些數據進行曲線圖繪制和壓裝結果的判斷等操作。在片外RAM沒有采集數據時,該任務會處于休眠等待狀態。 (3)PLC通信任務:該系統通過在C8051f060上設置了14個I/O口與PLC通信,7個輸入和7個輸出。該任務是一方面監測ARM傳送過來的指令,然后對7個輸出口進行操作,另一方面不斷監測7個輸入I/O口,觀察PLC有沒有發送指令給ARM。 (4)串口讀寫任務:串口讀寫任務簡單來講就是接收并讀取來自ARM經過RS232發送過來的指令,然后發送PLC給ARM的一些信號。 其中最關鍵的核心任務是數據發送和數據采集這兩個任務。因為只有等運行采集任務,在片外RAM中保存了數據之后,數據發送任務才能發送。所以在任務的調度上為了協調好兩者的關系,于是在這兩個任務之中加入了一個任務之間通信的信號量。開始時信號量為0表示RAM中沒有采集的數據,即數據發送任務不能進行,當RAM中保存了一個數據之后,信號量置1,數據發送任務就可以運行了,當數據發送速度大于數據的采集速度時,即RAM中的數據為零時,這時候信號量又置0,使得數據發送任務等待數據采集任務。所以加入信號量之后就能保證任務之間能正常有秩序的運行。 3 總結 UCOS-II是一款實用性很強的小型嵌入式實時操作系統[13],隨著整個嵌入式行業的發展,它的應用也越來越廣泛,優越性也愈加明顯。在此壓裝監測設備上,筆者把它移植到了功能強大的C8051f060單片機上,通過多任務并行執行調度方式,實現了壓裝監測設備的一個核心單元,即實時數據采集系統。UCOS-II與C8051f060的結合,使得該數據采集系統能實時準確地采集到壓力和位移數據,并快速的發送給上層處理單元,使得整個壓裝監測設備能正常穩定地運行,并取得預期效果。 參考文獻: [1]尹珊波.滾動軸承壓裝力與壓裝曲線的研究[D].長沙:中南大學,2005. [2]韓建斌.輪對壓裝曲線記錄及其自動判斷系統的研究[D].武漢:武漢理工大學,2012. [3]宋威巖,劉儉.新型位移一一壓力曲線軸承IE裝機的原理[J].哈爾濱鐵道科技,2000 (4):23-25. [4]李明貴.面向壓裝設備的實時檢測系統的軟件功能設計[D].廣州:廣東工業大學,2013. [5]許偉,林彩娥.Linux基礎學習篇(第二版)[M].人民郵電出版社,2009. [6]盧華偉,秦品健,鄭銳.基于Qt/Qwt的操作監控系統的設計與實現[J].微計算機信息.2010,26(1-1):72-75. [7]韓小濤,張智杰.高精度模數轉換器AD676的原理及應用[J].電測與儀表,2001,38(7):48-50. [8]Silicon Lab Datasheet of C8051F Microcontroller C8051F060[M]. Silicon Lab oratories , 2001. [9]鮑可進.C8051F單片機原來及應用[M].北京:中國電力出版社,2006. [10]鄧福偉,劉振興,周恒.多通道數據采集系統的設計[J].微訃算機信息. 2008.24(9-1):148-150. [11]任哲.嵌入式實時操作系統uC/OS-II 原理及應用(第二版)[M].北京:北京航空航天大學出版社,2009. [12]Jean J . Labrosse ,邵貝貝譯.uC/OS-II-源碼公開的實時嵌入式操作系統(第二版 ) [M].北京:北京航空航天大學出版社,2003. [13]桑楠.嵌入式系統原理及應用開發技術[M].北京:北京航空航天大學出版社,2002. |