技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 基于i.MX6處理器的EtherCAT主站的設(shè)計(jì)

基于i.MX6處理器的EtherCAT主站的設(shè)計(jì)

時(shí)間:2018-05-03 15:37:09來(lái)源:中國(guó)傳動(dòng)網(wǎng)

導(dǎo)語(yǔ):?工業(yè)以太網(wǎng)現(xiàn)場(chǎng)總線 EtherCAT越來(lái)越多地應(yīng)用到工業(yè)控制領(lǐng)域,其中將 EtherCAT 總線應(yīng)用到工業(yè)控制系統(tǒng)中的關(guān)鍵技術(shù)是構(gòu)建EtherCAT主站。

摘要:工業(yè)以太網(wǎng)現(xiàn)場(chǎng)總線EtherCAT越來(lái)越多地應(yīng)用到工業(yè)控制領(lǐng)域,其中將EtherCAT總線應(yīng)用到工業(yè)控制系統(tǒng)中的關(guān)鍵技術(shù)是構(gòu)建EtherCAT主站。本文設(shè)計(jì)了基于Freescalei.MX6Q處理器EtherCAT主站的解決方案。首先,在i.MX6Q處理器上構(gòu)建了Linux和Xenomai雙內(nèi)核實(shí)時(shí)操作系統(tǒng);然后使用了開(kāi)源的IgHEtherCATMaster在其上構(gòu)建嵌入式實(shí)時(shí)EtherCAT主站;最后,使用設(shè)計(jì)EtherCAT主站在新時(shí)達(dá)伺服驅(qū)動(dòng)器上進(jìn)行了同步時(shí)鐘功能、SYNC中斷和PDI中斷相對(duì)位置調(diào)節(jié)功能的開(kāi)發(fā)。測(cè)試結(jié)果表明,在Freescalei.MX6Q處理器上構(gòu)建基于Linux+Xenomai雙內(nèi)核實(shí)時(shí)操作系統(tǒng)的EtherCAT主站可以滿足高精度的多軸控制系統(tǒng)的聯(lián)動(dòng)控制。

隨著高速高精度控制系統(tǒng)的迅速發(fā)展,工業(yè)以太網(wǎng)現(xiàn)場(chǎng)總線在控制系統(tǒng)中的運(yùn)行越來(lái)越廣泛[1]。其中,EtherCAT是一種應(yīng)用于工業(yè)自動(dòng)化領(lǐng)域的實(shí)時(shí)工業(yè)以太網(wǎng)技術(shù),它具有廣泛的適用性,完全符合以太網(wǎng)標(biāo)準(zhǔn),可以與其他以太網(wǎng)設(shè)備及協(xié)議并存于同一總線,從而最大化利用以太網(wǎng)寬帶進(jìn)行用戶數(shù)據(jù)傳輸。同時(shí),EtherCAT小于100微妙數(shù)據(jù)的刷新周期使其可以用于伺服技術(shù)中底層的閉環(huán)控制。EtherCAT還具有很好的同步性能,利用“分布時(shí)鐘”機(jī)制可以實(shí)現(xiàn)各從站節(jié)點(diǎn)之間小于1微妙的時(shí)鐘同步精度,這在要求分布系統(tǒng)同時(shí)工作的場(chǎng)合顯得極為重要[2]。

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

因此,本文采用嵌入式Linux和Xenomai雙內(nèi)核實(shí)時(shí)操作系統(tǒng)方案,結(jié)合高性能的嵌入式4核處理器i.MX6Q,實(shí)現(xiàn)基于i.MX6Q的嵌入式實(shí)時(shí)操作系統(tǒng),并在此基礎(chǔ)上使用IgHEtherCATMaster開(kāi)源組件構(gòu)建嵌入式實(shí)時(shí)EtherCAT主站,并在構(gòu)建的嵌入式EtherCAT主站上進(jìn)行了多軸同步控制性能的測(cè)試,以及SYNC中斷和PDI(ProcessDataInterface)中斷相對(duì)位置調(diào)節(jié)功能的測(cè)試。

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

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

