首页 理论教育DeviceNet节点开发步骤及应用技术

DeviceNet节点开发步骤及应用技术

【摘要】:大多数DeviceNet产品只具备从机的功能,开发从机功能产品第一个要考虑的问题是I/O通信。DeviceNet协议要求所有设备支持显式报文的通信,至少是标识符。DeviceNet规范允许4种连接方式:迷你型接头、微型接头、开放式接头和螺栓式接头。DeviceNet物理层可以选择使用隔离。DeviceNet规范中要求的最大延时为40ns。DeviceNet是基于CAN的现场总线,从技术的角度上来说,其开发并不困难。

目前,DeviceNet节点的开发大致有两种途径:

·开发者本身对DeviceNet规范相当熟悉,具有丰富的相关经验,并且有长期深入开发DeviceNet应用产品的规划,选择从最底层协议做起,根据自身对协议的深刻领会,自己编写硬件驱动程序,再移植到单片机或其他微处理器系统中,完成开发调试工作。

·利用开发商提供的一些软件包,这些软件包中的源程序往往可以直接应用于单片机中。对于那些复杂的协议处理内容,已封装定义好,用户只需编写自己的应用层程序,而无须涉及过多的协议内容。但其缺点就是价格昂贵,同时受限于软件包的现有功能,不能向更深层的功能进行开发。

比较两种开发途径,可以看到采用第一种途径,工作量是非常巨大的,而且一般来讲开发周期长,但好处在于可以加深对DeviceNet规范的认识,对于开发功能更为复杂的产品(如主站的通信)打下了良好的基础。而第二种途径,一般开发周期比较短、工作量小,但不利于自行开发具有复杂功能的DeviceNet产品。不论哪种途径,DeviceNet节点的开发一般都按以下步骤进行:

1.决定为哪种类型的设备设计DeviceNet接口

这是在着手开发设备之前必须首先确定的事情,也就是确定开发产品的功能。大多数DeviceNet产品只具备从机的功能,开发从机功能产品第一个要考虑的问题是I/O通信。在DeviceNet的初始阶段,在从机产品中只包含位-选通和轮询I/O通信。但随着越来越多的具有状态改变通信和循环I/O通信的从机产品的出现,其优越的带宽特性使用户必须考虑这些通信方法。

位选通式通信主要用于那些含有少量的位数据的传感器或其他从机设备;轮询式通信是一种主要的I/O数据交换手段,必须在所有的应用中加以考虑;状态改变或循环式通信是增加网络吞吐量并降低网络负载的有效方法,由于它允许延用CAN协议中的多主站特性,在开发新产品时,也应该考虑它。

第二个要考虑的问题是设备信息对显式报文的通信功能。DeviceNet协议要求所有设备支持显式报文的通信,至少是标识符。DeviceNet的通信对象必须能由隐式报文(即I/O报文)来访问,如在DeviceNet规范中定义的那样。但如果组态要求超过了只设定几个开关的功能,就必须考虑通过显示报文的通信来组态设备。

分段功能虽然不是必须具备的,但至少对显式报文应答的所有使用32bit名称域的产品要考虑。如果还想支持通过DeviceNet口进行上载/下载、组态或对固件进行版本更新,则必须对发送和接受信息采用显式报文通信的分段功能。

如果考虑开发具有主站功能的产品,就必须要求作为主站的设备或产品具有UCMM功能,以便支持显式报文点对点连接。同时必须具备一个主站扫描列表,用于配置和管理从站。这两个功能缺一不可。因此,主站的开发相对从站而言,要复杂和困难得多。

2.硬件设计

硬件设计需满足DeviceNet物理层和数据链路层的要求。DeviceNet规范允许4种连接方式:迷你型接头、微型接头、开放式接头和螺栓式接头。在可能的情况下,应尽量采用迷你型接头、微型接头、开放式接头,配之以其他接线部件,则可进行即插即用的安装。而在一些不能利用以上3种接头的场合,则采用螺栓式接头。

在DeviceNet中,目前只有125bit/s、250bit/s和500bit/s 3种速率。由于严格的网络长度限制,它不支持CAN的1Mbit/s速率。

DeviceNet物理层可以选择使用隔离。完全由网络供电的设备和与外界无电连接的设备(如传感器)可以不用隔离;而与外界有电联系的设备应该具有隔离。光隔离器件的速度很重要,因为它决定了收发器的总延时。DeviceNet规范中要求的最大延时为40ns。

