当前位置:巨优公文网>范文大全 > 公文范文 > 基于SoPC的智能家居控制系统研究

基于SoPC的智能家居控制系统研究

时间:2022-12-05 21:25:12 公文范文 来源:网友投稿

摘 要:设计并实现基于SoPC技术的嵌入式智能家居控制器。简单介绍智能家居系统的总体结构,随后对核心部分家居控制器的实现在硬件和软件2方面进行详细论述,其中运用NiosⅡ软核处理器作为主控制器,实时多任务操作系统μC/OS-Ⅱ为应用软件运行平台,实现家电控制和安防报警功能以及小区内管理等。系统采用的可编程片上系统的设计方法使其可以根据需求裁减或者扩充功能,以满足众多层次的家居控制应用需要。

关键词:智能家居;SoPC;μC/OS-Ⅱ;FPGA

中图分类号:TP332文献标识码:A

文章编号:1004373X(2008)2203603

Research of Smart Home Control System Based on SoPC

SUN Yuliang,WANG Shukun,ZHANG Chuansheng

(School of Information and Electric Engineering,Shandong Jianzhu University,Jinan,250101,China)

Abstract:Embedded smart home control system based on System on a Programmable Chip (SoPC) is designed and implemented.The structure of smart home control system is briefly introduced.Subsequently implementation of home control system′s core is detailed discussed in terms of hardware and software,using soft intellectual property processor as primary controller,real-time multitasks operating system μC/OS-Ⅱas running platform of application software,realizes the control of household appliances,security alarm functions as well as the district management.To meet the many levels of home control application needs,function of the system based on the design method of SoPC can be reduced and extended according to the requirement.

Keywords:smart home;SoPC;μC/OS-Ⅱ;FPGA

智能家居是近几年产生并迅速崛起的一种新型家居住宅。“智能家居”(smart home),又称智能住宅,它利用先进的计算机技术、嵌入式系统技术、网络通讯技术和传感器技术等,将家中的各种设备有机的连接到一起[1]。

SoPC(System on Programmable Chip)技术是Altera公司提出的一种灵活、高效的片上系统设计方案[2]。它的特点在于可编程性,即利用FPGA器件的可编程性来进行SoC(System on Chip)设计。因此可以简化采用传统方式设计的家居控制器,使得众多的控制接口芯片在一片FPGA中实现。并使其具有处理能力强、系统架构清晰、网络性能优越等更多的优势。嵌入实时操作系统μC/OS-Ⅱ属于占先式多任务操作系统,可固化、可裁减、移植性好,具有良好的可靠性和稳定性[3]。它支持64个任务,具有信号量、消息邮箱、消息队列等多种进程间通信机制,其已经在商业领域得到了成功的应用。利用可编程SoPC技术和μC/OS-Ⅱ操作系统是智能家居系统设计的良好选择。本系统以Altera公司的DE2开发板为核心,其FPGA芯片采用CycloneⅡEP2C35。

1 智能家居系统总体结构

智能家居通过统一的网络总线和控制平台,将家庭的信息家电系统、环境控制系统、安防报警系统、远程操作系统等连成体。向上连至小区物业控制中心的综合管理系统,实现远程数据采集、设备监控。向下通过家庭总线连接到家庭中各种不同的功能模快,构成家庭信息控制网,实现家庭中所有相关信息点的数据采集和相关控制点的功能控制,并通过网络接口与外部信息社会相连接。智能家居系统总体结构如图1所示。

2 智能家居控制器的硬件设计

2.1 系统硬件构成

智能家居控制器的硬件由FPGA、存储器和外围模块等3个部分构成,是系统的数据处理和完成人机对话的交互中心。结构如图2所示。

家居控制器的工作原理是:现场的数据采集设备采集到各自的数据,通过串口送给DE2开发板,系统硬件板卡对不同数据进行不同处理。对于房间环境参数数据将交付给LCD显示,同时和设定参数相比较,比较结果送出至各继电器完成对室内环境的调节。对于安防报警信息进行匹配处理,看是否有报警事件需要报警输出。对于智能水表、电表、热表、天然气表的数据进行不同的封装,形成各自的信息流放到网络接口层,交付给网络进行传输。另一方面,当对家庭内电器需要控制时,通过控制器的键盘下达的控制信息来控制现场动作。同时,可以通过CGI页面完成对控制器的远程控制。

