熟女人妻水多爽中文字幕,国产精品鲁鲁鲁,隔壁的少妇2做爰韩国电影,亚洲最大中文字幕无码网站

技術頻道

娓娓工業
您現在的位置: 中國傳動網 > 技術頻道 > 技術百科 > 基于i.MX6處理器的EtherCAT主站的設計

基于i.MX6處理器的EtherCAT主站的設計

時間:2018-05-03 15:37:09來源:中國傳動網

導語:?工業以太網現場總線 EtherCAT越來越多地應用到工業控制領域,其中將 EtherCAT 總線應用到工業控制系統中的關鍵技術是構建EtherCAT主站。

摘要:工業以太網現場總線EtherCAT越來越多地應用到工業控制領域,其中將EtherCAT總線應用到工業控制系統中的關鍵技術是構建EtherCAT主站。本文設計了基于Freescalei.MX6Q處理器EtherCAT主站的解決方案。首先,在i.MX6Q處理器上構建了Linux和Xenomai雙內核實時操作系統;然后使用了開源的IgHEtherCATMaster在其上構建嵌入式實時EtherCAT主站;最后,使用設計EtherCAT主站在新時達伺服驅動器上進行了同步時鐘功能、SYNC中斷和PDI中斷相對位置調節功能的開發。測試結果表明,在Freescalei.MX6Q處理器上構建基于Linux+Xenomai雙內核實時操作系統的EtherCAT主站可以滿足高精度的多軸控制系統的聯動控制。

隨著高速高精度控制系統的迅速發展,工業以太網現場總線在控制系統中的運行越來越廣泛[1]。其中,EtherCAT是一種應用于工業自動化領域的實時工業以太網技術,它具有廣泛的適用性,完全符合以太網標準,可以與其他以太網設備及協議并存于同一總線,從而最大化利用以太網寬帶進行用戶數據傳輸。同時,EtherCAT小于100微妙數據的刷新周期使其可以用于伺服技術中底層的閉環控制。EtherCAT還具有很好的同步性能,利用“分布時鐘”機制可以實現各從站節點之間小于1微妙的時鐘同步精度,這在要求分布系統同時工作的場合顯得極為重要[2]。

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

因此,本文采用嵌入式Linux和Xenomai雙內核實時操作系統方案,結合高性能的嵌入式4核處理器i.MX6Q,實現基于i.MX6Q的嵌入式實時操作系統,并在此基礎上使用IgHEtherCATMaster開源組件構建嵌入式實時EtherCAT主站,并在構建的嵌入式EtherCAT主站上進行了多軸同步控制性能的測試,以及SYNC中斷和PDI(ProcessDataInterface)中斷相對位置調節功能的測試。

1嵌入式實時Linux系統的實現

目前改進Linux系統實時性的方法[3]主要有兩種,一種是采用雙內核結構,即在標準的Linux內核中嵌套進一個實時的內核,將其改造成為具有雙內核的異構系統。所有實時任務都運行在微內核上,非實時的Linux則作為實時內核的一項優先級最低的任務來托管所有的非實時任務,其中典型的代表有RTAI、Xenomai。另一種是直接對Linux內核進行改造,如中斷線程化、可搶占的自旋鎖等,其中的代表為PREEMPT_RTLinux。

在這些改進Linux實時性的技術中,RTAI雖然實時性能比較好,但對ARM的支持不夠完善;PREEMPT_RTLinux是針對標準Linux內核設計的通用可移植的實時補丁,但其實時性較差;Xenomai支持的架構很多,對本文中使用的Freescalei.MX6Q處理器支持也比較完善,比較適合用來構建嵌入式實時Linux系統。

1.1Xenomai實時補丁

Xenomai[4]作為一個自由軟件項目,完全遵循GNU/Linux自由軟件協議。Xenomai的實現主要是基于ADOES(AdaptiveDomainEnvironmentforOperatingSystems),通過在操作系統和硬件之間插入一個由軟件實現的ADOES層,來管理和分配硬件層產生的中斷信號。ADOES之上可以存在多個內核域,可以對每個域的優先級進行設置,來實現任務優先處理的目的。Xenomai能提供多種針對傳統的實時操作系統的模擬器,該類模擬器可以提供對應的實時程序運行需要的API。Xenomai目前支持Vxworks、pSOS+、POSIX、VRTX等多種成熟實時操作系統的API。

1.2i.MX6Q處理器

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

1.3構建嵌入式實時Linux系統

構建Linux+Xenomai雙內核實時操作系統以i.MX6Q為硬件平臺,采用Freescale板級支持包中的imx_3.0.35_4.0.0和xenomai-2.6.3來構建,步驟如下。

解壓Linux內核源碼和Xenomai源碼,并進入xenomai源碼目錄,給Linux內核打Xenomai補丁并配置內核,依次執行以下命令:

$./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

構建成功后,編譯已經打上Xenomai實時補丁的Linux內核源碼,燒寫Linux鏡像、根文件系統,上電啟動EtherCAT主站。使用dmesg命令檢查Xenomai實時內核加載情況,如圖1所示,

圖1Xenomai實時內核打印信息

最后進行Xenomai用戶空間實時任務調度延遲測試[6],測試結果如表1所示,

通過測試,可以看到在Xenomai域用戶空間,實時任務的調度延遲不受Linux域負載大小的影響;任務調度最大延遲約10微妙,平均延遲約3.5微妙,實時響應性能非常出色,可以滿足高精度多軸控制系統的聯動控制要求。

2嵌入式EtherCAT主站的實現

2.1IgHEtherCATMaster

IgHEtherCATMaster[7]是一個基于Linux操作系統的開源EtherCAT主站軟件,使用它可以很容易的實現EtherCAT主站軟件。它支持RTAI、Xenomai、PREEMPT_RT等Linux的實時擴展;此外它提供了常見以太網EtherCAT網卡驅動,同時也提供了基于Linux內核協議棧的generic驅動;分布時鐘功能可以同步從站時鐘到參考時鐘,也可同步從站時鐘到主站時鐘;同時還支持CoE(CANopenoverEtherCAT)、EoE(EthernetoverEtherCAT)、FoE(FileAccessoverEtherCAT)、SoE(ServoProfileoverEtherCAT)等協議。

2.2構建嵌入式EtherCAT主站

IgHEtherCATMaster是針對通用的PC平臺設計的,默認支持x86體系結構的處理器和PCI接口的網卡,因此關鍵的技術難點是針對ARM架構的i.MX6Q處理器和嵌入式網卡移植本地EtherCAT網卡設備驅動。

2.2.1本地EtherCAT網卡設備驅動的移植

如何根據本地EtherCAT網卡設備驅動的實現原理,修改i.MX6Q處理器的網絡設備驅動程序以兼容EtherCAT,并沒有統一的標準方法,只有一些通用的規則,這些規則總結如下:

(1)對所有的EtherCAT設備必須避免調用netif_*()函數,因為EtherCAT設備不經過Linux內核的網絡協議棧,所以不能調用網絡協議棧提供的這些接口。

(2)EtherCAT設備驅動是在輪詢的方式下工作,對EtherCAT設備的所有操作都是在無中斷的情況下進行的,因此應避免使用中斷和調用中斷注冊程序;同時,網卡驅動中無中斷而使用輪詢方式,數據報文發送完成中斷處理函數和數據報文發送函數不會并發執行,不再需要自旋鎖保護發送緩沖區。

(3)主站在初始化的時候會分配兩個固定的套接字緩沖區(socketbuffer),在每次發送的數據報文時,會先在這個sockerbuffer填充新的EtherCAT數據幀,然后將它傳遞給ndo_start_xmit回調函數。在整個過程中不會創建新的socketbuffer,因此網絡設備驅動也不能像往常一樣釋放socketbuffer。