DeviceNet是基于CAN的现场总线,从技术的角度上来说,其开发并不困难。但由于其特殊性,在开发DeviceNet产品时要考虑以下几方面:

(1)CAN/微处理器硬件

可以使用具有11bit标识符的CAN芯片,而不能使用具有长标识符(29bit)的芯片。如将设备限制在组2从站设备时,使用基本的CAN芯片就可以实现。但带内置CAN芯片的微处理器将减少芯片的数量,它仅在它们能正好满足设备要求时才被推荐使用。采用独立的CAN芯片将给设计带来更多的灵活性。

在复位、上电和断电时特别注意CAN-H和CAN-L线的状态。在此阶段CAN芯片会漂移或跳转到其他电平,因此会导致总线被驱动为显性。如采用上拉或下拉电阻的方式,则能保证CAN总线上的状态为无害的。另外,不要将控制器上的不用的输入端浮空。

(2)收发器的选择

DeviceNet要求收发器超越ISO 11898的要求,主要是因为在其连接上要挂64个物理设备。满足这些要求的器件有:Philips 82C250、Philips 82C251、Unitrode UC5350等。

(3)单片机系统

DeviceNet产品的开发和其他嵌入式系统的开发有着共同之处,首先应搭建一套适合于单片机或者更高层次CPU软硬件系统的环境,再开发单片机或者更高层次CPU的应用系统。

采用AT89S52单片微控制器、独立CAN通信控制器SJA1000、CAN总线驱动器PCA82C250及复位电路IMP708的De viceNet节点电路如图7-43所示。

在图7-43中,IMP708具有两个复位输出RESET和978-7-111-35607-3-Chapter07-75.jpg,分别接至AT89S52单片微控制器和SJA1000 CAN通信控制器。当按下按键S时,为手动复位。

DeviceNet节点的数据采集和控制电路设计这里不再介绍,请参考作者出版的《计算机测控系统设计与应用》一书,该书已由机械工业出版社出版发行。

3.软件设计

软件设计需满足DeviceNet应用层的要求。

(1)采用的软件

DeviceNet方面的软件包有许多种,选择哪一种与自己的产品协同工作,考虑其特性是个首要的问题。以下给出一些需要用户必须考虑的问题:

·该软件对自己的硬件是否适用?

·是否需要重写汇编代码?

·在何种程度上要重写硬件的驱动程序?

·软件的速度对自己的产品是否适合?

·某特定的应用是否需要所有的通信特性(如I/O交换和显式报文传送)?

·是否支持分段?

·采用何种编译器?

978-7-111-35607-3-Chapter07-76.jpg

图7-43 DeviceNet节点电路

(2)选择设计或购买策略

在确定是自行设计或购买策略时,可以作如下的考虑:

·自己是否掌握足够的开发知识,如CAN和微处理器?

·是一次性设计产品还是将来要改进的?

仅实现从站功能的产品极易开发,一些公司只要数周即可完成;但比较复杂的产品,如具有主站功能的,采用商业开发软件包来开发比较好。

(3)设计工具

一般来说,可以用微处理器开发系统来完成开发,因此,这里只讨论与DeviceNet有关的工具,其最小配置为CAN的监视器,它是一个由PC卡和相关软件组成的工具。Devi-ceNet的兼容工具可以向Softing、STZP、Huron Networks、S-S Technologies等公司购买。其价格和性能差别很大,一个典型的底层开发工具是罗克韦尔自动化公司的从站开发工具(Slave Development Tools)和代码例子,而Vector Infor-matik CANALYZER是一个最高层的开发工具。实际上,ODVA可以提供大量的有用信息,如果开发人员只想做CAN这一层的工作,有许多公司的产品可以帮助开发人员监视CAN层。

如果开发的产品可以使用了,可以考虑在一个典型的工业控制环境中使用。这里要包括使用组态工具来检查其对显式报文传送的反映,以及是否能改变设备的组态参数等。

软件的开发还要选择合适的开发包。DeviceNet方面的软件开发包有很多种,可以帮助用户进行软件的开发。在软件开发时,有这样一些问题需要考虑:

·该软件是否适用于自己的硬件?

