位置:51电子网 » 技术资料 » 家用电器

利用TINI平台设计网络On/Off开关

发布时间:2008/5/29 0:00:00 访问次数:514

tini平台可提供设计ip网络继电器所需的tcp/ip栈和本地控制,java运行环境可以大大降低设计工作的复杂度,利用java程序,可以通过网络远程访问控制小型传感器和执行器。本文介绍了一个ip on/off开关,采用一个简单的继电器电路和tinim390/400验证模块构建,还可以延伸到其他远程监视和控制应用中。


系统软件概述
  com.dalsemi.tininet.http.httpserver类允许开关控制应用程序充当简单的web服务器,将java程序传递给远端主机。在被主机内部浏览器执行后,该java程序就建立了一个与tini应用程序交换命令和状态的双向tcp连接,也为显示控制和状态提供了一个图形用户界面。整个软件系统如图1所示。


系统硬件概述
  在图2中,基于tinim390/4002模板的开/关控制电路构成了该接口。tinim390/400模板提供了ethernet网络接口能力,以及通过引脚p5.0(其他引脚也可以等效工作)控制开关。n沟道mosfet开关切换流过继电器的电流,控制继电器。用户可以根据继电器和fet的大小要求,供给不同的电压和电流;如果不需要隔离外部电路与tini模板的电源,则可以去掉继电器。在开关状态改变时,二极管抑制继电器线圈的感生电压。为了实现某些新的服务,如网络开关控制。


tini开关控制应用
  由四个类构成了该应用的开关控制和web服务器接口。powerswitch类通过采用tini类中的com.dalsemi.system.bitport应用程序接口类,直接与硬件接口。webworker类直接来自maxim的software developer's kit(tini sdk)中的tiniwebserver实例,负责为到来的http连接提供服务。switchworker类管理java程序和tini应用之间的所有命令和状态通信。tiniwebserver类通过绑定各个类的操作,来实现本应用。

  powerswitch类是一个连接硬件的接口,在其构造器内为引脚p5.0创建一个bitport目标。在该类中,可以执行两种函数,开函数设定的引脚端口状态是接通继电器线圈的电压;而关函数通过清零端口状态,来断开继电器线圈的电压。图2中的单刀双掷(spdt)继电器能够工作于常闭或常开位置,即在这两种位置之间切换外部电压源。开、关函数假设电路工作于常开状态,且必须能够被改变至常闭电路状态。为了指示开/关是否对应于bitport的置位或清零函数,则在该类中引入了一个外部的boolean变量(invert),另一个函数(setinvert)要求用来初始化invert变量。图2所示的硬件图描述的是常开电路。

  webworker类提供了网络和应用之间的接口。它简单地建立和驱动一个目标(com.dalsemi.tininet.http.httpserver),该目标依次产生线程,为每个到来的http连接提供服务。该类取自上述tiniwebserver实例,无须作任何修改,可以在网络上的任何地方接入。httpserver能够提示输入密码,或者接受任何其他形式的控制,仅允许那些授权的用户接入。

  通过将网络和硬件接口组合在一起(图3所示),tiniserver允许远程开关控制。例如,drive()函数通过创建一个webworker线程和网页“index.htm1”,建立此web服务器。网页的主要目的是为了在主机工作站上下载并执行该java程序。如果提示网页仅包含静态信息,该应用就没有必要创建网页。提示网页只需要与包含java程序的文件目录一起,拷贝至web服务器的根目录下即可。

  codebase是一个在每个tini芯片组设计中可以改变的网页参数。java程序使用该信息,以返回连接至某个独立的服务器插件中的tini应用程序。可以创建并上传一个定制的网页至任何一个安装在现场的tini芯片组参考设计。一个简单的方法是由应用程序在每次运行时,创建该网页。通过三次写操作,createindexpage函数可以创建文件index.html,并将ip地址插入codebase部分。

  1)index.write(indextop.getbytes(),0,indextop.length());
  2)index.write(inetaddress.getlocalhost().gethostaddress().getbytes());
  3)index.write(indexbottom.getbytes(),0,indexbottom.lenghth());

  第一次和第三次写操作是将网页的静态部分拷贝至文件中,而第二次写操作是将ip地址拷贝至文件的codebase部分。在应用程序建立web服务器和创建网页后,就启动了web服务器。它创建一个服务器插件,用来处理来自下载java程序的进入连接,并且在java程序每次连接tini应用时,调用serviceconnection函数。

  serviceconnection函数创建了一个新例程switchworker,并将这个插件传给该类。switchworder构造器创建一个新的线程,以处理主机java程序和tini应用之间的连接。serviceconnection函数也处理下一个进入连接,接着将控制传给drive函数。

  swi