2.1.1 SoPC定制NiosⅡ软核处理器模块

该设计中的FPGA芯片是采用的Altera公司的Cyclone ⅡEP2C35,它具有35 000个逻辑单元、672个引脚,提供用户自定义I/O口475个。是一款性价比非常好的FPGA芯片。

FPGA内部各模块是利用Quartus Ⅱ开发软件和其中集成的SoPC Builder系统开发工具设计的。SoPC Builder提供图形化的配置界面,并备有一些常用接口控制模块,可以直接加入到系统中。在SoPC Builder中加载CPU软核和相应的外围接口以及与定义相应的自定义指令,然后对设计进行编译综合,下载到FPGA,就可以方便地制作一个具有特定功能的嵌入式处理器[4]。设计中的CPU软核采用Altera公司的32位RISC嵌入式处理器Nios Ⅱ。在设计中对FPGA进行配置时,选用了Nios Ⅱ/S CPU、内部定时器、JTAG异步串行接口、SDRAM控制器、FLASH存储器接口、LCD接口、片内存储器和EPCS4串行配置器件控制器接口、RS 232接口、DM9000A接口等部件。Nios Ⅱ CPU和所有部件通过Avalon总线连接在一起,构成基于Avalon总线的SoPC系统架构。系统框图如图3所示。

2.1.2 存储器和外围模块

存储器模块采用数据不易丢失的FLASH来存储应用程序及需要保存的数据参数,采用读写速度较高的SDRAM来给μC/OS-Ⅱ操作系统和应用程序提供运行空间并缓存大量的中间处理数据。

系统的外围模块包括一个16×2的字符型液晶显示屏LCD和一个16位独立式非编码键盘,用来实现系统的人机交互功能。另外,RS 232接口用来实现家庭内各检测单元与FPGA的通信。

2.2 DM9000A与处理器的接口设计

以太网控制器芯片是采用台湾Davicom公司生产的DM9000A芯片,支持10 MHz/100 MHz的传输速率,集成了介质访问控制子层(MAC)和物理层的功能,并且可以直接与大部分通用处理器的本地总线接口。它为嵌入式系统实现快速的以太网连接提供了良好的解决方案。

在设计DM9000A芯片控制模块时,由于没有相应的IP核,于是在Altera公司的网站上下载DM9000A _IF.V文件,修改后在SoPC Builder中用“Create New Component”,将DM9000A接口模块添加到系统中。DM9000A接口框图如图4所示。

3 智能家居控制器的软件设计

3.1 μC/OS-Ⅱ操作系统的移植

根据家居控制器的特点,设计必须满足实时性和并发性的要求,以便更好地支持运行时的多任务环境的调度,所以应用软件应该基于嵌入式实时操作系统。日前比较流行的嵌入式操作系统主要有VxWorks,Windows CE,μCLinux,μC/OS-Ⅱ等。考虑到μC/OS-Ⅱ的规模较小、实时性和可靠性较高,NiosⅡ IDE开发环境对μC/OS-Ⅱ的良好支持,故操作系统选择μC/OS-Ⅱ。它是一种占先式的多任务实时操作系统内核,通过为每个任务分配单独的任务堆栈来保存任务工作环境,提供任务答理与调度、任务间的同步、互斥与通信、时间和中断管理、内存的动态分配等多种系统服务。

Altera公司提供实时操作系统μC/OS-Ⅱ作为NiosⅡ开发系统的一部分。即在硬件系统创建完成以后,开始一个基于NiosⅡ处理器的MicroC/OS-Ⅱ软件设计过程,使用IDE可以对所有的RTOS模块进行配置。具体可以通过单击MicroC/OS-Ⅱ下每一个选项检查所能选择的选项进行设置,例如最大任务数、最低优先级、消息邮箱等。

3.2 终端软件的设计

终端软件同样在NiosⅡ集成开发环境下利用C语言开发。软件设计采用模块化设计,保证程序具有良好的可移植性和可采用性。智能家居控制器的软件部分包括远程通信模块、人机交互模块、安防报警模块、环境控制模块和信息家电模块。智能家居控制器的启动和运行过程是:当系统上电后,家居控制器硬件初始化、操作系统初始化、LCD初始化、初始化系统图形用户界面、启动操作系统、创建系统任务、进入主系统任务(Main_Task任务)、创建用户程序,以中断方式随时响应来自各模块任务的响应。每个任务均由以下3部分组成:应用程序、任务堆栈以及任务控制块。其中只有应用程序被烧入ROM,而任务本身则被置于RAM,待系统运行时再建立,任务堆栈用以存储CPU寄存器内容。当某任务由运行态变为其他状态时,CPU寄存器内容压入相应任务堆栈,反之则将相应任务堆栈内容置于CPU寄存器。作为系统中定义的一个数据结构,任务控制块的内容包括任务堆栈的地址、任务当前状态、任务优先权等。操作系统通过查询任务控制块内容实现对任务的管理。

