基于嵌入式Web服务器的智能家居主控制系统
来源: 作者: 发布时间:2014-12-21 08:55:49 浏览量: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的消息机制是基于请求一应答模式。
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为sta一体电感ndalone服务器运行方式;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。
软件无线电的射频天线软件无线电是近几年提出的一种新的无线电通信的体系结构。其基本概念是把硬件作为无线电通信的基本平台,而将尽可能多的通信功能转为用软件实现,从而改变了长期以来通信电台一直沿袭的为某一特定用途设计,采用“硬
莱士方案求指导 如图,我用LIS8516做了一款280mA/76V=24W的驱动,现在加了填谷电路也只有0.86PF的功率因数,客户要求说做到0.9PF以上,小生试过多种方法仍没效果,求大师们给个指导,加什么器件?怎么
mosfet开通瞬间Ids电流很大,直接到了27A,什么原因mosfet开通瞬间Ids电流很大,直接到了27A,什么原因造成的,有没有人遇到过一样的情况,讨论下,怎么解决的,谢谢大家了1
什么电路啊?
有没有参数电路?
再讨论