一种基于LPC2292 的网页查询人数系统设计

2015-05-27 13:18陈跃鹏
关键词:以太网网页嵌入式

周 强,陈跃鹏,陈 玄,成 舟,张 宪

(武汉理工大学 自动化学院,湖北 武汉430070)

学生去图书馆自习,有可能因人满为患而白跑一趟;外出旅游时,有可能因为景点人数太多而影响观赏心情;去火车站乘车也会由于人多而觉得心烦。笔者将试图解决这类问题,设计思路是将红外计数器安装在进出口,计算进出人数,并与其最大可容纳的人数进行比较,再将数据传输到相应的官方网站上,让用户通过电脑或者手机登录其官方网站,查询来这里的人数和还可容纳的人数从而了解相关情况,这样就可以合理安排自己的时间和要去的地方,避免交通拥堵,既可以为人们提供方便,又可以节省时间。

1 系统工作原理

该系统由红外计数装置、ARM 控制装置和官方网站实时更新系统3 部分组成。红外计数装置测量进出区域的人数;ARM 控制装置从计数装置得到数据,然后传输到相关网站并实时更新;官方网站供人们查询相关信息,其流程如图1 所示。

图1 系统流程图

2 硬件设计

2.1 红外计数装置

利用红外传感器,检测进出的人数。在每个区域门口的内外两侧安装红外线发射装置和接收装置,其由两个红外对管组成[1]。安装时让每对红外对管保持在对立面,即发射器可以照射到接收端,其保持在每个经过的人都可以被检测到的高度,并确认两根数据线哪根在内哪根在外。计数装置开始计数,没有人进入时,内外接收端的数据传送给嵌入式处理器时保持在低电平,当有人进入时会阻挡红外线照射,首先使外面接收器信号变成高电平,接着里面的接收器信号也变成高电平,计数系统记录该区域增加一人[2]。同样当有人离开该区域时,会使里面接收器的信号先变成高电平,接着外面接收器的信号变成高电平,与进来的时候正好相反,计数系统记录人数减少一人。每过一段时间系统将采集的数据传给嵌入式系统进行存储显示。

检测装置由红外线发射端和接收端两部分组成,其电路图如图2 所示[3]。其中,图2(a)为红外线发射装置电路图,图2(b)为红外线接收装置电路图。

图2 红外线发射电路和红外线接收电路图

2.2 ARM 控制装置

ARM 控制装置中的主芯片采用LPC2292 芯片。LPC2292 是一款基于16/32 位ARM7TDMIS、具有支持实时仿真和跟踪的CPU 并带有256 kB 嵌入的高速Flash 存储器。LPC2292 采用144脚封装、多个32 位定时器、8 路10 位ADC、两路高级CAN 通道和PWM 输出及多达9 个的外部中断[4]。由于内置了宽范围的串口通信接口,也适合于通信网关、协议转换器等其他各种类型的应用。

LPC2292 内部没有集成以太网的控制器,需要在片外搭建一个以太网接口电路。DM9000A是一种功能强大、性价比高的以太网控制芯片,适用于嵌入式系统设计,因此采用DM9000A 控制芯片实现以太网接口[5]。用SD 卡存储测试数据,其读出和存储速度较快,且掉电之后存储数据不会丢失。

2.3 软件设计

2.3.1 网络更新结构

将红外计数装置安装在相应区域的门口,完成现场数据采集、传输数据和网页显示等功能,同时又通过扩展RS -232 的串口与上一级服务器进行通信,完成数据传输。控制室用PC 机对该区域的红外计数器数据进行传输与管理,PC 机是整个系统管理控制的核心,管理各部分的功能。而管理控制上位系统,则是一个服务器和网关,经过相关数据库技术可以将嵌入式系统接收的数据通过以太网在浏览器(Web)上显示并实时更新数据,使以太网上的用户可以查看详细信息,从而形成浏览器与服务器的一体化系统,网络更新结构如图3 所示。

图3 网络更新结构

2.3.2 网络软件设计

