国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于AM3358處理器的嵌入式實(shí)時(shí)EtherCAT主站的構(gòu)建*

2015-11-02 08:33李備備鄭飂默
關(guān)鍵詞:同步控制主站數(shù)控系統(tǒng)

李備備,欒 勇,王 超,王 喆,鄭飂默

(1.中國科學(xué)院大學(xué),北京 100049;2.中國科學(xué)院沈陽計(jì)算技術(shù)研究所,沈陽 110168;3.沈陽高精數(shù)控技術(shù)有限公司,沈陽 110168)

基于AM3358處理器的嵌入式實(shí)時(shí)EtherCAT主站的構(gòu)建*

李備備1,2,欒 勇2,3,王 超2,3,王 喆2,3,鄭飂默2,3

(1.中國科學(xué)院大學(xué),北京 100049;2.中國科學(xué)院沈陽計(jì)算技術(shù)研究所,沈陽 110168;3.沈陽高精數(shù)控技術(shù)有限公司,沈陽 110168)

工業(yè)以太網(wǎng)現(xiàn)場總線EtherCAT作為新興的現(xiàn)場總線技術(shù)被越來越多的應(yīng)用到數(shù)控領(lǐng)域,其中將EtherCAT總線應(yīng)用到數(shù)控系統(tǒng)中的關(guān)鍵技術(shù)難點(diǎn)是構(gòu)建EtherCAT主站?;诖?,文章提出了一種基于AM3358處理器構(gòu)建嵌入式EtherCAT主站的解決方案。首先采用RT Patch在AM3358處理器平臺(tái)上實(shí)現(xiàn)嵌入式實(shí)時(shí)Linux系統(tǒng),然后使用IgH EtherCAT Master開源組件在其上構(gòu)建嵌入式實(shí)時(shí)EtherCAT主站。最后在數(shù)控系統(tǒng)中對嵌入式EtherCAT主站進(jìn)行了測試,測試結(jié)果表明,構(gòu)建的嵌入式實(shí)時(shí)EtherCAT主站可以滿足數(shù)控系統(tǒng)實(shí)時(shí)性和多軸控制同步性的要求。

ARM;RT Patch;嵌入式實(shí)時(shí)系統(tǒng);EtherCAT;數(shù)控系統(tǒng)

0 引言

