基于DeviceNet总线的从设备通信适配器设计
时间:07-25
来源:互联网
点击:
DeviceNet是一个开放的网络标准。规范和协议都是开放的——供应商将设备连接到系统时,无需为硬件、软件或授权付费;任何人都能以名义上的复制成本(目前为250美元+邮费)从开放式DeciceNet供应商协会(ODVA)获得DeviceNet规范。
本设计针对的DeviceNet从设备特性如下:属于DeviceNet group 2 only 从设备;采用Predefine的通信连接;可通过硬件开关设置125 kbps、250 kbps、500 kbps波特率;可通过硬件开关设置0"63 MAC ID。在软件、硬件设计前应首先进行从设备(泵/阀)I/O需求分析(即profile文档设计)。由于篇幅关系本文从略。
1 通信适配器硬件系统设计
1.1 功能简介
DeviceNet是基于CAN总线的一种总线协议标准。因此,DeviceNet从设备适配器硬件首先应实现CAN总线的基本功能,主要包括:报文收发、访问控制及其它物理层的诸多功能。此外,为实现DeviceNet协议,硬件应具有足够大的程序存储空间,并具有足够快的运行速度,以保证协议程序的顺利执行。
1.2 硬件原理
DeviceNet节点硬件主要由以下几部分组成:电源、单片机系统、看门狗及掉电保护电路、CAN控制器SJA1000、CAN收发器82C251、拨码开关及状态LED显示、双口RAM IDT7005、AnyBus接口。总体设计框图如图1所示。详细硬件电路图见本刊网站补充版。
以下是主要部分功能介绍。
(1)单片机
DeviceNet适配器选用Winbond公司的高性能8位单片机W78E58。W78E58功能、引脚与80C52完全兼容,并提供256 B的内部RAM以及32 KB的Flash EEPROM,从而使系统不需扩展外部程序存储器便可满足DeviceNet协议程序的容量要求。W78E58最高可在40 MHz的主频下运行,处理速度完全满足DeviceNet节点通信的实时性要求。为减少芯片的数量及降低硬件成本,本系统只扩展1片8 KB的双口RAM,其前面7 KB用于外部数据存储,最后 1 KB用于提供与其它应用电路的通信接口。
(2)CAN控制器SJA1000
DeviceNet总线报文的收发以及媒体访问控制等都是依据CAN总线协议的,而这些协议都要通过CAN控制器加以实现。DeviceNet通信节点选用目前比较流行的Philips CAN控制器SJA1000。由于DeviceNet总线协议采用11位的标识符,因此应使SJA1000工作在Basic CAN模式。
(3)CAN收发器82C251
CAN收发器(transceiver)82C251的主要作用是收发CAN总线上的信号:一方面将总线信号转换为CAN控制器所需的信号;另一方面,将CAN控制器的输出信号转化为CAN总线信号。
(4)双口RAM IDT7005
DeviceNet适配器通过1个具有中断功能的双口RAM IDT7005提供与其它应用电路的通信接口。IDT7005具有2套完全独立的数据线、地址线、读写控制线,允许2个CPU对双口RAM的同一个单元在不同的时间进行读写;具有2套完全独立的中断逻辑,实现2个CPU间的握手控制信号。IDT7005的最高2个字节1FFEH和1FFFH分别兼做2个端口的中断逻辑单元。
(5)AnyBus接口
作为一种通用的现场总线通信节点,AnyBus提供了与其它应用电路之间进行数据交换的接口标准,并对接口的引脚进行了严格的定义。
2 DeviceNet总线通信协议
DeviceNet协议规范是描述DeviceNet设备之间实现连接和交换数据的一套协议。在DeviceNet规范中定义了DeviceNet通信协议,详细介绍了连接、信息协议和与通信相关的对象。
(1)DeviceNet是基于连接的网络
DeviceNet中的连接提供在多种应用之间交换信息的路径。当建立1个连接时,与连接相关信息的传送就会分配1个标识符,称为连接标识符CID(Connection Identifier)。如果某个连接需要双向数据交换,则应该分配2个不同的连接标识符。
DeviceNet通信协议是基于连接概念的协议。一旦建立了连接,就可以在网络设备之间传送I/O数据。此时,DeviceNet I/O报文的所有协议都包含在11位的CAN标识符中,其它部分都是数据。
11位的CAN标识符用来定义连接ID。DeviceNet将11位的CAN标识符分为4组,前3组的连接ID包括了6位的媒体访问控制标识符(MAC ID)以及信息标识符(Message ID)。信息组的定义如图2所示。组4信息用于离线通信。
通过设计,DeviceNet系统中的节点能够对自己的标识符进行管理。这些标识符交错分布在整个范围内。所有的节点都有一个完整的它们能获得的报文优先权范围,而与它们的MAC ID无关。重复MAC ID算法保证了CAN标识符的唯一性,而不需要网络集中工具或记录。
(2)DeviceNet的报文传送
DeviceNet使用更为有效的生产者/消费者模式,取代了传统的源/目的的传输方式。该模式要求对报文打包,使它具有数据标识位域。标识符还提供解决多级优先权(仲裁中使用)的手段,以便更高效地传送I/O数据,并供多个消费者使用。
DeviceNet定义了2种不同类型的报文,称作 I/O报文和显式报文。I/O报文适用于实时性要求较高和面向控制的数据。I/O报文数据帧中的8位数据场不包含任何与协议有关的位,只有当I/O报文为大报文经过分割后形成的I/O报文片段时,数据位域中有一位由报文分割协议使用。连接标识符提供了I/O报文的相关信息,在I/O报文利用连接标识符发送之前,报文的发送和接收设备都必须先进行设定。设定的内容包括源和目的对象的属性,以及数据生产者和消费者的地址。显式报文适用于2个设备间多用途的点对点报文传递,是典型的请求-响应通信方式,常用于节点的配置、问题诊断等。显示报文通常使用优先级低的连接标识符,并且该报文的相关信息包含在显示报文数据帧的数据位域中,包括要执行的服务和相关对象的属性及地址。
(3)预定义的主/从连接组
DeviceNet提供了一个功能很强的应用层协议,允许动态配置设备间的连接。但考虑到有些设备根本不需要也没有资源去使用这一强大功能,DeviceNet指定了一套称为预定义主/从连接组的连接标识符,用来简化主/从结构中I/O和配置型数据的传送。
许多传感器和执行器要实现的功能在设计时就已经预先决定了(如感受压力、启动马达等等),因此这些设备将要生产和/或消费的数据的类型和数量在上电前就已经知道了。这些设备通常提供输入数据或请求输出数据和配置数据。预定义主/从连接组可以满足设备的这些要求,它提供的连接对象的全部配置在设备上电时就完成了。在启动数据流时,主机设备唯一必须执行的一个步骤就是要广播对从机内该预定义连接组的所有权。
(4)DeviceNet对象模型与设备描述
① 对象模型。为管理和实现DeviceNet产品组件的属性(数据)、服务(方法或步骤)和行为提供了一个模板。模型为每个属性提供了由4个数字组成的寻址方案,分别是节点地址(MAC ID)、对象类标识符、实例编号和属性编号。这4级地址与显式报文连接相结合,将数据从DeviceNet网络上的一点传送到另一点。表1列出4个地址组件的范围:
本设计针对的DeviceNet从设备特性如下:属于DeviceNet group 2 only 从设备;采用Predefine的通信连接;可通过硬件开关设置125 kbps、250 kbps、500 kbps波特率;可通过硬件开关设置0"63 MAC ID。在软件、硬件设计前应首先进行从设备(泵/阀)I/O需求分析(即profile文档设计)。由于篇幅关系本文从略。
1 通信适配器硬件系统设计
1.1 功能简介
DeviceNet是基于CAN总线的一种总线协议标准。因此,DeviceNet从设备适配器硬件首先应实现CAN总线的基本功能,主要包括:报文收发、访问控制及其它物理层的诸多功能。此外,为实现DeviceNet协议,硬件应具有足够大的程序存储空间,并具有足够快的运行速度,以保证协议程序的顺利执行。
1.2 硬件原理
DeviceNet节点硬件主要由以下几部分组成:电源、单片机系统、看门狗及掉电保护电路、CAN控制器SJA1000、CAN收发器82C251、拨码开关及状态LED显示、双口RAM IDT7005、AnyBus接口。总体设计框图如图1所示。详细硬件电路图见本刊网站补充版。
以下是主要部分功能介绍。
(1)单片机
DeviceNet适配器选用Winbond公司的高性能8位单片机W78E58。W78E58功能、引脚与80C52完全兼容,并提供256 B的内部RAM以及32 KB的Flash EEPROM,从而使系统不需扩展外部程序存储器便可满足DeviceNet协议程序的容量要求。W78E58最高可在40 MHz的主频下运行,处理速度完全满足DeviceNet节点通信的实时性要求。为减少芯片的数量及降低硬件成本,本系统只扩展1片8 KB的双口RAM,其前面7 KB用于外部数据存储,最后 1 KB用于提供与其它应用电路的通信接口。
(2)CAN控制器SJA1000
DeviceNet总线报文的收发以及媒体访问控制等都是依据CAN总线协议的,而这些协议都要通过CAN控制器加以实现。DeviceNet通信节点选用目前比较流行的Philips CAN控制器SJA1000。由于DeviceNet总线协议采用11位的标识符,因此应使SJA1000工作在Basic CAN模式。
(3)CAN收发器82C251
CAN收发器(transceiver)82C251的主要作用是收发CAN总线上的信号:一方面将总线信号转换为CAN控制器所需的信号;另一方面,将CAN控制器的输出信号转化为CAN总线信号。
(4)双口RAM IDT7005
DeviceNet适配器通过1个具有中断功能的双口RAM IDT7005提供与其它应用电路的通信接口。IDT7005具有2套完全独立的数据线、地址线、读写控制线,允许2个CPU对双口RAM的同一个单元在不同的时间进行读写;具有2套完全独立的中断逻辑,实现2个CPU间的握手控制信号。IDT7005的最高2个字节1FFEH和1FFFH分别兼做2个端口的中断逻辑单元。
(5)AnyBus接口
作为一种通用的现场总线通信节点,AnyBus提供了与其它应用电路之间进行数据交换的接口标准,并对接口的引脚进行了严格的定义。
2 DeviceNet总线通信协议
DeviceNet协议规范是描述DeviceNet设备之间实现连接和交换数据的一套协议。在DeviceNet规范中定义了DeviceNet通信协议,详细介绍了连接、信息协议和与通信相关的对象。
(1)DeviceNet是基于连接的网络
DeviceNet中的连接提供在多种应用之间交换信息的路径。当建立1个连接时,与连接相关信息的传送就会分配1个标识符,称为连接标识符CID(Connection Identifier)。如果某个连接需要双向数据交换,则应该分配2个不同的连接标识符。
DeviceNet通信协议是基于连接概念的协议。一旦建立了连接,就可以在网络设备之间传送I/O数据。此时,DeviceNet I/O报文的所有协议都包含在11位的CAN标识符中,其它部分都是数据。
11位的CAN标识符用来定义连接ID。DeviceNet将11位的CAN标识符分为4组,前3组的连接ID包括了6位的媒体访问控制标识符(MAC ID)以及信息标识符(Message ID)。信息组的定义如图2所示。组4信息用于离线通信。
通过设计,DeviceNet系统中的节点能够对自己的标识符进行管理。这些标识符交错分布在整个范围内。所有的节点都有一个完整的它们能获得的报文优先权范围,而与它们的MAC ID无关。重复MAC ID算法保证了CAN标识符的唯一性,而不需要网络集中工具或记录。
(2)DeviceNet的报文传送
DeviceNet使用更为有效的生产者/消费者模式,取代了传统的源/目的的传输方式。该模式要求对报文打包,使它具有数据标识位域。标识符还提供解决多级优先权(仲裁中使用)的手段,以便更高效地传送I/O数据,并供多个消费者使用。
DeviceNet定义了2种不同类型的报文,称作 I/O报文和显式报文。I/O报文适用于实时性要求较高和面向控制的数据。I/O报文数据帧中的8位数据场不包含任何与协议有关的位,只有当I/O报文为大报文经过分割后形成的I/O报文片段时,数据位域中有一位由报文分割协议使用。连接标识符提供了I/O报文的相关信息,在I/O报文利用连接标识符发送之前,报文的发送和接收设备都必须先进行设定。设定的内容包括源和目的对象的属性,以及数据生产者和消费者的地址。显式报文适用于2个设备间多用途的点对点报文传递,是典型的请求-响应通信方式,常用于节点的配置、问题诊断等。显示报文通常使用优先级低的连接标识符,并且该报文的相关信息包含在显示报文数据帧的数据位域中,包括要执行的服务和相关对象的属性及地址。
(3)预定义的主/从连接组
DeviceNet提供了一个功能很强的应用层协议,允许动态配置设备间的连接。但考虑到有些设备根本不需要也没有资源去使用这一强大功能,DeviceNet指定了一套称为预定义主/从连接组的连接标识符,用来简化主/从结构中I/O和配置型数据的传送。
许多传感器和执行器要实现的功能在设计时就已经预先决定了(如感受压力、启动马达等等),因此这些设备将要生产和/或消费的数据的类型和数量在上电前就已经知道了。这些设备通常提供输入数据或请求输出数据和配置数据。预定义主/从连接组可以满足设备的这些要求,它提供的连接对象的全部配置在设备上电时就完成了。在启动数据流时,主机设备唯一必须执行的一个步骤就是要广播对从机内该预定义连接组的所有权。
(4)DeviceNet对象模型与设备描述
① 对象模型。为管理和实现DeviceNet产品组件的属性(数据)、服务(方法或步骤)和行为提供了一个模板。模型为每个属性提供了由4个数字组成的寻址方案,分别是节点地址(MAC ID)、对象类标识符、实例编号和属性编号。这4级地址与显式报文连接相结合,将数据从DeviceNet网络上的一点传送到另一点。表1列出4个地址组件的范围:
总线 CAN总线 单片机 看门狗 电路 收发器 LED IDT 电路图 传感器 电子 相关文章:
- 热插拔和缓冲I2C总线 (04-14)
- PCIe总线何时突破Unix服务器坚冰(02-03)
- TMS320VC5402 HPI接口与PCI总线接口设计(04-12)
- 基于Nios II的I2C总线接口的实现(04-09)
- 双口RAM CY7C026在高速数据采集系统中的应用(04-12)
- 计算机在新型多电机同步系统中的应用(07-08)