概述
思泰公司的開源協議堆棧POWERLINK協議堆棧可以作為一個通用版本的源代碼來使用。并且可以方便的移植到不同的目標操作系統中。這個軟件提供了所有以太網POWERLINK 2.0規格版所必需的函數,并且提供了各種多種可選的功能函數。
該源代碼可以做成一個可插入內核的內核模塊,這樣應用程序就可以直接在我們給定的Linux操作系統中運行該協議堆棧。這就給您快速容易的啟動您自己的開發提供了一個好的入手點。
我們的開源POWERLINK實現已經通過了不同廠家提供的POWERLINK設備的擴展測試,以保證一個穩定的平臺和高度的互操作性。
該協議堆棧軟件以功能模塊的方式組織和實現,提供了最好的靈活性和可擴展性,然而專注于對時間要求的服務。
OpenPOWERLINK軟件的所有硬件特征和時間臨界功能都經過特別的設計和最優化,以保證對POWERLINK總線上的實時時間快速響應。因此,以太網控制器的訪問和處理都被封裝在一個單獨的驅動模塊中。
openPOWERLINK堆棧特性
- 以太網POWERLINK 2.0 DS 1.0.0通信文件
- 控制和映射節點的數據鏈接層和NMT狀態機
- 通過UDP和POWERLINK ASnd幀的SDO
- 動態PDO映射
- 用戶可配置的對象詞典
- 以async-only CN和multiplexed CN的方式支持POWERLINK的循環特性
- 以普通的ANSI C來實現
- 方便移植到不同目標平臺的模塊化軟件結構(有無操作系統都可以)
- 事件驅動的通信抽象層
- 為用戶開發應用程序提供了簡單的API
- 綜合配置和縮放選項
功能概述
以太網POWERLINK API 層
以太網POWERLINK API層為應用程序提供了一個簡單的接口。應用程序使用函數初始化POWERLINK堆棧和執行不同的任務。當事件發生時,POWERLINK堆棧通過一個回調函數通知應用程序完成事件。例如這些事件包含NMT狀態變換,節點狀態變換,對象詞典訪問,結束SDO傳輸,POWERLINK堆棧錯誤等。
通信抽象層
POWERLINK堆棧被分為處理循環事件的硬實時任務和負責例如SDO processing等同步任務的低優先級任務。這些任務之間的通信被封裝在通信抽象層,通信抽象層在事件模型之后設計。這使得您可以輕松移植和優化到新的目標平臺。例如,您可以使用底層操作系統高度優化了的進程間通信的方法。
對象詞典和SDO(Service Data Object )
POWERLINK堆棧的配置是通過對象詞典來完成的。這可以通過在編譯時通過合適的默認輸入來完成,也可以通過運行時由應用程序或遠程通過SDO傳送。POWERLINK堆棧通過UDP和POWERLINK ASnd幀支持SDO。它通過UDP使用現存的支持SDO的UDP/IP協議堆棧,例如由操作系統或者獨立的UDP/IP堆棧提供的UDP/IP堆棧。虛擬的以太網驅動為UDP/IP堆棧提供了方法用來與以太網POWERLINK網絡通信。除了通過UDP的SDO,它還可以通過應用程序或者其他任務例如web服務器通過以太網POWERLINK網絡來完成UDP或TCP通信。應用程序可以映射任何變量到一個對象詞典條目(見PDO)。依賴于相關對象條目,應用程序被告知每個讀和寫訪問。應用程序在它實際完成或激發動作之前可能會拒絕訪問。
PDO (Process Data Object )
過程變量通過POWERLINK網絡節點之間的PDOS進行互換。因此應用程序必須映射這些變量到對象詞典條目。PDO映射分配對象詞典條目到指定的PDOS。PDO映射可以通過應用程序或SDO傳送動態的更改。以太網POWERLINK周期性的交換PDO。
節點管理
MN/CN openPOWERLINK源代碼包含了節點管理支持功能。節點管理通過在運行時設置節點ID為240來啟動。它根據以太網規范版本2.0完成啟動過程,包含支持強制性和可選性控制節點。另外它包含一個配置管理器,它根據一個提供的設備配置文件配置每個控制節點。
|