企业: | 控制网 | 日期: | 2005-07-15 |
---|---|---|---|
领域: | PLC&PAC | 点击数: | 981 |
本设计针对的DeveiceNet从设备特性如下:属于DeviceNet group 2 only从设备;采用Predefine的通信连接;可通过硬件开关设置125kbps、250kbps、500kbps波特率;可通过硬件开关设置0~63 MAC ID。在软件、硬件设计前应首先进行从设备(泵/阀)I/O需求分析(即 profile文挡设计)。 1 通信适配器硬件系统设计 1.1 功能简介 DeviceNet是基于CAN 总线的一种总线协议标准。因此,DeviceNet从设备适配器硬件首先应实现CAN总线的基本功能,主要包括:报文收发、访问控制及其它物理层的诸多功能。此外,为实现DeviceNet协议,硬件应具有足够大的程序存储空间,并具有足够快的运行速度,以保证协议程序的顺利执行。 DeviceNet节点硬件主要由以下几部分组成:电源、单片机系统、看门狗及掉电保护电路、CAN控制器SJA1000、CAN收发器82C251、拨码开关及状态LED显示、双口RAM IDT7005、AnyBus接口。总体设计框图略(详见《单片机与嵌入式系统应用》2002.8)。 (1)单片机 DeviceNet适配器选用Winbond公司的高性能8位单片机W78E58。W78E58功能、引脚与80C52完全兼容,并提供256B 的内部RAM以及32KB的Flash EEPROM,从而使系统不需扩展外部程序存储器便可满足 DeviceNet协议程序的容量要求。W78E58最高可在40MHz的主频下运行,处理速度完全满足DeviceNet节点通信的实时性要求。为减少芯片的数量及降低硬件成本,本系统只扩展1片8KB的双口RAM,其前面7KB用于外部数据存储,最后1KB用于提供与其它应用电路的通信接口。 DeviceNet总线报文的收发以及媒体访问控制等都是依据CAN总线协议的,而这些协议都要通过CAN控制器加以实现。DeviceNet 通信节点选用目前比较流行的Philips CAN控制器SJA1000。由于 DeviceNet总线协议采用11位的标识符,因此应使SJA1000工作在Basic CAN模式。 CAN收发器(transceiver)82C251的主要作用是收发CAN总线上的信号:一方面将总线信号转换为CAN控制器所需的信号;另一方面,将CAN控制器的输出信号转化为CAN总线信号。 DeviceNet适配器通过1个具有中断功能的双口RAM IDT7005提供与其它应用电路的通信接口。IDT7005具有2套完全独立的数据线、地址 线、读写控制线,允许2个CPU对双口RAM的同一个单元在不同的时间进行读写;具有2套完全独立的中断逻辑,实现2个CPU间的握手控制信 号。IDT7005的最高2个字节1FFFEH和1FFFH和分别兼做2个端口的中断逻辑单元。 作为一种通用的现场总线通信节点,AnyBus提供了与其它应用电路之间进行数据交换的接口标准,并对接口的引脚进行了严格的定义。 2 DeviceNet总线通信协议 DeviceNet协议规范是描述DeviceNet设备之间实现连接和交换数据的一套协议。在DeviceNet规范中定义了Device Net通信协议,详细介绍了连接、信息协议和与通信相关的对象。 DeviceNet通信协议是基于连接概念的协议。一旦建立了连接,就可以在网络设备之间传送I/O数据。此时,Device Net I/O报文的所有协议都包含在11位的CAN标识符中,其它部分都是数据。 通过设计,DeviceNet系统中的节点能够对自己的标识符进行管理。这些标识符交错分布在整个范围内。所有的节点都有一个完整的它们能获得的报文优先权范围,而与它们的MAC ID无关。重复MAC ID算法保证了 CAN标识符的唯一性,而不需要网络集中工具或记录。 (2)DeviceNet的报文传送 DeviceNet定义了2种不同类型的报文,称作 I/O报文和显示报文。I/O报文适用于实时性要求较高和面向控制的数据。I/O报文数据帧中的 8位数据场不包含任何与协议有关的位,只有当I/O报文为大报文经过分割后形成的I/O报文片段时,数据位域中有一位由报文分割协议使用。 连接标识符提供了I/O报文的相关信息,在I/O报文利用连接标识符发送之前,报文的发送和接收设备都必须先进行设定。设定的内容包括源 和目的对象的属性,以及数据生产者和消费者的地址。显示报文适用于2个设备间多用途的点对点报文传递,是典型的请求-响应通信方式, 常用于节点的配置、问题诊断等。显示报文通常使用优先极低的连接标识符,并且该报文的相关信息包含在显示报文数据帧的数据位域中, 包括要执行的服务和相关对象的属性及地址。 许多传感器和执行器要实现的功能在设计时就已经预先决定了(如感受压力、启动马达等),因此这些设备将要生产和/或消费的数据的类型和数量在上电前就已经知道了。这些设备通常提供输入数据或请求输出数据和配置数据。预定义主/从连接组可以满足设备的这些要求,它提供的连接对象的全部配置在设备上电时就完成了。在启动数据流时,主机设备唯一必须执行的一个步骤就是要广播对从机内该预定义连接组的所有权。 (4)DeviceNet对象模型与设备描述 a.对象模型。为管理和实现DeviceNet产品组件的属性(数据)、服务(方法或步骤)和行为提供了一个模板。模型为每个属性提供了由4个数字组成的寻址方案,分别是节点地址(MAC ID)、对象类标识符、实例编号和属性编号。这4级地址与显示报文连接相结合,将数据从 DeviceNet网络上的一点传送到另一点。表1列出4个地址组件的范围:
通用DeviceNet设备的对象模型图略(详见《单片机与嵌入式系统应用》2002.8);表2是DeviceNet产品中典型的对象类。 表2 DeviceNet产品中典型的对象类
b.设备描述 (Device Profiles)。DeviceNet规范不仅仅是一个物理连接协议规范。它通过定义标准的设备模型促进不同厂商设备之间的互操作性。属于同一设备模型的所有设备都必须支持共同的标识和通信状态数据。设备描述是针对各种设备而定义的。设备描述中包括设备各种特定的数据。符合设备类型描述的多个供货商提供的简单设备(例如:按钮、马达启动器、光电池、气动阀执行器)在逻辑上是可互换 的。 DeviceNet规范定义了一个电子数据文件(EDS)。EDS是一个简单的文件格式,供货商可以将产品的特殊信息提供给其他供货商。这样可以具有友好的用户配置工具,能很容易地更新,无需经常修正配置软件工具。 3.通信适配器软件系统设计 下面主要介绍通信协议的设计。软件的实现是以DeviceNet协议规范的2.0版本为指导的,不同的应用有不同的具体实现。本文只给出设计的原理和指导思想及原则。 DeviceNet设备上电后的状态流图略(详见《单片机与嵌入式系统应用》2002.8),其中有4个状态:发送重复MAC ID检测报文状态、等待重复MAC ID检测报文状态、在线状态、通信出错状态。 3.2 CAN芯片的初始化 在完成所有的初始化工作后,SJA1000就进入工作模式,并且使CAN控制器的中断功能有效。用C51编写的SJA1000初始化及一个模拟发送、接收过程的程序略。 3.3 报文收发程序和分段服务 表3 分段协议信息
因此在程序的设计中,应当加入对分段服务协议的支持。 发送报文的处理与接收的过程是一个逆向过程。需要注意的是编写程序的时候要严格按照 DeviceNet协议规范的定义,否则将产生不可预测的错误,为将来的协议一致性测试和低层调试都带来许多麻烦。 软件由头文件、初始化程序、功能子程序和主程序组成。 软件的组成结构提供了硬件和软件升级的方便。软件中将对与主处理器、CAN 控制器等硬件接口的部分进行比较独立的设计,而主程序和功能子程序主要集中在协议的完成。这对将来的硬件改型和可能的协议修改都提供了较大的方便。 软件结构图略(详见《单片机与嵌入式系统应用》2002.8)。 在实现所有的功能模块以后,最重要的是如何构造一个有机的主程序模块,将这些零散的模块组织起来,进行系统的初始化工作。另外,还要设计一个优化的循环体并周期性地执行以对DeviceNet网络上的报文产生动作。 本通信适配器已成功用于工程项目中,由于采用现场总线技术,取得了显著的经济效益。 |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
1.我有以下需求: | |
|
|
2.详细的需求: | |
* | |
姓名: | * |
单位: | |
电话: | * |
邮件: | * |