手机端
or

欢迎您加入我爱方案网QQ群

1.智能产品外包服务群(311606115)
2.嵌入式项目开发群(491609563)

基于ARM的嵌入式家庭网关研究与设计

夏玉杰; 张栓记| 嵌入式系统,家庭网关,嵌入式数据库,远程控制,开发平台| 2010-11-24
1436 收藏
分享到: 
每日精选
热门推荐

【中心议题】

  • 提出家庭网关的体系结构
  • 阐述了系统的硬件组成
  • 详细分析系统软件设计过程

【解决方案】

  • 32ARM7微处理器LPC2290为核心,通过外扩存储器、以太网接口模块、触摸屏模块等构成硬件部分
  • 软件设计包括系统的开发平台构建、数据库设计、用户图形界面设计和远程通信控制等部分

引言

传统家居使用的各类电器设备操作控制各不相同,且功能独立,相互缺乏联系。随着信息时代的到来和网络技术的飞速发展,将原本独立的设备与功能相整合,构建一个功能强大、操作人性化的嵌入式家庭网关系统已成焦点。家庭网关作为家庭网络和Internet的连接枢纽,在家庭网络中起着核心的作用。它对内管理家庭内部网里面的智能节点的运作、协调;对外作为家电的集中控制中心,提供远程对家用电器的运行状态进行控制与故障监测。

ARM(Advanced RISC Machines)32位嵌入式处理器,具有性能高、成本低和能耗省等特点。因此本文以ARM核的32位嵌入式微处理器作为硬件平台,通过移植嵌入式操作系统uClinux,设计了一个方便、实用的家庭网关系统。

1系统体系结构

嵌入式家庭网关以嵌入式系统为核心,利用其I/O接口构成输入、输出通道,实现对家电信息节点的控制。本系统由家庭网关服务器和远程客户端两部分组成,采用客户机/服务器(C/S)结构,系统基于网络设计开发,控制方式分为远程控制和集中控制两种,所有的控制既可通过本地操作也可远程操作,使得用户在家庭内外都可方便地控制室内电器并监控各类家居环境状态。系统的体系结构如图1所示。

 

嵌入式家庭网关充当服务器并运行后台数据库,在家庭内部可直接对触摸屏操作控制家庭电器,并将相应的信息存入数据库中;同时通过RJ-45接口用双绞线同外部网络进行物理联接,利用以太网接口和嵌入式操作系统内嵌的TCP/IP协议同Internet进行通信;远程PC是通信系统的客户终端,授权允许的用户可以在家庭以外的地方通过Internet利用远程客户端软件访问网关服务器。网关服务器通过侦听远程PC的网络连接和数据传输请求,对客户端的数据进行分析,实现对网络信息家电的控制和监控,同时将信息存入家庭网关上的数据库,完成对信息的管理。

2系统硬件平台

本系统的硬件部分是以32ARM7微处理器LPC2290为核心,通过外扩存储器、以太网接口模块、触摸屏模块等构成。家庭网关的硬件平台结构如图2所示。

2.1 ARM微处理器

LPC2290是飞利浦公司推出的一款基于支持实时仿真和跟踪的16/32ARM7TDMI-S核的CPULPC2290采用LQFP144脚封装,16K字节片内静态RAM。通过外部存储器接口可将存储器配置成4组,每组的容量高达16Mb,数据宽度为8/16/32位。232位定时器(4路捕获和4路比较通道)810AD转换器。通过配置总线最多可提供76GPIO,内置宽范围的串行通信接口,因此适合通信网关等各种类型的应用。

 

2.2触摸屏模块

家庭网关利用触摸屏完成输入与显示功能,便于用户在本地进行状态查询和设置。其为一个5.2英寸,分辨率为320×2408STN彩色液晶触摸屏。由于LPC2290芯片本身不带有彩色液晶控制器和触摸屏控制器,所以需要外接一个彩色液晶控制器和触摸屏控制器。彩色液晶控制器选用的是EPS0N公司点阵式图形液晶控制器S1D13503。触摸屏控制器为FM7843FM7843是四线电阻式触摸屏输入控制芯片,工作电源为2.7~5V。由于LPC2290的管脚电压为3.3V,所以FM7843的工作电压为3.3V,其AD参考电压也为3.3V

2.3网络控制芯片

网络控制芯片采用DAVIC0M公司推出的DM9000E芯片。DM9000EMACPHYMMU三合一的高度集成的快速以太网控制芯片,具有10/100M自适应、16KB大容量FIFO4路多功能GPIO和全双工工作等功能。在全双工模式下,可实现同时接收和发送。

2.4 SDRAMFlash存储器

本系统使用了8MBSDRAM16MBNAND Flash。其中,8MBSDRAM存储器用于存储系统运行时用户数据、堆栈等。16MBNAND Flash存储器用于存放已经调试好的用户应用程序、嵌入式操作系统或其他在系统掉电后需要保存的用户数据等。

3系统软件设计

系统软件设计包括系统的开发平台构建、数据库设计、用户图形界面设计和远程通信控制等部分。为了减少设计开销,本系统选择免费的嵌入式操作系统uClinux,内核为2.4版。uClinux是专门针对没有MMU(内存管理单元)CPU,适合嵌入式系统小型化应用。uClinux具有良好的移植性、优秀的网络功能以及丰富的API函数等优点,并且在uClinux系统上开发的应用程序可移植性好,系统升级容易。

3.1系统开发平台构建

基于uClinux操作系统的应用开发环境一般是由目标板和宿主机所构成。目标板运行操作系统和系统应用软件,而目标板所用到的操作系统的内核编译、应用程序的开发和调试则需要通过宿主机来完成。双方之间一般通过串口、并口或以太网接口建立连接关系。

 

