门关键词: 固定插座 数控车三组合件 索爱耳机 i908蓝牙耳机 电磁离合器原理图 奇胜开关价格 红外光敏二极管
IC库存(8958万) PDF资料(329万) IC价格 IC求购 资讯 技术资料
电子元器件搜索:
维库电子市场网是知名的电子元器件交易网站,为电子生产企业提供IC库存和技术资料查询服务。
利用TINI平台设计一个网络On/Off开关
新闻出处:广东电子商贸网 发布时间: 2007-11-20


    本文主要介绍应用TINIm390/400验证模块和简单的继电器电路构连建网络On/Off开关并实现远程控制On与OFF。

    网络On/Off开关设计的前提

    设计IP网络On/Off开关(或称继电器)所需的TCP/IP(传输控制协定/国际互联网协定)栈和本地控制可全部可由TINI平台提供。而Java语言运行环境极大地降低了这项任务的复杂性,利用它可以实现通过网络远程访问和控制小型传感器和执行器。

    在下面的讨论中,介绍了一个IP On/Off开关,该IP On/Off开关采用一个简单的继电器电路和TINIm390/400验证模块构建,它还可以延伸到其它远程监视和控制应用中。在此讨论中,其技术背景是,应熟知面向对象的编程技术,如Jaya语言。

    本继电器电路由一个称为TINIWEB(环球网)Server(服务器)的应用进行控制,它直接由TINI运行环境执行。其Applet(小程序)服务于主工作站,而为了命令和状态返回到TINI运行环境而打开双向通信并且显示一个用于遥控继电器的图形用户界面。

    由于网络On/Off开关设计前提涉及到TINI平台和TINIm390/400验证模块二大技术为此,有必要对其作简述。

    关于TINI平台

    TINI(微型因特网接口)平台被设计用来作为连接网络的桥梁:PC机可以通过TCP/IP与TINI通信,TINI可以与传感器、传统硬件或其它设备通信。TINI不仅提供大量外部接口,包括l—Wire、2线、RS—232串口、CAN(控制器局域网)以及SPI(串行外设接口),而且具有强大的网络工具,能够为IPv4、IPv6、DNS(区域命名系统)、DHCP(动态主配置协定)、PPP(点对点协议)、Telnet(远程终端)以及FTP(文件传送协定)提供支持。而TINI平台的一个独特之处是由Dallas开发的操作系统,它是无版税、多任务、多线程,且拥有Java语言运行环境的操作系统。512kB的闪存中可以容纳下核心OS(操作系统)和库。在闪存最后一个存储区中还有足够的空间用来存储64kB的应用程序。DS80C400中还包括存放在ROM中的C语言和汇编语言程序库。

    关于TINIm390/400验证模块

    最常见的是基于DS80C400的TINIm400验证模块。DS80C400都是8位微控制器,实际上都采用了8051 微控制器核。首先,它们的内核每个机器周期由4个时钟周期组成,而不是标准的12个时钟周期。在相同的时钟频率下,其速度比标准的8051速度提高了3倍。 其次,它们具有更大的寻址空间,TINIm400支持连续的16MB地址空间。而最后,它们具有针对乘法和除法运算的整型数学加速器。总之,DS80C400网络微控制器是目前集成度最高的8051器件,它们提供了处于传统8位微控制器与16位/32位微控制器之间的中等处理能力,集成外设包括10/100以太网MAC,三个串行端口,一个CAN 2.0B控制器,1-Wire®主机和64个I/O引脚。为了便于访问网络,在ROM中提供了一个完整的、可被应用访问的TCP IPv4/6网络栈和OS。网栈支持最多32个并发的TCP连接,并且能够通过以太网MAC提供高达5Mbps的吞吐率。DS80C400中还包括存放在ROM中的C语言和汇编语言程序库。

    网络On/Off开关系统硬件概述

    从图1中看出,基于TTINlm390/4000验证模块的On/Off控制电路构成了该系统的接口。TINIm390/400验证模块提供了通过引脚P5.0(其它引脚也可以等效工作)的控制开关及以太网接口能力。而此开关可以是一个简单的晶体管沟道MOSFET和带保护二极管的继电器。通过控制流过晶体管沟道MOSFET的电流,来控制继电器开与断。用户可以根据继电器和MOSFET的大小要求,供给不同的电压和电流;如果不需要对外部(负载)电路与TINI验证模块進行隔离的电源(Source),则可以去掉继电器。在开关状态改变时,二极管抑制继电器线圈的感生电压。为了可能实现某些新的服务,如网络开关控制,在TINI芯片组参考设计中,采用基于标准的因特网技术,集成了所需要的软硬件组件就可实现。

    

    网络On/Off开关系统软件概述

    com.dalsemi.tininet.http..HTTPServer(超文本传输协定服务器)类允许开关控制应用程序充当简单的web server(服务器),其唯一的目的是将applet传递给远端主机(见图2 Applet jar file单向尖头所示)。在被主机(HOST)内部浏览器(BROWSER)执行后,该Applet就建立一个与TINI应用程序交换命令(Commands)和状态(Status)的双向TCP(传输控制协定)连接(见图2下端双向尖头所示),它也为显示控制和状态提供了一个图形用户界面。图2描述了整个软件系统,即运行在TINI运行环境的Web服务器应用软件通过HTTP连接传送Applet(小程序)给主机并建起一个双向连接,用于传送命令和状态数据。

    

    TINI开关控制应用

    由四个类构成了该应用的开关控制和web服务器接口部分

    其一、Power-Switch(PWRSW电源开关)类通过采用TINI类中的com.dalsemi.system(系统)。BitPortAPI(位端口应用程序接口)类,直接接口至硬件。其二、WebWorker(构造器)类直接来自TINI SDK(软件开发者组件)中的TINlWebServer实例,负责为到来的HTTP(超文本传输协定)连接提供服务。其三、SwitchWorker(开关构造器)类管理applet和TINI应用之间的所有命令和状态通信。其四、TINIWebServer类通过绑定各个类的操作,来实现本应用。

    关于四个类的说明

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

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

    通过将网络和硬件接口组合在一起(见图3所示),TINIWebServer(服务器)允许远程开关控制。例如,drive( )函数通过创建一个WebWorker(构造器)线程和网页“index.Html(超文本文件索引)”,建立此web服务器。网页的主要目的是为了在主机工作站上,下载并执行读applet(程序段)。如果提示网页仅包含静态信息,该应用就设有必要创建网页。索引页只需要与包含applet的jar文件一起,拷贝至web服务器的根目录下即可。 其图3为TINIWebserver类生成一个网页并启Web服务器,然后开关服务器便可处理收到的命令和状态请求。

    

    Web页中有一项参数每个TINI各不相同,那就是CODEBASE,CODEBASE是一个在每个TINI芯片组设计中可以改变的网页参数。applet使用该信息,以返回连接至某个独立的服务器插件中的TINI应用程序。可以创建并上传一个定制的网页至任何一个安装在现场的TINI芯片组参考设计。一个简单的方法是由应用程序在每次运行时,创建该网页。通过三次写操作,createIndexPage(创建索引页)函数可以创建文件index.html(超文本文件索引),并将IP地址插入CODEBASE部分:

    1)index.write(indexTop.getBytes( ),O,index Top.length( ));

    2)index.wrlte(InetAddress.getLocalHost( ).getHostAddmss( ).getBytes( ));

    3)index.write(indexBottom.getBytes( ),O,indexBottom.length( )):

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

    serviceConnection(服务连接)函数创建了一个新例程SwitchWorker(开关构造器),井将这个插件传给该类。

    SwitchWorker(开关构造服务器)创建一个新的线程,以处理主机applet和TINI应用之间的连接。

    serviceConnection函数也处理下一个进入连接,接着将控制传给drive(驱动)函数。

    SWitchWorker(开关构造器)类管理applet和web服务器之间的所有通信,在连接被断开之前,它不断地循环,执行下列步骤(见图4所示):

    .停留在read( ),等待一个来自applet的命令字节。

    .如果命令字节为0(即图4中Command=0),则断开开关;如果为1(即图4中Command=1),则闭合开关。

    .读入当前开关状态,回传至applet。

    图4为在TINI运行环境上运行的SWitchServer (开关服务服务)无限期地设置听众和回路,等待命令,根据命令(Command=0或1)设置开关状态(即ON 或OFF),并回送更新后的状态给所有听众。

    

    通过分配每个命令字节的低7位来表示不同开关的状态(见图5中SW0-6所示),该运算法则可以适用于更多的开关。保留最高位(见图5中R/W),用来指示只读操作。该运算法则也可以被扩展,以允许在同一时刻多个applet连接至单个TINIweb服务器应用。SwitchWorker(开关构造器)只是简单地保持一个“监听向量” (“vector of listeners”)。每次applet发出一个修改开关状态的命令,web服务器就将其状态回传至当前与之连接的所有applet。其图5为每个开关可简单地用命令字节中的一个数据位進行控制,一个命令字节可控制最多七个开关(SW0-6),最后一位保留用于区分状态请求和命令字节。

    

    主机applet(程序段)

    之所以将applet应用在主机上,这是因为它提供一套丰富的,用于显示控制和状态的图形对象以及(尤其是)允许双向通信。TINI类中的com.dalsemi.tininet.http.HTTPServer类是一种小巧而快速的类,但仅支持HTTP GET(超文本传输协定获得)操作。由此产生的数据只能自从TINI应用到主机单向传递。然而,该TINI应用要求双向数据传输,即命令由主机发送至TINl web服务器,而状态由web服务器发送至所有相连的主机。主机和TINI应用之间的通信无协议开销,而单字节命令和单字节状态允许极快的控制和状态响应。

    主机applet(程序段)包括两个类;主类(开关控制-SwitchControl)处理主机端的网络通信和创建网页上所有的显示图形单元(见图6所示);另一个类(图形按钮-ImageButton)创建—个图形拨动按钮,显示对应于按钮状态的两种位图之一(见图7所示中间所示)。该拨动按钮用于开关的控制和状态指示应该是足够的,但applet(程序段)的表现会因浏览器的不同而异,因此,应加入简单的On/Off按钮(见图7中下端黑园圈内的二个按钮On和Off所示)和一个状态文本窗,以适应于更多的浏览器。ImageButton和On/Off按钮将完成相同的控制功能,位图和状态窗完成相同的状态指示功能而已。

    

    

    关于图6所示框图说明。在创建图形单元后,SwitchControl类将创建一个状态监测线程(见图6左端方块流程),该线程接着进入休眠摸式,停留于读命令状态,等待来自于TINI应用的状态信息。当线程向下运行时,ImageButton的位图和状态窗被刷新,接着又循环到程序的顶部,等待下—次的状态字节。Applet事件线程驱动actionPerformed函数(见图6中间右端方块流程),该函数在每次按下图形按钮后放调用。如果调用由ImageButton或On/Off按钮触发,则它翻转当前状态,并向TINI发出—个开或关的命令。如果由On/Off按钮按下(触发),则它发出一个On/Off命令。ImageButton类只是一个简单的采用AWT(Abstract Window Toolklt)组件编程的范例。

    结论

    由上述可知,采用TINI运行环境,Java程序和简单的继电路电路,实现远程控制On/Off关是非常容易的。挑选合适的现有电路元件使得许多应用成为可能,可以控制任何事物(从任何位置的网络接人),从照明灯到任何工业设备。

关闭】 【打印
 
相关专题
 
友情链接:
© 2007 电子元件网 网站地图