在這些改進(jìn)Linux實(shí)時(shí)性的技術(shù)中,RTAI雖然實(shí)時(shí)性能比較好,但對(duì)ARM的支持不夠完善;PREEMPT_RTLinux是針對(duì)標(biāo)準(zhǔn)Linux內(nèi)核設(shè)計(jì)的通用可移植的實(shí)時(shí)補(bǔ)丁,但其實(shí)時(shí)性較差;Xenomai支持的架構(gòu)很多,對(duì)本文中使用的Freescalei.MX6Q處理器支持也比較完善,比較適合用來(lái)構(gòu)建嵌入式實(shí)時(shí)Linux系統(tǒng)。

1.1Xenomai實(shí)時(shí)補(bǔ)丁

Xenomai[4]作為一個(gè)自由軟件項(xiàng)目,完全遵循GNU/Linux自由軟件協(xié)議。Xenomai的實(shí)現(xiàn)主要是基于ADOES(AdaptiveDomainEnvironmentforOperatingSystems),通過(guò)在操作系統(tǒng)和硬件之間插入一個(gè)由軟件實(shí)現(xiàn)的ADOES層,來(lái)管理和分配硬件層產(chǎn)生的中斷信號(hào)。ADOES之上可以存在多個(gè)內(nèi)核域,可以對(duì)每個(gè)域的優(yōu)先級(jí)進(jìn)行設(shè)置,來(lái)實(shí)現(xiàn)任務(wù)優(yōu)先處理的目的。Xenomai能提供多種針對(duì)傳統(tǒng)的實(shí)時(shí)操作系統(tǒng)的模擬器,該類模擬器可以提供對(duì)應(yīng)的實(shí)時(shí)程序運(yùn)行需要的API。Xenomai目前支持Vxworks、pSOS+、POSIX、VRTX等多種成熟實(shí)時(shí)操作系統(tǒng)的API。

1.2i.MX6Q處理器

i.MX6Q[5]處理器是Freescale的一款基于ARMCortex-A9的高性能四核處理器,其主頻高達(dá)1.2GHz。它具有32KB/32KB的L1指令/數(shù)據(jù)高速緩存;動(dòng)態(tài)電壓頻率調(diào)節(jié);內(nèi)置電源管理模塊;強(qiáng)大的圖像加速;同時(shí)Freescale為其提供了完整的Linux板級(jí)支持包,使其非常容易構(gòu)建嵌入式Linux系統(tǒng)。

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

構(gòu)建Linux+Xenomai雙內(nèi)核實(shí)時(shí)操作系統(tǒng)以i.MX6Q為硬件平臺(tái),采用Freescale板級(jí)支持包中的imx_3.0.35_4.0.0和xenomai-2.6.3來(lái)構(gòu)建,步驟如下。

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

$./scripts/prepare-kernel.sh\--linux=~/imx_3.0.35_4.0.0\--adeos=~/xenomai-2.6.3/ksrc/arch/arm/patches/mxc/adeos-ipipe-3.0.43-mx6q-1.18-12-pre.patch\

--arch=arm

$./scripts/prepare-kernel.sh\--linux=~/imx_3.0.35_4.0.0\

--adeos=~/xenomai-2.6.3-imx6q/ksrc/arch/arm/patches/mxc/adeos-ipipe-3.0.43-arm-1.18-13.patch\

--arch=arm

$./scripts/prepare-kernel.sh\--linux=~/imx_3.0.35_4.0.0\--adeos=~/xenomai-2.6.3-imx6q/ksrc/arch/arm/patches/mxc/adeos-ipipe-3.0.43-mx6q-1.18-12-post.patch\

--arch=arm

構(gòu)建成功后,編譯已經(jīng)打上Xenomai實(shí)時(shí)補(bǔ)丁的Linux內(nèi)核源碼,燒寫Linux鏡像、根文件系統(tǒng),上電啟動(dòng)EtherCAT主站。使用dmesg命令檢查Xenomai實(shí)時(shí)內(nèi)核加載情況,如圖1所示,

圖1Xenomai實(shí)時(shí)內(nèi)核打印信息

最后進(jìn)行Xenomai用戶空間實(shí)時(shí)任務(wù)調(diào)度延遲測(cè)試[6],測(cè)試結(jié)果如表1所示,

