当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于嵌入式Web服务器的智能家居主控制系统

引言
    随着信息技术的发展,以PC为代表的计算机网络技术发展到一个更高阶段,以嵌入式智能设备为核心的后PC时代已经来临。ARM处理器以其性能高、成本低和功耗低的特点,广泛应用于嵌入式控制、消费,教育类多媒体、DSP和移动式应用等领域。随着生活质量的提高,人们对家庭智能化的需求越来越高。智能化正体现在人们生活的各个方面。其中家居的智能化正成为人们生活中追求的热点,而这里提出的基于嵌入式Web服务器的智能家居系统正好满足这一需求。


2 硬件设计
    智能家居系统设计需求是PC机遵循802.3和HPPTD等网络协议,通过网络访问主控制器的Web服务器,登录主控制器,通过电力线构成的家庭小型局域网络或串口,发送指令给从控制器进而控制家电,同时利用监控家电的传感器将家电状态返回至PC,如图1所示。该系统设计要求主控制器功耗低,占用空间小,可进行可视化操作。

2.1 控制器选择
    DSP数学信号处理器具有强大数据处理能力和高运行速度,但在音频、USB、SD卡等接口功能扩展较弱。而单片机系列的ARM920T具有5级指令流水线.处理速度为1.1 MHz,内置MMU(Memory Management Unit)、独立的16 KB数据Cache、16 KB指令Cache和高速AMBA(Advanced Microcon-troller Bus Architecture)总线接口等功能。DSP和一般8位单片机相比,它具有更全面的通用功能,具有60个中断控制器,支持实时时钟(RTC)、LCD控制器接口、串口接口、网卡接口等功能,还具有16/32位RISC体系结构和ARM指令集。因此该系统采用ARM公司的ARM920T作为主控制器。
    从控制器选用MSP430单片机,与89S51单片机相比,它具有RISC(精简指令集),功耗低,支持16位内部总线,引入Flash型存储器和JTAG技术,编程开发非常方便。这里主要讲述主控制系统
2.2 网卡接口设计
    该系统需要通过互联网或电力线进行网络通信,而Web服务器设计也必须通过网络收发数据,要求数据处理速度快。根据这些要求,该系统采用DAVICOM公司的DM9000AEP作为网卡的设计器件。该器件具有10 Mbit/s和100 Mbit/s的自动切换功能,支持802.3x全双工控制流标准,具有16 K字节的双字SRAM,可以减轻CPU的负担,因此使系统更稳定,处理和传输数据速度更快。
    RJ-45采用HanRun公司的可对信号滤波的HR911105A接口,这样可节约印刷板,并有效地减小电磁干扰。ARM920T与网卡DM9000AEP接口设计如图2所示。图中16根数据线相连;命令选择引脚CMD,为高电平时,选择数据端口,CMD为低电平时,选择地址通道;IOR#为读信号引脚;IOW#为写信号引脚;CS#片选信号与ARM920T的片选信号线nGCS3相连。

2.3 串口接口设计
    智能家居系统需要串口控制家电信息,并进行相应通信,而且调试系统同样需要串口。为满足要求,该系统采用Sipex的窄体SP3232串行通信器件。该器件支持满载120 Kb/s的最小传输速率,可在中断或DMA两种模式下工作,每个通道包含64 K字节的发送FIFO和接收FIFO。该器件最大特点就是采用电荷泵技术:由4只外接电容组成,采用4相电压转换技术,保持输出对称的5.5 V电压。即使输入电压VCC在3.0~5.5 V范围内,电荷泵仍可提供5.5 V稳定电压,这样可以保证系统稳定工作。有益于智能家居系统整体的良好运行。串口接口设计如图3所示。图3中TXD表示接收数据,RXD表示发送数据,RTS表示请求发送,CTS表示清除发送。当RTS请求发送数据时,需经CTS信号检测,只有CTS信号允许才能发送数据。

2.4 存储器设计
    完整操作系统的启动离不开引导程序。采用SAMSUNG公司64 MB的K9F1208作为NAND Flash,具有4 KB的内部缓冲区可作为引导肩动,系统启动后NAND Flash仍可作为外部存储器继续使用。Windows CE5.O引导加载程序(BootLoader)由NANDFlash的地址0x00000000处开始执行。完成硬件初始化,建立系统的内存空间映射图,最终BootLoader把操作系统内核映像加载到RAM中;采用HY公司的两片HY57V561620CTP作为SDRAM,通过nGCS6连接到ARM920T引脚,起始地址为0x30038000.同时SDRAM还支持自动更新和掉电模式,保证系统稳定工作。