以太网接口电路的工作原理是:嵌入式系统上电时,处理器初始化DM9000A,之后DM900A进入等待数据收发的状态;若处理器要将接收数据帧发送到以太网上,先要通过上层协议函数对接收数据进行封装,再由总线发送到DM9000A的缓冲区,将数据信息装到DM9000A 的寄存器中,使能发送命令后,DM9000A 可将数据自动发送出去;当处理器接收到以太网数据帧时,检测帧是否正确并保存正确的数据帧,然后上层协议将发送来的数据帧进行处理。网络接口的软件设计包括网卡驱动程序和上层通信协议。网卡的驱动程序包括芯片的初始化、数据帧的发送和接收。

(1)网络接口驱动程序设计。该系统的集成开发工具是ARM Developer Suite 1.2。在该开发环境下编写网络接口驱动程序DM9000A.h 头文件和DM9000A.c 源文件。在DM9000A . c 源文件中调用DM9000A. h 宏定义的片内寄存器、各个端口的地址等信息。DM9000A .c 源文件中包含的函数有InitNic ()、phy - read ()、set -PHY- mode ()、phy - write ()、DM9000A -Init ()、Send- Packet ()、DM9000A- Exception ()和Rec- Packet()。

网络接口程序设计主要由驱动初始化、数据包的发送和数据包的接收3 部分组成。初始化使DM9000A 启动时处于数据接收和发送就绪状态;数据包的发送则要计算发送帧长度、设置发送寄存器函数等;接收的数据先保存在DM9000A 内部相应地址中,当接收命令发出后,DM9000A 自动接收数据[6]。

(2)uC/OS -II 的移植。先根据设计要求划分出相对独立的几个子功能模块,将每个模块看作一个独立的任务。而任务是一个比较特殊的函数,是无限循环、不返回函数,要在循环里完成相应的功能。按照操作系统的实时调度算法,多个任务之间依据任务的优先级来决定执行任务的先后顺序。用户可以通过中断程序来中断正在执行的任务。与其他程序相比,该程序具有任务明确、修改方便、思路清晰和编程方便等特点。系统运行基本模式如图4 所示。

图4 多任务运行模式

要实现嵌入式的TCP/IP 协议,需要先将uC/OS-II 移植到LPC2292 里面。在LPC2292 中,如果需要移植uC/OS -II,则应该提供两个或3 个文件,即OS_CPU. H、OS_CPU_C. C 和OS_CPU_A.ASM。要在OS_CPU. H 里面涵盖几个常数的定义及几个类型的定义;若在OS_CPU_C. C 和OS_CPU_A. ASM 中设置含有时钟节拍中断服务程序代码和几个函数的定义,则还要修改其之间的数据函数及类型[7]。

(3)TCP/IP 协议。uC/OS-Ⅱ的操作系统移植的TCP/IP 协议栈只需要IP 协议、ARP 协议、ICMP 协议、TCP 协议及HTTP 协议。发送数据时,相关的应用程序通过SOCKET API 的接口函数并运用到TCP/IP 协议栈相关的数据通信等功能。发送数据和接收数据的过程截然相反。接收数据时,传送过来的以太网帧是用网卡驱动程序来接收的,然后交给以太网层进行甄别,用以太网层对帧头判断数据帧的类型。如果是ARP 报文,就要用ARP 协议模块进行处理;如果是IP 报文,就要用IP 协议进行处理,接着依据报文中的上层协议字段标识,把相关报文给相应的协议(如TCP协议、UDP 协议或ICMP 协议)进行处理;如果是TCP 报文段,接收TCP 报头的信息,依据报头中的端口字段标识,即可给相应的应用程序HTTP处理数据。终端数据和以太网用在HTTP 端口上,用TCP 协议传递,并可以对数据进行处理。TCP/IP 协议实现的流程如图5 所示。

图5 TCP/IP 协议实现的流程图

2.3.3 网页制作与更新

网页制作与更新是在官方网站上添加要显示的数据,并进行数据的实时更新,让用户能第一时间了解所需信息。

嵌入式Web 服务器技术是实现嵌入式网页显示更新的重要组成部分。嵌入式Web 服务器可以实现Web 管理和访问嵌入式设备的功能。嵌入式Web 服务器的原理是通过HTTP 协议与用户浏览器进行信息交换,而在嵌入式设备的内部则要通过动态网页技术与嵌入式网页进行信息交换。根据嵌入式系统特点,采用系统资源消耗较小的CGI 技术来实现网页动态交互信息。嵌入式Web 服务器的基本原理如图6 所示。

图6 嵌入式Web 服务器的基本原理

实现ARM 处理器LPC2292 的Web 服务器技术包括超文本传输协议HTTP 和网关接口CGI。超文本传输协议是Web 服务器用来处理服务器与用户机之间的数据流协议。服务器与用户机之间会话流程包括用户机与服务器建立连接、用户机向服务器发送请求和服务器对请求的回应。CGI 网关接口的功能是在网络环境下传递相关信息给Web 服务器,再由Web 服务器运行相关程序来完成相关的工作[8]。CGI 程序能在Web 中加入动态内容,其中包括获取传输数据、提取与处理有效数据和向用户返回数据。

该系统基于HTML 语言设计浏览页面,HTML 是以<元素名>标签形式的指令集[9]。当连接到网页时,Web 浏览器将进行解释执行,在内存中“构建”这个网页,然后在用户屏幕上显示在内存中“构建”好的网页。一个简单的HTML 网页结构如图7 所示。

图7 HTML 网页结构示意图

页面设计需要数据能实时更新,页面实时更新的过程包括:浏览器向后台的服务器发送网页访问请求;后台服务器向客户端发送包含数据更新的网页;启动工作之后,后台服务器将进行查询并将获取的更新数据发送到客户端。为了实现网页的实时更新,可以用HTML 语言中的META 标记,只需在HTML 网页的开始端添加一条META 标记,<META HTTP -EQUIV =“refresh”content =“3”>,就能实现每3 s 刷新一次网页[10]。

整个网页查询过程则是经过Internet 把用户相关请求反馈到Web 服务器上,Web 服务器把从用户接收到的请求给CGI 程序进行处理,CGI 程序即可对从计数器传送过来的数据进行必要的处理,并将处理后的数据传送给Web 服务器,最后Web 服务器将用户想要的结果发送给用户。

3 结论

介绍了将计数装置通过嵌入式Web 网关接入到Internet 的方案,完成一种页面查询人数的系统。该系统采用B/S 结构模式,用户只需安装Web 浏览器即可知道图书馆、旅游景点等地的人数,给网络用户带来很大的方便。该系统还可以扩展功能,将网页制作成APP 形式,方便手机用户及时、方便、快捷、有效地了解情况。

[1]吴菲,李仰军.基于S3C2410 的传感器网络数据采集系统[J].山西电子技术,2010,37(4):17 -18.

[2]彭敏.基于嵌入式的数据采集系统设计[J].信息技术,2010,33(9):88 -89.

[3]贺云超,郭丽. 基于红外传感器的多功能教室状态监测系统[J].中国科技信息,2012(14):87 -89.

[4]刘炳祥,程武山.基于ARM 处理器的USB 数据采集系统[J].上海工程技术大学学报,2011,25(4):358-361.

[5]刘余,孟小华.嵌入式智能家居终端通信模块的设计与实现[J].计算机工程与设计,2010,31(8):1689-1692.

[6]于晖,温阳东,刘卫平.基于LPC2292 的嵌入式以太网通信的设计与实现[J].仪器仪表标准化与计量,2007(1):24 -24.

[7]林川,吴景东.LPC2292 的uC/OS -Ⅱ硬件抽象层构建[J].单片机与嵌入式系统应用,2008(3):24-24.

[8]吴文龙,林培杰,程树英,等.基于嵌入式Web 技术的家庭电能管理系统设计[J].电子技术,2013(8):75 -78.

[9]韩雷,钱海俊.嵌入式动态Web 网页实现方法探究[J].信息技术,2012(1):181 -182.

[10]余翔. 一种嵌入式Web 服务器的设计与实现[J].世界电子元器件,2007(9):113 -115.

猜你喜欢
以太网网页嵌入式
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
基于HTML5与CSS3的网页设计技术研究
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
TS系列红外传感器在嵌入式控制系统中的应用
基于CSS的网页导航栏的设计
基于HTML5静态网页设计
搭建基于Qt的嵌入式开发平台
基于URL和网页类型的网页信息采集研究
谈实时以太网EtherCAT技术在变电站自动化中的应用
浅谈EPON与工业以太网在贵遵高速公路中的应用