基于ARMlinux的嵌入式远程测控系统设计

2009-02-17 17:28:14来源: 嵌入式在线

  前言

  目前,大多数远程测控系统中,系统的硬件采用8/16位的单片机,软件多采用汇编语言编程,该编程仅包含一个简单的循环处理的控制流程;单片机与单片机(或上位机)之间的通信通过RS232、RS485或CAN总线来组成局域网,再用Pc机作为Web服务器,与Internet进行通讯。这样的远程测控设备成本高、体积大、速度慢、功耗大。现在,32位嵌入式CPU价格已下降,性能指标也有提高,为嵌入式系统的广泛应用提供了可能性。基于上述情况,我们将嵌入式系统应用于远程测控系统,大大提高了测控系统的性能,同时降低了成本和功耗,体积也大大减小。
    
  嵌入式系统一般应用嵌入式操作系统来开发。在嵌入式操作系统的选择上,由于Linux有完整开放的源代码,因而它具有修改和优化系统、内核稳定、适用于多种CPU和多种硬件平台、支持网络等特点,所以选择Linux作为嵌入式操作系统较好。本文提出的基于ARMlinux的嵌入式远程测控系统不仅能够实现本地数据采集与控制,还能实现远程测控任务。
    
  1、硬件系统

  硬件系统如图1。S3C2410包含一个16/32-bit的Risc(ARM920T)的CPU内核,主频200Hz,内部含有8通道1O位AD转换器和大量的I/O口、LCD控制器等丰富接口,能运行Ucosll、ARMlinux和Wince嵌入式操作系统,DM 9OOO是10M/100M以太网接口控制芯片。本硬件系统结构简单,成本低,不需要Pc机就可直接接入Internet。



  2、软件系统

  嵌入式操作系统是整个嵌入式系统的核心。本系统选择ARMlinux系统。由于嵌入式系统的存储容量很小,因此要把ARMLinux操作系统装入有限的存储器内,就要对它进行裁剪。很多资料对此都有论述,这里就不再累述。下面主要介绍基于操作系统上的远程测控软件设计。其体系结构如图2。



  2.1 基于Boa的Web服务器

  嵌入式linux主要有三个web Server:Hapd、Thttpd和Boa。Httpd是最简单的一个web Server。它的功能最弱,不支持认证,不支持CG1。Thttpd和Boa都支持认证、CGI等,功能都比较全。Boa是一个单任务的小型Httpd服务器,源代码开放、性能优秀,特别适合应用在嵌入式系统中。下面介绍Boa的移植与编译。
  
  对于有MMU嵌入式linux,把Boa下载到Redhat宿主机上后,解压到任意目录,再修改Boa/src/Makefde里面的编译器。例如:
  CC=/opfhosfarmv41/bin/armv41—unkllown—linux—gcc
  CPP=/opt/host/army41/bin/armv41—unknown—linux—g++

  此后直接在Boa/src目录下执行make即可生成Boa可执行文件。将其复制到ramdisk加载mount的目录的bin里面后,等一同加入配置文件和HTML/CGI文件后,重做ramdisk即可。

配置文件Boa.conf的编制见下。