2.5 智能家居系统结构
    主控制器还包括触摸屏接口。触摸屏采用带有驱动电路的日立7寸屏,用于用户可视化操作。
    传感器信号线与ARM920T的中断引脚EINT8相连。当传感器信号到来时,通过中断引脚向ARM920T申请中断服务程序,并通过网络向用户报警。系统框图如图4所示。

3 软件设计
3.1 内核创建及裁剪
    Windows CE是一个开放的、可裁减的、32位的实时嵌入式窗口操作系统。因此要实现Web Server功能必须对内核裁剪。除了实现基本的WINCE 5.0功能外,还需要在定制内核时在Platform内添加DM9000网卡驱动,串口驱动,USB驱动,MFC,SDK(标准工具集)、HTFPD和SOAP协议等系统必备驱动和协议。Windows CE上Web Server的通信协议是HTTP协议,HTTP的消息机制是基于请求一应答模式。[!--empirenews.page--]
    HTTP协议工作原理:数据包经过网络传送到DM9000AEP的以太网控制器后,经系统内部控制器的TCP/IP堆栈对数据包进行解析,然后对其打包或解包,但这些数据包还必须经Web服务器处理。
3.2 Web服务器设计
    HTTPD服务器的工作流程如图5所示。系统采用HTTPD多线程并发服务器结构的设计思想,其工作特点是为每个客户机请求分配一个线程,即服务器在同时处理多人请求。由每个线程处理客户机的请求。在请求处理完毕后,子线程退出。服务器接收子线程的退出信号为其他的客户机请求分配资源。

    图5中,HTTPD服务器由main()函数开始,首先配置文件,设置用户ID函数和组ID函数,通过getopt(argc,argv,"s:f:p:u:g:")函数获取配置选项,读取配置。其中:s为standalone服务器运行方式;f为config_fie即配置文件;p为端口号,HTTPD默认端口号为80;u为用户ID即uid;g为组ID,即gid。
    然后判断是否工作在standalone.服务器运行方式上,如果是则运行standalone_main()函数,如果不是则访问process request()函数。
    如果服务器工作在standalone模式中,依据图5的工作流程,首先客户端与服务器建立链接,建立socket套接字。监听链接,设置uid和gid,如果服务器没接收到请求信息,继续监听;如果接收到请求信息,则创建子线程。子线程调用process_request()处理客户端请求,服务器继续监听链接,如果客户端请求信息,再创建子线程,调用process_request()处理客户端请求,如此多线程并发处理客户端请求。
    在process_request()函数中,首先初始化当前时间,然后读取并处理HTTP请求消息的方法Method字段,读取HTTP请求消息的URL字段。主要通过strcpy_nocrlf(),getparents(),translate_name()这3个函数对HTIP请求消息的URL字段进行解析,依据宏LDGGING决定是否打开日志。最后调用send_note()发送请求的文件给客户端。
3.3 Web服务器通信方案设计
    在WINCE系统上开发Web服务器,并通过Web服务器与串口设备进行通信的方案有ASP方案、CSP方案和Socket方案。综合比较,通用WINCE5.0系统不支持ASP控件;Socket主要是C/S方式的,需要安装客户端;而CSP方案在不要求美观的情况下,无需安装客户端就可访问系统。系统则采用该种方案。
    CSP方案就是将C语言编写的网络和串口通信程序嵌入到HTML当中,这也是嵌入式网络开发常用的方案。具体流程如下:
    (1)在定制内核的过程中需要将HTTPD服务器添加到Platform builder中,遵守HTTP的请求-应答规则。
    (2)编写CSP通信程序,通过PC机访问Windows CE的Web服务器,打开串口,执行串口控制或网络通信。直接将C语言嵌入到HTML/XML等模板文件中。CSP文件中HTML界面如实验结果所示。通信程序主要函数为建立链接函数SetupConnection()用于建立链接设置DCB初始参数;打开串口函数open_serial()判断是否打开设备串口、设置超时数值、缓冲区大小、创建监视线程等;读数据命令read_respond()用于异步读取缓冲区数据并显示;发送命令send command()用于给设备指令。控制指令powcontrol_command()用于控制电源开关;微调函数adjcontrol_command()用于小幅调节设备功能,如光线明暗,温度高低等;串口监控API函数WINAPICommWatchProc()用于串口缓冲区监控等。
    (3)编写好CSP通信文件后,用eyBuild开发包提供的CSP2BIN工具将CSP源文件生成C程序的源文件,再链接上eyBuild提供的CGI运行库,在VC6.0中编译就可生成在Windows CE平台运行的CGI程序。该系统生成的CGI为Intelligenthome.cgi。
    (4)将在\website\cgi-bin生成的Intelligenthome.cgi文件拷贝到Windows CE系统的\windows\www\文件夹下面,连接PC机便可从PC机访问Windows CE系统,进而了解传感器信号,控制家电。
    该系统使用的数据库为SQLite。SQLite数据库存放家电的基本信息、参数值、状态信息以及传感器当前状态等,这些信息不但反映各种参数的历史状态,而且也是管理、决策的重要信息来源。


