<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于Linux的EtherCAT主站的研究

基于Linux的EtherCAT主站的研究

作者: 時(shí)間:2016-12-21 來(lái)源:網(wǎng)絡(luò ) 收藏

引言

本文引用地址:http://dyxdggzs.com/article/201612/332312.htm

隨著(zhù)網(wǎng)絡(luò )技術(shù)的迅速發(fā)展,當今的工業(yè)現場(chǎng)總線(xiàn)技術(shù)均逐漸過(guò)渡到實(shí)時(shí)工業(yè)以太網(wǎng)階段。如西門(mén)子公司的PROHBUS到PROFINET;博世力士樂(lè )公司的SERCOS?到SERCOSIII等。同時(shí)一些新興的工業(yè)實(shí)時(shí)以太網(wǎng)技術(shù)也以其全新的起點(diǎn)和優(yōu)越的性能脫穎而出。其中EtherCAT(Ethernetfor Control Automation Technology)技術(shù)(也稱(chēng)為以太網(wǎng)現場(chǎng)總線(xiàn)),便是其中較為突出的一個(gè)?,F場(chǎng)總線(xiàn)技術(shù)的實(shí)現主要依賴(lài)于主站與從站兩大部分,其中尤以主站技術(shù)最為復雜,同時(shí)也是控制系統中通訊部分的核心。從歷史上看現場(chǎng)總線(xiàn)主站技術(shù)的演變經(jīng)歷了主動(dòng)卡(如SERCOS一代卡)、被動(dòng)卡(如SoftSERCANS卡)、軟主站(不需要專(zhuān)門(mén)的硬件卡,如可支持Eme疋AT總線(xiàn)的TwinCAT和Codesys軟件)。這使得運動(dòng)控制器的開(kāi)發(fā)對特殊硬件板卡的需求逐漸降低,直至徹底拋開(kāi),從而實(shí)現其開(kāi)放性和靈活性。研究Linux下的EtherCAT主站系統在研究軟主站的基礎上又有兩個(gè)意義:一是Linux操作系統為開(kāi)源系統,在其基礎上的任何軟件方面的研究都可直至底層,為自主創(chuàng )新提供可能。二是Linux操作系統很容易移植到ARM處理器平臺上,而ARM架構相對X86硬件系統具有諸多靈活性和開(kāi)發(fā)性,方便國內廠(chǎng)商開(kāi)發(fā)出基于自身硬件平臺的高性能控制器。因而此項研究即有助于開(kāi)發(fā)基于軟主站的開(kāi)放式運動(dòng)控制器,同時(shí)可為研制我國自主的工業(yè)實(shí)時(shí)以太網(wǎng)標準提供借鑒,具有較強的實(shí)際意義。

1 Linux-FEtherCAT主站系統結構

Linux系統總體分為內核層與應用層。其中內核層運行系統的核心調度與驅動(dòng)程序,內核層中的程序稱(chēng)為模塊,實(shí)時(shí)性較高。應用層運行各種桌面程序和應用程序,實(shí)時(shí)性差。Linux系統下EtherCAT軟主站系統結構如圖1所示。

1)網(wǎng)絡(luò )設備部分。EtherCAT軟主站不使用特殊硬件,而是普通的網(wǎng)絡(luò )設備(如PCI網(wǎng)卡)。內核層中含有網(wǎng)絡(luò )設備模塊,但為了實(shí)現EtherCAT協(xié)議,需要對普通嘲絡(luò )設備驅動(dòng)進(jìn)行修改。

2)主站模塊與應用程序。為了保證實(shí)時(shí)性的要求,EtherCAT主站模塊與應用程序模塊均在內核層。其中EtherCAT主站模塊實(shí)現全部的協(xié)議解析、任務(wù)調度并為網(wǎng)絡(luò )設備與應用程序提供函數接口。應用程序模塊最終實(shí)現對各種自動(dòng)化系統的控制,由用戶(hù)根據具體的控制對象和控制要求進(jìn)行編寫(xiě)。

3)EtherCAT工具。該程序提供了各種可以在Linux用戶(hù)層運行的命令??梢灾苯訉?shí)現對從站的訪(fǎng)問(wèn)和設置。如:設置從站地址、顯示總線(xiàn)配置、顯示PDO數據、讀寫(xiě)SDO參數等。由于用戶(hù)層無(wú)法直接訪(fǎng)問(wèn)內核層的數據,因此需要構造Linux字符設備。通過(guò)對字符設備的訪(fǎng)問(wèn)間接實(shí)現與EtherCAT主站模塊的通汛。

圖1主站系統結構

2數據幀的傳輸過(guò)程

數據幀的傳輸是EtherCAT主站模塊的重要功能,是實(shí)現EtherCAT協(xié)議傳輸的基礎。EtherCAT主站的工作主要分為三個(gè)階段如圖2所示。

圖2主站線(xiàn)程工作狀態(tài)

2.1孤兒階段

當EtherCAT主站模塊被加載到內核后,狀態(tài)處于孤兒階段,等待網(wǎng)絡(luò )設備模塊的加載與正常啟動(dòng)。

2.2空閑階段

當存在可用的網(wǎng)絡(luò )設備后,主站進(jìn)入空閑階段,并啟動(dòng)線(xiàn)程發(fā)送廣播數據幀,對從站進(jìn)行循環(huán)掃描。當掃描到可用從站,便對其進(jìn)行配置。同時(shí)隨時(shí)以?huà)呙璧姆绞奖O控總線(xiàn)上的變化。實(shí)現方法如圖3(a)所示。主要過(guò)程分為接收數據幀、執行當前狀態(tài)機(詳見(jiàn)數據通訊管理的實(shí)現一節)、將數據幀添加至鏈表、發(fā)送數據幀鏈表中的全部數據。

2.3操作階段

當有應用程序模塊運行時(shí),主站進(jìn)入操作階段。如圖3(C)所示,應用程序通過(guò)調用ecrt_master_activate()函數,停止主站模塊中運行的“空閑線(xiàn)程”,啟動(dòng)“操作線(xiàn)程”。該線(xiàn)程只調用了執行當前狀態(tài)機的函數,如圖3(b)所示,以便監控總線(xiàn)中的變化,而將原本主站模塊執行的收發(fā)數據幀的函數放到了應用程序中,為實(shí)現實(shí)時(shí)控制提供條件。


上一頁(yè) 1 2 3 下一頁(yè)

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>