二、 openPOWERLINK
2.1 概览
openPOWERLINK 是 POWERLINK 技术的一种开源实现方案,最初由 SYS TEC electronic
GmbH 公司开发,并于 2006 年在 BSD 协议下发布开源。灵活的 BSD 协议给 openPOWERLINK 用
户极大的自由性,用户可以方便的进行下载和开发,只需遵守 BSD 协议就可以根据需要进行
开发和再发布,具有灵活的定制性等特点。
openPOWERLINK 现有的实现主要包括 Linux、Windows、VXWorks 以及 ARM 架构处理器
等,对于在系统上的 openPOWERLINK 实现,还分为用户空间实现和内核空间实现。
2.2 openPOWERLINK 软件结构
openPOWERLINK 的软件结构和图 1 的 POWERLINK 架构非常相似,不同之处在于
openPOWERLINK 协议代码分为内核部分和用户部分,并且包括设备驱动以及体系结构相关的
部分代码。
●内核部分:内核部分主要包括数据链路层以及以太网驱动、高精度计时器、内核事件
处理、网络管理等模块,在协议栈代码中以 k 结尾来表明为内核部分代码。这部分代码是协
议栈的核心。
●用户部分:用户部分主要包括与 CANopen 相关的特定模块,主要包括对象字典
(OD)、过程数据对象(PDO)、服务数据对象(SDO)等。用户部分代码在源代码协议树中
以 u 结尾进行标识,表明此部分为用户部分代码。
用户部分和内核部分只是命名规则,他们运行在同一内存空间中。用户部分和内核部分
的信息通信时通过抽象通信层(CAL)进行信心通信。
2.3 特定体系代码
为了提高可移植性、适配性,平台特定的代码 openPOWERLINK 代码被分离开来,将
openPOWERLINK 协议移植到特定的平台只需对部分模块代码进行适当的修改或者重写,其他
平台无关的代码无需进行调整,从而减小了特定平台代码移植的复杂性,方便的进行特定提
心结构的移植。这部分模块主要包括以下内容:
●多任务处理:现在计算机和嵌入式设备已经进入多核时代,openPOWERLINK 协议栈提
供了根据特定体系结构进行多任务处理的能力。在裸机设备上,可以通过中断请求(IRQs)
来实现;在系统托管的平台上,可以通过调用特定平台的 API 来实现。因此,为特定的平台
实现多任务处理能力,只需根据特定的开发平台,选择系统中断还是系统 API 调用来实现,
给开发者自由的选择能力。
评论2
最新资源