通過(guò)測(cè)試,可以看到在Xenomai域用戶空間,實(shí)時(shí)任務(wù)的調(diào)度延遲不受Linux域負(fù)載大小的影響;任務(wù)調(diào)度最大延遲約10微妙,平均延遲約3.5微妙,實(shí)時(shí)響應(yīng)性能非常出色,可以滿足高精度多軸控制系統(tǒng)的聯(lián)動(dòng)控制要求。

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

2.1IgHEtherCATMaster

IgHEtherCATMaster[7]是一個(gè)基于Linux操作系統(tǒng)的開(kāi)源EtherCAT主站軟件,使用它可以很容易的實(shí)現(xiàn)EtherCAT主站軟件。它支持RTAI、Xenomai、PREEMPT_RT等Linux的實(shí)時(shí)擴(kuò)展;此外它提供了常見(jiàn)以太網(wǎng)EtherCAT網(wǎng)卡驅(qū)動(dòng),同時(shí)也提供了基于Linux內(nèi)核協(xié)議棧的generic驅(qū)動(dòng);分布時(shí)鐘功能可以同步從站時(shí)鐘到參考時(shí)鐘,也可同步從站時(shí)鐘到主站時(shí)鐘;同時(shí)還支持CoE(CANopenoverEtherCAT)、EoE(EthernetoverEtherCAT)、FoE(FileAccessoverEtherCAT)、SoE(ServoProfileoverEtherCAT)等協(xié)議。

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

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

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

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

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

(2)EtherCAT設(shè)備驅(qū)動(dòng)是在輪詢的方式下工作,對(duì)EtherCAT設(shè)備的所有操作都是在無(wú)中斷的情況下進(jìn)行的,因此應(yīng)避免使用中斷和調(diào)用中斷注冊(cè)程序;同時(shí),網(wǎng)卡驅(qū)動(dòng)中無(wú)中斷而使用輪詢方式,數(shù)據(jù)報(bào)文發(fā)送完成中斷處理函數(shù)和數(shù)據(jù)報(bào)文發(fā)送函數(shù)不會(huì)并發(fā)執(zhí)行,不再需要自旋鎖保護(hù)發(fā)送緩沖區(qū)。

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

圖26軸同步測(cè)試平臺(tái)

2.2.2EtherCAT主站編譯移植

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

$./configure\

--prefix=~/ethercat-1.5.2/install

--enable-rtdm\

--with-xenomai-dir=~/xeno/usr/xenomai\

--enable-hrtimer\

--enable-generic=no\

--enable-8139too=no\

--enable-fec=yes\

--with-linux-dir=~/imx_3.0.35_4.0.0\

--build=i686-pc-linux-gnu\

--host=arm-linux-gnueabihf\

$make;makemodules

$makeinstall;makemodules_install

在配置中,通過(guò)--prefix選項(xiàng)指定安裝路徑;--enable-rtdm表示使用Xenomai實(shí)時(shí)補(bǔ)?。?-with-xenomai-dir指定Xenomai庫(kù)和頭文件所在的目錄;--enable-hrtimer表示使用內(nèi)核的高分辨率定時(shí)器;--enable-fec表示使能i.MX6Q處理器的本地EtherCAT網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng);--with-linux-dir指定使用的linux內(nèi)核路徑;--build和—host分別表示編譯EtherCATMaster源碼所使用的平臺(tái)和編譯后得到的鏡像在哪個(gè)平臺(tái)上運(yùn)行。

2.3EtherCAT主站同步性能測(cè)試

在機(jī)器人控制系統(tǒng)中,多軸同步性能直接決定著系統(tǒng)多軸聯(lián)動(dòng)的精度。EtherCAT可以實(shí)現(xiàn)從站之間精確的時(shí)鐘同步控制,因此本文著重測(cè)試將嵌入式實(shí)時(shí)EtherCAT主站應(yīng)用到機(jī)器人控制系統(tǒng)中后的多軸同步控制性能。測(cè)試平臺(tái)如圖2所示,其中EtherCAT從站使用新時(shí)達(dá)的RS2200、RS2303伺服驅(qū)動(dòng)器,主站通訊模式設(shè)置為DC模式,伺服驅(qū)動(dòng)器運(yùn)行模式采用周期同步位置模式,周期為1ms,使用雙通道示波器測(cè)試第一個(gè)伺服驅(qū)動(dòng)器和最后一個(gè)伺服驅(qū)動(dòng)器SYNC中斷相對(duì)時(shí)間差。

