论文部分内容阅读
控制器局域网CAN定义了物理层和数据链路层,但没有在应用层定义报文标识符和数据字节的使用。CANopen是一种基于CAN总线的开放的、标准化的应用层协议,并在国内外的工业自动化领域中得到广泛应用。EtherNet/IP是工业以太网的缩写,是一种开放的、适用于工业环境的通信网络。它采用了以太网TCP/IP协议和工业以太网标准,在应用层则采用CIP协议进行实时I/O控制和点对点的信息交换。因其结合了CIP技术与以太网技术的优点,所以在工业自动化网络领域具有巨大的发展潜力。本文首先分析了CANopen协议规范,主要是DS301V402应用层和通信子协议。然后,对于CANopen协议栈CAN-Festival、 EtherNet/IP协议及其协议栈OpENer进行了分析。课题选用S3C2440A微处理器、MCP2510独立CAN控制器、DM9000E以太网MAC控制器为核心的硬件平台,并设计与实现了电路模块。系统软件平台为基于Linux2.6.30内核的嵌入式操作系统,采用交叉编译。编写基于S3C2440A微处理器和Linux内核的CAN驱动程序,协议栈的驱动程序接口,及支持CANopen协议主站基本功能的主程序,从而实现CAN-Festival协议栈到目标平台的移植,建立一个基于嵌入式Linux平台的CANopen主站。在OpENer协议栈实例的基础上建立一个基于嵌入式Linux平台的EtherNet/IP从站。然后通过建立两个命名管道实现Linux系统下同时运行的EtherNet/IP从站进程与CANopen主站进程之间的双向数据交换,从而实现CANopen网络与EtherNet/IP网络间的通信。最后,通过接入CANopen和EtherNet/IP网络的目标平台上的实验验证了该协议转换模块是可行与有效的。