微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于ARM-Linux及嵌入式Web技术的远程程控电源插座系统设计

基于ARM-Linux及嵌入式Web技术的远程程控电源插座系统设计

时间:11-13 来源:互联网 点击:
互联网的迅速发展,实现了信息的高速传输和资源共享,极大地方便了人们的生活。嵌入式系统广泛应用于各种电器产品、智能仪表和控制设备中,它与互联网的结合是一种必然的趋势。

嵌入式系统和网络技术的快速发展,为网络远程控制的发展和完善提供了技术基础。

笔者综合运用嵌入式系统和Web技术,设计了一种可通过互联网进行远程控制的电源插座系统,实现对家用或工业电器的远程实时控制。用户通过网页浏览器访问该系统,对各插座进行打开或关闭的操作,实现对与其相连接的电器的远程控制。

1 嵌入式Web工作原理

嵌入式Web的体系结构如图1所示。客户端和嵌入式系统中Web服务器之间的通信协议采用HTTP(超文本传输协议)。嵌入式操作系统提供TCP/IP协议支持。嵌入式Web服务器提供静态网页,也可以通过CGI(Common GatewayInterface,公共网关接口)与后台程序或嵌入式数据库交互,进行数据访问或处理。

嵌入式Web的工作流程如图2所示。嵌入式Web服务器的主要任务是接收客户端请求、解析客户端请求、响应客户端请求、向客户端回送请求的结果。客户端与Web服务器交换数据之前,首先用TCP/IP建立连接,服务器端程序建立TCP类型的Socket套接字;服务器在接收到用户端的请求后,解析客户请求的HTTP协议头,分析客户的请求,根据客户的请求做相应的处理并返回结果。

2 远程可控电源插座设计

文中设计采用ARM-Linux架构。ARM处理器县有小体积、低功耗、低成本、高性能等特点。嵌入式Linux操作系统内核精悍,运行所需资源少,十分适合嵌入式系统应用。

2.1 系统硬件设计

远程可控电源插座系统硬件结构如图3所示。

嵌入式Web服务器实现对用户的身份验证、页面解析与交互,根据用户请求产生对电源插座的控制信号。存储器存放系统的程序和页面文件。

以太网接口模块可选用RTL8019AS等以太网接口芯片,实现网络通信

控制模块实现对连接在市电AC220 V的插座各开关的“打开、关闭”操作,进而控制相连接的电器的工作。由于嵌入式系统使用的DC3.3V电源,且电流较小,控制模块须实现弱电对强电的控制。考虑到响应速度、电路功耗、使用寿命等因素,控制模块设计选用光电耦合器和可控硅。控制模块可控制电源插座的4路开关,其中一路的电路原理如图4所示。

光电耦合器选用MOC3062,它集光电隔离、过零检测和过零触发为一体,可以自动检测交流电压的过零信息。可控硅选用Q4010NH5,是大功率开关型半导体器件,具有耐压高、容量大、体积小、无噪音等优点。
ARM处理器的GPIO端口输出电平不足以使光耦元件U1(MOC3062)正常工作,需要信号放大。电阻R2和下拉电阻R3组成三极管保护电路。当GPIO端口输出为高电平时,三极管T1(9013)导通,使电阻R1和光耦U1形成通路,U1正常工作,GPIO输入信号得到放大,双向可控硅K1(Q401O NH5)的G控制端得到高电压,K1导通,插座220 V供电打开;当GPIO端口输出为低电平时,三极管T1截止,使电阻R1和光耦U1形成断路。此时U1不工作,K1断路,插座供电被关闭。

2.2 控制模块驱动设计

在嵌入式Linux操作系统下,设备驱动程序为应用程序屏蔽了硬件的细节。在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。

文中使用GPIO口作为控制端口,每一位信息控制一个电源插座开关。以连接1号插座开关的GP10为例,说明其驱动程序的编写。

将GP10定义为输出状态,并预设插座开关断开时输出0,此时GP10将输出0,输出低电平,并使图4中的三极管T1截止,光耦U1不工作,K1不导通,220 V供电断开;打开供电时,将GP10置1,即输出高电平,T1导通,220 V供电打开。

驱动程序中ioctl函数代码如下:


2.3 嵌入式Web服务器设计

远程可控电源插座系统采用B/S(Browser/Server)结构,系统内嵌的嵌入式Web服务器可向合法用户提供基于浏览器的操作界面,浏览器便成了与插座相连设备的远端控制板。

由于嵌入式系统拥有的资源有限,构建嵌入式Web服务器须选择一个合适的Web服务器,在不影响整体性能的前提下,既利用自身有限的资源,又必须满足支持CGI的Web应用需求。

文中采用Boa Server作为嵌入式Web服务器。Boa是一个非常小巧的Web服务器,可执行代码只有约60 kB。它是一个单任务Web服务器,只能依次完成用户的请求,而不会创建出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序创建进程来执行。

移植Boa的大致步骤如下:
1)从官方网站(http://www.boa.org)上下载Boa源代码,解压;
2)根据硬件对Boa进行相应的配置,并交叉编译,编译器选用arm-li

上一篇:AT89S52键盘程序
下一篇:msp430工作笔记4

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top