tini平台可提供设计ip网络继电器所需的tcp/ip栈和本地控制,java运行环境可以大大降低设计工作的复杂度,利用java程序,可以通过网络远程访问控制小型传感器和执行器。本文介绍了一个ip on/off开关,采用一个简单的继电器电路和tinim390/400验证模块构建,还可以延伸到其他远程监视和控制应用中。


系统软件概述
  com.dalsemi.tininet.http.httpserver类允许开关控制应用程序充当简单的web服务器,将java程序传递给远端主机。在被主机内部浏览器执行后,该java程序就建立了一个与tini应用程序交换命令和状态的双向tcp连接,也为显示控制和状态提供了一个图形用户界面。整个软件系统如图1所示。


系统硬件概述
  在图2中,基于tinim390/4002模板的开/关控制电路构成了该接口。tinim390/400模板提供了ethernet网络接口能力,以及通过引脚p5.0(其他引脚也可以等效工作)控制开关。n沟道mosfet开关切换流过继电器的电流,控制继电器。用户可以根据继电器和fet的大小要求,供给不同的电压和电流;如果不需要隔离外部电路与tini模板的电源,则可以去掉继电器。在开关状态改变时,二极管抑制继电器线圈的感生电压。为了实现某些新的服务,如网络开关控制。


tini开关控制应用
  由四个类构成了该应用的开关控制和web服务器接口。powerswitch类通过采用tini类中的com.dalsemi.system.bitport应用程序接口类,直接与硬件接口。webworker类直接来自maxim的software developer's kit(tini sdk)中的tiniwebserver实例,负责为到来的http连接提供服务。switchworker类管理java程序和tini应用之间的所有命令和状态通信。tiniwebserver类通过绑定各个类的操作,来实现本应用。

  powerswitch类是一个连接硬件的接口,在其构造器内为引脚p5.0创建一个bitport目标。在该类中,可以执行两种函数,开函数设定的引脚端口状态是接通继电器线圈的电压;而关函数通过清零端口状态,来断开继电器线圈的电压。图2中的单刀双掷(spdt)继电器能够工作于常闭或常开位置,即在这两种位置之间切换外部电压源。开、关函数假设电路工作于常开状态,且必须能够被改变至常闭电路状态。为了指示开/关是否对应于bitport的置位或清零函数,则在该类中引入了一个外部的boolean变量(invert),另一个函数(setinvert)要求用来初始化invert变量。图2所示的硬件图描述的是常开电路。

  webworker类提供了网络和应用之间的接口。它简单地建立和驱动一个目标(com.dalsemi.tininet.http.httpserver),该目标依次产生线程,为每个到来的http连接提供服务。该类取自上述tiniwebserver实例,无须作任何修改,可以在网络上的任何地方接入。httpserver能够提示输入密码,或者接受任何其他形式的控制,仅允许那些授权的用户接入。

  通过将网络和硬件接口组合在一起(图3所示),tiniserver允许远程开关控制。例如,drive()函数通过创建一个webworker线程和网页“index.htm1”,建立此web服务器。网页的主要目的是为了在主机工作站上下载并执行该java程序。如果提示网页仅包含静态信息,该应用就没有必要创建网页。提示网页只需要与包含java程序的文件目录一起,拷贝至web服务器的根目录下即可。

  codebase是一个在每个tini芯片组设计中可以改变的网页参数。java程序使用该信息,以返回连接至某个独立的服务器插件中的tini应用程序。可以创建并上传一个定制的网页至任何一个安装在现场的tini芯片组参考设计。一个简单的方法是由应用程序在每次运行时,创建该网页。通过三次写操作,createindexpage函数可以创建文件index.html,并将ip地址插入codebase部分。

  1)index.write(indextop.getbytes(),0,indextop.length());
  2)index.write(inetaddress.getlocalhost().gethostaddress().getbytes());
  3)index.write(indexbottom.getbytes(),0,indexbottom.lenghth());

  第一次和第三次写操作是将网页的静态部分拷贝至文件中,而第二次写操作是将ip地址拷贝至文件的codebase部分。在应用程序建立web服务器和创建网页后,就启动了web服务器。它创建一个服务器插件,用来处理来自下载java程序的进入连接,并且在java程序每次连接tini应用时,调用serviceconnection函数。

  serviceconnection函数创建了一个新例程switchworker,并将这个插件传给该类。switchworder构造器创建一个新的线程,以处理主机java程序和tini应用之间的连接。serviceconnection函数也处理下一个进入连接,接着将控制传给drive函数。

  swi

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!