在宿主机上安装RedHat Linux 9.0,建立交叉编译环境。由于目标板平台处理器是ARM,因此安装针对ARMuClinux的编译器arm-elf-gcc。并为LPC2200芯片打补丁,在uCLiunx

平台内核配置中将出现LPC2200选项。执行Make Menuconfig,通过文本菜单方式配置uCLiunx。配置完成后,执行Make depMake等命令,生成Image内核映像。将内核映像烧写入目标板的Flash中,当系统复位后或上电时,内核开始运行。

3.2数据库设计

在家庭网关系统中,需存储和管理家庭电器设备的各种状态。由于系统软硬件资源有限,因此采用轻型的嵌入式数据库SQLiteSQLite数据库与操作系统和具体应用集成在一起,无须独立运行的数据库引擎,它由程序直接调用相应的API函数去实现对数据的存取操作。Sqlite_open()根据用户提供的文件名打开数据库文件;sqlite_exec()执行SQL语句并对结果进行处理;sqlite_close()负责关闭数据库文件,释放SQLite引擎。

SQLite数据库对设备节点状态信息进行管理,支持状态设置、历史查询等功能。它同时保存用户信息表,赋予不同的用户对应权限。信息家电通过接口定义向家庭网关注册,SQLite存放每个家电的注册信息、参数值以及状态信息等,通过对数据库的访问实现对信息家电的信息检索和监控。

家庭网关数据库包括用户信息数据库、设备类型数据库、操作信息数据库、设备状态数据库等。其中:用户信息数据库是为了维护家庭网络安全而建立的,包括用户管理、工作日志等;设备类型数据库主要是记录家庭网络中的各种设备类型信息;操作信息数据库则是记录各类型的设备可进行的操作及该操作的权限等级信息;设备状态数据库则是记录各设备类型、设备地址和运行状态。

3.3用户图形界面设计

家庭网关要求提供高级图形用户界面支持,使系统使用方便,界面友好。在本系统设计中,采用MiniGUI作为图形用户界面设计。MiniGUI是一个跨操作系统的、面向嵌入式系统的轻量级图形用户界面支持系统。它功能强大,可移植性好,并提供完备的多窗口和消息传递机制,以及众多控件和其他GUI元素。

要在目标板上运行MiniGUI应用程序,需将MiniGUI的源代码进行编译,生成MiniGUI静态链接库文件。在Linux的交叉开发环境下安装MiniGUI-STR V1.6.2资源文件包minigui-res-str-1.6.2.tar.gz和库文件包libminigui-str-1.6.2.tar.gzMiniGUI.cfgMiniGUI启动时的运行配置文件,它配置MiniGUI的运行环境,包括系统字体、图形引擎、输入引擎等。由于目标机的图形显示设备和输入设备不一致,因此编写相应的图形引擎接口函数COMMLCD和输入引擎接口函数COMM。修改MiniGUI.cfg文件,图形引擎采用COMMLCD,输入引擎采用COMM,最后将MiniGUI.cfg安装到系统文件系统中。当MiniGUI应用程序运行时,根据MiniGUI.cfg文件内容进行配置操作。

 

图形交互界面主要由状态显示、状态控制与用户管理等部分组成。状态显示用来监控当前电器节点的运行状态等;状态控制则用来实现对电器节点的各种操作等功能;用户管理只要用于管理用户和设置权限等功能。MiniGUI的程序入口点是MmiGUI Main函数,系统初始化后就会自动找到该函数创建主窗口,各个功能模块的消息是通过主窗口中的消息循环进行触

发的,窗口过程函数针对不同的消息产生不同的响应。

3.4远程控制设计

uClinux操作系统提供了完整的TCP/IP协议栈和Socket编程接口。家庭网关远程控制是基于C/S结构,家庭网关与远程客户机通信程序主要采用套接字(Socket)调用,利用约定的数据帧格式封装数据,通过TCP/IP协议实现数据的可靠传输与控制。家庭网关与远程客户端Socket通信流程如图3所示。

远程客户端:当远端客户端和家庭网关连接建立后,家庭网关将电器节点的节点号、状态参数等数据信息封装成数据帧,发送到远程客户端中。在监控界面上浏览家庭网关内部各个智能节点参数信息时,显示电器节点状态、参数情况;当进行远程控制时,远端客户端将控制指令以约定的协议封装成数据帧发送到家庭网关。

 

家庭网关服务器端:家庭网关收到此控制信息帧后,按约定的协议帧格式将信息帧解包,提取帧类型、有效指令和有效信息,对智能节点进行设置及相应动作,并将设置后的节点当前状态发送给客户端。

4结束语

本文构建了基于ARM微处理器LPC2290uClinux的嵌入式家庭网关,能够实现对家庭智能节点的集中控制和远程控制。运行在家庭网关的图形用户界面做为集中控制平台,友好易用。运行在远程客户端PC的监控程序通过Socket调用与家庭网关通信,支持远程控制。该网关系统简单易用,具有良好的可扩展性。

创新点:构建了基于ARM微处理器LPC2290uClinux的嵌入式家庭网关,能够实现对家庭智能节点的集中控制和远程控制。运行在家庭网关的图形用户界面做为集中控制平台,友好易用。运行在远程客户端PC的监控程序通过Socket调用与家庭网关通信,支持远程控制。该网关系统简单易用,具有良好的可扩展性。

深圳市中电网络技术有限公司 Copyright© www.52solution.com 粤ICP备10202284号