多次測(cè)量第一個(gè)伺服驅(qū)動(dòng)器和最后一個(gè)伺服驅(qū)動(dòng)器SYNC中斷時(shí)間差,該差值小于60ns,滿足時(shí)鐘同步的要求,表明文本構(gòu)建的實(shí)時(shí)嵌入式EtherCAT主站可以實(shí)現(xiàn)精確的多軸同步控制。如圖3

圖3SYNC中斷時(shí)間差

2.4SYNC中斷和PDI中斷相對(duì)位置調(diào)節(jié)算法

IgHEtherCATMaster主站源碼雖然實(shí)現(xiàn)了EtherCAT主站時(shí)鐘同步到第一個(gè)具有DC(DistributedClocks)功能的EtherCAT從站時(shí)鐘,也實(shí)現(xiàn)了EtherCAT從站時(shí)鐘同步到EtherCAT主站時(shí)鐘,但沒(méi)有實(shí)現(xiàn)伺服驅(qū)動(dòng)器中ET1100EtherCAT控制器芯片中SYNC中斷和PDI相對(duì)位置偏移。本文為了實(shí)現(xiàn)該功能,對(duì)IgHEtherCATMaster源碼進(jìn)行修改:將EtherCAT源碼驅(qū)動(dòng)中發(fā)送給ET1100產(chǎn)生SYNC中斷開(kāi)始的時(shí)間tsync_start,封裝為API供用戶空間程序調(diào)用。用戶空間程序進(jìn)入周期任務(wù),經(jīng)過(guò)主站時(shí)鐘同步到參考從站時(shí)鐘算法處理,SYNC中斷和PDI中斷相對(duì)位置偏移不再變化,即EtherCAT主站時(shí)鐘已經(jīng)同步到參考從站時(shí)鐘。此時(shí),我們可以獲取參考從站時(shí)間tref_time,則相對(duì)位置偏移Toffset可通過(guò)如下公式1計(jì)算得出,其中T為通信周期。

(1)

假設(shè)我們想讓PDI中斷相對(duì)于SYNC中斷偏移50%,即PDI中斷在兩個(gè)SYNC中斷中間,其中Tsleep為周期任務(wù)下個(gè)周期睡眠時(shí)間,可應(yīng)用如下公式2:

(2)

經(jīng)過(guò)多次測(cè)試表明,經(jīng)過(guò)上述算法處理后,PDI中斷相對(duì)SYNC中斷的位置,,確實(shí)在我們?cè)O(shè)定的位置,誤差范圍在-40us-40us,具體效果如圖4所示,

圖4SYNC中斷和PDI中斷相對(duì)位置圖

3結(jié)束語(yǔ)

本文首先分析了Xenomai實(shí)時(shí)補(bǔ)丁的實(shí)現(xiàn)機(jī)制,在基于Freescalei.MX6Q處理器上采用Xenomai實(shí)時(shí)補(bǔ)丁擴(kuò)展的方法構(gòu)建嵌入式實(shí)時(shí)

Linux操作系統(tǒng)、同時(shí)詳細(xì)的闡述了IgHEtherCATMaster開(kāi)源軟件組成模塊的功能,然后將其移植到構(gòu)建好的嵌入式實(shí)時(shí)系統(tǒng)上,實(shí)現(xiàn)了嵌入式實(shí)時(shí)EtherCAT主站,然后在構(gòu)建的嵌入式EtherCAT主站上進(jìn)行了多軸同步控制性能的測(cè)試,以及SYNC中斷和PDI中斷相對(duì)位置調(diào)節(jié)功能的測(cè)試。實(shí)驗(yàn)結(jié)果表明在基于Linux+Xenomai+i.MX6Q處理器上構(gòu)建的嵌入式實(shí)時(shí)EtherCAT主站具有良好的實(shí)時(shí)性和精確的多軸同步控制性能,可以滿足機(jī)器人控制系統(tǒng)的要求。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:海為PLC在面袋對(duì)縫機(jī)上的應(yīng)用

下一篇:伺服電機(jī)一直在使用,但它是...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.wangxinlc.cn)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

相關(guān)資訊

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見(jiàn)反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書(shū) | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)