需要说明的是,Linux下的应用程序的配置都是以配置文件的形式提供的,~般都是放在目标板/ete/目录下或者/ctc/config目录下,但Boa的配置文件Boa.conf一般都放置在目标板/home/httpd/目录下。本系统Boa.conf文件的编写程序为:
    
  ServerName S A M S U N G—A R M
  DocumentRoot/home/httpd/cgi—bin/
  ScfiptAlias/index.html/home/httpd/html/index.html

  它指定了HTML页面index.html必须放/home/httpd/html目录下,CGI可执行文件必须放到/home/httpd/cgi~bin目录下。

  2.2 CGI程序技术原理

  CGI(Common Gateway Interface)是外部扩展应用程序与WWW服务器交互的一个标准接口。按照CGI标准编写的外部扩展应用程序可以处理客户端浏览器输入的数据,从而完成客户端与服务器的交互操作。而CGI规范定义了Web服务器如何向扩展应用程序发送消息,在收到扩展应用程序的信息后又如何进行处理等内容。通过CGI可以提供许多静态的Html网页无法实现的功能。其www与CGI的工作原理如下。

  HTTP协议是WWW的基础,它基于客户/服务器模型。一个服务器可以为分布在网络各处的客户提供服务。它是建立在TCP/IP协议之上的“无连接”协议。每次连接只处理一个请求。当一个请求到来时,便创建一个子进程为用户的连接服务。根据请求的不同,服务器会返回HTML文件或通过CGI凋用外部应用程序,返回处理结果。服务器通过CGI与外部程序和脚本之问进行交互,根据客户端在进行请求时所采取的方法,服务器会收集客户所提供的信息,并将该部分信息发送给指定的CGI扩展程序。CGI扩展程序对信息进行处理并将结果返回服务器。服务器对信息进行分析后,将结果发送网客户端。

  外部CGI程序与www服务器进行通信、传递有关参数和处理结果是通过环境变量、命令行参数和标准输入来进行的。服务器提供了客户端(浏览器)与CGI扩展程序之问的信息交换的通道。客户的请求通过服务器的标准输出传送给CGI的标准输入。CGI对信息进行处理后,会将结果发回到它的标准输入,然后由眼务器将处理结果发送给客户端。

  2.3 CGI外部扩展程序的编制

  服务器程序可以通过三种途径接收信息:环境变量、命令行和标准输入。具体使用哪一种方法要由标签的Method属性来决定。在“Method=GET”时,向CGI程序传递表单编码信息的正常做法是通过命令来进行的。

  大多数表单编码信息都是通过Qucry-String的环境变量来传递的。如果“Method=POST”,表单信息将通过标准输入来读取。还有一种不使用表单就可以向CGI传送信息的方法。那就是把信息直接追回在URL地址后面,信息和URL之间用问号(?)来分隔。本测控系统采用的是GET方法。下面是远程控制LED闪烁快慢的程序。其网页如下页图3,其程序如下。
    
   ;LED测试      


  

<input type=“radio”name=“speed”value=“show”checked>慢速
  

<input type=“radio”name=“speed”value=“normal”>中速
  
  

<input type=“radio”name=“speed”value=“rast”>高速
  


  

  

<input type=“submit”value=确定“name=”submit>


  
  其中leds.cgi程序如下:
  #! /bin/sh
  Period=1+case $QUERY-STRING in
  *slow*)
  period=0.25
  ;;
  * normal *)
  period = 0.125
  ;;
  * fast *
  period=0.0625+;;
  *fast * ) + period =0.0626
  ;;
  esac
  /bin/echo $ period ? /tmp/led-control//通过Query_String的环境变量传递给应用程序。
  echo “Content-type:texe/html;charset=gb2312”
  echo
  /bin/cat led =result.template
  exit 0
  
  led—control是编译好的可执行的应用程序,通过led驱动来实现对LED的控制。因为S3C2410有MMU,所以通过操作系统来对硬件控制需要驱动程序来实现。其数据采集部分也类似,不再单独说明。

                   图3 实验结果
    3、测试结果
  
  首先建立好基于S3C2410嵌入式开发环境,把编译好的booloader、嵌入式linux内核和ramdisk烧人Flash中,然后起动Boa服务器,在PC机的浏览器上输人嵌入式系统的IP地址,即显示出如图3的网页。通过点击慢速、中速和高速,再点击确定,测控板上LED的闪烁由慢变快,圆满实现了设计目标。
   
  4、结论
  
  找们开发的基于ARMLinux的远程测控系统,在真正意义上实现了通过互联网进行远程测控。它具有一般通用平台性能,特别适合实时性要求不很强的家电网络监控和远程工业控制。当然随着硬件和网络速度提高及操作系统实时性的改善,将会大大提高此测控系统的性能,因此有很好的应用前景。


 

关键字:单片机  通讯  网络  嵌入式系统

编辑:赵丽 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2009/0217/article_492.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
单片机
通讯
网络
嵌入式系统

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved