咪免直播高品质美女在线视频互动社区_咪免直播官方版_咪免直播直播视频在线观看免费版下载

您的位置:首頁 > 軟件教程 > 教程 > 如何將igh移植到不同RTOS以及Windows上

如何將igh移植到不同RTOS以及Windows上

來源:好特整理 | 時間:2024-06-21 08:49:10 | 閱讀:67 |  標(biāo)簽: T cat ETH S C in windows 操作系統(tǒng) linux   | 分享到:

本文探討IgH EtherCAT Master針對Linux/Windows/RTOS等不同操作系統(tǒng)的移植。

版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請注明出處。如有問題,歡迎指正。博客地址: https://www.cnblogs.com/wsg1100/

本文將簡要介紹如何將igh移植到zephyr、freertos、rtems、rtthread等RTOS,甚至在Windows上的方法。

前言

目前,EtherCAT商用主站有:Acontis、TwinCAT3、KPA、Codesys等,開源EtherCAT主站主要有兩大方案:igh與SOEM。SOEM開源于2008年底1.1.2版本,具備良好的可移植性,能夠輕松適配各類操作系統(tǒng)乃至裸機(jī)環(huán)境。然而,在功能豐富度與實時性能表現(xiàn)上(除裸機(jī)外)遠(yuǎn)不如IgH。想要應(yīng)對復(fù)雜的EtherCAT應(yīng)用場景則會非常困難。SOEM的協(xié)議棧運作依托于應(yīng)用層接口的驅(qū)動,其內(nèi)部并無獨立任務(wù)(線程)。

相比之下,IgH誕生較早,IgH功能全面,同時注重實時性能。為了在Linux上獲得良好的實時性能和低CPU利用率,同時方便多主站使用時進(jìn)程間隔離等原因,IgH設(shè)計之初就基于Linux內(nèi)核態(tài),今天看來可移植性較差。

igh的高實時性能得益于Linux內(nèi)核態(tài)可直接操作網(wǎng)卡收發(fā),功能全面得益于其內(nèi)部采用的多任務(wù)狀態(tài)機(jī)架構(gòu),這些任務(wù)驅(qū)動機(jī)制通過系統(tǒng)調(diào)用向用戶空間的EtherCAT應(yīng)用提供服務(wù),極大簡化了應(yīng)用層面的接口交互,使得EtherCAT應(yīng)用操作接口變得極為簡單。

那么IgH能移植到Linux用戶態(tài),或者其他zephyr、freertos、rtems、rtthread等RTOS嗎?答案是當(dāng)然能。

IgH整體框架及運行原理本詳見博客文章 【原創(chuàng)】EtherCAT主站IgH解析(一)--主站初始化、狀態(tài)機(jī)與EtherCAT報文 。

那么IgH能移植到裸機(jī)嗎?理論上可以,但比較麻煩。但是IgH整體設(shè)計就是多任務(wù)的,關(guān)鍵點是沒有任務(wù)調(diào)度,幾個狀態(tài)機(jī)如何驅(qū)動?不考慮權(quán)衡投入產(chǎn)出、可復(fù)用性,你可以自行嘗試。

IgH依賴操作系統(tǒng)服務(wù)

IgH雖然運行在Linux內(nèi)核態(tài),但并不與Linux內(nèi)核的耦合,整個協(xié)議棧只用到了Linux的基本服務(wù)。

操作系統(tǒng)服務(wù) 描述
任務(wù)(線程)調(diào)度 每個主站,內(nèi)部狀態(tài)機(jī)運行需要2個任務(wù),EoE 1個(可選)、應(yīng)用層周期任務(wù)
睡眠(定時服務(wù)) 任務(wù)睡眠,讓出CPU;應(yīng)用層通信周期控制,如果RTOS沒有高精度定時接口,可啟一個硬件timer回調(diào)更加精確。
讀取時間戳 EtherCAT子報文對象維護(hù)需要收發(fā)時間戳
動態(tài)內(nèi)存分配 master、slave、datagram、eoe、eeprom等對象需要動態(tài)內(nèi)存分配
event(非必須) 應(yīng)用調(diào)用主站服務(wù)時阻塞到事件等待,主站完成服務(wù)后通過事件喚醒應(yīng)用
Semaphore/mutex 同步互斥
TCP/IP網(wǎng)絡(luò)協(xié)議棧 主站已支持二層網(wǎng)絡(luò)包轉(zhuǎn)發(fā),若設(shè)備本身需要TCP/IP網(wǎng)絡(luò)遠(yuǎn)程調(diào)試工具需要TCP支持;可選實現(xiàn)主站EOE

關(guān)于RTOS的高精度定時器詳見博客文章 不同RTOS中POSIX接口的實現(xiàn)差異 ,相關(guān)章節(jié)。

其他適配

其他一些數(shù)據(jù)結(jié)構(gòu)以及網(wǎng)絡(luò)接口相關(guān):

  • 網(wǎng)卡驅(qū)動,主要實現(xiàn)輪詢式無中斷方式的 二層網(wǎng)絡(luò)包收發(fā) 接口,原Linux ethernet設(shè)備的抽象及skb的替代實現(xiàn);
  • EtherCAT主站初始化流程調(diào)整;
  • 鏈表、打印輸出;
  • Linux相關(guān)特性刪減修改:GNU C、unlikely、likely、prefetch,編譯器特性等。

圖片信息:(需要在文章中保留圖片信息)

小編推薦閱讀

好特網(wǎng)發(fā)布此文僅為傳遞信息,不代表好特網(wǎng)認(rèn)同期限觀點或證實其描述。

相關(guān)視頻攻略

更多

掃二維碼進(jìn)入好特網(wǎng)手機(jī)版本!

掃二維碼進(jìn)入好特網(wǎng)微信公眾號!

本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]

湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)