基于ARM的嵌入式Web服务器设计与实现doc.doc
《基于ARM的嵌入式Web服务器设计与实现doc.doc》由会员分享,可在线阅读,更多相关《基于ARM的嵌入式Web服务器设计与实现doc.doc(44页珍藏版)》请在咨信网上搜索。
基于ARM的嵌入式Web服务器设计与实现【实用文档】doc 文档可直接使用可编辑,欢迎下载 河南工业大学 嵌入式系统课程设计 题目:基于ARM的嵌入式Web服务器设计与实现 专业课程设计任务书 学生姓名 专业班级 学院名称 学号 题目 基于ARM的嵌入式Web服务器设计与实现 课题性质 工程设计 课题来源 自拟 指导教师 同组姓名 主要内容 设计一个嵌入式系统,Web服务器设计与实现.要求: 1. 了解Web服务器的原理 2.Web服务器的设计与实现 任务要求 设计系统的总体方案,并进行论证. 说明Web服务器的原理和ARM 微处理器控制板工作原理及组成,画出电路的总体方框图和电路原理图。 说明系统工作原理,对系统进行调试。 写出课程设计报告。 参考文献 嵌入式系统技术有关教材 电路设计手册 其他资料 审查意见 指导教师签字: 2018 年1 月 6 日 说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页 目录 摘 要 4 1 嵌入式Web服务器的软件构成 5 1.1 CGI技术 5 1.1。1 CGI概述 5 1。1.2CGI工作原理 5 2 嵌入式Web 服务器简述 7 2.1 嵌入式Web 服务器的主要应用 8 2。2 嵌入式Web 服务器的优点 8 2。3 嵌入式Web 服务器实现原理ﻩ8 3 嵌入式Web 服务器硬件整体结构 9 ﻩ10 ﻩ10 3.1 嵌入式Web 服务器软件构成 10 3.2 精简TCP/IP 协议及实现 11 3.2.1 ARP 协议及其实现 11 3。2.2 ICMP 协议及其实现ﻩ11 3。2。3 IP 协议及其实现ﻩ11 3.2.4 TCP 协议及实现 12 3。3 HTTP 协议ﻩ12 3。4 CGI 接口ﻩ13 4 系统软件设计ﻩ13 4.1 嵌入式操作系统ﻩ13 4.2 Boa的移植ﻩ13 4.3 软件实现ﻩ14 5 实验测试 16 6 结束语 17 参考文献 18 摘要 随着计算机、网络通信和Internet 技术的飞速发展和不断进步,嵌入式系统在家庭和工业应用越来越广泛.如何将嵌入式系统和工业控制系统接入Internet,综合利用嵌入式系统资源,实现嵌入式系统的远程管理和控制,已成为倍受关注的研究课题,而实现嵌入式系统的网络化则成为嵌入式系统的发展趋势。 网络通信时,应用程序使用C/S(客户/服务器)模式进行信息交互.传统的服务器程序一般运行在大型的拥有高级操作系统的服务器的计算机上,这样服务器软件需要强大的硬件和系统软件支持。嵌入式网络服务器是利用嵌入式系统实现服务器的软件和硬件功能,是嵌入式技术和网络技术相结合的产物。与传统服务器相比,嵌入式Web服务器具有结构简单、体积小、可靠性强以及方便灵活等特点。这些让它具有很大的发展潜力。另一方面,嵌入式Web服务器与传统的web服务器相比,也受到一些限制.传统的Web服务器主要用于处理较大的客户量的同时并发访问,硬件方面有强大的处理器和内存支持,软件方面有商业数据库支持,而嵌入式Web服务器的处理能力和存储容量都有限,这就要求嵌入式Web服务器在设计过程中需要尽量合理利用资源。 将嵌入式技术与Web 技术相结合,已成为目前嵌入式系统的一个重要发展方向和必然趋势。利用源代码开放的uClinux 为操作系统平台,实现了以ARM微处理器为核心的嵌入式Web 服务器,在分析了嵌入式Web 服务器的体系结构后,给出了系统的硬件结构组成和软件设计。对Web 服务器的测试结果表明,该服务器运行稳定、控制方便,将在智能家居、远程数据采集、工业控制等领域有着广泛的应用前景。 关键词:网络通信;嵌入式系统;ARM处理器;uClinux;Boa服务器; 1 嵌入式Web服务器的软件构成 嵌入式 Web 服务器主要解决的问题是通过 Internet 来进行远程访问和控制现场的设备,所以必须在嵌入式设备中配置 TCP/IP 协议和 Web 服务器 , 以解决网络互联问题.但是嵌入式服务器系统只需要使用其中的某些基本 的功能,也要减去一些使用不到有功能 ,以节省有限的嵌入式资源。TCP/IP 此外还要用到的软件资源有嵌入式实时操作系统 、HTTP 协议 ,同时带有 SMTP 和 SNMP 协议 ,使其具有网络管理的简单功能 ,通过网络可以对接 入到 Internet 上的设备进行管理和控制。 1。1 CGI技术 1.1.1 CGI概述 由于传统的Web 服务器无法实现Web 数据库访问功能,CGI 技术充当了访问数据库的重要媒介。CGI 是使用应用相关软件增强Web 服务器的一种标准方法, 可以用任何语言书写。CGI 根据需求更新网页, 是一种公共网关接口.它通过客户提供给Web 服务器的各种信息, 由Web 服务器启动指定CGI 模块函数, 完成客户端与服务器端动态的交互, 从而实现静态HTML 网页无法实现的功能( 如表单查询、数据库查询等).通常CGI 应用程序处于休眠状态, 通过使用一定的网络事件触发回调函数来实现, 并显示动态页面。例如,Web 服务器收到一个URL 里面包含的网页请求时, 将执行结果返回给HTML 网页,CGI 可实现处理表格、数据库查询和电子邮件等操作. 1.1。2CGI工作原理 系统嵌入式Web服务器通过CGI程序来获取用户的请求、查询条件,使用HTML方式描述结果并直接回送到客户端的浏览器上,此过程中浏览器将用户输入的数据发送到Web服务器,Web服务器将数据使用STDIN(标准输入)送到CGI程序。在执行CGI程序后,会访问数据库的记录,最后使用STDOUT输出HTML形式的结果文件,经Web服务器送回浏览器显示给用户.使用CGI实现客户与服务器的交互分一下九个标准步骤: Web客户(浏览器)通过URL与Web服务器相连; 服务发送HTML(和别的组成请求页面的文件)给用户,一旦页面内容传完,这个连接自动断开; 在客户方,HTML脚本提示用户做动作或输入,当用户响应后客户请求Web服务器建立一个新的连接; 一旦建立连接,客户把用户输入的数据传送给Web服务器; Web服务器把这些信息和别的进程变量传给由HTML以URL形式提交的CGI程序; CGI程序根据输入作出相应的操作,产生对客户的响应(一般以一个HTML文档的形式),并将其传送给Web服务器; Web服务器把应答数据传送给客户,并关闭连接; 图1.1 CGI工作原理 其中CGI与表单之间的信息交互方法有两种模式:“GET”和“POST".选择哪一种模式取决于表单(FORM)的“METHOD"字段的设置,如果METHOD设定为GET,CGI程序从环境变量QUER_STRING中获取数据.为了解释数据和执行需要的动作,CGI程序必须要分析(处理)此字符串;如果METHOD设定为POST,数据会以STDIN,必须使用CONTENT_LENGTH值。在本设计中CGI程序采用的是POST方法。如果想从服务器获得数据并且不改变服务器上的数据时,应该选用GET方法;也有例外,当传输的数据很长时,选用POST方法较好;使用GET方式编写CGI程序会更加简单,但是POST方式则更加先进;当发送的数据将改变Web服务器端的数据时,或者想给CGI程序传输大量数据(一般地,超过1024字节,这是URL的极限长度)时,应该选用POST方法。 2 嵌入式Web 服务器简述 嵌入式Web 服务器(Embedded Web Server)是指将Web 服务器嵌入到控制设备和现场测试中,借助于相关的软硬件平台系统,将传统嵌入式设备转变成了以TCP/IP 为底层通信协议和Web 技术为核心的网络测试及远程控制设备。嵌入式Web 服务器基于HTTP 协议运作,具有标准的接口形式和通信协议,所以它可以向接入其所在网络的用户提供统一的基于浏览器的控制界面和相关操作。这种技术因具有平台独立特性和开放性,在某种程度上降低了开发难度,使通信系统和软件系统的设计维护工作更容易,提升了控制设备和现场测试的管理水平。 如图1所示是典型的嵌入式Web服务器的系统模型: 图1典型的嵌入式Web服务器系统模型 Internet可以提供多种网络服务,比如通过SMTP(简单邮件传输协议)收发邮件,通过FTP(文件传输协议)传输文件。Internet能得到如此大规模的流行,WWW(World Wide Web)技术居功至伟。可以说如果没有WWW和HTTP技术就不会有这么多人使用Internet,正是WWW技术把Internet的结构、服务和应用引上了一个新台阶. 2。1 嵌入式Web 服务器的主要应用 目前嵌入式Web 服务器主要用于设备管理和企业应用程序网络扩展,它作为后台程序在运行嵌入式设备上,用户可以通过网络对设备进行配置、监测和控制,以保证设备正常而高效地运作。Web 接口可以让用户借助于Web 浏览器和网络来访问嵌入式设备。以这种方式对设备进行管理不仅可以监测和控制,而且可以根据设备的特点设计地更加人性化和智能化.Web 服务已成为支撑现代应用程序的技术和系统的核心组件,目前大部分企业用户都希望为他们的程序添加上基于Web 的用户接口。 2。2 嵌入式Web 服务器的优点 嵌入Web 服务器的优点主要体现在以下几个方面:1)它可以与Internet 连接,不再使用专用的线路,这样就具有了最大的普及范围;2)传输内容不局限于数据信息,还有图像和声音等多媒体信息;3)通信协议(HTTP)独立于系统平台,而且是标准而且公开的;4)Web 页面使用的HTML 语言是统一的网页语言, 这使标准化界面与客户端的软硬件平台相互独立, 节省了客户端的开发工 作;5)Web 架构能够减少了在设计系统时的工作量;6)存在大量的工具和函数库,减少了开发的工作量;7)嵌入式Web 服务器具有通用性,能够嵌入到任何设备当中。通过应用程序接口,服务器可以运行程序去实现高级功能,普通的监控方式达不到这样的效果。 2.3 嵌入式Web 服务器实现原理 Web 服务器监听来自客户端请求,并根据请求类型提供相对应的服务。它将Web 服务器引入到现场嵌入式设备中,并将信息采集与发布都集成到现场的嵌入式设备中.在相应的软硬件平台支持下,利用标准的通信协议和接口形式,内嵌于嵌入式设备的Web 服务器就具备了向接入它所在网络的合法用户提供统一的基于浏览器方式的控制界面和操作,此时浏览器成了设备的前端控制板。当前在嵌入式应用领域,主要通过两种方式将嵌入式系统转变为嵌入式WebServer:1)通过网关服务器实现Internet 接入;2)直接通过TCP/IP 协议实现嵌入式设备的Internet 接入. 3嵌入式Web 服务器硬件整体结构 嵌入式Web 服务器的硬件系统包含了具有Web 通信能力的微处理器,它可以通过现场总线与应用系统相连,也可以与前端的应用系统直接集成在一起。其硬件结构如图2所示。系统中的FLASH ROM 存储器是用来存储软件系统的内核、HTML 文档、TCP/IP 协议;RAM 存储器用于存储各种数据;网络接口用于与Internet 连接;前端现场测控的硬件完成对现场设备的监测、监测、报警、自动控制等功能;微型处理器负责全体的管理与运行;人机接口是可选条件,实现在本地对现场设备的人工监控. 数据存储器RAM 存储器FLASH ROM 网络接口部件 微型处理器 应用系统硬件 图2 (a)嵌入式系统web 服务器硬件结构 Internet 虚拟文件系统 文档(网页页面小程序) HTP引擎 配置模块 安全模块 应用程序接口 嵌入式操作系统 应用系统管理 嵌入式应用系统 图2(b)嵌入式系统Web 服务器软件系统 3.1 嵌入式Web 服务器软件构成 嵌入式Web 服务器主要解决的问题是通过Internet 来进行远程访问和控制 现场的设备,所以必须在嵌入式设备中配置TCP/IP 协议和Web 服务器, 以解决网络互联问题。但是嵌入式服务器系统只需要使用其中的某些基本 的功能,TCP/IP 也要减去一些使用不到有功能,以节省有限的嵌入式资源. 此外还要用到的软件资源有嵌入式实时操作系统、HTTP 协议, 同时带有 SMT P 和SNMP 协议,使其具有网络管理的简单功能,通过网络可以对接 入到Internet 上的设备进行管理和控制。 3.2 精简TCP/IP 协议及实现 嵌入式Web 服务器软件中必须实现TCP/IP 协议,但要根据实际的需求作相应的裁减.精简的TCP/IP 协议通常只包含TCP,IP,ARP,ICMP 等协议。 3。2.1 ARP 协议及其实现 嵌入式Web 服务器软件方面需实现ARP 协议中的应答部分: 嵌入式Web 服务器在收到远程ARP 请求后, 将ARP 请求报文中目标机和本地IP、物理地址进行了交换处理,并将EWS 的物理地址写在ARP 应答报文的本地物理地址段.实际上此ARP 协议的实现是通过向网络接口层发送含有目标机物理地址和本机IP 地址的ARP 应答报文这一过程来完成。 3.2.2 ICMP 协议及其实现 ICMP(网际控制报文协议)主要用来将处理一个IP 数据过程中的错误显示出来,并提供相关状态和管理信息.ICMP 的差错信息由8 位代码和8 位类型组成。嵌入式Web 服务器简化了ICMP 协议,只需简化实现与Ping 命令相关的ICMP 报文处理部分。具体可通过编制PingACK()过程来完成,用PingACK()监测Ping 命令,如果监测到对本机的Ping 连接,则发送类型为0 的ICMP 报文。 3.2.3 IP 协议及其实现 IP 协议提供无连接的、不可靠的数据分组传送服务,在嵌入式Web 服务器中,IP 协议只需要完成接收数据的IP 解包和发送数据的IP 封装.IP 协议在嵌入式Web 服务器中的实现可通过以下两个过程来完成:1)IPPack(),此过程将传输层传来数据的前部添加20 字节的IP 报头。2)IPUnpack( ),此过程提取网络接口层送来的IP 报头的20 字节数据并与本机的IP 地址进行比较,如果相同, 记录对方的IP 地址,并去除报数据的前20 字节的报头;否则,丢弃. 3.2。4 TCP 协议及实现 TCP 协议提供面向连接的、可靠的字节流传输服务。建立连接、数据传输和关闭连接的工作过程,保证了TCP 协议数据传输的可靠性。在数据传输前,必须在信源与信宿建立一条连接,只有连接成功才可以发送数据。此外,接收端也要对收到的第一个报文进行确认,未经确认的报文被认为是出错.由于嵌入式Web 服务器传输数据量较少,支持单进程的TCP 任务即可,故只需要简化TCP协议的数据重组和分组的功能。方法为:嵌入式Web 服务器在本地打开一个端口监听TCP 报文数据,监测到远程用户对系统的TCP请求连接时,系统发送确认报文并建立TCP 连接,然后开始传送数据。发送数据时,TCP 状态机会在数据前面加上TCP 报头后发送到IP 层; 接收数据时, 从IP 层来的数据经过TCP 状态机去掉TCP 报头后送到应用层.TCP 协议软件可通过两个过程来实现:1) TCPPack( ),将TCP 报头添加到应用层送来的数据前部;2)TCPUnpack( ),将网络接口层送来的TCP 报数据的3~4 字节数据(目的端口号)与系统默认端口作对比,如相同,则去除数据报的前20 字节的报头;否则,丢弃.TCP 数据报重发、确认是通过发送特定内容的报文来控制。 3.3 HTTP 协议 HTTP 引擎是嵌入式Web 服务器的核心,它是浏览器与Web 服务器通信的协议。HTTP 规定了浏览器和服务器之间传输的消息格式及各种控制信息和发送和处理请求的标准方式,从而定义了所有Web 通信的基本框架。如图所示,在嵌入式Web 服务器中,为了不影响嵌入式系统的CPU 和内存资源而又得到一个稳定的用户界面,应该使用HTTP1.0 标准。 HTTP客户端 HTML文档 HTTP服务器端 CGI 3.4 CGI 接口 CGI 也就是通用网关接口,它定义了CGI 脚本与Web 服务器之间的接口标准,其主要功能是在Web 环境下,将客户端的一些信息传送给服务器端,Web 服务器接收有关信息并放入环境变量,然后启动所指定的CGI 脚本以完成特定的工作。CGI 脚本从环境变量中获取相关信息来运行,最后以HTML 格式输出相应的执行结果返回给浏览器端。由于用户能传递不同的参数给CGI 脚本,所以CGI 技术使得浏览器和服务器之间具有交互性。 4系统软件设计 4.1 嵌入式操作系统 uClinux 是一种专为嵌入式系统设计的Linux,它从Linux 2.0/2。4 内核派生而来,专门应用于没有MMU的CPU[9]。uClinux 带有一个完整的TCP/IP 协议,同时它还支持许多其他网络协议.因此,uClinux对于嵌入式系统来说,是一个网络完备的操作系统.另外,由于Linux 的源代码开放性,任何新的网络协议都可以很容易加入到内核中,用户可以方便地开发定制,不受任何限制。正是基于以上原因,本系统采用了uClinux作为嵌入式Web服务器的操作系统。 4.2 Boa的移植 在uClinux 下构建Boa服务器的方法由以下步骤完成: (1)从www。boa。org 上下载Boa的源代码,将其解压后生成Makefile 文件。修改Makefile 文件,将文件中的CC=gcc 改为CC=arm—linux—gcc,CPP=gcc-E 改为CPP=arm-linux-gcc—E。然后运行make 进行编译,得到可执行文件boa,再将调试信息舍去,使其瘦身. (2)修改boa。conf文件。Boa启动时需要用到一个配置文件boa.conf,该文件用于配置Boa服务器的相应接口、服务器名称、相关文件路径等。在这里,将Usernobody 改为User 0,将Group nogroup 改为Group 0,将DocumentRoot/var/www 改为DocumentRoot/etc/boa/html,将ScriptAlias/cgi—bin//usr/lib/cgi-bin/修改为ScriptAlias/cgi-bin//etc/boa/cgi-bin/。 (3)由于默认的根文件系统是只读的,所以在编译内核前,需要根据配置文件boa.conf 在文件系统中建立相关目录. (4)将可执行文件boa、配置文件boa。conf、可执行的CGI程序和网页文件分别放入对应的目录中,并在/etc/boa/html中建立主页文件index.html。 (5)重新编译内核,将编译好的内核下载到开发板。 4。3 软件实现 为了实现客户浏览器同Web 服务器之间的动态交互性,需要采用某种服务器端技术来动态生成Web页。目前,实现动态网页的四种技术分别是CGI、ASP、 PHP 和JSP,但uClinux 不支持ASP 和PHP,故采用CGI来实现动态Web页面。 CGI是一种在Web 服务器中运行的程序,它定义了Web 服务器与其他可执行程序之间进行交互的接口标准。当Web 服务器接收到客户浏览器发送的HTTP请求时,先判断它是静态页面请求还是CGI 动态请求,如果是后者就将数据传递给CGI 程序,并重定向CGI程序的输出到Web 页,CGI程序在处理时将数据封装成HTML形式发送到输出,这样客户端浏览器就可以看到对应的Web 页。软件的设计框架如图3所示。 开始 监听连接 连接是否合法 N Y 接受并解析HTTP请求 静态页面请求/CGI动态请求 静态页面请求 CGI动态请求 直接输出HTML静态文件 数据封装并发送 由CGI程序产生网页内容 图3 软件设计框图 其中的监听连接部分是一个无限循环,它总在监听来自浏览器端的连接请求,如果发现连接合法,就建立起客户端浏览器和Web 服务器的连接。可以利用uClinux提供的Socket套接字在80端口进行监听连接,其过程为:socket()→bind()→listen()→accept(). 在Web 环境中,浏览器与服务器之间的数据交互,很多是通过HTTP中的Form表单完成的,Form提供了两种数据传输的方式——GET 和POST 方法。虽然HTTP支持的方法有多种,考虑到硬件资源的限制和系统响应的速度,这里只响应GET和POST两种请求。在嵌入式服务器端,CGI程序接收到来自客户端浏览器的请求,将请求分解后,查看其请求的方法 是GET还是POST。当为GET请求时,从请求行中读取用户请求的文件名;当为POST 请求时,读取请求行中的文件名和报文主体中用户提交的表单数据,并对表单数据进行处理。 当用户在网页中输入数据时,数据会先传给Web服务器,再传给CGI 程序,而Web 服务器将数据传给CGI 程序前,会先经过一个编码程序,这样CGI 程序如果想要得到用户输入的原始数据,就需要对数据进行解码.Web 服务器中对用户数据进行编码的原则是:每个输入字段的名称和用户输入的数据会形成一系列的键—值对,键和值由“=”分开;每个配好对的键-值之间,由“&”分开;对字段中的特殊符号,用十六进制的ASCII 码的方式来编码,空格则以“+”来编码。因此,CGI 程序要想对数据解码,就需要将每个配好对的键=值分离出来,去除配对数据间的“&”,把“+"置换成空格,将十六进制的ASCII 码置换成原来的数据。最后,就可以得到用户输入的原始数据。 虽然动态网页的处理由CGI完全可以实现,但由于Web 服务器每运行一个CGI程序,就需要fork 一个进程为其服务,这样服务器与浏览器的交互越多,对服务器的总体性能影响就越大。因此,对于数据的后期处理和显示方式等任务,可以采用基于客户端浏览器的动态HTML技术来完成,这里由脚本语言JavaScript来实现,以减轻Web服务器的负担。 5实验测试 在Web 服务器端生成网页index.html,放置在目录etc/boa/html 下.编写的CGI程序,放置在目录etc/boa/cgi-bin 下。将目标板的IP 地址设置为210.42。150。225 后,启动Boa 服务器。在任意一个Web 浏览器上输入http://210.42.150。225,可以看到服务器的默认网页。当用户选择相关信息并提交后,CGI将其接收,并根据提交内容对家居设备进行相应控制,图3(a)就是用户对空调进行设置的测试页面.同时,用户也可以对家居设备的目前状态进行查询,查询结果如图4(b)所示。 图4(a)Web服务器的空调控制测试页面 图4(b)Web服务器的家居状态查询页面 6结束语 本文从整体上介绍了嵌入式Web 服务器的体系结构、程序的组件视图、嵌入式Web 服务器的组成模块以及怎样精简TCP/IP协议以减少不必要的资源开支和适应嵌入式系统对资源的要求。支持Web 浏览功能的嵌入式设备不但可以简化设备的设计,而且减轻了用户的应用难度,可以通过浏览器方便地设置嵌入式设备的参数。通过嵌入式Web 技术实现设备的远程监控、管理和维护,将降低系统的运行费用、提高管理水平,在工业控制、远程医疗等方面有着十分广泛的应用。嵌入式Web 服务器的实现,使得用户通过Internet就可以远程控制和管理嵌入式系统的运行。和传统的Web 服务器相比,它简化了系统结构,将信息采集和信息发布都集成到现场的嵌入式设备中,在很大程度上方便了维护和管理工作。经测试表明,该嵌入式Web 服务器运行正常,能够实现系统所设定的智能家居控制,且服务器每秒能处理几百次的连接请求,较之httpd 和thttpd 服务器,其响应速度更快,而且该Web 服务器还具有成本低、可靠性高等优点。但该服务器并没有完整支持CGI规范,如果应用领域有此要求,还需要做相应改进.本文设计的这种基于ARM的嵌入式Web服务器,响应速度快,运行良好,经过适当的修改和完善,可用于智能家居、数据采集、工业控制等领域,具有一定的应用推广价值。 参考文献 [1] 胡国珍,严伟.基于AX88796的嵌入式WEB服务器构建.《国外电子元件》2007年11期 [2] 刘志东,纪金水,杨锋英。嵌入式Web 服务器技术探究.《电脑知识与技术》2011年27期 [3] 王莉,周伟.基于ARM的嵌入式Web服务器设计.《计算机工程与应用》2012年14期 [4] 李荣鑫,喻国平.基于ARM的嵌入式WEB 服务器技术研究.[J]微计算机信息, 2007(8) [5] 王庆志。嵌入式Web服务器的结构研究与设计.《中国石油大学》2010年 学院 电子信息工程专业 “专业课程设计"报告 题目名称:基于ARM嵌入式的GPS定位设计 班 级: 同 组 人: 指导教师: 1设计任务 本次设计主要是实现在GPS的定位信息提取,其中包括经度、纬度、时间、日期等,采用意法半导体的CORTEX-M3内核的STM32F103RBT6为核心板,液晶采用采用Nokia5510。总体来说实现了耗电少,功能齐全,简单易用的特点。 2设计背景及方案 GPS全球定位系统最早是由美国军方建立用以进行军事活动的侦查的,能够在全球范围内,提供实时、连续、全天候的导航定位及授时服务,共分为三个部分,空间部分,地面部分,和接收终端部分.GPS系统共由24颗卫星组成,分布在6个轨道上面,每个轨道上有4颗,轨道倾角为55度,不论在什么地方,只要能够收到4颗以上的卫星,就可以实现实时定位. 3系统硬件简述 (1) 最小核心系统 最小系统是由STM32F103RBT6微处理器构成,核心是由32位的ARM-CORTEX-M3,最高时钟可以达到72MHZ,有单周期的乘法和除法运算,内部有128k的Flash,20k的SRAM, 2.0V/3.6V的IO供电,上电、断电复位,可编程电压监测,内嵌8M的RC振荡晶振,内部40K振荡器,内嵌PLL的CPU时钟,内嵌使用32K晶振的RTC振荡器。具有低功耗的睡眠、待机、停机模式,VBT为后备寄存器提供电源.具有串行SWD和JTAG调试模式。7个DMA通道支持定时器、ADC、SPI、I^C、USART。一个12位的模数转换器,(16通道)转换范围为0~。3。6V,温度传感器。51个丰富的IO端口,兼容5V电平,所有的IO口可以映射到16个外部中断。6个定时器,(3个16位的定时器,每个定时器具有4个输入输出捕捉/PWM脉冲调制/脉冲计数的通道,2个看门狗定时器,1个24位的系统定时器,自动递减功能)。2个I^C,2个SPI,3个USART通信接口. (2LCD液晶 Nokia5510是Philips产的单芯片LCD驱动控制低功耗的显示液晶,其显示为RAM 48*84 串行最高4Mbits/S,COMS电平兼容,逻辑电平为3.0~3.3V 低功耗适用于电池供电,使用温度范围为-25度到70度。其中引脚如下: Pin1;VCC Pin2:GND Pin3: EN Pin4: RES Pin5:GND Pin6: SDIN Pin7:SCLK Pin8:LED背光 图6为水平写入的地址表,用以往RAM中写入字符。 (3)C3—370GPS终端接受模块 C3-370c是韩国产的全自动GPS接受模块,具有SIR第三代的结构组成,其内核是有ARM7TDIM CPU,4M的Flash内存,自带有微型天线,20通道,C\A码,L1的频率。定位精度 〈10M 3DRMS, ;冷启动约为60s,热启动少于10s,协议时NMEA0813 ,9600的波特率。NMEA的输出格式有六种GGA、GLL、GSA、GSV、RMC、VGT,其中我们解析的一种是RMC格式的。一条$GPRMC包含13个字段,语句标识符,世间时间,定位状态,纬度,纬度方位,经度,经度方位,地面速度,地面航向,日期,磁偏角,校检,结束标记,具体格式如下: $GPRMC,050458。000,A,2459。8991,N,10242.8698,E,0.37,130.03,190808,,,A*66 <1> UTC时间,hhmmss(时分秒)格式 <2〉 定位状态,A=有效定位,V=无效定位 〈3> 纬度ddmm。mmmm(度分)格式(前面的0也将被传输) <4> 纬度半球N(北半球)或S(南半球) <5> 经度dddmm。mmmm(度分)格式(前面的0也将被传输) <6> 经度半球E(东经)或W(西经) <7〉 地面速率(000.0~999.9节,前面的0也将被传输) <8> 地面航向(000.0~359.9度,以真北为参考基准,前面的0也将被传输) 〈9> UTC日期,ddmmyy(日月年)格式 〈10> 磁偏角(000。0~180.0度,前面的0也将被传输) <11> 磁偏角方向,E(东)或W(西) 上图为C3-370引脚图,具体我们只用到了VCC,TX,RX,GND,BOOT, 3硬件整体连接图 硬件流程图 由于GPS和MCU的电平兼容,所以在硬件连接中,GPS接受终端的TX接MCU的RX,RX接TX,另外通过RS232电平转换后可以直接进行上位机软件的接受工作,最后把解析的数据显示在Nokia5510上面。 4软件流程图及程序 (1)流程图 软件流程图 (2)程序 u8 GPS_parse(char *buf) { int d,m,mm; u8 i; char *word,*left=buf+1; static u8 msgcount=0,msgid=0,satcount=0; //解析GSV用到的变量 //各通道采用的卫星编号 u8 usedsatcount=0; if(buf[0] != ’$’) return 0; // word=split(left,ASTERISK,&left); // if(check(word,left) != 1) // return 0; ﻩ // {ﻩ // }; // left=word; word=split(left,SEMICOLON,&left); //开始解析 if(!strcmp(word,"GPRMC")) //相等时,返回0值,进入函数ﻩ 解析GPRMC格式 { //时间 word=split(left,SEMICOLON,&left); if(word != NULL) { if(strncmp(lasttime,word,20)) //比较不大于20个字符的两个字符串 返回>0/<0/=0; { sscanf(word,”%2d%2d%2d。%4d",&gps.hh,&gps.mm,&gps.ss,&gps。ms); //取出指定格式的字符 strncpy(lasttime,word,20); // 拷贝20个字符从word到lasttime中,返回lasttime; } ﻩ ﻩ } //定位状态 word=split(left,SEMICOLON,&left); if(word != NULL) { if(word[0] == 'A') gps。isvalid=1; else gps.isvalid=0; } //纬度 word=split(left,SEMICOLON,&left); if(word != NULL) { sscanf(word,”%2d%2d.%4d”,&d,&m,&mm); gps.latitude=(float)d+(float)m/60.0+(float)mm/600000。0; } //南北半球标志 word=split(left,SEMICOLON,&left); if(word != NULL) { if(word[0] == 'S’) { // gps。latitude=-gps.latitude; gps.latNS = 'S’; }else{ gps。latNS = 'N’; } } //经度 word=split(left,SEMICOLON,&left); if(word != NULL) { int d,m,mm; sscanf(word,”%3d%2d.%4d",&d,&m,&mm); gps.longitude = (float)d+(float)m/60。0+(float)mm/600000。0; } //东西半球标志- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实用文档 基于 ARM 嵌入式 Web 服务器 设计 实现 实用 文档 doc
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文