DeviceNet和CAN有什么不同?
CAN规范定义了通信系统的物理层和数据链路层。CAN规范是由Bosch开发的(ISO 11898-1),它完整定义了数据链路层。 CAN的物理层则有不同的标准(参考下面的链接)。使用CAN规范,网络设计者就拥有了在CAN总线上传输和接收帧的方法。指定数据如何以帧的方式传输就取决于设计者。
CAN规范提供了一种稳健的信道并且内嵌了错误检测和限制。DeviceNet 使用了CAN标准作为更高层通信协议的基础。 DeviceNet常常被看作CAN的一种应用层协议。 DeviceNet规范的主要目的是允许不同厂商的DeviceNet设备之间的互连和可交换。为了实现这种目的,DeviceNet定义了:
CAN物理层 - 为CAN的物理连接定义了单独的标准。使用的标准是高速CAN(ISO 11898-2)。该规范也包含了总线供电电压、可连设备数目、允许的连接器类型、线缆长度以及波特率。
CAN数据链路层 - 该规范不可更改。标准的CAN控制器(例如Intel 82527)可以用于DeviceNet设备。
应用层 - DeviceNet规范的主要贡献是指定了数据组织和设备间数据传输的方法。DeviceNet指定了一种设备需要实现的对象模型。这种方法使得所有的设备为网络其它部分提供了一致的接口,并隐藏了设备内部的细节。
在应用程序开发方面,使用NI-CAN编写应用程序的开发人员会使用帧,需要具备网络上其它设备详细的知识,并且能够使用仲裁ID对它们寻址。这对小型的、“封闭的”网络足够了,例如一个汽车网络,其主要目标是一个快速并且非常可靠的通信网络。
使用NI-DNET,开发人员可以打开和网络上的其它设备通信的对象。DeviceNet规范提供了检测网络上设备以及从一个节点将信息路由到其它节点的方法。这样,NI-DNET驱动可以和任何DeviceNet兼容的设备进行通信。这考虑到了不同厂商提供的功能相同的设备之间的可交换性。
还有其它CAN应用层协议,例如: CAL (CAN Application Layer)、CANopen、PCAL、SDS (Smart Distributed System) 以及CAN Kingdom。 National Instruments的产品仅支持DeviceNet。
DeviceNetCA 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)