基于NodeBuilder智能节点开发设计基于NodeBuilder智能节点开发设计.docVIP

  • 10
  • 0
  • 约3.49千字
  • 约 8页
  • 2018-08-28 发布于福建
  • 举报

基于NodeBuilder智能节点开发设计基于NodeBuilder智能节点开发设计.doc

基于NodeBuilder智能节点开发设计基于NodeBuilder智能节点开发设计

基于NodeBuilder智能节点开发设计基于NodeBuilder智能节点开发设计   摘要:阐述了节点开发设计的过程。在硬件设计部分重点说明了神经元芯片如何扩展外部存储器,在软件设计部分主要论述了节点的接口文件和应用程序的定义。   关键词:NodeBuilder Lonworks 智能节点 开发设计   中图分类号:TP393 文献标识码:B 文章编号:1002-2422(2008)01-0008-02      1 智能节点的硬件设计      采用神经芯片3150为主处理器,外加收发器、电源、晶振、存储器、I/O接口构成智能节点,如图1所示。   节点中,系统的固件存储在片外的EP2ROM中,地址为0x0000~0x3FFFH;应用程序也存储在片外的E2PROM中,地址为0x4000~0x7FFFH;片外RAM的地址为Ox8000~0xDFFFH。系统固件的存储地址要求从0x0000H开始,所以32kB E2PROM的地址应设计成Ox0000H~0x7FFFH;而RAM的地址是0x8000H~0xDFFFH(24kB)。将地址线A15直接作为E2pROM的选片信号线。当A15为低电平时,E2PROM被激活,因此保证了E2PROM的地址从0x0000H到0x7FFFH。地址线A13和A14进行与非逻辑再和A15与非后作为RAM存储器的选片信号线,这样,当地址信号线最高三位是100、101及110时,RAM存储器的选片信号才为低电平,所以RAM存储器的地址为1000000000000000~1101111111111111,即0x8000H~0xDFFFH,一共为24kB         2 智能节点的软件设计      2.1利用NodeBuilder定义设备的接口文件   在设备接口的定义阶段,应将设备接口定义为对其他设备可见的形式,这些接口用应用层LonMarks对象进行定义,包括标准格式和信息如何在网络设备间交换的语义。一个遵循LonMarks协议的设备包括一个或多个LonMarks对象,每个对象由一个特定的列象类型码和一纽网络变量以及配置属性进行定义。   网络变量定义的格式如下:   network input I output[netvar―modifier][class]type[eonnectlon―info]identifier [=initial―value]   功能模块声明的格式如下:   fbloek{   nviValue implements;   nvoValue implements ;   }myFbName;   配置属性声明的格式如下:   nv_properties {   nciDefauh,   nciEnergyCnt};   为了说明设备接口文件如何人定义,以图2所示的开环传感器设备为例来定义设备的功能模块、网络变量、配置属性(包括心跳和时阈),其代码如下:   SCPTminSendTime cp_family neiMinSendT;   SCPTmaxSendTime cp_family nciMaxSendT;   network output SNVT_lux nvoLuxLevel   nv_properties{   nciMinSendT,   nciMaxSendT   };   foloek SFPTIightSensor   {nvoLuxLevel implements   nvoLuxLevel:   director lightSensorDirector;   }lightSensor   2.2 NodeBuilder定义设备的应用程序   设备应用程序采用Neuron c语言编写,Neuron C是一个基于ANSI C的、并对简单网络通讯、硬件I/O和事件驱动处理加以扩展的高级编程语言。应用程序使用IO对象、网络变量以及所定义的任务来编制对象和任务的运行代码满足设备的功能需求。在程序中,一个或多个引脚可以卢明IO对象,程序就是对IO对象的函数调用以完成程序运行中实际的IO操作。网络变量有自身的数据类型和数据方向,它提供面向数据的应用协议,应用数据项以标准工程和其他预定义的单位在设备间交换信息。      设备I/O接口的声明格式如下:   inputIoutput[=initial-value];   事件及任务声明格式如下:   When(event)   {tasks}   为了说明应用程序如何定义,以图2所示的开环传感器为例,其应用程序如下:   #define LIGHT_SENSOR HBCORE 100L   #define

文档评论(0)

1亿VIP精品文档

相关文档