3.3 网络设备驱动程序设计

DM9000A程序设计中采用中断的方式收发数据,程序的编写主要包括初始化、接收、发送、中断处理这几个部分。

在系统上电时,FPGA通过总线配置DM9000A内部的网络控制寄存器(NCR)、中断寄存器(ISR)等,完成初始化。随后,DM9000A进入数据收发等待状态。

在控制器平台上,接收到的各传感器数字信号经过数字下变频、抽取滤波等解调处理后,形成连续的解调数据流,在FPGA内通过FIFO和以太网接口部分进行缓冲,当解调数据达到规定的数据帧长度时,FPGA利用写操作寄存器MWCMD(REG_F8)将数据帧写入DM9000A的TX缓存区中,然后再将数据帧长度写入寄存器FCH和FDH,其中将高8位写入寄存器FCH,低8位写入寄存器FDH。随后,FPGA将发送控制寄存器TCR(REG_02)的bit[1]置为高电平,DM9000A接到使能命令后将缓存的数据和数据帧信息进行MAC组帧,并发送出去。

DM9000A中的接收缓存区RX FIFO初始化后的起始地址为0C00H,每帧数据都有4字节长的首部,然后是有效数据和CRC校验序列。首部4字节用于判断是否有数据接收、接收的帧格式是否有效以及帧长度。在接收到新数据后,中断寄存器ISR的PRS位将被置为0,FPGA开始读取接收缓存区数据。

4 结 语

本文给出一种基于SoPC的远程家居控制系统的设计方案。使用SoPC技术进行系统设计具有设计灵活、开发周期短的特点,它能将多个外部模块综合设计到一片高密度的FPGA中,使设计更为小巧,成本更为低廉,也更易于系统的升级。虽然目前SoPC技术还处于推广阶段,但在不久的将来一定有更广阔的应用空间。

参考文献

[1]王明秋.智能家居控制系统的设计与实现研究[D].武汉:华中师范大学,2006.

[2]徐光辉,程东旭,黄如,等.基于FPGA的嵌入式开发与应用[M].北京:电子工业出版社,2005.

[3][美]Jean J Labroosse.嵌入式实时操作系统μC/OS-Ⅱ [M].2版.邵贝贝,译.北京:北京航空航天大学出版社,2005.

[4]任爱锋.基于FPGA的嵌入式系统设计[M].西安:西安电子科技大学出版社,2004.

[5]潘松,王国栋.VHDL实用教程[M].成都:电子科技大学出版社,2001.

[6]孙钊.嵌入式操作系统在智能家居中的应用与研究[D].武汉:武汉理工大学,2006.

[7]朱立彤.智能住宅的核心“家庭控制器”[DB/OL].中国智能建筑服务网,1999.

[8]Using MicroC/OS- II RTOS with the Nios II Processor Tutorial[Z].Altera Inc.2003.

[9]Nios Software Development Tutorial[Z].Altera Inc.2003.

[10]Micro/OS-II Real-Time Operating System[Z].Altera Inc.2003.

作者简介 孙玉亮 女,1982年出生,山东日照人,硕士研究生。研究方向为自动化装置的集成化与智能化。

王树昆 男,1956年出生,山东济南人,山东建筑大学信息与电气工程学院教授、硕士生导师,中国电子学会高级会员。研究方向为自动化装置的集成化与智能化、嵌入式系统和智能建筑技术。

张传升 男,1973年出生,山东滨洲人,山东建筑大学信息与电气工程学院讲师。研究方向为建筑智能化系统。

推荐访问:控制系统 智能家居 研究 SoPC

版权所有:巨优公文网 2018-2024 未经授权禁止复制或建立镜像[巨优公文网]所有资源完全免费共享

Powered by 巨优公文网 © All Rights Reserved.。备案号:沪ICP备18054162号-1