0

我有基於網絡設備的EK1101,EL6002,EL2034模塊。這些模塊通過以太網電纜連接到PC以太網端口。我用一些應用程序測試了這些模塊,它在我的電腦上工作正常。ethercat模塊的以太網驅動程序

EK1101作爲耦合器工作。它連接PC以太網端口和其他從模塊(EL6002,EL2034,..)

EL6002作爲RS232通信工作。 EL2034用作數字I/O。同樣我們有超過10個不同的設備。這些模塊同時與EK1101耦合器連接。

我該如何實現Linux驅動程序?並開始?我是否修改現有的網絡驅動程序或從頭開始啓動新的驅動程序?我需要寫什麼類型的字符或網絡驅動程序?如果其字符驅動程序如何通過以太網端口傳輸數據?

+0

如果從應用程序(通過套接字)開始工作,爲什麼在這個世界上你想寫自己的驅動程序?只需安裝一個用戶應用程序作爲後臺服務,你就很好。 –

+0

感謝您的回答,應用程序需要root權限。我需要執行我們的應用程序,沒有root權限。 –

+0

安裝驅動程序需要root權限......使用root權限運行服務,並讓您的非特權應用程序與其通信。 –

回答

0

使用串行片(EL6002),每個端口只能爲每個交換機發送22個字節(每個方向)。在1kHz的全串行帶寬(115k)下更新時,您不會錯過更新,而不會使發射機捱餓和/或在接收機上丟失數據。如果這是一個問題,您可能需要獨佔控制用於掌握EtherCAT環路的以太網端口。這需要某種形式的根權限,否則有人總是可以嘗試通過端口發送數據包,從而影響您的時間安排。你沒有給出關於你的應用程序或時間要求的更多細節,所以也許這對你並不重要。

我一直在使用Etherlab IgH開源堆棧,它需要root權限才能加載其實現底層堆棧的內核模塊。完成後,您可以將所有其他設置設置爲在沒有root權限的情況下從用戶空間運行。

一旦您的應用程序獲得了對主堆棧的訪問權限,您就可以設置一個數據交換域(TwinCat稱爲任務),並且您將擁有一個可用於監視EtherCAT幀數據的共享內存區域。您的應用程序負責決定何時發送和接收域更新。

相關問題