基于DeviceNet总线的从设备通信适配器设计

发布者:人妙果华最新更新时间:2012-02-24 来源: dzsc关键字:DeviceNet  适配器  通信协议  从设备 手机看文章 扫描二维码
随时随地手机看文章
  引 言
 
  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个地址组件的范围:
表1 DeviceNet地址组件范围
地址 最低 最高
节点 0 63
1 65535
实例 0 65535
属性 1 255
 
 

  图3是一个通用DeviceNet设备的对象模型;表2是DeviceNet产品中典型的对象类。

  ② 设备描述(Device Profiles)。DeviceNet规范不仅仅是一个物理连接协议规范。它通过定义标准的设备模型促进不同厂商设备之间的互操作性。属于同一设备模型的所有设备都必须支持共同的标识和通信状态数据。设备描述是针对各种设备而定义的。设备描述中包括设备各种特定的数据。符合设备类型描述的多个供货商提供的简单设备(例如:按钮、马达启动器、光电池、气动阀执行器)在逻辑上是可互换的。

  DeviceNet规范定义了一个电子数据文件(EDS)。EDS是一个简单的文件格式,供货商可以将产品的特殊信息提供给其它供货商。这样可以具有友好的用户配置工具,可以很容易地更新,无需经常修正配置软件工具。

  3 通信适配器软件系统设计

下面主要介绍通信协议的设计。软件的实现是以DeviceNet协议规范的2.0版本为指导的,不同的应用有不同的具体实现。本文只给出设计的原理和指导思想及原则。

  3.1 DeviceNet通信设备的上电状态流图

  每个设备上电以前都有一个例行的状态流转过程。该过程描述了设备能够在DeviceNet上通信之前必须完成的以下工作(例如重复MAC ID检测等),以及对设备通信产生影响的网络事件。

  图4是DeviceNet设备上电后的状态流图,其中一共有4个状态:发送重复MAC ID检测报文状态、等待重复MAC ID检测报文状态、在线状态、通信出错状态。

  3.2 CAN芯片的初始化

  在建立CAN总线的通信之前要预先有一些初始化过程。一般,独立式CAN芯片SJA1000在上电后或者上电后进行软件功能重置时要初始化一下工作寄存器。当系统上电后,处理器首先运行自己的特殊初始化过程,然后再进入SJA1000的连接建立过程(SJA1000的17引脚获得1个Reset低电平脉冲,并进入Reset模式)。在初始化SJA1000的寄存器之前,主微处理器应该检测Reset的mode/request标志。如果SJA1000已经是Reset模式,因为所有的寄存器只能在Reset模式下进行写操作,所有的寄存器都将获得相应的配置信息。

  在完成所有的初始化工作后,SJA1000就进入工作模式,并且使CAN控制器的中断功能有效。用C51编写的SJA1000初始化及一个模拟发送、接收过程的程序请见本刊网站补充版。

  http://www.dpj.com.cn

  3.3 报文收发程序和分段服务

  这里所讲的报文收发协议对不同的通信协议有不同的定义。另外,CAN的数据长度不能超过8个字节,如何支持大于8个字节的报文要涉及到分段服务。分段协议信息由1个字节组成,其中高2位表示分段的类型,低6位作为分段的计数器,用来标识每个数据包.其计算方式是:
fragmentCount=(fragmentcount+1) mod 64。 表3是具体的分段类型。

表2 DeviceNet产品中典型的对象类

对象类编号 对象类名称 参考DeviceNet规范
1 Identity 卷II,版本1.2,6-3
2 Message Router 卷II,版本1.2,6-17
3 DeviceNet 卷I,版本1.3,5-50
4 Assembly 卷II,笨2,6-25
5 Connection 卷II,版本1.3,5-6
6 Parameter 卷II,版本1.2,6-95

表3 分段协议信息

分段类型值 含           义
0 分段后的第1个报文,分段计数的为0或者3FF
1 分段后的中报文,表示后面还有其它的报文
2 分段后最后一个报文
3 分段报文的应答

  因此在程序的设计中,应当加入对分段服务协议的支持。

  发送报文的处理与接收的过程是一个逆向过程。需要注意的是编写程序的时候要严格按照DeviceNet协议规范的定义,否则将产生不可预测的错误,为将来的协议一致性测试和底层调试都带来许多麻烦。

  3.4 DeviceNet通信适配器主程序的设计

  软件由头文件、初始化程序、功能子程序和主程序组成。

  软件的组成结构提供了硬件和软件升级的方便。软件中将对与主处理器、CAN控制器等硬件接口的部分进行比较独立的设计,而主程序和功能子程序主要集中在协议的完成。这对将来的硬件改型和可能的协议修改都提供了较大的方便。

  软件用Franklin C51语言编写,通过伟福E51L单片机开发装置进行调试。
软件结构如图5所示。

  在实现所有的功能模块以后,最重要的是如何构造一个有机的主程序模块,将这些零散的模块组织起来,进行系统的初始化工作。另外,还要设计一个优化的循环体并周期性地执行以对DeviceNet网络上的报文产生动作。

 
关键字:DeviceNet  适配器  通信协议  从设备 引用地址:基于DeviceNet总线的从设备通信适配器设计

