技术频道

基于Rabbit控制器与Wi-Fi以太网桥的通讯

一、Wi-Fi 背景
   Wi-Fi, 是802.11b 的常用名,是可用到的在802.11组中的无线结构中的一个,802.11b 描述了为多媒体通道和数据连路层控制执行的一个2.4G协议,该协议可以在一个最高11M的传输速率下通讯.他可以扩展到22Mbps.其他的标准描述了一个在2.4GHZ(802.11b)协议中更快的执行速度(54Mbps)和在5.6GHz段中一个54Mbps的工具,. 当前,Wi-Fi (802.11b)是一个最常用的工具,802.11 标准也描述了那些设备怎样互相通讯。最简单的方案是,调用一个ad-hoc程序,每一个设备都设定一个通道号和一个代码。一旦他们匹配,他们就可以彼此通讯了。当所有的设备可以互相通讯,或者仅仅有两个站时,这个工作的很好。
   802.11 也定义了一个叫做内部结构的方案。这里有一个通道指向中断和管理设备。他为各设备分配时间和带宽。当一个设备想要加入到一个工作组时,它将监听通道并且通知这个设备他将加入。
  对于我们的应用,我们将使用Wi-Fi网桥。他将把标准的以太网数据包转换成802.11b 数据包,这样就可以被其他的802.11b设备接收了。大多数Wi-Fi以太网桥可以运行在ad-hocor底层结构模式。大多数的Wi-Fi 以太网桥可以工作在ad-hocor 底层结构模式。为了有此应用,我们将与在一个PDA或者笔记本电脑的Wi-Fi卡通讯,在一个ad-hoc 模式下。
   为了得到更多的在使用带Rabbit产品的无限应用网络,请看技术手册TN230,” Off-the-Shelf Solutions for 802.11b Wireless Networking.”此文档您可以访问:
  http://www.rabbitsemiconductor.com/support/techNotes_whitePapers.shtml
  
  二、应用
   我们运行一个基于Wi-Fi自动调温器。控制器将使用一个电热调节器测量温度,输出一个加热器信号和风扇信号来控制温度与预设的温度相符。用户接口是作为一个嵌入式Web服务器应用执行,因此,任何一个拥有HTML浏览功能的Wi-Fi设备将是可以作为我们客户的接口设备。图1显示了系统图表.
  


  三、硬件解决方案
   我们不再使用Bl200,因为它的紧凑的外形、以太网和现存的输出设备。其他好的选择如BL2100、BL2500、OP7200等。
   在一个使用10K寄存器电压设备电路中,一个基于温度传感器的加热器是与ADC0和DAC0连接。在25oC,ADC0的输入将读到DAC0提供电压的50%.
  


   一个12V的不带电刷的风扇是属于在RAW电源和OUT2,它被分配到一个但前的接收模式。风扇汲取0.16 A,这个电流是在the 200 mA的当前极限输出电流的范围之内的。下面是计算执行一个有阻值的"heater"最小电阻。
  R = 12/0.200 = 60 Ohm
  P = 12*0.200 = 2.4 Watt
   可以用一个更大阻值用于符合你现有寄存器的额定电源。例如,如果你想要用一个1W的寄存器,那么最小的阻值将是:
  P = V2/R
  R = 144/1 = 144 Ohm
   您可以使用一个更小的寄存器的额定电源,如果你加热的目标可以接受外扩电源。这个"heater"传送在BL2000的RAW和OUT1之间。
  


  下面的图片显示了一个适应如图2中的无线电报的电压设备。
  


  连接起来的图片中比图片3增加了接头和风扇.
  


  现在BL2000已经按照一个Wi-Fi 加热器连接起来,我们已经将注意力转换到我们即将用到的应用软件和Wi-Fi 设备。
  
  三、软件解决方案
   下载一些关于BL2000的软件。压缩文档(AN400.zip)和应用软件可以到这里下载:
  http://www.zworld.com/support/downloads/downloads_feat.shtml
  运行Dynamic C的第一个版本,并且打开源文件Temp_bl.c。将Z-World的BL2000产品的编程下载线的一端与BL2000连接好,在编程线的另一端的串口连接器与PC机的COM口连接,这样就可以运行Dynamic C了。在下载Temp_bl.c到目标之前,有两件事情是你必须要做的:
   1.设置控制器的IP地址。为此我们要打开下面的文件
  /lib/tcpip/tcp_config.lib and edit the macro _PRIMARY_STATIC_IP.
  您需要使用一个IP地址,它可是看作是Wi-Fi网桥,例如,在同一个网络里,Wi-Fi网桥用来在这个应用中拥有默认的IP地址:192.168.1.30 因此macro _PRIMARY_STATIC_IP被设置为192.168.1.75,可以参考tcp_config.lib文件,以获得更多的信息。
   2.确定我们要用到的Web界面的HTML网页和图片的路径名,在源文件里,可以找到下面的几行:
  #ximport "h:/examples/web/pages/temp.shtml" index_html
  #ximport "h:/examples/web/pages/rabbit1.gif" rabbit1_gif
  并且可以使他们以适应但你是否解压缩AN400.zip带来的改变。
  现在你要准备下载Bl2000 的Temp_bl.c。按F9,程序将被编译,下载和运行。接下来您好断开编程下载线的连接。
  
  软件的详细信息
   软件包含3个逻辑成分,被分开的两个函数和一个库调用。这个库调用执行循环,TCP和Web服务器需要处理输入输出包和各种必要的定时器。其他的两个函数update_temp()和 update_outputs()做如他们的名字所显示的相应的工作。
  函数update_temp()设定DAC0期望的输出电压,DAC0是用BL2000库函数程序anaOutVolts(),在我们这种情况下是1.0 V。anaInVolts()函数库调用用来读取输入电压,它是使用电热调节器和一个固定的、可知阻值的寄存器(图2所示)网络设备电压的结果.
  为了计算电热调节器的阻值,我们是用下面的等式:
  Rth = VADC0·REXT / (VDAC0-VADC0)
  当:
  VADC0 - voltage read by ADC0
  VDAC0 - voltage applied by DAC0 (1.0 V)
  REXT - external resistor (10k)
  Rth - computed resistance of thermistor
  一旦我们知道了阻值,我们可以使用电热调节器提供的常量计算温度
  T = 1/(A + ((1/Bth)·log(Rth)))
  Bth是一个电热调节器提供的常量,A是用下面的等式计算的
  A = 1/TK - 1/Bth·log(Rth)
  当:
  TK = 298oK (25oC)
  Rth = 10k (25oC)
  在使用Web接口和我们的输出程序更形温度变量之前,我们取10个读数的平均值.
   输出程序简单地比较了当前平均温度和设定点并且正确地设定输出OUT1, OUT2。如果整数代表的温度和设定点相符,那么没有输出。这个执行一个绝对的段以至于控制器不会持续地在加热和制冷之间徘徊。
  Webj接口是基于简单得Html网页的,表格说明了组织在3排2列的显示:
  


  当网页是作为服务器一端(包含SSI)时,当前的温度和设定点是可以取代的。左右箭是可连接到两个CGI函数的点,setlower.cgi和sethigher.cgi,他们是在应用软件函数调用的映射。函数通过一个HTML网页简单的增加和减少设定点的值,该网也包含一个META刷新标记,它说明了浏览器每隔2秒重新下载相同的页面。这是一个简单的执行Dynamic Web网页的设备,它不需要求助于使用象JavaScript 或Java控件的设备。
   , 不管它是在Wi-Fi 模式还是在以太网中,这项应用执行的结果是相同的。如果你计划在一个ad-hoc Wi-Fi 网络中使用这个应用,你可以用提供的地址,正如你的 Wi-Fi设备预备在同一个网络中与它进行通讯,当然,它是拥有IP地址的。
  
  设置 Wi-Fi
   首先,你需要配置你将要使用的网桥。根据用户手册中关于使用ad-hoc的网络怎样配置网桥的说明,为你的网络选择通道号(11)和SSID(默认),它是什么不重要,只要它符合你计划在网络中使用的设备。不经意地,你可能想要设定在同一个网络中的网桥的IP地址,但不是与你的自动调温器或者PDA、笔记本等相同的地址。这将代表性地让你通过网桥使用Web 接口为了进一步的配置和状态检测。
   其次,你需要配置你的Wi-Fi显示设备(PDA/笔记本电脑)。你将通过配置你的Wi-Fi卡(根据用户手册的说明)来做到这一点,使用相同的通道(11)和分配的相同的SSID(默认)设置成ad-hoc模式。你也必须设定网络接口,使用静态IP地址和在同一网络中分配IP地址,下图显示了每一个事物的连接.
  


   在你的PDA笔记本电脑上打开一个浏览窗口并且嵌入你所分配的BL2000 的地址。你将可以看到如图6显示的HTML网页。当接头的温度比设定的温度高时,风扇将被打开,并且制冷。你使用左右箭可以调整设定值。

文章版权归西部工控xbgk所有,未经许可不得转载。