近年來,實(shí)時(shí)工業(yè)以太網(wǎng)因其傳輸速度快,數(shù)據(jù)包容量大,傳輸距離遠(yuǎn),實(shí)時(shí)性高和開放互聯(lián)的特點(diǎn),被越來越多的應(yīng)用到了數(shù)控領(lǐng)域[1]。德國Beckhoff公司提出的EtherCAT(Ethernet for Control Automation Technology)便是其中的一種,它具有高性能、低成本、應(yīng)用簡單、拓?fù)潇`活的特點(diǎn),并且支持100Mbps全雙工,有效數(shù)據(jù)率可達(dá)90%以上,可以極大的提高數(shù)控系統(tǒng)的性能。

與此同時(shí),ARM嵌入式微處理器正朝著高性能、智能化的方向發(fā)展,其主頻越來越高,接口功能越來越豐富,而價(jià)格則越來越低,因此相較于工業(yè)PC機(jī)它更靈活,功耗更小,成本更低[2]。從軟件層面上看,一方面,嵌入式Linux操作系統(tǒng)的結(jié)構(gòu)簡單,軟件資源豐富,可靠性和重構(gòu)性都很強(qiáng),唯一的不足是它本身不具備實(shí)時(shí)性,但是經(jīng)過實(shí)時(shí)性的擴(kuò)展或改造,可以使其滿足數(shù)控系統(tǒng)苛刻的實(shí)時(shí)性要求。另一方面,成熟的開源EtherCAT主站軟件,像Etherlab的IgH EtherCAT Master[3],使得一個(gè)完整的EtherCAT主站很容易的構(gòu)建在嵌入式Linux系統(tǒng)之上。

因此本文的目標(biāo)是采用嵌入式linux+RT Patch實(shí)時(shí)搶占補(bǔ)丁的方案,結(jié)合高性能的嵌入式處理器AM3358,實(shí)現(xiàn)基于AM3358的嵌入式實(shí)時(shí)系統(tǒng),并在此基礎(chǔ)上使用IgH EtherCAT Master開源組件構(gòu)建嵌入式實(shí)時(shí)EtherCAT主站。

1 嵌入式實(shí)時(shí)Linux系統(tǒng)的實(shí)現(xiàn)

目前改進(jìn)Linux系統(tǒng)實(shí)時(shí)性的方法主要有兩種,一種是采用雙內(nèi)核結(jié)構(gòu),即在標(biāo)準(zhǔn)的Linux操作系統(tǒng)內(nèi)核中嵌套進(jìn)一個(gè)微小、實(shí)時(shí)的內(nèi)核,將其改造成為具有雙內(nèi)核的異構(gòu)系統(tǒng)[4]。所有實(shí)時(shí)任務(wù)都運(yùn)行在微內(nèi)核上,非實(shí)時(shí)的Linux則作為實(shí)時(shí)內(nèi)核的一項(xiàng)優(yōu)先級最低的任務(wù)來托管所有的非實(shí)時(shí)任務(wù)[5],其中典型的代表有RTLinux、RTAI、Xenomai[6-8]等。另一種是直接對Linux內(nèi)核進(jìn)行改造,如增加內(nèi)核搶占,縮短中斷延時(shí)等,其中的代表為RT Patch。

在這些改進(jìn)Linux實(shí)時(shí)性的技術(shù)中,RTLinux已經(jīng)被風(fēng)河公司收購并商業(yè)化,僅支持Linux 2.4.10和2.6.2等幾種特定的內(nèi)核版本;RTAI雖然實(shí)時(shí)性能比較好,但對ARM的支持不夠完善;Xenomai支持的架構(gòu)很多,對ARM的支持也比較完善,但它并不支持本文使用的AM3358處理器;RT Patch是針對標(biāo)準(zhǔn)Linux內(nèi)核設(shè)計(jì)的一種通用、可移植的實(shí)時(shí)補(bǔ)丁,這意味著它的實(shí)現(xiàn)和具體的處理器平臺(tái)無關(guān),因此可以無差別的應(yīng)用到x86和ARM體系結(jié)構(gòu)的處理器上,比較適合用來構(gòu)建基于AM3358的嵌入式實(shí)時(shí)Linux系統(tǒng)。

1.1 RT Patch實(shí)時(shí)補(bǔ)丁

RT Patch是一個(gè)Linux內(nèi)核的實(shí)時(shí)補(bǔ)丁,目前由Ingo Molnar和Thomas Gleixner共同維護(hù)[9]。這個(gè)實(shí)時(shí)補(bǔ)丁通過直接修改內(nèi)核代碼,將標(biāo)準(zhǔn)的Linux內(nèi)核改造成一個(gè)完全搶占的實(shí)時(shí)內(nèi)核。它將大部分的自旋鎖(spinlock)替換為支持優(yōu)先級繼承并且可搶占的互斥量(mutex)。同時(shí)它將IRQ中斷處理程序挪到了各自的內(nèi)核線程中,這意味著它們可以像內(nèi)核中的其它線程一樣被調(diào)度。這些修改使得幾乎整個(gè)內(nèi)核都可以被搶占,從而極大的提升了內(nèi)核的實(shí)時(shí)性能。

此外,RT Patch保持了全部的Linux應(yīng)用編程模式,實(shí)時(shí)應(yīng)用和普通的應(yīng)用采用同樣的編程方式,使用同樣的API,不同的是只有實(shí)時(shí)任務(wù)需要明確指定自己的優(yōu)先級與調(diào)度策略[8]。因此采用RT Patch方案構(gòu)建的實(shí)時(shí)系統(tǒng),可以很容易為其編寫實(shí)時(shí)應(yīng)用程序。

1.2 AM 3358微處理器

AM3358是德州儀器(TI)最新推出的一款基于ARM Cortex-A8的高性能嵌入式處理器,其主頻高達(dá)720MHz,相較于傳統(tǒng)的ARM9其性能有了大幅度的提升。它具有32KB/32KB的L1指令/數(shù)據(jù)高速緩存,具有錯(cuò)誤糾正碼(ECC)的256KB L2高速緩存;13級流水線,帶有先進(jìn)的預(yù)支分配功能;通過內(nèi)部GPMC可外接NAND Flash、NOR Flash和SRAM等存儲(chǔ)設(shè)備。它提供了2個(gè)以太網(wǎng)MAC(10/100/1000Mbps),可分別被用作主網(wǎng)口和備用網(wǎng)口。同時(shí)TI為其提供了完整的Linux板級支持包(BSP),使其非常容易構(gòu)建嵌入式Linux系統(tǒng)。

1.3 構(gòu)建嵌入式實(shí)時(shí)Linux系統(tǒng)

RT Patch嵌入式實(shí)時(shí)Linux系統(tǒng)是以AM3358高性能嵌入式處理器為硬件平臺(tái),采用TI板級支持包中的Linux-3.2.0-psp04.06.00.11內(nèi)核與patch-3.2.0-rt51來構(gòu)建的,步驟如下。

解壓Linux內(nèi)核源碼,并進(jìn)入Linux內(nèi)核目錄,給內(nèi)核打RT Patch補(bǔ)丁并配置內(nèi)核,依次執(zhí)行以下命令;

圖1 內(nèi)核配置

打完RT Patch實(shí)時(shí)補(bǔ)丁之后,在內(nèi)核配置界面”Processor type and feature”選項(xiàng)中的”Preemption Mode”項(xiàng)中會(huì)增加”Complete Preemption(Real-Time)”這一搶占模式,如圖1所示,選中該項(xiàng)使實(shí)時(shí)補(bǔ)丁生效。同時(shí)需要將該選項(xiàng)中的”High Resolution Timer Support”項(xiàng)選上,以支持高精度定時(shí)器功能。

2 嵌入式EtherCAT主站的實(shí)現(xiàn)

2.1 IgH EtherCAT M aster

IgH EtherCAT Master是一個(gè)基于Linux操作系統(tǒng)的開源EtherCAT主站軟件,使用它可以很容易的實(shí)現(xiàn)基于EtherCAT的控制應(yīng)用程序。它具有自動(dòng)掃描總線的功能,因此可以監(jiān)控總線拓?fù)浣Y(jié)構(gòu)的變化,一旦拓?fù)浒l(fā)生改變,它將會(huì)重新對總線上的從站進(jìn)行配置。此外它支持RTAI、Xenomai和RTPatch等linux的實(shí)時(shí)擴(kuò)展,并且支持分布時(shí)鐘功能,同時(shí)還支持CoE(CANopen over EtherCAT)、SoE(Servo Profile over EtherCAT)、EoE(Ethernet over EtherCAT)等一系列郵箱協(xié)議。

EtherCAT Master的結(jié)構(gòu),如圖2所示,主要由三大部分組成;

圖2 主站結(jié)構(gòu)

(1)主站模塊。它是一個(gè)Linux內(nèi)核模塊,包含了一個(gè)或多個(gè)主站對象、一個(gè)設(shè)備接口(Device Interface)和一個(gè)應(yīng)用程序接口(Application Interface)。主站模塊通過設(shè)備接口訪問以太網(wǎng)設(shè)備,應(yīng)用程序通過調(diào)用API接口提供的函數(shù)訪問主站模塊。

(2)控制應(yīng)用程序。它不是主站模塊的一部分,需要由用戶來編寫,它通過主站模塊提供的API接口,與EtherCAT從站交換周期性的過程數(shù)據(jù)??刂茟?yīng)用程序可以是內(nèi)核空間的一個(gè)模塊(直接使用內(nèi)核應(yīng)用程序接口),也可以是用戶空間的程序(通過EtherCAT庫訪問應(yīng)用程序接口)。

(3)兼容EtherCAT的以太網(wǎng)設(shè)備驅(qū)動(dòng)模塊。它使得主站可以通過設(shè)備接口訪問網(wǎng)絡(luò)設(shè)備。EtherCAT Master提供了兩種兼容EtherCAT的以太網(wǎng)驅(qū)動(dòng)模塊,它們分別是本地EtherCAT設(shè)備驅(qū)動(dòng)模塊和通用EtherCAT設(shè)備驅(qū)動(dòng)模塊。

2.2 構(gòu)建嵌入式EtherCAT主站

IgH EtherCAT Master是針對通用的PC平臺(tái)設(shè)計(jì)的,默認(rèn)支持的是X86體系結(jié)構(gòu)的處理器和PC平臺(tái)的網(wǎng)卡,因此關(guān)鍵的技術(shù)難點(diǎn)是針對ARM架構(gòu)的AM3358處理器和嵌入式網(wǎng)卡,移植EtherCAT主站模塊及本地EtherCAT設(shè)備驅(qū)動(dòng)。

2.2.1 本地EtherCAT設(shè)備驅(qū)動(dòng)的移植

如何根據(jù)本地EtherCAT設(shè)備驅(qū)動(dòng)的實(shí)現(xiàn)原理,修改AM3358處理器的網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序CPSW(Common Platform Ethernet Switch)以兼容EtherCAT,并沒有統(tǒng)一的標(biāo)準(zhǔn)方法,只有一些通用的規(guī)則,這些規(guī)則總結(jié)如下;

(1)第一個(gè)簡單的規(guī)則是,對于所有的EtherCAT設(shè)備必須避免調(diào)用netif-*()函數(shù),因?yàn)镋therCAT設(shè)備不經(jīng)過Linux內(nèi)核的網(wǎng)絡(luò)協(xié)議棧,所以不能調(diào)用網(wǎng)絡(luò)協(xié)議棧提供的這些接口函數(shù)。

(2)另一個(gè)需要注意的地方是,由于EtherCAT設(shè)備驅(qū)動(dòng)在輪詢的方式下工作,對EtherCAT設(shè)備的所用操作都是在無中斷的情況下進(jìn)行的,因此應(yīng)避免使能中斷和調(diào)用中斷注冊服務(wù)程序。

(3)主站在初始化的時(shí)候會(huì)分配一個(gè)固定的套接字緩沖區(qū)(socket buffer),在每次發(fā)送的過程中,會(huì)先在這個(gè)socket buffer填充新的EtherCAT數(shù)據(jù)幀,然后將它傳遞給hard-start-xmit()回調(diào)函數(shù)。在整個(gè)過程中不會(huì)創(chuàng)建新的socket buffer,因此網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)也不能像往常一樣釋放這個(gè)socket buffer。

此外,為了區(qū)分網(wǎng)絡(luò)設(shè)備是否被用作EtherCAT設(shè)備,需要在net-device網(wǎng)絡(luò)設(shè)備結(jié)構(gòu)體的私有數(shù)據(jù)結(jié)構(gòu)體priv-data中擴(kuò)展一個(gè)指針。這個(gè)指針指向ecdev -offer()函數(shù)的返回值,當(dāng)被用作EtherCAT設(shè)備時(shí)該函數(shù)返回ec-device-t結(jié)構(gòu)體對象,否則返回NULL。

2.2.2 EtherCAT主站模塊的移植

解壓EtherCAT Master源碼,并進(jìn)入EtherCAT Master目錄進(jìn)行配置、編譯和安裝,依次執(zhí)行以下命令;

在配置中,通過prefix指定安裝的路徑,disable-8139too表示禁用掉默認(rèn)的8139網(wǎng)卡驅(qū)動(dòng);enablecpsw表示使能AM3358處理器的本地EtherCAT網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng),該驅(qū)動(dòng)是針對AM3358處理器的CPSW驅(qū)動(dòng)程序修改而來本地EtherCAT設(shè)備驅(qū)動(dòng);最后通過with-linux-dir指定使用的Linux內(nèi)核的路徑。

3 EtherCAT主站實(shí)時(shí)性能測試

3.1 實(shí)驗(yàn)平臺(tái)

實(shí)驗(yàn)平臺(tái)包括三個(gè)組成部分;待測試的EtherCAT系統(tǒng)、實(shí)時(shí)數(shù)據(jù)獲取單元和離線的實(shí)驗(yàn)數(shù)據(jù)分析單元,其結(jié)構(gòu)和實(shí)物連接如圖3和圖4所示。

圖3 實(shí)驗(yàn)平臺(tái)結(jié)構(gòu)圖

圖4 實(shí)驗(yàn)平臺(tái)實(shí)物圖

3.1.1 EtherCAT系統(tǒng)

EtherCAT系統(tǒng)由主站和從站組成(分別對應(yīng)著圖3中的左上和右上部分),主站為構(gòu)建的嵌入式實(shí)時(shí)EtherCAT主站,從站為路斯特(LT-i)ServoOne系列中EtherCAT類型的伺服驅(qū)動(dòng)器。

3.1.2 實(shí)時(shí)數(shù)據(jù)獲取單元

實(shí)時(shí)數(shù)據(jù)獲取單元采用的是福祿克(FLUKE)公司的OptiView XG網(wǎng)絡(luò)分析儀(圖3右下),它有4個(gè)網(wǎng)絡(luò)端口,其中端口 A和端口 B為標(biāo)準(zhǔn)的100/1000Mbps自適應(yīng)以太網(wǎng)接口。支持單獨(dú)捕獲上行和下行數(shù)據(jù),并且可以將捕獲的數(shù)據(jù)包轉(zhuǎn)換為WinPCP格式,供Wireshark等軟件進(jìn)行數(shù)據(jù)分析。此外,它捕獲數(shù)據(jù)包時(shí)間戳的分辨率可以達(dá)到1ns,保證了實(shí)驗(yàn)數(shù)據(jù)的精確性。

3.1.3 離線數(shù)據(jù)分析單元

離線數(shù)據(jù)分析單元(圖3左下部)是由PC機(jī)運(yùn)行開源軟件Wireshark實(shí)現(xiàn)的,在實(shí)驗(yàn)的最后,所有捕獲的WinPCAP格式的實(shí)驗(yàn)數(shù)據(jù)都會(huì)交給離線數(shù)據(jù)單元進(jìn)行處理和分析。

3.2 不加系統(tǒng)負(fù)載

時(shí)間抖動(dòng)被定義為高速串行信號邊沿到來時(shí)刻與理想時(shí)刻的偏差[10]。它是衡量一個(gè)工業(yè)網(wǎng)絡(luò)性能的重要指標(biāo),同時(shí)也決定著系統(tǒng)的定時(shí)精度。在基于軟件的通信調(diào)度中,這種抖動(dòng)已經(jīng)成為了一個(gè)不容忽視的問題,因此本文著重研究一個(gè)周期性控制任務(wù)最壞的時(shí)間抖動(dòng)。實(shí)驗(yàn)的測試方法是;通過OptiView XG捕獲EtherCAT主站周期性輸出的數(shù)據(jù)包,通過對比捕獲到的實(shí)際時(shí)間與預(yù)期時(shí)間來計(jì)算時(shí)間抖動(dòng)。在實(shí)驗(yàn)中設(shè)置任務(wù)周期為2ms,一共采樣15000次。

第一組實(shí)驗(yàn)不對系統(tǒng)添加任何額外負(fù)載,只運(yùn)行測試程序,測試結(jié)果如圖5所示,顯示了系統(tǒng)在運(yùn)行獨(dú)占的實(shí)時(shí)程序時(shí)的時(shí)間抖動(dòng)信息。從實(shí)驗(yàn)數(shù)據(jù)可以清楚的觀察到,即使平均的時(shí)間抖動(dòng)接近于零,但也確實(shí)會(huì)存在一些小概率的異常。

對于本文使用3.2內(nèi)核版本的RT Patch,由于所有軟中斷處理程序都由同一個(gè)內(nèi)核線程ksoftirqd處理,因此無法通過單獨(dú)設(shè)置高精度定時(shí)器軟中斷例程優(yōu)先級的方法來避免這些干擾。但是3.2內(nèi)核版本的RT Patch很好的緩解了這些干擾,從圖6所示的擴(kuò)展視圖中的波形可以看到,最大的幅值為42μs,相對于實(shí)驗(yàn)中使用的2ms的控制周期來講,時(shí)間抖動(dòng)只占整個(gè)周期的2.1%。

圖5 系統(tǒng)在無負(fù)載情況下的時(shí)間抖動(dòng)

圖6 時(shí)間抖動(dòng)的擴(kuò)展視圖

3.3 加入系統(tǒng)負(fù)載

設(shè)計(jì)第二組實(shí)驗(yàn)的目的是測試加入系統(tǒng)負(fù)載后嵌入式EtherCAT主站的實(shí)時(shí)性能,測試方法為;在系統(tǒng)中同時(shí)運(yùn)行EtherCAT實(shí)時(shí)控制任務(wù)和由標(biāo)準(zhǔn)內(nèi)核調(diào)度器調(diào)度執(zhí)行的普通任務(wù),通過測試EtherCAT實(shí)時(shí)任務(wù)產(chǎn)生的時(shí)間抖動(dòng),來考查實(shí)時(shí)應(yīng)用程序受普通任務(wù)的影響程度。在實(shí)際的應(yīng)用中,系統(tǒng)一般會(huì)同時(shí)運(yùn)行實(shí)時(shí)控制程序和其它的應(yīng)用程序,比如,圖形化顯示應(yīng)用程序、遠(yuǎn)程控制程序或者是數(shù)據(jù)日志記錄程序等。因此對加入負(fù)載后的系統(tǒng)性能的測試與評估是很有必要的。

出于這種目的,本文設(shè)計(jì)了三種不同類型的系統(tǒng)負(fù)載,可以代表實(shí)際應(yīng)用中常見的三類應(yīng)用程序。在測試的整個(gè)過程中,使它們分別和EtherCAT應(yīng)用程序一起并發(fā)的執(zhí)行;

(1)一個(gè)CPU密集型(CPU-bound)的C程序,它反復(fù)的做開根號運(yùn)算,由于只使用了少量的內(nèi)存,因此它的執(zhí)行不會(huì)引起任何的頁面活動(dòng)。

(2)一個(gè)C程序,它維護(hù)一個(gè)比可用的實(shí)際內(nèi)存還大的數(shù)據(jù)結(jié)構(gòu),因而會(huì)產(chǎn)生頻繁的頁面置換。

(3)一個(gè)I/O密集型(I/O-bound)的程序,使用linux下的dd命令,通過文件系統(tǒng)往存儲(chǔ)設(shè)備中寫入大量的數(shù)據(jù),從而將產(chǎn)生大量的I/O請求。

在所有的這些負(fù)載中,I/O密集型的負(fù)載對實(shí)時(shí)應(yīng)用程序的影響最大,而CPU密集型的負(fù)載的影響幾乎可以忽略不計(jì)。也就是說,Linux系統(tǒng)提供了實(shí)時(shí)任務(wù)與計(jì)算密集型負(fù)載任務(wù)之間的有效隔離,但是卻不能完全消除在內(nèi)核中由硬中斷產(chǎn)生的干擾,如I/O設(shè)備的中斷請求。

圖7 系統(tǒng)在添加I/O負(fù)載情況下的時(shí)間抖動(dòng)

圖8 時(shí)間抖動(dòng)的擴(kuò)展視圖

為了簡短起見,本文只給出了對系統(tǒng)時(shí)間抖動(dòng)影響最大的I/O負(fù)載的實(shí)例。在I/O負(fù)載下系統(tǒng)的時(shí)間抖動(dòng)信息如圖7所示,從圖中可以明顯的看出它的抖動(dòng)幅度要比不添加負(fù)載時(shí)大一些。在整個(gè)實(shí)驗(yàn)過程中,測得的最壞的時(shí)間抖動(dòng)為92μs,如圖8擴(kuò)展視圖所示,仍然只占任務(wù)周期的4.6%,對于絕大多數(shù)的實(shí)時(shí)控制程序這個(gè)值是可以接受的。

兩組實(shí)驗(yàn)表明影響時(shí)間抖動(dòng)的主要來源是軟中斷處理程序之間的相互干擾和I/O類型的系統(tǒng)負(fù)載,但它們對時(shí)間抖動(dòng)的影響都比較小。從總體來看,無論是在無負(fù)載和有負(fù)載的情況構(gòu)建的嵌入式EtherCAT主站都表現(xiàn)出了良好的實(shí)時(shí)性能,滿足數(shù)控系統(tǒng)實(shí)時(shí)性的要求。

4 系統(tǒng)多軸同步控制性能測試

在數(shù)控系統(tǒng)的位置控制中,多軸同步控制的性能直接決定著系統(tǒng)多軸聯(lián)動(dòng)的精度,成為影響機(jī)械加工質(zhì)量的一個(gè)重要因素[11]。EtherCAT可以實(shí)現(xiàn)從站之間精確的時(shí)鐘同步控制,將EtherCAT技術(shù)引入到數(shù)控系統(tǒng)中可以提高數(shù)控系統(tǒng)的同步控制性能。因此本文著重測試將嵌入式實(shí)時(shí)EtherCAT主站應(yīng)用到數(shù)控系統(tǒng)中后的系統(tǒng)多軸同步控制性能,測試平臺(tái)如圖9所示。其中EtherCAT從站使用路斯特的ServoOne伺服驅(qū)動(dòng)器,它支持CoE協(xié)議,并且支持分布時(shí)鐘。主站的通信模式設(shè)置為DC模式,從站設(shè)置為同步于分布時(shí)鐘同步(SYNC)事件模式,運(yùn)行模式采用的周期性同步位置模式,周期設(shè)為2ms。

EtherCAT主站控制多個(gè)從站同步運(yùn)行的關(guān)鍵在于分布時(shí)鐘的同步和SYNC事件產(chǎn)生時(shí)間的一致。在ServoOne伺服驅(qū)動(dòng)器的從站控制芯片(ESC)中,系統(tǒng)時(shí)間差寄存器(地址為;0x92C~0x92F)記錄著本地系統(tǒng)時(shí)鐘時(shí)間副本與參考時(shí)鐘系統(tǒng)時(shí)間的差值,可以用它來判斷時(shí)鐘同步是否達(dá)到要求。SYNC時(shí)間寄存器(0x990~0x997)記錄著下一個(gè)SYNC脈沖信號發(fā)生時(shí)間,可以用它來判斷多個(gè)軸的SYNC事件產(chǎn)生時(shí)間是否一致。因此測試方法為;通過IgH EtherCAT提供的調(diào)試命令,讀取每個(gè)從站的系統(tǒng)時(shí)間差寄存器和SYNC時(shí)間寄存器的值,根據(jù)讀取的值來判斷多個(gè)軸之間是否達(dá)到同步。

表1 測量數(shù)據(jù)

在測試中,對3個(gè)從站的系統(tǒng)時(shí)間差和SYNC時(shí)間做了多次測量,為了簡單起見,本文只給出了測量得到的兩組數(shù)據(jù),如表1所示。從測量數(shù)據(jù)可以看出系統(tǒng)時(shí)間差的值介于100~-100ns之間,滿足時(shí)鐘同步要求,同時(shí)三個(gè)從站產(chǎn)生SYNC信號的時(shí)間也一致,表明將本文構(gòu)建的嵌入式EtherCAT主站可以實(shí)現(xiàn)精確的多軸同步控制。

5 結(jié)論

本文首先分析了RT Patch實(shí)時(shí)搶占補(bǔ)丁的實(shí)現(xiàn)機(jī)制,在基于Cortex-A8的AM3358嵌入式處理器上采用打RT Patch實(shí)時(shí)補(bǔ)丁的方法構(gòu)建實(shí)時(shí)嵌入式實(shí)時(shí)系統(tǒng)。同時(shí)詳細(xì)的闡述了IgH EtherCAT Master開源軟件組成模塊的功能,然后將其移植到構(gòu)建好的嵌入式實(shí)時(shí)系統(tǒng)上,實(shí)現(xiàn)了嵌入式實(shí)時(shí)EtherCAT主站,然后對構(gòu)建的嵌入式EtherCAT主站的實(shí)時(shí)性能和數(shù)控系統(tǒng)多軸同步控制性能進(jìn)行了測試。實(shí)驗(yàn)結(jié)果表明基于RT Patch+Linux+IgH EtherCAT Master構(gòu)建的嵌入式EtherCAT主站具有良好的實(shí)時(shí)性和精確的多軸同步控制性能,可以滿足數(shù)控系統(tǒng)的要求。

圖9 多軸同步控制測試平臺(tái)

[1]郇極,劉艷強(qiáng).工業(yè)以太網(wǎng)總線EtherCAT驅(qū)動(dòng)程序設(shè)計(jì)及應(yīng)用[M].北京;北京航空航天大學(xué)出版社,2010.

[2]林立明.高性能嵌入式數(shù)控系統(tǒng)通訊模塊的設(shè)計(jì)與實(shí)現(xiàn)[D].沈陽;中國科學(xué)院沈陽計(jì)算技術(shù)研究所,2012.

[3]IgH,EtherLab—EtherCAT master.[EB/OL].http;//www.etherlab.org/,2013.

[4]M.Cereia,I.Cibrario Bertolotti,and S.Scanzio.Performance of a Real-Time EtherCAT Master Under Linux[J]. IEEE Transactions on Industrial Informatics,2011,7(4);679-687.

[5]劉海濤.兩種嵌入式實(shí)時(shí)Linux實(shí)現(xiàn)技術(shù)研究及實(shí)時(shí)多核應(yīng)用[D].成都;西南交通大學(xué),2006.

[6]Wind River Inc.Wind River Linux.[EB/OL].Available;2011,http;//www.windriver.com.

[7]P Mantegazza,E Bianchi,L Dozio,et al.RTAI;Real-time application interface[J].Linux Journal,2000,72;142-148.

[8]P Gerum.Xenomai—Implementing a RTOS emulation framework on GNU/Linux.[EB/OL].2004,Available;http;//www.xenomai.org.

[9]RTwiki,CONFIG PREEMPT RT Patch[EB/OL].2010,https;//rt.wiki.kernel.org/index.php/CONFIG-PREEMPT -RT-Patch.

[10]陸小虎,劉玉香,于東,等.基于CORTEX-A8處理器的嵌入式數(shù)控系統(tǒng)實(shí)時(shí)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].小型微型計(jì)算機(jī)系統(tǒng),2013,34(7);1689-1692.

[11]畢承恩,丁乃建.現(xiàn)代數(shù)控機(jī)床[M].北京;機(jī)械工業(yè)出版社,1993.

(編輯 李秀敏)

Construction of the Embedded Real-Time EtherCAT M aster Based on the AM 3358 Processer

LIBei-bei1,2,LUAN Yong2,3,WANG Chao2,3,WANG Zhe2,3,ZHENG Liao-mo2,3
(1.Chinese Academy of Sciences,Beijing 100049,China;2.Shenyang Institute of Computing Technology,Chinese Academy of Sciences,Shenyang 110168,China)

;EtherCAT,as an emerging fieldbus technology,is increasingly applied in the field of numerical control,the key technical difficulties of application EtherCAT into CNC system is to build EtherCAT master.For this reason,a solution of building embedded EtherCAT master based on AM 3358 processor is presented.Firstly,using RT Patch implements the embedded real-time Linux system on AM 3358 processor platform.Then using IgH EtherCAT Master open source components builds embedded EtherCAT master on that system.Finally,the embedded EtherCAT master is been tested in CNC system.The result shows that the embedded EtherCAT master can achieve precise multi axis synchronous control,can meet the requirement of real-time and synchronization of CNC system.

;ARM;RT Patch;embedded real-time system;EtherCAT;CNC

TH166;TG659

A

1001-2265(2015)05-0001-05 DOI:10.13462/j.cnki.mmtamt.2015.05.001

2014-07-11;

2014-08-22

″高檔數(shù)控機(jī)床與基礎(chǔ)制造裝備″國家科技重大專項(xiàng)、基于二次開發(fā)平臺(tái)的專用數(shù)控系統(tǒng)開發(fā)與應(yīng)用(2013ZX04007-011)

李備備(1989—),男,河南焦作人,中國科學(xué)院大學(xué)碩士研究生,研究方向?yàn)閿?shù)控技術(shù),(E-mail)libeibei@escience.cn。

猜你喜歡
同步控制主站數(shù)控系統(tǒng)
基于S7-1200 PLC的DP總線通信技術(shù)在馬里古伊那水電站泄洪沖沙孔門機(jī)上的應(yīng)用
基于FANUC 32i A數(shù)控系統(tǒng)的外部測量設(shè)計(jì)
西門子840D sl數(shù)控系統(tǒng)在SC125大型車銑鏜床技術(shù)改造中的應(yīng)用
基于FANUC Oi mate TD數(shù)控系統(tǒng)的手動(dòng)功能開發(fā)
數(shù)控系統(tǒng)中GUI軟件平臺(tái)設(shè)計(jì)和實(shí)現(xiàn)
基于EtherCAT網(wǎng)絡(luò)的金剛線多線切割機(jī)雙主軸同步控制
EtherCAT主站與主站通信協(xié)議的研究與實(shí)現(xiàn)*
多表遠(yuǎn)程集抄主站系統(tǒng)
縣級配電自動(dòng)化主站系統(tǒng)的設(shè)計(jì)
基于云模型的舵機(jī)同步控制