上一篇:基于PCIe总线的航空视频采集记录系统的设计
下一篇:基于CAN总线和双传感器的仿人机器人运动控制系统研究

推荐阅读最新更新时间:2024-05-02 21:55

3V/6V/9V汽车电源适配器直流电源电路
建立一个汽车通用 适配器 的(12 - 14伏特)电源插座电压,为直流设备提供低电压水平。输出电压取决于R1的价值,这是被连接R3通过转换得到的输出。
[电源管理]
3V/6V/9V汽车电源<font color='red'>适配器</font>直流电源电路
一种RS-485总线自定义通信协议及其应用
    摘要: RS-485总线是集散控制系统常用的组网方法,但具体的通信协议并没有一个统一的标准。本文详细讨论一种基于RS-485总线通信协议的设计,具有可靠、编程实现简单、易扩展等特点,能够很容易地移植到其它系统中;结合一个电力参数实时监测系统实例,介绍本协议的具体应用。     关键词: RS-485 通信协议 集散控制系统 1 概述 在工业控制系统中,集散控制是目前最常用的测量控制方式。通常,一个集散控制系统由一个主控计算机(上位机)和一系列基于MCU的前端智能仪器(下位机)构成,它们之间再通过一定的物理媒介连接在一起,以完成必要的通信功能。对于一个特定的测控系统而言,所要测控的对象和所采取的测控算
[网络通信]
高效率大功率适配器的研究
1 引言 随着技术的发展,电脑CPU的工作频率越来越高,其信息处理能力及各方面功能越来越强,这样就要求为之供电的适配器功率相应较大。目前DELL等公司已为其生产销售的移动PC、笔记本电脑,向电源生产商提出了150W甚至200W适配器的供货要求。对于如此大功率适配器,从安全角度考虑,要求适配器的密封性能要好;为便于携带,同时又希望适配器的体积小。但这些要求却不利于适配器的散热(由于损耗所产生的热量),为此必须采用高效率、低损耗的解决方法。 针对下一代大功率笔记本电脑适配器,本文提出了一种高效率的拓扑结构,并分析研究了其电路工作原理,最后给出了电路参数的选取方法和实验结果。 2 工作原理 笔记本电脑适配器是一种高质量直流输出电源,一般
[电源管理]
高效率大功率<font color='red'>适配器</font>的研究
通用输入电压的适配器电路
通用输入电压的适配器电路 : 12W, 12V, 1A, 85–265 VAC输入反激式电源电路
[电源管理]
通用输入电压的<font color='red'>适配器</font>电路
基于Linux的USB设备驱动研究
  0 引言   USB是英文Universal Serial Bus的缩写,意为通用串行总线。USB是一种快速、双向、同步、低成本、动态可连接的串行接口。USB现在已经广泛应用到各种设备上,尤其是手持设备,几乎都采用了USB接口。现在,USB即可用来与其他设备连接后高速地传递数据,又可用来充电,使手持设备可以发挥U盘、MODEM、无线网卡等作用。   事实上,USB只是主机和外围设备之间的连接。如何来促使这种连接发挥作用,就需要驱动程序。驱动程序主要解决硬件“需要提供什么功能”以及“如何使用这些功能”。在linux系统中,USB设备可以作为主机使用,也可作为从设备使用。对应的USB驱动程序有两种主要的类型:宿主系统上的驱动程
[嵌入式]
JM5540型电源适配器工作原理
JM5540型电源适配器,输出插口采用的是标准的USB接口,既可为采用USB接口供电的数码设备直接提供电源,还可以通过转接线作充电器。   其输入参数是:100~240VAC、0.2A、50/60Hz;输出参数是:5.5V、0.4ADC。实绘该适配器电路图见附图所示,工作原理简述如下。   220VAC通过保险电阻R0、Rl后加至由Dl~D4构成的整流桥上,整流后得到约300VDC再经C1滤波后分成两路,一路经过TRl的N1线圈加至T1的集电极,另一路则经过R2加至T1的基极,为T1的启动提供一个基极电流。于是在Tl的集电极上就有电流产生,通过开关变压器TRl的耦合作用。在其反馈线圈N3上产生和N1线圈上同向的感应电压,这个电
[电源管理]
JM5540型电源<font color='red'>适配器</font>工作原理
儒卓力系统解决方案推出RAB4新型适配器板 实现厘米级精度实时定位
创新硬件工具可以经济高效地验证实时动态技术 在许多领域和应用中,精确的定位变得日益重要。实时动态 (RTK)技术的定位精度明显高于传统的多GNSS系统,并且成本效益不断提高。儒卓力系统解决方案 (Rutronik System Solutions) 的专家与儒卓力无线技术中心 (Rutronik Wireless Competence Center) 携手开发了RAB4适配器板,无需设计任何硬件即可测试 RTK 性能,从而加速预开发阶段并降低成本,帮助客户更快地将应用推向市场。 自动驾驶汽车、无人机和农业机械都依赖实时准确定位。RTK 使用基站向移动的接收器发送校正数据,从而提高卫星系统定位的精度。即使是快速移动的物体,
[网络通信]
儒卓力系统解决方案推出RAB4新型<font color='red'>适配器</font>板 实现厘米级精度实时定位
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved