《基于S3C2440的智能家居监控系统设计毕业论文(54页).doc》由会员分享,可在线阅读,更多相关《基于S3C2440的智能家居监控系统设计毕业论文(54页).doc(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于S3C2440的智能家居监控系统设计毕业论文-第 47 页郑州科技学院本科毕业设计(论文)题 目 基于S3C2440的智能家 居监控系统设计 基于S3C2440的智能家居监控系统设计摘 要 智能家居又称为数字家庭, 一般是指以计算机接口技术和网络技术为基础,将各种家用数字化设备有机结合为一体的智能化的网络系统。这些家用数字化设备包括电话、计算机、数字化的视听设备、数字化的家用电器及安全监控设备等, 通过有线或无线的方式将这些设备连接起来, 为家庭用户提供简单、安全、可靠、智能化的综合服务。本课题以Web 技术为核心, 在基于S3C2440 微处理器和嵌入式Linux 操作系统的软硬件平台
2、上构建了Web 服务器和视频服务器,Web 服务器采用Boa, 视频服务器采用Mjpg-streamer, 结合CGI 技术处理HTML 表单, 完成用户认证、温湿度调节、红外监控、灯光控制等家居监控功能。 关键词 智能家居/Web技术/S3C2440/Linux系BASED ON S3C2440 INTELLIGENT HOUSEHOLDMONITORING SYSTEM DESIGNABSTRACTSmart home is also known as the digital home,generally refers to the computer interface and netwo
3、rk technology, based on a variety of digital devices to organic combination as one of the only network system.These home digital devices,including phones,computers,digital home appliances and security monitoring equipment,etc,th-rough wired or wireless way to connect these devices for home users to
4、provide simple,safe,reliable,intelligent service.This subject based on the Web technology,bas-ed S3C2440 microprocessor and embedded Linux operating system software and hardware platform to build a Web server and video server,Web server using the Boa,the video server to adopt Mjpg-streamer,combined
5、with CGI technology to handle HTML form,complete the user authentication,temperature and humidity adjustment,infrared Monitoring,lighting control and home control function.Keyword Smart home, Web technology, S3C2440, Linux system目 录摘 要IABSTRACTII1 绪论11.1 课题背景11.2 物联网概念的起源21.3智能家居系统概述21.4 研究目的及意义31.5
6、系统设计主要任务42 方案论证52.1 系统方案论证52.1.1控制部分52.1.2显示部分52.1.3服务器部分52.2 系统总体设计和分析62.2.1 远程控制62.2.2 本地控制72.2.3 总体分析72.3系统框图83 硬件电路设计93.1 硬件资源和模块介绍93.1.1 CPU-S3C2440介绍93.1.2 GPRS无线模组的介绍113.1.3温湿度传感器(SHT10)的介绍133.1.4 红外传感器的介绍15 3.2 5伏开关电源电路设计164 软件平台174.1 linux操作系统介绍174.2 Boa服务器184.2.1 Boa简介184.2.2 Boa服务器的实现机制18
7、4.3 CGI工具194.3.1 CGI简介194.3.2 CGI的实现194.4 Qt的介绍204.5 AT命令214.5.1 AT命令集简介214.5.2 GPRS电话功能的实现224.5.3 GPRS短信功能的实现234.6 boa服务器的搭建244.6.1编译boa程序244.6.2配置boa254.6.3 boa配置264.7 HTML的简介264.7.1什么是HTML264.7.2 HTML标签274.7.3 HTML文件274.7.4 HTML文件构成元素274.7.5 HTML文件结构274.7.6 HTML中调用CGI程序的方法284.8 CGI程序的编写294.9 mjpg
8、-streamer视频服务器简介294.9.1 mjpg-streamer概述294.9.2使用mjpg-streamer304.10 GPRS的编程315 系统制作与调试325.1 系统硬件调试325.2 软件及联机调试325.2.1 主控程序调试325.2.2 GPRS程序调试325.2.3 boa服务器调试335.2.4 CGI程序调试35总 结36致 谢37参考文献38附 录139附 录2441 绪论1.1 课题背景21 世纪是信息时代,各种电信新技术推动了人类文明的进步。自从1876 年Alexander Graham Bell(贝尔)发明电话以来,世界各国的电话网络发展非常迅速,近
9、十年来,中国的固定电话业务呈现出举世瞩目的快速增长。1997 年8 月局用电话交换机总容量突破1 亿门,网络规模跃居世界第二位,2012年4月中国工业和信息化布披露数据称,截止3月末中国大陆电话用户突破13亿户,其中移动电话为10.2亿户,3G用户突破1.5亿户,宽带用户接入数达1.57亿户,移动互联网用户6.7亿户。从以上的最新数据可以看出未来的网络化的发展趋势。正是因为通信技术、计算机技术、网络技术、控制技术的迅猛发展与提高,促使了家庭实现了生活现代化,居住环境舒适化、安全化。这些高科技已经影响到人们生活的方方面面,改变了人们生活习惯,提高了人们生活质量,家居智能化也正是在这种形势下应运而
10、生的。智能家居控制系统的主要功能包括通信、设备自动控制、安全防范三个方面。随着新技术和自动化的发展,传感器的使用数量越来越大,功能也越来越强,各种传感器都已经标准化、模块化这给智能家居控制系统的设计提供极大方便。嵌入式的智能家居使系统的处理能力大大增强,可以带来更加逼真的图象以及更加真实的语音等。根据系统定制的实时操作系统不仅可以最大限度的利用硬件资源而且还避免了过于庞大的系统造成的系统冗余。一般只有一颗主处理芯片,系统架构更加清晰简捷。软件采用分层设计,方便维护和升级,大大提高了代码利用率,缩短开发周期。因为嵌入式技术是伴随着Internet 而生的,所以它具有更加卓越的网络性能,可以增加更
11、多的网络应用,很显然嵌入式类智能家居产品在应用方面具有相当的优势,应该是未来中国家庭智能化技术主流发展方向。家居生活的智能化是当今计算机网络与通讯技术最人性化的应用,给人们的家居生活带来了全新的感受。今天,借助电话控制或互联网,您几乎可以在任何地方、任何时候监控您的家居状况,为您的家居生活带来前所未有的方便。随着社会全面的信息化、智能化和自动化,家庭智能化必将成为未来家居装饰潮流发展的最新方向!1.2 物联网概念的起源早在1995年比尔盖茨在未来之路中提到了物联网的概念,然而到了1998年的时候美国的麻省理工学院(MIT)的Kevin Ashton,把非接触式无线识别技术(RFID)与传感器技
12、术应用于日常物品中才形成一个真正所谓的“物联网”。当时的物联网的概念就是利用产品电子代码EPC,还有我们的射频识别技术,通过网络,当时的网络还仅限于互联网来实现物品的互联互通。在任何时候任何地点对任何物品识别和管理,这就是原来的物联网。在1999年的时候EPC global的Auto-ID中心提出:物联网就是成千上万的物品采用无线方式接入了internet的网络。这是物联网概念真正的提出。在2008年IBM提出:互联网+物联网=智慧地球,就是把传感器设备安装到电网、铁路、桥梁、隧道、供水系统、大坝、油气管道等各种物体中,并且普遍链接成网路,及“物联网”。至此最新的物联网概念形成了。新技术:网络
13、技术,传感技术、数据库技术、云计算、移动计算等使得物联网发生了很大的变换,内含增多增大。所谓的物不仅仅是物理实体,网络不仅仅是各类信息的网络,还包括互联网、传感网、移动网,技术也把条码、射频、传感器包含了进来。广义的物联网概念就是利用自动识别技术,这里包括条码、射频、全球定位等按照标准的协议实现人与物、物与物在任何时候任何地点的链接,显著的特点就是智能化、进行信息交换和通信、以实现智能识别、定位、跟踪、监控、管理,构建成为一个庞大的网络体系。1.3智能家居系统概述 随着社会信息化的加快,人们的工作、生活和通讯、信息的关系日益紧密。信息化社会在改变人们生活方式与工作习惯的同时,也对传统的住宅提出
14、了挑战,社会、技术以及经济的进步更使人们的观念随之巨变。人们对家居的要求早已不只是物理空间,更为关注的是一个安全、方便、舒适的居家环境。家居智能化技术起源于美国,它是以家为平台进行设计的。 智能家居控制系统是以HFC、以太网、现场总线、公共电话网、无线网的传输网络为物理平台,计算机网络技术为技术平台,现场总线为应用操作平台,构成一个完整的集家庭通信、家庭设备自动控制、家庭安全防范等功能的控制系统。 智能家居控制系统的总体目标是通过采用计算机技术、网络技术、控制技术和集成技术建立一个由家庭到小区乃至整个城市的综合信息服务和管理系统,以此来提高住宅高新技术的含量和居民居住环境水平。大型的智能家居控
15、制系统通常由系统服务器、家庭控制器(各种模块)、各种路由器、电缆调制解调器头端设备CMTS、交换机、通讯器、控制器、无线收发器、各种探测器、各种传感器、各种执行机构、打印机等主要部分组成。1.4 研究目的及意义智能家居控制系统可以定义为一个过程或者一个系统。利用先进的计算机技术、网络通讯技术、综合布线技术、将与家居生活有关的各种子系统,有机地结合在一起,通过统筹管理,让家居生活更加舒适、安全、有效。与普通家居相比,智能家居不仅具有传统的居住功能,提供舒适安全、高品位且宜人的家庭生活空间。还将原来的被动静止结构转变为具有能动智慧的工具,提供全方位的信息交换功能,帮助家庭与外部保持信息交换畅通,优
16、化人们的生活方式,帮助人们有效安排时间,增强家居生活的安全性,甚至为各种能源费用节约资金。系统的网络化功能可以提供遥控:家电(电视,空调,热水器等)控制、照明控制、室内外遥控、窗帘自控、防盗报警、电话远程控制、可编程定时控制及计算机控制等多种功能和手段。使生活更加舒适、便利和安全。因智能家居控制系统简单、功能灵活,扩展容易而被人们广泛接受和应用。家居生活的智能化是当今计算机网络与通讯技术最人性化的应用,给人们的家居生活带来了全新的感受。今天,借助电话控制或互联网,您几乎可以在任何地方、任何时候监控您的家居状况,为您的家居生活带来前所未有的方便。随着社会全面的信息化、智能化和自动化,家庭智能化必
17、将成为未来家居装饰潮流发展的最新方向!1.5系统设计主要任务本文利用凌阳ARM9嵌入式实验箱,S3C2440 CPU核心板和装有Linux系统或装有Linux虚拟机的PC机一台。本设计包括:系统硬件的设计与调试和控制软件的编写与调试。硬件部分:智能家居控制系统其硬件部分主要由五大部分构成,即GPRS模组、以太网模块、AD转换模块、S3C2440 CPU板模块与接口和电源部分。用户可以通过GPRS模组上的RS232接口和PC机直接相连接使用,通过AD转换模块检测温度变化,电源部分则为各个部分提供工作电源。软件部分:软件设计部分主要由五大部分构成:即Boa服务器搭建、Qt编程、CGI程序编写,AT
18、命令集,GPRS初始化驱动和各个驱动程序编写。2 方案论证2.1 系统方案论证2.1.1控制部分方案一: 采用普通MCS-51单片机作为总的控制元件和信号处理单元。方案二: 采用凌阳ARM9处理器作为总的控制元件和信号处理单元。比较论证: 方法一MCS-51单片机功能较少,不含有模数转换等功能,因此需增加一些外围电路来实现模数转换功能,使电路复杂化,精确度不高,且采样速率偏低。而方案二简化了电路,增加了系统稳定性。凌阳ARM9处理器在设计方面提供了极大的方便,它的好处在于,功能较多。因为它不仅囊括了普通单片机的所有功能,而且还有普通单片机所不具有的许多新的功能,如: A/D、D/A转换, 语音
19、等,另外还提供了便利的编程环境。2.1.2显示部分方案一: 采用数码管显示。方案二: 用LCD显示器显示。比较论证: 就我们的需要而言LED显示内容单一,不易产生生动具体的图文,而LCD显示器则给我们提供了更大的发挥空间,看起来舒服自然,而且能增加显示的美观性与直观性。最重要的是提供了友好的人机界面。2.1.3服务器部分 方案一: 采用TCP或UDP服务器。 方案二:采用boa服务器。比较论证:方案一虽然可行,虽搭建容易但移植和执行比较困难,而方案二则不同,Boa 是一款单任务的HTTP 服务器, 与其他传统的Web 服务器不同的是,当有连接请求到来时, 它并不为每个连接单独创建进程, 也不通
20、过复制自身进程来处理多链接, 而是通过建立HTTP 请求列表来处理多路HTTP 连接请求, 同时它只为CGI 程序创建新的进程, 这样就在最大程度上节省了系统资源, 这对嵌入式系统来说至关重要。2.2 系统总体设计和分析2.2.1 远程控制利用IE浏览器访问boa服务器,通过在浏览器终端点击不同button,使boa服务器调用不同的cgi脚本程序,完成对住宅内设备信息的读取及控制等操作,从而完成对住宅的管理。(如图2.1图2.2)图2.1 (登录界面)图2.2 (系统设置平台)2.2.2 本地控制在本地用QT方法实现UI,并完成对住宅内设备信息的读取及控制等操作,从而完成对住宅的管理。2.2.
21、3 总体分析本设计属于嵌入式应用系统设计。确定嵌入式控制系统设计总体方案,是进行系统设计最重要、最关键的一步。总体方案的好坏,直接影响整个控制系统的性能及实施细则。总体方案的设计主要是根据被控对象的任务及工艺要求而确定的。设计方法大致如下:根据系统的要求,首先确定出系统类型。选择检测元件,在确定总体方案时,必须首先选择好的被测参数的测量元件,它是影响控制系统精度的重要因素之一。选择执行机构,执行机构是微控制系统的重要组成部件之一。执行机构的选择一方面要与控制算法匹配,另一方面要根据被控对象的实际情况确定。选择输入/输出通道及外围设备。选择时应考虑以下几个问题:被控对象参数的数量;各输入/输出通
22、道是串行操作还是并行操作;各通道数据的传递速率;各通道数据的字长及选择位数;对显示、打印有何要求。2.3系统框图本控制系统是32位ARM处理器在系统检测以及工程控制方面的应用,其特点是体积小,成本低,功能强,功耗低,是微机应用产品化的最佳机种之一,它已广泛地应用在产品智能化和工业自动化上。而把微处理器面向工控领域对象,嵌入到工控应用系统中,实现嵌入式应用的计算机称之为嵌入式计算机系统,简称嵌入式系统。本设计系统框图如图2.3所示:温湿传感模组GPRS模组LED显示模组红外传感模组LCD触摸屏IE浏览器BOA服务器CGI接口S3C2440CPU图2.3(系统框图)3 硬件电路设计3.1 硬件资源
23、和模块介绍3.1.1 CPU-S3C2440介绍S3C2440A是韩国三星公司推出的16/32位RISC微控制器,其CPU采用的是ARM920T内核。(1)特点:1)具有PLL时钟发生器,主频最高可达533M。2)内核1.2V供电最高400M,1.3V供电最高533M。3)存储器支持1.8V、2.5V、3.0V、3.3V。4)I/O均支持3.3V供电。5)s3c2440为单机器周期执行指令集。6)具有电源管理功能,可以使系统以普通方式、慢速方式、空闲方式和掉电方式工作,降低产品功耗。(2)内核结构:采用ARM920T内核,具有16KB指令Cache、16KB数据Cache和存储器管理单元MMU
24、,指令高速存储缓冲器(I-Cache),数据高速存储缓冲器(D-cache)提高指令执行效率及数据存储效率,减少主存带宽和响应性带来的影响,加强的ARM体系结构MMU,用于支持winCE、linux等操作系统,内部高级微控制总线(AMBA)体系结构(AMB2.0,AHB/APB)。(3)存储器控制器特性:1)S3C2440采用总线结构管理片上外设及内存。2)S3C2440的存储器管理器提供访问外部存储器的所有控制信号。3)27位地址信号、32位数据信号、8个片选信号、以及读/写控制信号等。4)总共有8个存储器bank(bank0bank7),其中,bank0-bank5为固定128MB,ban
25、k6和bank7的容量可编程改变,可以是2、4、8、16、32、64、128MB,最大共1GB。bank0可以作为引导ROM,其数据线宽只能是16位和32位,其它存储器的数据线宽可以是8位、16位和32位。5)8个存储器bank:bank0-bank5:SRAM、ROM。Bank6bank7:SRAM、ROM SDRAM。6)s3c2440支持两种启动方式:NOR FLASH启动,即代码直接写入NOR FLASH,运行时直接在NOR FLASH上运行。NAND FLASH启动方式,即代码烧到NAND FLASH中,借助片内4K的sram,将代码由NAND FLASH烤到SDRAM中,在SDRA
26、M中运行。7)所使用的Sunplus S3C2440 Board V2.0说明图3.1如下: 图3.1(S3C2440说明图)3.1.2 GPRS无线模组的介绍GPRS模组采用SIM300通讯芯片,利用无线移动网络实现语音传输和点对点数据传输。同时,模组内具备TCP/IP协议栈,可以直接利用它实现无线上网。模组使用标准的UART串行通信接口与主芯片进行通信,可以与任何带有通用UART串行通信接口的控制器进行连接。该模组具有以下特性:(1) 支持EGSM900M,DCS1800M,PCS1900M三种频段,兼容GSM Phase 2/2+。(2)集成PAP协议,可供PPP连接使用。(3)集成TC
27、P/IP协议,方便实现上网功能。(4)支持包交换广播控制通道(PBCCH)。(5)无限制的辅助服务数据支持(USSD)。GPRS模组使用标准串口与主控制器进行通讯。模组带有一个10针的接口,该接口可以和MCU相连接也可以通过模组上的RS232接口和PC机串口相连接。GPRS模组需通过J4的电源开关信号(PWRKEY)输入引脚向GPRS模组输入如图3.2所示的上电时序GPRS才能被启动,启动后GPRS的信号指示灯会闪烁。也可以手动按下GPRS模组上的ON/OFF按键,大约2秒之后松开,GPRS模组亦可以被启动。PowerONNNNNNON15000msmms图3.2(GPRS上电时序图)GPRS
28、模组实物图3.3如下: 图3.3(GPRS模组实物图)当GPRS模组启动之后,就可以利用AT指令通过UART接口实现数据和语音的通信功能;GPRS的核心芯片SIM300通讯芯片的原理图3.4如下:图3.4(SIM300芯片原理图)GPRS模组的部分接口电路如下图3.5:图3.5(GPRS模组接口电路)连接GPRS模组到开发板的J15(GPRS)接口上,注意顺序(实验箱的12V接模组的VCC,IOB0接PWRKEY,GND接GND)插接,且不可插反或错位;断开JP7、JP8的所有跳线;断开手柄接口与手柄的连接;配置GPRS;如连接耳麦和天线。图3.6(GPRS模组跳线连接图)3.1.3温湿度传感
29、器(SHT10)的介绍SHT1x (包括 SHT10, SHT11 和 SHT15) 属于Sensirion温湿度传感器家族中的贴片封装系列。传感器将传感元件和信号处理电路集成在一块微型电路板上,输出完全标定的数字信号。传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,在同一芯片上,与14 位的A/D 转换器以及串行接口电路实现无缝连接。每个传感器芯片都在极为精确的湿度腔室中进行标定,校准系数以程序形式储存在OTP 内存中,用于内部的信号校准。两线制的串行接口与内部的电压调整,使外围系统集成变得快速而简单。SHT1x:实物图如图3.7:图3.7(sht10实物)接口定义如图
30、3.8:引脚名称描述1GND地2DATE串行数据3SCK串行时钟,输入口4VDD电源NCNC必须为空图3.8(接口定义图)SHT1x 的供电电压范围为2.4-5.5V, 建议供电电压为3.3V。在电源引脚(VDD,GND)之间须加一个100nF的电容,用作去耦滤波。如图3.9:图3.9(SHT10的连接图)传感器不能按照I2C 协议编址,但是,如果I2C 总线上没有挂接别的元件,传感器可以连接到I2C 总线上,但处理器必须按照传感器的协议工作。SCK 用于微处理器与SHT1x 之间的通讯同步。由于接口包含了完全静态逻辑,因而不存在最小SCK 频率。DATA 引脚为三态结构,用于读取传感器数据
31、。当向传感器发送命令时, DATA 在SCK 上升沿有效且在SCK 高电平时必须保持稳定。3.1.4 红外传感器的介绍(1)红外技术在现代科技、国防和工农业等领域获得了广泛的应用。红外传感系统是用红外线为介质的测量系统,按照功能能够分成五类:1)辐射计,用于辐射和光谱测量;2)搜索和跟踪系统,用于搜索和跟踪红外目标,确定其空间位置并对它的运动进行跟踪;3)热成像系统,可产生整个目标红外辐射的分布图像;4)红外测距和通信系统;5)混合系统,是指以上各类系统中的两个或者多个的组合。(2)红外传感器根据探测机理可分成为:光子探测器(基于光电效应)和热探测器(基于热效应)。红外传感器图3.10:红外模
32、块实物图3.11图3.10(红外传感器实物图)图3.11(红外模块实物)模块接上电源后若检测到有人接近,输出端会输出1秒左右的高电平,随后恢复到低电平。3.2 5伏开关电源电路设计由于本控制系统单元电路较多对且对5V 电源的要求比较高,其中TC35 模块的突发耗电电流峰值可达2.5A,故外加的稳压器件必须达到足以提供TC35 和其它电路额定电流的条件。在本系统中,采用了芯片s3c2440 完成从12V 到5V 的转换,必须特别注意的是,如图3.13由s3c2440芯片完成开关电源转换需要大功率的电感(100uH)和电容,以提高储能的能力,达到单元电路的耗电需求。s3c2440为5.0V3A 开
33、关电源稳压器。3.13(5V 开关电源稳压器电路)4 软件平台4.1 linux操作系统介绍Linux 是一套 Unix-like 的操作系统,是 Unix 的一种,它控制整个系统基本服务的核心程序 (kernel) 是由 Linus 带头开发出来的,Linux这个名称便是以Linuss unix来命名,Linus 选择用大众公有版权 (GPL)的方式来发行这份程序,这个版权允许任何人以任何形式复制与散布 Linux 的原始程序,换句话说,Linux 实际上是免费的,使用者在网络上就可以找到 Linux 的原始程序代码,随心所欲的复制与更改 Linux 的原始程序,在因特网的日渐盛行以及 Li
34、nux 开放自由的版权之下,吸引了无数计算机高手投入开发、改善 Linux 的核心程序,使得 Linux 的功能日见强大,所以今日我们可以在网络上免费下载 Linux 使用,或者花很少的一点费用就可以取得 Linux 光盘,这都是因为 Linux 是 GPL 版权的缘故。除了核心程序以外,一个操作系统还需要其它的系统程序跟应用程序才有实用性,Linux 系统中常用的系统程序大部份是美国自由软件基金会 (Free Software Foundation) 开发出来的软件,而且也有不少机构或个人为 Linux 开发应用程序,这些程序一样大多都是自由软件,任何人都可以免费的在网络上取得,不过自行去取
35、得这些程序再一一安装非常不便,于是有些公司或团体就会去搜集、整合 Linux 上的程序,把核心-系统程序-应用程序总合起来构成一个完整的操作系统,让一般使用者可以简便的安装完整个系统,这就是所谓的安装软件包(distribution),我们一般讲的 Linux 系统便是针对这些安装软件包而言,同样是 Linux 系统,却分成不同公司、机构整合出来的不同安装软件包,这就是大家常常在网络上看到 Linux 有那么多种的原因。 近几年的发展,已使得Linux成为微软、升阳的另一大敌手。Linux挟其价格低廉、品质良好与稳定的竞争优势,正无形无影地扩散至众多以PC为主的工作 平台上。早期因缺乏商业性应
36、用软件,单凭学术味道浓厚的工具程序,是无法打入一般商家的主流操作系统的。然而,今日的Linux已非吴下阿蒙,KDE、 Gimp、Gnome等计划相继地开展,为X提供了更多图形接口的桌面操作环境和应用软件。 约1993年左右,Linux首先以发行软 体(distribution)的型态出现。这是一群完整的软件,包含安装程序、核心、应用软件、X、驱动程序等的软件包,经由Internet下载至磁 盘片进行安装。那时的安装程序简陋,难以成功地安装妥当,接口亲和力不足和硬件支持不良是最大的障碍。4.2 Boa服务器4.2.1 Boa简介Boa 是一款单任务的HTTP 服务器, 与其他传统的Web 服务器
37、不同的是当有连接请求到来时, 它并不为每个连接单独创建进程, 也不通过复制自身进程来处理多链接, 而是通过建立HTTP 请求列表来处理多路HTTP 连接请求, 同时它只为CGI 程序创建新的进程, 这样就在最大程度上节省了系统资源, 这对嵌入式系统来说至关重要. 同时它还具有自动生成目录、自动解压文件等功能, 因此, Boa 具有很高的HTTP 请求处理速度和效率, 在嵌入式系统中具有很高的应用价值。4.2.2 Boa服务器的实现机制 Boa服务器和普通Web 服务器一样, 能够完成接收客户端请求、分析请求、响应请求、向客户端返回请求结果等任务. 它的工作过程主要包括:(1)完成Web 服务器
38、的初始化工作, 如创建环境变量、创建TCP 套接字、绑定端口、开始侦听、进入循环结构, 以及等待接收客户浏览器的连接请求;(2)当有客户端连接请求时,Web 服务器负责接收客户端请求, 并保存相关请求信息;(3)在接收到客户端的连接请求之后,分析客户端请求, 解析出请求的方法、URL 目标、可选的查询信息及表单信息, 同时根据请求做出相应的处理;(4)Web 服务器完成相应处理后, 向客户端浏览器发送响应信息, 关闭与客户机的TCP 连接。Boa服务器根据请求方法的不同, 做出不同的响应. 如果请求方法为HEAD, 则直接向浏览器返回响应首部; 如果请求方法为GET, 则在返回响应首部的同时,
39、 将客户端请求的URL 目标文件从服务器上读出, 并且发送给客户端浏览器; 如果请求方法为POST, 则将客户发送过来的表单信息传送给相应的CGI 程序, 作为CGI 的参数来执行CGI 程序, 并将执行结果发送给客户端浏览器。 Boa 的功能实现也是通过建立连接、绑定端口、进行侦听、请求处理等来实现的。4.3 CGI工具4.3.1 CGI简介CGI 是 Common Gateway Interface 的缩写,是服务器端和用户沟通的程序,它可以使你的网页更生动,网络上很多工具例如搜索引擎、留言板、BBS等都是 CGI 程序。 CGI是用来沟通HTML表单和服务器端程序的接口(interfac
40、e)。CGI并不是一种语言,而是可以被其他语言所应用的一个规范集。理论上讲,你可以用任何的程序语言来编写CGI程序,只要在编程的时候符合CGI规范所定义的一些东西就可以了。由于C语言在平台无关性上表现不错(几乎在任何的系统平台下都有其相应编译器),而且对大多数程序员而言都算得上很熟悉,因此,C是CGI编程的首选语言之一。4.3.2 CGI的实现CGI是: “公共网关接口”(Common Gateway Interface)的简称,是HTTP服务器与其它程序进行“交谈”的一种工具,其程序须运行在网络服务器上。CGI是一段程序,它运行在Server上,提供同客户端 Html页面的接口。(1)CGI
41、的功能:1)通常情况下CGI程序被用来解释处理来自表单的输入信息,在服务器产生相应的处理,并将相应的信息反馈给浏览器。2)CGI程序使网页具有交互功能。(2)CGI处理步骤:1)通过Internet把用户请求送到服务器。2)服务器接收用户请求并交给CGI程序处理。3)CGI程序把处理结果传送给服务器。4)服务器把结果送回到用户。(3)CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。1)CGI程序的输出:CGI程序中的标准输出是经过重定向了的。CGI程序并不会在服务器上产生任何的输出内容,而是被重定向到客户浏览器。这样,如果编写一个C的CGI程序的时候,把一个HTML文档
42、输出到它的stdout上,这个HTML文档会被在客户端的浏览器中显示出来。这也是CGI程序的一个基本原理。CGI程序第一行输出的内容必须是:Content-Type:text/html这个输出作为HTML的文件头。因为CGI不仅可以像浏览器输出HTML文本,而且可以输出图像,声音之类的东西,http服务器向远程发送文件时要说明文件类型。2)两个重要的CGI环境变量:QUERY-STRING:GET方法表单输入的数据,URL中间号后的内容。CONTENT-LENGTH:POST方法输入的数据的字节数。4.4 Qt的介绍 Qt 是一个跨平台的 C+ 图形用户界面库,由挪威 TrollTech 公司
43、于1995年底出品。Trolltech 公司在 1994 年成立,但是在 1992 年,成立 Trolltech 公司的那批程序员就已经开始设计Qt了,Qt 的第一个商业版本于 1995 年推出。2008年1月31日,Nokia公司宣布通过公开竞购的方式收购TrollTech公司,旗下包括Qt在内的技术都归入Nokia旗下。 Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件之间的协同工作变得十分简单。丰富的 API:Qt包括多达 250 个以上的
44、C+ 类,还提供基于模板的 collections,serialization, file, I/O device, directory management, date/time 类。甚至还包括正则表达式的处理 功能。支持 2D/3D 图形渲染、支持 OpenGL(开放图形语言)、大量的开发文档、XML 支持、Webkit 引擎的集成,可以实现本地界面与Web内容的无缝集成,但是真正使得 Qt 在自由软件界的众多 Widgets (如 Lesstif,Gtk,EZWGL,Xforms,fltk 等等)中脱颖而出的还是基于 Qt 的重量级软件 KDE(桌面环境)。 4.5 AT命令4.5.1
45、AT命令集简介AT即Attention,AT 命令集是从TE(Terminal Equipment )或DTE(Data Terminal Equipment)向TA(Terminal Adapter)或DCE(Data Circuit Terminating Equipment)发送的。通过TA,TE 发送AT 命令来控制MS(Mobile Station)的功能,与GSM 网络业务进行交互。用户可以通过AT 命令进行呼叫、短信、电话本、数据业务、补充业务、传真等方面的控制。SIM300可设置的AT命令包括GSM07.05、GSM07.07、ITU-T介绍的AT命令,除此之外,SIM300还
46、支持SIM公司扩展的AT命令。每个AT命令行必须以“AT”为前缀开始,以r结束。AT命令通常跟随其回应,回应的格式为:rn+回应+rn。下文中r或rn都被省略。SIM300常用的AT命令表1.1。详细的AT命令说明请参考SIM300 AT Command Set。表1.1 常用AT命令命令命令格式功能描述ATAT测试连接是否正常。AT+CMIC=?AT+CMIC=,设置MIC的通道及增益。AT+CMGF=?AT+ CMGF =设置短消息格式。AT+CHFA=?AT+CHFA=切换声音通道。AT+CLVL=?AT+CLVL=喇叭音量调节。AT+CSCS=?AT+CSCS=选择TE 字符集。ATDATD;拨号,建立会话、数据或传真等业务。ATHATH0呼叫挂起。ATAATA呼叫应答。AT+VTS=?AT+VTS=发送DTMF 拨号音。AT+CMGS=?AT+CMGS= , AT+CMGS= 发送短消息。AT+CMGR=?AT+CMGR=,读取短消息。4.5.2 GPRS电话功能的实现(1)上电按J4按钮2秒左右,出现信号灯闪烁,说明启动成