圖26軸同步測試平臺

2.2.2EtherCAT主站編譯移植

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

$./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

在配置中,通過--prefix選項指定安裝路徑;--enable-rtdm表示使用Xenomai實時補丁;--with-xenomai-dir指定Xenomai庫和頭文件所在的目錄;--enable-hrtimer表示使用內核的高分辨率定時器;--enable-fec表示使能i.MX6Q處理器的本地EtherCAT網絡設備驅動;--with-linux-dir指定使用的linux內核路徑;--build和—host分別表示編譯EtherCATMaster源碼所使用的平臺和編譯后得到的鏡像在哪個平臺上運行。

2.3EtherCAT主站同步性能測試

在機器人控制系統中,多軸同步性能直接決定著系統多軸聯動的精度。EtherCAT可以實現從站之間精確的時鐘同步控制,因此本文著重測試將嵌入式實時EtherCAT主站應用到機器人控制系統中后的多軸同步控制性能。測試平臺如圖2所示,其中EtherCAT從站使用新時達的RS2200、RS2303伺服驅動器,主站通訊模式設置為DC模式,伺服驅動器運行模式采用周期同步位置模式,周期為1ms,使用雙通道示波器測試第一個伺服驅動器和最后一個伺服驅動器SYNC中斷相對時間差。

多次測量第一個伺服驅動器和最后一個伺服驅動器SYNC中斷時間差,該差值小于60ns,滿足時鐘同步的要求,表明文本構建的實時嵌入式EtherCAT主站可以實現精確的多軸同步控制。如圖3

圖3SYNC中斷時間差

2.4SYNC中斷和PDI中斷相對位置調節算法

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

(1)

假設我們想讓PDI中斷相對于SYNC中斷偏移50%,即PDI中斷在兩個SYNC中斷中間,其中Tsleep為周期任務下個周期睡眠時間,可應用如下公式2:

(2)

經過多次測試表明,經過上述算法處理后,PDI中斷相對SYNC中斷的位置,,確實在我們設定的位置,誤差范圍在-40us-40us,具體效果如圖4所示,

圖4SYNC中斷和PDI中斷相對位置圖

3結束語

本文首先分析了Xenomai實時補丁的實現機制,在基于Freescalei.MX6Q處理器上采用Xenomai實時補丁擴展的方法構建嵌入式實時

Linux操作系統、同時詳細的闡述了IgHEtherCATMaster開源軟件組成模塊的功能,然后將其移植到構建好的嵌入式實時系統上,實現了嵌入式實時EtherCAT主站,然后在構建的嵌入式EtherCAT主站上進行了多軸同步控制性能的測試,以及SYNC中斷和PDI中斷相對位置調節功能的測試。實驗結果表明在基于Linux+Xenomai+i.MX6Q處理器上構建的嵌入式實時EtherCAT主站具有良好的實時性和精確的多軸同步控制性能,可以滿足機器人控制系統的要求。

標簽:

點贊

分享到:

上一篇:海為PLC在面袋對縫機上的應用

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

中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

相關資訊

網站簡介|會員服務|聯系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網-工業自動化與智能制造的全媒體“互聯網+”創新服務平臺

網站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業執照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號

主站蜘蛛池模板: 泸溪县| 泸西县| 黄平县| 平阳县| 大渡口区| 达日县| 红桥区| 沙田区| 荣成市| 通州区| 都江堰市| 伊通| 凭祥市| 镇赉县| 芦山县| 拉萨市| 南安市| 万山特区| 开封市| 长武县| 沙雅县| 神农架林区| 永靖县| 瑞昌市| 修水县| 井研县| 晋江市| 汤阴县| 宁海县| 蒲城县| 开江县| 大英县| 五莲县| 定日县| 喀喇沁旗| 娄烦县| 九龙城区| 永靖县| 彰化县| 山丹县| 龙陵县|