時(shí)間:2018-06-25 17:01:15來源:網(wǎng)絡(luò)轉(zhuǎn)載
0前言
在數(shù)控自動(dòng)控制領(lǐng)域中,所謂運(yùn)動(dòng)控制就是對(duì)機(jī)床機(jī)械裝置運(yùn)動(dòng)部件的位置、速度、加速度等參數(shù)進(jìn)行宴時(shí)的控制管理,使其按照預(yù)期的運(yùn)動(dòng)軌跡和規(guī)定的運(yùn)動(dòng)參數(shù)進(jìn)行運(yùn)動(dòng)。由于工業(yè)控制計(jì)算機(jī)IPC(IndustrialPersonalComputer)強(qiáng)大而完善的功能,基于Pc標(biāo)準(zhǔn)總線的運(yùn)動(dòng)控制器已經(jīng)在數(shù)控系統(tǒng)控制領(lǐng)域得到了廣泛的應(yīng)用。但是。基于PC標(biāo)準(zhǔn)總線的運(yùn)動(dòng)控制器由于在硬件設(shè)計(jì)上采用板卡設(shè)計(jì),這種結(jié)構(gòu)的運(yùn)動(dòng)控制器不宜長(zhǎng)期工作在環(huán)境惡劣的工業(yè)現(xiàn)場(chǎng)(有振動(dòng)、粉塵、油污等)。因此近年來,開放式運(yùn)動(dòng)控制器成為數(shù)控機(jī)床工業(yè)控制領(lǐng)域研究的熱點(diǎn)。
Linux是一個(gè)遵循POSIX(PortableOperatingSystemInterface)標(biāo)準(zhǔn)的多用戶多任務(wù)且具有先進(jìn)的網(wǎng)絡(luò)特性開源操作系統(tǒng),可以方便的進(jìn)行自主知識(shí)產(chǎn)權(quán)的軟件開發(fā)。但Linux不是一個(gè)“硬”實(shí)時(shí)操作系統(tǒng),其內(nèi)核為非搶占式的(no-preemptive),實(shí)時(shí)任務(wù)不能夠得到保證,而運(yùn)動(dòng)控制器本身是綜合性很強(qiáng)的技術(shù),具有明顯的實(shí)時(shí)控制、實(shí)時(shí)交互和實(shí)時(shí)監(jiān)測(cè)特性。本文研究了RTAI(Real-timeApplicationInterface)的實(shí)現(xiàn)原理和基于Mpe5200實(shí)時(shí)嵌入式Linux運(yùn)動(dòng)控制器的架構(gòu)分析,并實(shí)現(xiàn)其在數(shù)控系統(tǒng)中的應(yīng)用。
1 實(shí)時(shí)Linux的實(shí)現(xiàn)
運(yùn)動(dòng)控制器作為一個(gè)嵌人式系統(tǒng),除了具備一個(gè)高性能的嵌入式微處理器,還應(yīng)該擁有一個(gè)與處理器配合的嵌入式操作系統(tǒng)。嵌入式操作系統(tǒng)除了具備一般操作系統(tǒng)最基本的功能,如任務(wù)調(diào)度、同步機(jī)制、中斷處理和文件功能外,還應(yīng)該具有以下特點(diǎn):可移植性、可裁減性、實(shí)時(shí)性、強(qiáng)穩(wěn)定性和良好的圖形支持。Linux是全面多任務(wù)的32位開放式操作系統(tǒng)可以使運(yùn)動(dòng)控制器具有可擴(kuò)充、可移植、可靠性高和兼容性好等優(yōu)點(diǎn),非常適合作為開放式運(yùn)動(dòng)控制器的開發(fā)平臺(tái)。
到目前為止,全球在Linux平臺(tái)下開發(fā)的具有硬實(shí)時(shí)功能的系統(tǒng)主要有兩個(gè):R1unIlx和RTAI。RTbn一最早是美國新墨西哥理工學(xué)院的一個(gè)研究項(xiàng)目,它是由VictorYodaiken提出設(shè)計(jì)思想,由MichaelBambanov實(shí)現(xiàn)的硬實(shí)時(shí)操作系統(tǒng)。RTAI(RealTimepplicationInterface)是由意大利米蘭理工學(xué)院航天工程系發(fā)起開發(fā)的一個(gè)遵循GNU的開源項(xiàng)目,RTAI已經(jīng)支持1386,PowerPC,ARM,MIPS和M68k.nommu等處理器。是目前支持處理器最多的linux實(shí)時(shí)解決方案之一。
RTAI的實(shí)現(xiàn)機(jī)制與RTLinux非常相似,唯一不同的是RTAI在Linux上定義了一個(gè)實(shí)時(shí)硬件抽象層RTHAL(Real·timeHaldwamAbstractionLayer)。并針對(duì)RTAI開發(fā)了LXRT(Linux.RT)。讓RTAI可以調(diào)用Linux本身的系統(tǒng)調(diào)用功能,如圖1所示。
圖1加載RTAI的Linux內(nèi)核結(jié)構(gòu)
RTAI修改了linux/arch/i386中與體系結(jié)構(gòu)相關(guān)的代碼而形成了RTHAL層,RTHAL的作用是使RTAI能夠在實(shí)時(shí)任務(wù)需要運(yùn)行的任何時(shí)刻中斷Linux。引入RTAI后,Linux的功能沒有改變,但是作為優(yōu)先級(jí)最低的任務(wù)運(yùn)行,并且只有在沒有實(shí)時(shí)任務(wù)的時(shí)候它才能執(zhí)行。這樣做的好處在于將直接修改linux核心的代碼減到最小,這使得將RTAI移植到linux內(nèi)核的工作量減至最低。
RTAI實(shí)現(xiàn)的主要模塊有RTAI模塊、SCHED模塊、FIFO模塊、SHM模塊、LXRT模塊,它們能動(dòng)態(tài)裝入和卸載。用戶自己的實(shí)時(shí)任務(wù)是在RTAI裝入后再載人。可以通過編輯/etc/rc.sysinit文件,在系統(tǒng)啟動(dòng)時(shí)將RTAI模塊和用戶實(shí)時(shí)模塊加載到Linux內(nèi)核中,當(dāng)實(shí)時(shí)模塊加人到內(nèi)核后,實(shí)時(shí)模塊中創(chuàng)建的線程和函數(shù)就可以訪問系統(tǒng)的底層資源。
2 運(yùn)動(dòng)控制器系統(tǒng)設(shè)計(jì)
運(yùn)動(dòng)控制器由硬件系統(tǒng)和軟件系統(tǒng)兩大部分組成。按照模塊化設(shè)計(jì)思路,將運(yùn)動(dòng)控制器的體系結(jié)構(gòu)劃分為用戶層、內(nèi)核層和設(shè)備層(圖2所示)。其中內(nèi)核層和設(shè)備層兩部分組成了運(yùn)動(dòng)控制器的開放式平臺(tái)。這種獨(dú)立的層次結(jié)構(gòu)使得運(yùn)動(dòng)控制器易于實(shí)現(xiàn)數(shù)控系統(tǒng)上的開放式應(yīng)用。
圖2運(yùn)動(dòng)控制器平臺(tái)體系示意圖
用戶層(虛框內(nèi))就是開放式運(yùn)動(dòng)控制器的用戶程序空間,運(yùn)動(dòng)控制器的用戶軟件是根據(jù)應(yīng)用對(duì)象進(jìn)行特殊化設(shè)計(jì)的,可以靈活更換。開放式運(yùn)動(dòng)控制器的設(shè)計(jì)思路是:無需更改底層軟/硬件模塊,根據(jù)被控對(duì)象的特征設(shè)計(jì)不同的模塊化用戶軟件就能夠滿足不同的運(yùn)動(dòng)控制任務(wù),體現(xiàn)出運(yùn)動(dòng)控制器開放式的特性?!坝脩糗浖K化”是開放式運(yùn)動(dòng)控制器最大的特征,而“用戶軟件模塊化”恰好也是Linux提供的一種機(jī)制:Linux的內(nèi)核和用戶程序是完全分離的,用戶程序通過調(diào)用設(shè)備操作接口就能夠?qū)崿F(xiàn)對(duì)硬件設(shè)備的操作。
內(nèi)核層的設(shè)計(jì)按照兩條相互獨(dú)立的線路展開:移植Linux操作系統(tǒng)和開發(fā)設(shè)備驅(qū)動(dòng)程序。從圖2可以看到,運(yùn)動(dòng)控制器的內(nèi)核層設(shè)計(jì)最為復(fù)雜.這部分的設(shè)計(jì)是與Linux內(nèi)核機(jī)制緊密相關(guān)的。運(yùn)動(dòng)控制器大量的硬件設(shè)備是由Linux設(shè)備驅(qū)動(dòng)程序提供用戶軟件設(shè)備操作接口的.圖2中內(nèi)核層的“運(yùn)動(dòng)控制接口”和“現(xiàn)場(chǎng)通信接口”是開放式運(yùn)動(dòng)控制器最主要的設(shè)備接口。設(shè)備驅(qū)動(dòng)程序由于處于Linux內(nèi)核的最底層,因此相對(duì)于上層用戶軟件又稱之為底層軟件。
圖3MPC5200微處理器功能框圖
設(shè)備層是運(yùn)動(dòng)控制器的硬件層,在這部分設(shè)計(jì)過程中需要完成運(yùn)動(dòng)控制器的硬件設(shè)計(jì),電路設(shè)計(jì)。嵌入式運(yùn)動(dòng)控制器的硬件設(shè)計(jì)與傳統(tǒng)的基于PC機(jī)的運(yùn)動(dòng)控制器設(shè)計(jì)有很大不同之處。考慮到面向特殊領(lǐng)域的應(yīng)用特性,嵌入式系統(tǒng)不能使用桌面系統(tǒng)那樣豐富的硬件資源,因此標(biāo)準(zhǔn)的Pc機(jī)硬件無法直接應(yīng)用到嵌入式運(yùn)動(dòng)控制器中去,這些決定了開放式運(yùn)動(dòng)控制器的硬件設(shè)計(jì)具有其特殊性。
2.1 硬件結(jié)構(gòu)設(shè)計(jì)
運(yùn)動(dòng)控制器微處理器采用的是摩托羅拉公司于2003年下半年推出的新型的具有廣泛發(fā)展前景的PowerPCMPC5200.其內(nèi)部采用了雙處理器結(jié)構(gòu),有一個(gè)專門負(fù)責(zé)通信的協(xié)處理器,體現(xiàn)了數(shù)據(jù)通信的專業(yè)構(gòu)架。并通過雙端口內(nèi)存(這是種極快的數(shù)據(jù)交換方式)與主處理器通信,從而使主處理器負(fù)擔(dān)大幅度下降。其芯片內(nèi)部含有豐富的實(shí)用型外設(shè)。
基于PowerPC內(nèi)核的MPC5200”“是一顆低功耗、處理速度達(dá)760MIPS的嵌入式處理器。它支持以太網(wǎng)、USB、PCI、ATA、12S、12C、SPI、串行接口、J1850和控制區(qū)域網(wǎng)(CAN)。同時(shí),它還支持DDR存儲(chǔ)器,并集成了一個(gè)雙精度的浮點(diǎn)單元(FPU),如圖3所示。
MPC5200運(yùn)動(dòng)控制器是一款非常適合于工業(yè)控制領(lǐng)域應(yīng)用的運(yùn)動(dòng)控制器,開放化的特點(diǎn)使其能夠應(yīng)用于多種機(jī)械設(shè)備上,而通過CAN總線互連組建的現(xiàn)場(chǎng)總線運(yùn)動(dòng)控制系統(tǒng)是一種全新的分布式控制系統(tǒng)。因此Mpc5200運(yùn)動(dòng)控制器完全可以滿足現(xiàn)代數(shù)控系統(tǒng)高速化、智能化、網(wǎng)絡(luò)化、集成化、開放化的需求。
2.2 軟件結(jié)構(gòu)設(shè)計(jì)
在實(shí)時(shí)Linux下,為了保證數(shù)控系統(tǒng)的實(shí)時(shí)任務(wù)能夠即時(shí)響應(yīng)。所有和實(shí)時(shí)相關(guān)的任務(wù)都必須放在內(nèi)核層下,每個(gè)任務(wù)用一個(gè)獨(dú)立的內(nèi)核進(jìn)程來執(zhí)行,實(shí)時(shí)進(jìn)程是通過調(diào)用RTAI的rt—task—init()函數(shù)來實(shí)現(xiàn)的。而非實(shí)時(shí)任務(wù)則放在用戶層下,它們?cè)谌魏螘r(shí)候都不會(huì)打斷實(shí)時(shí)任務(wù)的運(yùn)行,只有在實(shí)時(shí)任務(wù)結(jié)束后才會(huì)執(zhí)行。
嵌入式數(shù)控的基本功能由各種功能模塊共同來實(shí)現(xiàn)的。在以linux為操作系統(tǒng)的開放式平臺(tái)上集成RTAI的實(shí)時(shí)內(nèi)核。通過模塊化的設(shè)計(jì)思想,可以將整個(gè)控制系統(tǒng)按照實(shí)時(shí)性的要求分為用戶層模塊,內(nèi)核層實(shí)時(shí)模塊兩個(gè)大的模塊,同時(shí)在兩個(gè)大的模塊下又根據(jù)不同的子功能分為代碼解釋模塊,人機(jī)交互及刀具仿真圖形模塊,文件管理模塊,位置控制模塊,插補(bǔ)運(yùn)算模塊,狀態(tài)監(jiān)測(cè)模塊等,如圖4所示。
圖4系統(tǒng)軟件結(jié)構(gòu)圖
內(nèi)核層和用戶層之間進(jìn)程的通訊主要是依靠RTAI提供的實(shí)時(shí)nFo,通過調(diào)用函數(shù)rlf_create()來創(chuàng)建管道實(shí)現(xiàn)數(shù)據(jù)傳輸。FIFO的通信是單向的,因此用戶層和內(nèi)核層的信息交互必須至少創(chuàng)建兩條管道才能實(shí)現(xiàn)。
3 實(shí)時(shí)控制的軟件實(shí)現(xiàn)
根據(jù)對(duì)開放式運(yùn)動(dòng)控制器的運(yùn)行機(jī)制分析,將各實(shí)時(shí)任務(wù)模塊分別設(shè)置相應(yīng)的定時(shí)器工作方式。優(yōu)先級(jí)及通信隊(duì)列等。
實(shí)時(shí)功能模塊實(shí)現(xiàn)方式如下:位置控制任務(wù)moor()決定電機(jī)控制精度。計(jì)算下一周期的實(shí)際坐標(biāo)增量,輸出到伺服單元驅(qū)動(dòng)步進(jìn)電機(jī)工作。因此將其設(shè)計(jì)成周期性RTAI線程.運(yùn)行周期為4ms,1級(jí)優(yōu)先權(quán)。
功能控制任務(wù)control()是利用fifo從用戶層向內(nèi)核層傳遞控制命令,并實(shí)現(xiàn)對(duì)I/O口的控制。此任務(wù)采用實(shí)時(shí)中斷策略,在接受到控制命令,內(nèi)核掛起位置控制任務(wù)。
狀態(tài)檢測(cè)任務(wù)monitor()要對(duì)狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)控。因此設(shè)置此任務(wù)運(yùn)行周期為lOms.優(yōu)先級(jí)為3級(jí)。運(yùn)動(dòng)控制器軟件的所有實(shí)時(shí)任務(wù)和函數(shù)包含在實(shí)時(shí)模塊main—program.o中。通過編{t}/etc/rc.sysinit文件,在系統(tǒng)啟動(dòng)時(shí)加載到Linux內(nèi)核中。當(dāng)實(shí)時(shí)模塊加入到內(nèi)核中。實(shí)時(shí)模塊中創(chuàng)建的線程和函數(shù)就可以訪問系統(tǒng)的底層資源。
實(shí)時(shí)任務(wù)模塊的加載和卸載在Linux中由initmodule()和cleanup—module()兩個(gè)函數(shù)實(shí)現(xiàn)的,同時(shí)可以通過這兩個(gè)函數(shù)進(jìn)行資源的分配和回收,以及線程和處理函數(shù)的創(chuàng)建。
4 結(jié)束語
本文在深入研究Linux實(shí)時(shí)操作系統(tǒng)的基礎(chǔ)上。將Linux操作系統(tǒng)移植到數(shù)控機(jī)床上具有實(shí)用價(jià)值的嵌人式微處理器MPC5200上,證明了數(shù)控嵌人式系統(tǒng)完全可以實(shí)現(xiàn)一定程度的開放性,且移植Linux也是開發(fā)嵌人式數(shù)控運(yùn)動(dòng)控制器操作平臺(tái)一種比較好的方案。具有明顯的先進(jìn)性和實(shí)用性。
通過一系列的實(shí)驗(yàn)分析和應(yīng)用研究,現(xiàn)已成功將MPC5200運(yùn)動(dòng)控制器應(yīng)用于自主開發(fā)的一種基于CAN總線的嵌入式線束機(jī)控制系統(tǒng),該系列機(jī)床已經(jīng)通過項(xiàng)目成果鑒定,目前正在進(jìn)行產(chǎn)業(yè)化推廣工作。在此也希望本文能為開發(fā)和推廣我國具有自主知識(shí)產(chǎn)權(quán)的嵌人式Linux運(yùn)動(dòng)控制系統(tǒng)提供一定的借鑒和幫助。
標(biāo)簽:
中國傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>新品發(fā)布:CD300系列總線型伺服驅(qū)動(dòng)器
2024-10-31
2024-10-31
2024-10-31
新勢(shì)能 新期待|維智B1L直線伺服驅(qū)動(dòng)器
2024-10-31
纖薄之間,化繁為簡(jiǎn)|合信全新simple系...
2024-10-29
2024-10-18
推薦專題
更多>