4 实验结果
    经过一段时间的开发与研究,该智能家居系统能够完成简单的指令与数据通信,并可将可控家电的信息保存在SQLite数据库中。


5 结束语
    利用S3C2440定制Windows CE系统实现智能家居的简单控制,综合运用了电子电路,Windows CE嵌入式系统,HTTP协议和CSP等技术。该系统可采用遵循802.11的远程无线来控制家电系统。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

随着智能科技的飞速发展和广泛应用,高性能嵌入式系统已经渗透到各个领域,从消费电子、智能家居、智能医疗到工业控制、汽车应用等,无处不在的嵌入式设备正改变着我们的工作和生活。然而,传统单核系统的性能提升遇到瓶颈,无法满足这些...

关键字: 嵌入式系统 消费电子 智能家居

2024年5月28日 – 专注于推动行业创新的知名新品引入 (NPI) 代理商™贸泽电子 (Mouser Electronics) 推出5G资源中心,为工程师提供有深度、可信赖的资源。贸泽的这个技术资源中心提供丰富多样的...

关键字: 5G 物联网 智能家居

作者 Mohamad Ali| IBM咨询首席运营官 北京2024年5月24日 /美通社/ -- 生成式AI的兴起几乎在所有面向上给业务带来改变。根据 IBM 商业价值研究院最新的年度 CEO 研究,近60%...

关键字: IBM AI BSP 模型

SIG Mesh协议具有低功耗、低成本、组网便捷、抗干扰能力强等优点,每个Mesh节点可直接与智能手机相互通讯,Mesh去中心化的组网方式使得物联网每个节点都可以作为操控平台,因此特别适用于智能家居物联网应用场景。此外M...

关键字: 智能家居 物联网 Mesh节点

台北2024年5月21日 /美通社/ -- 提供针对AMD WRX90和TRX50主板优化的DDR5 OC R-DIMM 提供容量128GB(16GBx8)到768GB(96GBx8),速度5600MHz到8...

关键字: AMD 内存 BSP GB

智能家居控制系统,是以智能家居系统为平台,家居电器及家电设备为主要控制对象,利用综合布线技术、网络通信技术、自动控制系统、音频技术等将家居生活有关的设施进行高效集成,提升家居智能、安全、便利、舒适,为我们的生活带来很的方...

关键字: 开发板 智能家居 物联网

上海2024年5月20日 /美通社/ -- 2024年5月16日,世界知名的生命科学公司 Eppendorf 集团于第二十三届生物制品年会上成功举办了"疫路超越 推流出新"的产品发布会,正式推出大规模...

关键字: RF PEN BSP IMAC

北京2024年5月20日 /美通社/ -- 过去五年里,支付和收款方式日新月异,其发展和变化比过去五十年都要迅猛。从嵌入式数字商务的出现,到"一拍即付"的...

关键字: VI BSP PAY COM

华钦科技集团(纳斯达克代码: CLPS ,以下简称"华钦科技"或"集团")近日宣布致敬 IBM 大型机 60 载辉煌历程,并将继续实施集团大型机人才培养计划。

关键字: IBM BSP 研发中心 PS

助力科研与检测新突破 上海2024年5月15日 /美通社/ -- 全球知名的科学仪器和服务提供商珀金埃尔默公司今日在上海举办了主题为"创新不止,探索无界"的新品发布会,集中展示了其在分析仪器领域的最...

关键字: 质谱仪 BSP DSC 气相色谱
关闭
关闭