毕业论文-基于S3C2440的智能家居监控系统设计63

上传人:痛*** 文档编号:59871580 上传时间:2022-03-05 格式:DOCX 页数:63 大小:1.14MB
返回 下载 相关 举报
毕业论文-基于S3C2440的智能家居监控系统设计63_第1页
第1页 / 共63页
毕业论文-基于S3C2440的智能家居监控系统设计63_第2页
第2页 / 共63页
毕业论文-基于S3C2440的智能家居监控系统设计63_第3页
第3页 / 共63页
点击查看更多>>
资源描述
郑州科技学院本科毕业设计(论文) 题 目 基于S3C2440的智能家 居监控系统设计 学生姓名 徐汝存 专业班级 电子科学与技术2班 学 号 200831035 院 (系) 电气工程学院 指导教师 黄东(教授 ) 完成时间 2012年 5 月 15 日 基于S3C2440的智能家居监控系统设计摘 要 智能家居又称为数字家庭, 一般是指以计算机接口技术和网络技术为基础,将各种家用数字化设备有机结合为一体的智能化的网络系统。这些家用数字化设备包括电话、计算机、数字化的视听设备、数字化的家用电器及安全监控设备等, 通过有线或无线的方式将这些设备连接起来, 为家庭用户提供简单、安全、可靠、智能化的综合服务。本课题以Web 技术为核心, 在基于S3C2440 微处理器和嵌入式Linux 操作系统的软硬件平台上构建了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 network 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 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 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系统设计主要任务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服务器的实现机制184.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-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(贝尔)发明电话以来,世界各国的电话网络发展非常迅速,近十年来,中国的固定电话业务呈现出举世瞩目的快速增长。1997 年8 月局用电话交换机总容量突破1 亿门,网络规模跃居世界第二位,2012年4月中国工业和信息化布披露数据称,截止3月末中国大陆电话用户突破13亿户,其中移动电话为10.2亿户,3G用户突破1.5亿户,宽带用户接入数达1.57亿户,移动互联网用户6.7亿户。从以上的最新数据可以看出未来的网络化的发展趋势。正是因为通信技术、计算机技术、网络技术、控制技术的迅猛发展与提高,促使了家庭实现了生活现代化,居住环境舒适化、安全化。这些高科技已经影响到人们生活的方方面面,改变了人们生活习惯,提高了人们生活质量,家居智能化也正是在这种形势下应运而生的。智能家居控制系统的主要功能包括通信、设备自动控制、安全防范三个方面。随着新技术和自动化的发展,传感器的使用数量越来越大,功能也越来越强,各种传感器都已经标准化、模块化这给智能家居控制系统的设计提供极大方便。嵌入式的智能家居使系统的处理能力大大增强,可以带来更加逼真的图象以及更加真实的语音等。根据系统定制的实时操作系统不仅可以最大限度的利用硬件资源而且还避免了过于庞大的系统造成的系统冗余。一般只有一颗主处理芯片,系统架构更加清晰简捷。软件采用分层设计,方便维护和升级,大大提高了代码利用率,缩短开发周期。因为嵌入式技术是伴随着Internet 而生的,所以它具有更加卓越的网络性能,可以增加更多的网络应用,很显然嵌入式类智能家居产品在应用方面具有相当的优势,应该是未来中国家庭智能化技术主流发展方向。家居生活的智能化是当今计算机网络与通讯技术最人性化的应用,给人们的家居生活带来了全新的感受。今天,借助电话控制或互联网,您几乎可以在任何地方、任何时候监控您的家居状况,为您的家居生活带来前所未有的方便。随着社会全面的信息化、智能化和自动化,家庭智能化必将成为未来家居装饰潮流发展的最新方向!1.2 物联网概念的起源早在1995年比尔盖茨在未来之路中提到了物联网的概念,然而到了1998年的时候美国的麻省理工学院(MIT)的Kevin Ashton,把非接触式无线识别技术(RFID)与传感器技术应用于日常物品中才形成一个真正所谓的“物联网”。当时的物联网的概念就是利用产品电子代码EPC,还有我们的射频识别技术,通过网络,当时的网络还仅限于互联网来实现物品的互联互通。在任何时候任何地点对任何物品识别和管理,这就是原来的物联网。在1999年的时候EPC global的Auto-ID中心提出:物联网就是成千上万的物品采用无线方式接入了internet的网络。这是物联网概念真正的提出。在2008年IBM提出:互联网+物联网=智慧地球,就是把传感器设备安装到电网、铁路、桥梁、隧道、供水系统、大坝、油气管道等各种物体中,并且普遍链接成网路,及“物联网”。至此最新的物联网概念形成了。新技术:网络技术,传感技术、数据库技术、云计算、移动计算等使得物联网发生了很大的变换,内含增多增大。所谓的物不仅仅是物理实体,网络不仅仅是各类信息的网络,还包括互联网、传感网、移动网,技术也把条码、射频、传感器包含了进来。广义的物联网概念就是利用自动识别技术,这里包括条码、射频、全球定位等按照标准的协议实现人与物、物与物在任何时候任何地点的链接,显著的特点就是智能化、进行信息交换和通信、以实现智能识别、定位、跟踪、监控、管理,构建成为一个庞大的网络体系。1.3智能家居系统概述 随着社会信息化的加快,人们的工作、生活和通讯、信息的关系日益紧密。信息化社会在改变人们生活方式与工作习惯的同时,也对传统的住宅提出了挑战,社会、技术以及经济的进步更使人们的观念随之巨变。人们对家居的要求早已不只是物理空间,更为关注的是一个安全、方便、舒适的居家环境。家居智能化技术起源于美国,它是以家为平台进行设计的。 智能家居控制系统是以HFC、以太网、现场总线、公共电话网、无线网的传输网络为物理平台,计算机网络技术为技术平台,现场总线为应用操作平台,构成一个完整的集家庭通信、家庭设备自动控制、家庭安全防范等功能的控制系统。 智能家居控制系统的总体目标是通过采用计算机技术、网络技术、控制技术和集成技术建立一个由家庭到小区乃至整个城市的综合信息服务和管理系统,以此来提高住宅高新技术的含量和居民居住环境水平。大型的智能家居控制系统通常由系统服务器、家庭控制器(各种模块)、各种路由器、电缆调制解调器头端设备CMTS、交换机、通讯器、控制器、无线收发器、各种探测器、各种传感器、各种执行机构、打印机等主要部分组成。1.4 研究目的及意义智能家居控制系统可以定义为一个过程或者一个系统。利用先进的计算机技术、网络通讯技术、综合布线技术、将与家居生活有关的各种子系统,有机地结合在一起,通过统筹管理,让家居生活更加舒适、安全、有效。与普通家居相比,智能家居不仅具有传统的居住功能,提供舒适安全、高品位且宜人的家庭生活空间。还将原来的被动静止结构转变为具有能动智慧的工具,提供全方位的信息交换功能,帮助家庭与外部保持信息交换畅通,优化人们的生活方式,帮助人们有效安排时间,增强家居生活的安全性,甚至为各种能源费用节约资金。系统的网络化功能可以提供遥控:家电(电视,空调,热水器等)控制、照明控制、室内外遥控、窗帘自控、防盗报警、电话远程控制、可编程定时控制及计算机控制等多种功能和手段。使生活更加舒适、便利和安全。因智能家居控制系统简单、功能灵活,扩展容易而被人们广泛接受和应用。家居生活的智能化是当今计算机网络与通讯技术最人性化的应用,给人们的家居生活带来了全新的感受。今天,借助电话控制或互联网,您几乎可以在任何地方、任何时候监控您的家居状况,为您的家居生活带来前所未有的方便。随着社会全面的信息化、智能化和自动化,家庭智能化必将成为未来家居装饰潮流发展的最新方向!1.5系统设计主要任务本文利用凌阳ARM9嵌入式实验箱,S3C2440 CPU核心板和装有Linux系统或装有Linux虚拟机的PC机一台。本设计包括:系统硬件的设计与调试和控制软件的编写与调试。硬件部分:智能家居控制系统其硬件部分主要由五大部分构成,即GPRS模组、以太网模块、AD转换模块、S3C2440 CPU板模块与接口和电源部分。用户可以通过GPRS模组上的RS232接口和PC机直接相连接使用,通过AD转换模块检测温度变化,电源部分则为各个部分提供工作电源。软件部分:软件设计部分主要由五大部分构成:即Boa服务器搭建、Qt编程、CGI程序编写,AT命令集,GPRS初始化驱动和各个驱动程序编写。2 方案论证2.1 系统方案论证2.1.1控制部分方案一: 采用普通MCS-51单片机作为总的控制元件和信号处理单元。方案二: 采用凌阳ARM9处理器作为总的控制元件和信号处理单元。比较论证: 方法一MCS-51单片机功能较少,不含有模数转换等功能,因此需增加一些外围电路来实现模数转换功能,使电路复杂化,精确度不高,且采样速率偏低。而方案二简化了电路,增加了系统稳定性。凌阳ARM9处理器在设计方面提供了极大的方便,它的好处在于,功能较多。因为它不仅囊括了普通单片机的所有功能,而且还有普通单片机所不具有的许多新的功能,如: A/D、D/A转换, 语音等,另外还提供了便利的编程环境。2.1.2显示部分方案一: 采用数码管显示。方案二: 用LCD显示器显示。比较论证: 就我们的需要而言LED显示内容单一,不易产生生动具体的图文,而LCD显示器则给我们提供了更大的发挥空间,看起来舒服自然,而且能增加显示的美观性与直观性。最重要的是提供了友好的人机界面。2.1.3服务器部分 方案一: 采用TCP或UDP服务器。 方案二:采用boa服务器。比较论证:方案一虽然可行,虽搭建容易但移植和执行比较困难,而方案二则不同,Boa 是一款单任务的HTTP 服务器, 与其他传统的Web 服务器不同的是,当有连接请求到来时, 它并不为每个连接单独创建进程, 也不通过复制自身进程来处理多链接, 而是通过建立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.3 总体分析本设计属于嵌入式应用系统设计。确定嵌入式控制系统设计总体方案,是进行系统设计最重要、最关键的一步。总体方案的好坏,直接影响整个控制系统的性能及实施细则。总体方案的设计主要是根据被控对象的任务及工艺要求而确定的。设计方法大致如下:根据系统的要求,首先确定出系统类型。选择检测元件,在确定总体方案时,必须首先选择好的被测参数的测量元件,它是影响控制系统精度的重要因素之一。选择执行机构,执行机构是微控制系统的重要组成部件之一。执行机构的选择一方面要与控制算法匹配,另一方面要根据被控对象的实际情况确定。选择输入/输出通道及外围设备。选择时应考虑以下几个问题:被控对象参数的数量;各输入/输出通道是串行操作还是并行操作;各通道数据的传递速率;各通道数据的字长及选择位数;对显示、打印有何要求。2.3系统框图本控制系统是32位ARM处理器在系统检测以及工程控制方面的应用,其特点是体积小,成本低,功能强,功耗低,是微机应用产品化的最佳机种之一,它已广泛地应用在产品智能化和工业自动化上。而把微处理器面向工控领域对象,嵌入到工控应用系统中,实现嵌入式应用的计算机称之为嵌入式计算机系统,简称嵌入式系统。本设计系统框图如图2.3所示:温湿传感模组GPRS模组LED显示模组红外传感模组LCD触摸屏IE浏览器BOA服务器CGI接口S3C2440CPU图2.3(系统框图)3 硬件电路设计3.1 硬件资源和模块介绍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,指令高速存储缓冲器(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,bank6和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中,在SDRAM中运行。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)集成TCP/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模组实物图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温湿度传感器(SHT10)的介绍SHT1x (包括 SHT10, SHT11 和 SHT15) 属于Sensirion温湿度传感器家族中的贴片封装系列。传感器将传感元件和信号处理电路集成在一块微型电路板上,输出完全标定的数字信号。传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,在同一芯片上,与14 位的A/D 转换器以及串行接口电路实现无缝连接。每个传感器芯片都在极为精确的湿度腔室中进行标定,校准系数以程序形式储存在OTP 内存中,用于内部的信号校准。两线制的串行接口与内部的电压调整,使外围系统集成变得快速而简单。SHT1x:实物图如图3.7:图3.7(sht10实物)接口定义如图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 引脚为三态结构,用于读取传感器数据 。当向传感器发送命令时, DATA 在SCK 上升沿有效且在SCK 高电平时必须保持稳定。3.1.4 红外传感器的介绍(1)红外技术在现代科技、国防和工农业等领域获得了广泛的应用。红外传感系统是用红外线为介质的测量系统,按照功能能够分成五类:1)辐射计,用于辐射和光谱测量;2)搜索和跟踪系统,用于搜索和跟踪红外目标,确定其空间位置并对它的运动进行跟踪;3)热成像系统,可产生整个目标红外辐射的分布图像;4)红外测距和通信系统;5)混合系统,是指以上各类系统中的两个或者多个的组合。(2)红外传感器根据探测机理可分成为:光子探测器(基于光电效应)和热探测器(基于热效应)。红外传感器图3.10:红外模块实物图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 开关电源稳压器。3.13(5V 开关电源稳压器电路)4 软件平台4.1 linux操作系统介绍Linux 是一套 Unix-like 的操作系统,是 Unix 的一种,它控制整个系统基本服务的核心程序 (kernel) 是由 Linus 带头开发出来的,Linux这个名称便是以Linuss unix来命名,Linus 选择用大众公有版权 (GPL)的方式来发行这份程序,这个版权允许任何人以任何形式复制与散布 Linux 的原始程序,换句话说,Linux 实际上是免费的,使用者在网络上就可以找到 Linux 的原始程序代码,随心所欲的复制与更改 Linux 的原始程序,在因特网的日渐盛行以及 Linux 开放自由的版权之下,吸引了无数计算机高手投入开发、改善 Linux 的核心程序,使得 Linux 的功能日见强大,所以今日我们可以在网络上免费下载 Linux 使用,或者花很少的一点费用就可以取得 Linux 光盘,这都是因为 Linux 是 GPL 版权的缘故。除了核心程序以外,一个操作系统还需要其它的系统程序跟应用程序才有实用性,Linux 系统中常用的系统程序大部份是美国自由软件基金会 (Free Software Foundation) 开发出来的软件,而且也有不少机构或个人为 Linux 开发应用程序,这些程序一样大多都是自由软件,任何人都可以免费的在网络上取得,不过自行去取得这些程序再一一安装非常不便,于是有些公司或团体就会去搜集、整合 Linux 上的程序,把核心-系统程序-应用程序总合起来构成一个完整的操作系统,让一般使用者可以简便的安装完整个系统,这就是所谓的安装软件包(distribution),我们一般讲的 Linux 系统便是针对这些安装软件包而言,同样是 Linux 系统,却分成不同公司、机构整合出来的不同安装软件包,这就是大家常常在网络上看到 Linux 有那么多种的原因。 近几年的发展,已使得Linux成为微软、升阳的另一大敌手。Linux挟其价格低廉、品质良好与稳定的竞争优势,正无形无影地扩散至众多以PC为主的工作 平台上。早期因缺乏商业性应用软件,单凭学术味道浓厚的工具程序,是无法打入一般商家的主流操作系统的。然而,今日的Linux已非吴下阿蒙,KDE、 Gimp、Gnome等计划相继地开展,为X提供了更多图形接口的桌面操作环境和应用软件。 约1993年左右,Linux首先以发行软 体(distribution)的型态出现。这是一群完整的软件,包含安装程序、核心、应用软件、X、驱动程序等的软件包,经由Internet下载至磁 盘片进行安装。那时的安装程序简陋,难以成功地安装妥当,接口亲和力不足和硬件支持不良是最大的障碍。4.2 Boa服务器4.2.1 Boa简介Boa 是一款单任务的HTTP 服务器, 与其他传统的Web 服务器不同的是当有连接请求到来时, 它并不为每个连接单独创建进程, 也不通过复制自身进程来处理多链接, 而是通过建立HTTP 请求列表来处理多路HTTP 连接请求, 同时它只为CGI 程序创建新的进程, 这样就在最大程度上节省了系统资源, 这对嵌入式系统来说至关重要. 同时它还具有自动生成目录、自动解压文件等功能, 因此, Boa 具有很高的HTTP 请求处理速度和效率, 在嵌入式系统中具有很高的应用价值。4.2.2 Boa服务器的实现机制 Boa服务器和普通Web 服务器一样, 能够完成接收客户端请求、分析请求、响应请求、向客户端返回请求结果等任务. 它的工作过程主要包括:(1)完成Web 服务器的初始化工作, 如创建环境变量、创建TCP 套接字、绑定端口、开始侦听、进入循环结构, 以及等待接收客户浏览器的连接请求;(2)当有客户端连接请求时,Web 服务器负责接收客户端请求, 并保存相关请求信息;(3)在接收到客户端的连接请求之后,分析客户端请求, 解析出请求的方法、URL 目标、可选的查询信息及表单信息, 同时根据请求做出相应的处理;(4)Web 服务器完成相应处理后, 向客户端浏览器发送响应信息, 关闭与客户机的TCP 连接。Boa服务器根据请求方法的不同, 做出不同的响应. 如果请求方法为HEAD, 则直接向浏览器返回响应首部; 如果请求方法为GET, 则在返回响应首部的同时, 将客户端请求的URL 目标文件从服务器上读出, 并且发送给客户端浏览器; 如果请求方法为POST, 则将客户发送过来的表单信息传送给相应的CGI 程序, 作为CGI 的参数来执行CGI 程序, 并将执行结果发送给客户端浏览器。 Boa 的功能实现也是通过建立连接、绑定端口、进行侦听、请求处理等来实现的。4.3 CGI工具4.3.1 CGI简介CGI 是 Common Gateway Interface 的缩写,是服务器端和用户沟通的程序,它可以使你的网页更生动,网络上很多工具例如搜索引擎、留言板、BBS等都是 CGI 程序。 CGI是用来沟通HTML表单和服务器端程序的接口(interface)。CGI并不是一种语言,而是可以被其他语言所应用的一个规范集。理论上讲,你可以用任何的程序语言来编写CGI程序,只要在编程的时候符合CGI规范所定义的一些东西就可以了。由于C语言在平台无关性上表现不错(几乎在任何的系统平台下都有其相应编译器),而且对大多数程序员而言都算得上很熟悉,因此,C是CGI编程的首选语言之一。4.3.2 CGI的实现CGI是: “公共网关接口”(Common Gateway Interface)的简称,是HTTP服务器与其它程序进行“交谈”的一种工具,其程序须运行在网络服务器上。CGI是一段程序,它运行在Server上,提供同客户端 Html页面的接口。(1)CGI的功能:1)通常情况下CGI程序被用来解释处理来自表单的输入信息,在服务器产生相应的处理,并将相应的信息反馈给浏览器。2)CGI程序使网页具有交互功能。(2)CGI处理步骤:1)通过Internet把用户请求送到服务器。2)服务器接收用户请求并交给CGI程序处理。3)CGI程序把处理结果传送给服务器。4)服务器把结果送回到用户。(3)CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。1)CGI程序的输出:CGI程序中的标准输出是经过重定向了的。CGI程序并不会在服务器上产生任何的输出内容,而是被重定向到客户浏览器。这样,如果编写一个C的CGI程序的时候,把一个HTML文档输出到它的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 公司于1995年底出品。Trolltech 公司在 1994 年成立,但是在 1992 年,成立 Trolltech 公司的那批程序员就已经开始设计Qt了,Qt 的第一个商业版本于 1995 年推出。2008年1月31日,Nokia公司宣布通过公开竞购的方式收购TrollTech公司,旗下包括Qt在内的技术都归入Nokia旗下。 Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件之间的协同工作变得十分简单。丰富的 API:Qt包括多达 250 个以上的 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 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还支持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秒左右,出现信号灯闪烁,说明启动成功;启动超级终端,设置为115200;(2)测试ATOK(成功)ERROR(失败)。(3)设置麦克风设置MIC: AT+CMIC=0,15逗号前有0,1两项,0为耳麦1为免提通话状态;逗号后即音量大小是对方听到你的声音大小。(4)设置耳机设置耳机: AT+CHFA=1(0/1此命令用来切换两个音频通道);sim300提供两个音频通道,用此命令来切换。(5)设置音量设置音量 : AT+CLVL=100范围是0100,数值越小,则音量越轻。(6)拨打电话输入ATD命令:ATD112;拨打112,注意别少“;”号挂机:ATH(7)二次拔号电话中拨号:AT+VTS=?为要拨的号码比如打10086后选择普通话服务AT+VTS=1(8)接电话响 应:RING 有来电命 令:ATA 应答此来电响 应:OK 接受呼叫命 令:ATH 挂断电话响 应 :NO CARRIER 电话已切断(9)来电显示开来电显示:AT+CLIP=1GPRS模组会每隔一会发:+CLIP: 13718967047,161,0关来电显示:AT+CLIP=04.5.3 GPRS短信功能的实现(1)设置短消息模式AT+CMGF =nn=0时,选择PDU模式:只能发英文n=1时,选择文本模式:可发中文执行命令后,模块返回OK。一般选择文本格式。(2)设置短消息编码方式AT+CSCS =可选:GSM或UCS2或IRAGSM:只支持英文编码UICODE:支持任意文字编码可根据实际情况选择,但一般选择 UCS2码。(3)设置短消息中心号码AT+CSCA =,执行命令后,返回OK。一般不设置。(4)发送短信(AT+CMGS )若设置AT+CSCS=UCS2,则号码、信息均为 UICODE码若设置AT+CSCS=GSM,则号码、信息均为ASCII码发送短消息 :AT+CMGS=目的手机号码1指定收信人电话号码:1)UCS2模式下发送格式:AT+CMGS=00310033003400360036003600330030003200350039注:发信息时国标码要转成UICODE码,收信息时UICODE码要转成国标码2)GSM模式下发送格式:AT+CMGS=131411380482输入短信内容发送电话号码后超级终端显示 提示输入短信正文。 输入完毕后,按ctrl+z发送正文。 ctrl+z /发送信息标志注:MCU串口输出032(5)列举短消息:AT+CMGL=REC UNREAD列举未读消息REC READ 接受已读STO UNSENT存储未发送STO SENT存储已发送ALL所有消息(6)阅读短消息发送AT+CMGR=,是短消息在当前存储区的索引号,执行该命令后模块返回:+CMGR:0,0,24 成功:OK 失败:ERROR。(7)删除短消息发送AT+CMGD=,是短消息在当前存储区的索引号,正确执行该命令后,模块返回OK;否则返回ERROR。4.6 boa服务器的搭建4.6.1编译boa程序(1)www.boa.org下载boa-0.94.13-src.tar.gz(2)tar zxvf boa-0.94.13-src.tar.gz 解压(3)cd boa-0.94.13-src(4)cd ./src (5)./configure (6)make clean(7)make (注:make前如若想更改boa.conf配置文件,应修改defines.h文件)(8)修改Makefile:将:CC = gccCPP = gcc -E 改为:CC = arm-linux-gccCPP = arm-linux-gcc -E4.6.2配置boa(1)建立/Smart_home/boa/boa_conf目录, 并复制boa.conf到该目录。(2)修改访问权限: 修改User nobody 为 User 0 修改Group nogroup 为 Group 0(3)设定日志目录: 建立/Smart_home/boa/log目录并设置为可读写权限; 修改boa.conf文件; ErrorLog /mnt/Smart_home/boa/log/error_log AccessLog /mnt/Smart_home/boa/log/access_log(4)设置html文件目录:DocumentRoot /mnt/Smart_home/boa/www(5)设置默认索引文件(主页): DirectoryIndex login.html(6)设置cgi脚本目录: ScriptAlias /cgi-bin/ /mnt/Smart_home/boa/www/cgi-bin(7)根据3、4、6步的设置建立相关文件夹并放入文件。4.6.3 boa配置(1)boa.conf的存放目录:默认boa.conf是在/etc/boa.conf目录的,boa运行时会自动去找/etc/bon.conf目录。这个设定是在defines.h文件中定义的,因此必须在编译之前进行修改在编译之前进行修改#define SERVER_ROOT etc/boa_conf为#define SERVER_ROOT“/mnt/Smart_home/boa/boa_conf ”,改变存放路径。(2)log目录:Boa的日志分为Errorlog 和 AccessLog 两部分,具体目录可在boa.conf中修改。如:ErrorLog /mnt/Smart_home/boa/log/error_logAccessLog /mnt/Smart_home/boa/log/access_log(3)html文件目录:可在boa.conf文件中修改如:DocumentRoot /mnt/Smart_home/boa/www(4)cgi脚本目录:可在boa.conf文件中修改如: ScriptAlias /cgi-bin/ /mnt/Smart_home/boa/www/cgi-bin(5)mime.types存放目录:拷贝/etc/mime.types文件到开发板/Smart_home/boa目录下,可在boa.conf文件中修改如: MimeTypes /mnt/Smart_home/boa/mime.types若不使用则改为:MimeTypes /dev/null(6)编译make clean;make(7)运行boa程序,打开网址http:/192.168.220.111并观察现象。4.7 HTML的简介4.7.1什么是HTML(1)HTML是用来描述网页的语言。(2)HTML指的是超文本标记语言(Hyper Text Markup Language)。(3)HTML不是一种编程语言,而是一种标记语言(Markup Language)。(4)标记语言是一套标记标签(markup tag)。(5)HTML 使用标记标签来描述网页。4.7.2 HTML标签(1)HTML标签是由尖括号包围的关键词,比如(2)HTML标签是通常是成对出现的比如(3)标签中的第一个标签是开始标签,第二个标签是结束标签。(4)开始和结束标签也被成为开放标签和闭合标签。4.7.3 HTML文件(1)HTML文件 = 网页,HTML文档被称为网页。(2)HTML文件描述网页。(3)HTML文件包含HTML标签和纯文本;web浏览器的作用是读取HTML文件,并以网页的形式显示出它们,浏览器不会显示HTML标签,而是通过标签来解释页面的内容。4.7.4 HTML文件构成元素(1)文本(2)图像(3)超链接,超链接是网站的灵魂,是从一个网站指向另一个目的端的链接。(4)表格,表格是网页排版的灵魂,通过表格可以精确地控制各网页元素在网页中的位置。(5)表单,表单是用来搜集站点访问者的域集。站点访问者填写表单的方式是输入文本、单击单选按钮与复选框,以及从下拉菜单中选择选项等。在填写好表单之后,站点访问者便送出所输出的数据,该数据就会根据所设置的表单处理程序,以各种不同的方式进行处理。(6)GIF动画,动画是网页上最活跃的元素,通常制作优秀、创意出众的动画是吸引浏览者的最有效的方法。不过现在的网页往往不是缺乏动画,而是太多动画让人眼花潦乱,无心细看。(7)Flash动画(8)框架,框架是网页的一种组织形式,将相互关联的多个网页的内容组织在一个浏览器窗口中显示。(9)网页中除了这些最基本的元素,还包括横幅广告、字幕、悬停按钮、日戳、计数器、音频、视频等。4.7.5 HTML文件结构与之间的文本描述网页,一个标准的页面分为头部和主体两大部分。(1)头部起于止于,之间是描述网页的头元素;头元素包含关于文档的概要信息,头元素内的元素不会被浏览器显示出来;根据 HTML 标准,仅有几个标签在 HTML 的头部分是合法的;它们是:, , , 和 。(2)主体起于止于,之间是可见的页面内容4.7.6 HTML中调用CGI程序的方法(1)使用GET的方法CGI1:hello CGI 这是第二个CGI测试程序请输入m:请输入n:(2)使用POST的方法CGI1:hello CGI/bo
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!