·软件是否可以直接移植到单片机上?在多大的程度上,需要对源代码进行改动,或者是否要重写硬件驱动程序?(www.chuimin.cn)

·软件中支持的通信特性(如I/O报文、显式报文、UCMM等)是否都需要?

·软件支持何种编译器?

DeviceNet节点的软件设计中包括CAN初始化、发送子程序和接收子程序等。下面介绍这3种程序的设计。

(1)CAN初始化程序

1)程序流程图。CAN初始化子程序流程图如图7-44所示。

978-7-111-35607-3-Chapter07-77.jpg

图7-44 CAN初始化子程序流程图

2)程序清单。CAN初始化子程序清单如下:

978-7-111-35607-3-Chapter07-78.jpg

978-7-111-35607-3-Chapter07-79.jpg

①入口条件:将本节点号存入NODE单元

②波特率控制字存入NBTR0和NBTR1单元。

③出口:无。

978-7-111-35607-3-Chapter07-80.jpg

(2)CAN接收子程序

1)程序流程图。CAN接收子程序流程图如图7-45所示。

2)程序清单。CAN接收子程序清单如下:

①入口条件:无。

978-7-111-35607-3-Chapter07-81.jpg

图7-45 CAN接收子程序流程图

②出口:接收的描述符、数据长度及数据放在RXBF开始的缓冲区中。

978-7-111-35607-3-Chapter07-82.jpg

978-7-111-35607-3-Chapter07-83.jpg

(3)CAN发送子程序

1)程序流程图。CAN发送子程序流程图如图7-46所示。

2)程序清单。CAN发送子程序清单如下:

①入口条件:将要发送的描述符存入TXBF;将要发送的数据长度存入TXBF+1;将要发送的数据存入TXBF+2开始的单元。

②出口:无。

978-7-111-35607-3-Chapter07-84.jpg

978-7-111-35607-3-Chapter07-85.jpg

978-7-111-35607-3-Chapter07-86.jpg

图7-46 CAN发送子程序流程图

4.根据设备类型选定设备描述或自定义设备描述

DeviceNet使用设备描述来实现设备之间的互操作性、同类设备的可互换性和行为一致性。

设备描述有两种,即专家已达成一致意见的标准设备类型的设备描述和一般的或制造商自定义的非标准设备类型的设备描述(又称为扩展的设备描述)。ODVA负责在技术规范中发布设备描述。每个制造商为其每个DeviceNet产品根据设备类型选定扩展或定义设备描述,其内容涉及设备遵循的设备行规。

设备描述是一台设备的基于对象类型的正式定义,包括以下内容:

1)设备的内部构造(使用对象库中的对象或用户自定义对象,定义了设备行为的详细描述)。

2)I/O数据(数据交换的内容和格式,以及在设备内部的映像所表示的含义)。

3)可组态的属性(怎样被组态,组态数据的功能,它可能包括EDS信息)。

在DeviceNet产品开发中,必须指定产品的设备描述。如果不属于标准设备描述,就必须自定义其产品的设备描述,并通过ODVA认证。

5.决定配置数据源

如图7-47所示,DeviceNet标准允许通过网络远程配置设备,并允许将配置参数嵌入设备中。利用这些特性,可以根据特定应用的要求,选择和修改设备配置设定。DeviceNet接口允许访问设备配置设定。

978-7-111-35607-3-Chapter07-87.jpg

图7-47 DeviceNet通过网络远程配置设备

只有通过DeviceNet通信接口,才可访问配置设定的设备,同时必须用配置工具改变这些设定。使用外部开关、跳线、拨码开关或其他所有者的接口进行配置设定的设备,不需要配置工具就可以修改设备配置设定。但设备设计者应提供工具访问和判定硬件配置开关状态。

6.完成DeviceNet一致性声明

一致性与互操作性测试是认证开放系统的产品可以互连的重要步骤。DeviceNet产品的制造商需要通过一致性测试向购买者表明,他们的产品符合DeviceNet规范。用户需通过互操作测试,以证实他们购买的产品彼此能互操作。

DeviceNet的一致性与互操作性是由ODVA通过一致性测试(Conformance Test)保证的。ODVA要求每种产品在投放市场之前,必须通过一致性测试。ODVA允许制造厂商在其产品通过独立实验室全部测试项目后,在产品上加上DeviceNet一致性测试服务标志。