0 前言
在數控自動控制領域中,所謂運動控制就是對機床機械裝置運動部件的位置、速度、加速度等參數進行宴時的控制管理,使其按照預期的運動軌跡和規定的運動參數進行運動。由于工業控制計算機IPC(Industrial Personal Computer)強大而完善的功能,基于Pc標準總線的運動控制器已經在數控系統控制領域得到了廣泛的應用。但是;赑C標準總線的運動控制器由于在硬件設計上采用板卡設計,這種結構的運動控制器不宜長期工作在環境惡劣的工業現場(有振動、粉塵、油污等)。因此近年來,開放式運動控制器成為數控機床工業控制領域研究的熱點。
Linux是一個遵循POSIX(Portable Operating SystemInterface)標準的多用戶多任務且具有先進的網絡特性開源操作系統,可以方便的進行自主知識產權的軟件開發。但Linux不是一個“硬”實時操作系統,其內核為非搶占式的(no-preemptive),實時任務不能夠得到保證,而運動控制器本身是綜合性很強的技術,具有明顯的實時控制、實時交互和實時監測特性。本文研究了RTAI(Real-time Application Interface)的實現原理和基于Mpe5200實時嵌入式Linux運動控制器的架構分析,并實現其在數控系統中的應用。
1 實時Linux的實現
運動控制器作為一個嵌人式系統,除了具備一個高性能的嵌入式微處理器,還應該擁有一個與處理器配合的嵌入式操作系統。嵌入式操作系統除了具備一般操作系統最基本的功能,如任務調度、同步機制、中斷處理和文件功能外,還應該具有以下特點:可移植性、可裁減性、實時性、強穩定性和良好的圖形支持。Linux是全面多任務的32位開放式操作系統可以使運動控制器具有可擴充、可移植、可靠性高和兼容性好等優點,非常適合作為開放式運動控制器的開發平臺。
到目前為止,全球在Linux平臺下開發的具有硬實時功能的系統主要有兩個:R1unIlx和RTAI。RTbn一最早是美國新墨西哥理工學院的一個研究項目,它是由Victor Yodaiken提出設計思想,由MichaelBambanov實現的硬實時操作系統。RTAI(Real Timepplication Interface)是由意大利米蘭理工學院航天工程系發起開發的一個遵循GNU的開源項目,RTAI已經支持1386,PowERPC,ARM,MIPS和M68k.nommu等處理器。是目前支持處理器最多的linux實時解決方案之一。
RTAI的實現機制與RTLinux非常相似,唯一不同的是RTAI在Linux上定義了一個實時硬件抽象層RTHAL(Real·time Haldwam Abstraction Layer)。并針對RTAI開發了LXRT(Linux.RT)。讓RTAI可以調用Linux本身的系統調用功能,如圖1所示。
圖1加載RTAI的Linux內核結構
RTAI修改了linux/arch/i386中與體系結構相關的代碼而形成了RTHAL層,RTHAL的作用是使RTAI能夠在實時任務需要運行的任何時刻中斷Linux。引入RTAI后,Linux的功能沒有改變,但是作為優先級最低的任務運行,并且只有在沒有實時任務的時候它才能執行。這樣做的好處在于將直接修改linux核心的代碼減到最小,這使得將RTAI移植到linux內核的工作量減至最低。
RTAI實現的主要模塊有RTAI模塊、SCHED模塊、FIFO模塊、SHM模塊、LXRT模塊,它們能動態裝入和卸載。用戶自己的實時任務是在RTAI裝入后再載人?梢酝ㄟ^編輯/etc/rc.sysinit文件,在系統啟動時將RTAI模塊和用戶實時模塊加載到Linux內核中,當實時模塊加人到內核后,實時模塊中創建的線程和函數就可以訪問系統的底層資源。
2 運動控制器系統設計
運動控制器由硬件系統和軟件系統兩大部分組成。按照模塊化設計思路,將運動控制器的體系結構劃分為用戶層、內核層和設備層(圖2所示)。其中內核層和設備層兩部分組成了運動控制器的開放式平臺。這種獨立的層次結構使得運動控制器易于實現數控系統上的開放式應用。
圖2運動控制器平臺體系示意圖
用戶層(虛框內)就是開放式運動控制器的用戶程序空間,運動控制器的用戶軟件是根據應用對象進行特殊化設計的,可以靈活更換。開放式運動控制器的設計思路是:無需更改底層軟/硬件模塊,根據被控對象的特征設計不同的模塊化用戶軟件就能夠滿足不同的運動控制任務,體現出運動控制器開放式的特性。“用戶軟件模塊化”是開放式運動控制器最大的特征,而“用戶軟件模塊化”恰好也是Linux提供的一種機制:Linux的內核和用戶程序是完全分離的,用戶程序通過調用設備操作接口就能夠實現對硬件設備的操作。
內核層的設計按照兩條相互獨立的線路展開:移植Linux操作系統和開發設備驅動程序。從圖2可以看到,運動控制器的內核層設計最為復雜.這部分的設計是與Linux內核機制緊密相關的。運動控制器大量的硬件設備是由Linux設備驅動程序提供用戶軟件設備操作接口的.圖2中內核層的“運動控制接口”和“現場通信接口”是開放式運動控制器最主要的設備接口。設備驅動程序由于處于Linux內核的最底層,因此相對于上層用戶軟件又稱之為底層軟件。
圖3 MPC5200微處理器功能框圖
設備層是運動控制器的硬件層,在這部分設計過程中需要完成運動控制器的硬件設計,電路設計。嵌入式運動控制器的硬件設計與傳統的基于PC機的運動控制器設計有很大不同之處?紤]到面向特殊領域的應用特性,嵌入式系統不能使用桌面系統那樣豐富的硬件資源,因此標準的Pc機硬件無法直接應用到嵌入式運動控制器中去,這些決定了開放式運動控制器的硬件設計具有其特殊性。
2.1 硬件結構設計
運動控制器微處理器采用的是摩托羅拉公司于2003年下半年推出的新型的具有廣泛發展前景的PowERPC MPC5200.其內部采用了雙處理器結構,有一個專門負責通信的協處理器,體現了數據通信的專業構架。并通過雙端口內存(這是種極快的數據交換方式)與主處理器通信,從而使主處理器負擔大幅度下降。其芯片內部含有豐富的實用型外設。
基于PowERPC內核的MPC5200”“是一顆低功耗、處理速度達760MIPS的嵌入式處理器。它支持以太網、USB、PCI、ATA、12S、12C、SPI、串行接口、J1850和控制區域網(CAN)。同時,它還支持DDR存儲器,并集成了一個雙精度的浮點單元(FPU),如圖3所示。
MPC5200運動控制器是一款非常適合于工業控制領域應用的運動控制器,開放化的特點使其能夠應用于多種機械設備上,而通過CAN總線互連組建的現場總線運動控制系統是一種全新的分布式控制系統。因此Mpc5200運動控制器完全可以滿足現代數控系統高速化、智能化、網絡化、集成化、開放化的需求。
2.2 軟件結構設計
在實時Linux下,為了保證數控系統的實時任務能夠即時響應。所有和實時相關的任務都必須放在內核層下,每個任務用一個獨立的內核進程來執行,實時進程是通過調用RTAI的rt—task—init()函數來實現的。而非實時任務則放在用戶層下,它們在任何時候都不會打斷實時任務的運行,只有在實時任務結束后才會執行。
嵌入式數控的基本功能由各種功能模塊共同來實現的。在以linux為操作系統的開放式平臺上集成RTAI的實時內核。通過模塊化的設計思想,可以將整個控制系統按照實時性的要求分為用戶層模塊,內核層實時模塊兩個大的模塊,同時在兩個大的模塊下又根據不同的子功能分為代碼解釋模塊,人機交互及刀具仿真圖形模塊,文件管理模塊,位置控制模塊,插補運算模塊,狀態監測模塊等,如圖4所示。
圖4系統軟件結構圖
內核層和用戶層之間進程的通訊主要是依靠RTAI提供的實時nFo,通過調用函數rlf_create()來創建管道實現數據傳輸。FIFO的通信是單向的,因此用戶層和內核層的信息交互必須至少創建兩條管道才能實現。
3 實時控制的軟件實現
根據對開放式運動控制器的運行機制分析,將各實時任務模塊分別設置相應的定時器工作方式。優先級及通信隊列等。
實時功能模塊實現方式如下:位置控制任務moor()決定電機控制精度。計算下一周期的實際坐標增量,輸出到伺服單元驅動步進電機工作。因此將其設計成周期性RTAI線程.運行周期為4ms,1級優先權。
功能控制任務control()是利用fifo從用戶層向內核層傳遞控制命令,并實現對I/O口的控制。此任務采用實時中斷策略,在接受到控制命令,內核掛起位置控制任務。
狀態檢測任務monitor()要對狀態進行實時監控。因此設置此任務運行周期為lOms.優先級為3級。運動控制器軟件的所有實時任務和函數包含在實時模塊main—program.o中。通過編{t}/etc/rc.sysinit文件,在系統啟動時加載到Linux內核中。當實時模塊加入到內核中。實時模塊中創建的線程和函數就可以訪問系統的底層資源。
實時任務模塊的加載和卸載在Linux中由initmodule()和cleanup—module()兩個函數實現的,同時可以通過這兩個函數進行資源的分配和回收,以及線程和處理函數的創建。
4 結束語
本文在深入研究Linux實時操作系統的基礎上。將Linux操作系統移植到數控機床上具有實用價值的嵌人式微處理器MPC5200上,證明了數控嵌人式系統完全可以實現一定程度的開放性,且移植Linux也是開發嵌人式數控運動控制器操作平臺一種比較好的方案。具有明顯的先進性和實用性。
通過一系列的實驗分析和應用研究,現已成功將MPC5200運動控制器應用于自主開發的一種基于CAN總線的嵌入式線束機控制系統,該系列機床已經通過項目成果鑒定,目前正在進行產業化推廣工作。在此也希望本文能為開發和推廣我國具有自主知識產權的嵌人式Linux運動控制系統提供一定的借鑒和幫助。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文網址:http://www.guhuozai8.cn/html/solutions/14019311580.html