基于ARM-LINUX平台的物联网服务器设计
来源:华强电子网 作者:------ 时间:2014-07-18 15:00
3 人机交互子系统-WEB服务器设计
由于嵌入式设备的硬件资源一般都比较有限,不能同时处理多个用户的请求。因此,在WEB服务器的选取方面,选择一些专为嵌入式设备而开发的WEB服务器。这些服务器具有占用内存空间低、处理效率高、安全性高等优点,相当适合嵌入式应用领域。另一方面,在实际的应用当中,由于互联网的高速发展,3G网络的到来,每个人都希望可以通过手上的手持式设备来访问控制自己的物联网设备,使用一个轻量级的WEB服务器当作访问控制服务器,可以相当出色地完成任务。
3.1 服务器工作原理
嵌入式WEB服务器的体系结构采用B/S架构,也即由服务端和客户端构成。在此架构上,将会通过以下几个步骤来与WEB服务器互相通信。
(1)在客户端的浏览器(Browser)输入WEB服务器的IP地址;
(2)客户端首先通过TCP发起建立连接请求,然后服务器通过认证后,确认请求合法后立即建立连接。在这个过程中,采用的是TCP/IP协议的“三次握手”方式建立连接的;
(3)通过TCP/IP建立连接后,浏览器再用HTTP协议发出HTTP请求;
(4)当服务器端接收到HTTP请求后,对其进行解析等操作,然后根据不同的处理结果服务器再执行相应的返回操作。
(5)客户端收到服务器的返回结果后,解析HTML数据包,然后将之显示在浏览器上。
3.2 Boa WEB服务器的移植
Boa是一个处理单任务的WEB服务器。也就是说只有在完成一个请求后才能响应另外一个连接请求,虽然无法实现并发响应,但是已经足够应付嵌入式的应用处理了。另外,Boa也是一个相当轻量级的WEB服务器,交叉编译所得到的可执行文件只有60kB左右。出于设计的精简和应用需求,Boa仅支持CGI。
在WWW、boa、org上下载boa的源代码。通过以下步骤完成其交叉编译:
#tar—bxzf boa-0.94.1 3。tar。 gz
#cd./boa-0.94.13/src
#./configure
#vi./Makefile
修改CC=gcc为CC=arm-unknownlinux-gcc,CPP=gcc -E为CPP=arm-unknownlinux-cpp -E,保存退出。执行如下命令:
#make
#arm-linux-strip./boa
得到能在arm平台下的可执行文件boa,大小只有60KB
将可执行文件Boa下载到嵌入式设备后,还需对其进行一些配置。首先需要在/etc/boa目录下建立一个boa配置文件boa。conf。表1为Boa配置文件部分配置说明:
表1 Boa配置文件配置参数说明
3.3 通用网关接口CGI
CGI是通用网关接口的简称。该接口定义了WEB服务器和其他可执行程序之间的通信接口标准。一般这些可执行程序我们也简称为CGI程序。在客户端浏览器上面,可以请求执行CGI程序,并会附带传送的参数。当服务器收到此请求后,执行对应的CGI程序,与此同时,会把来自客户端的传输传递给CGI程序。在服务器和CGI程序之间,他们足利用标准输入输出来实现参数传递和信息返回的。
在本物联网服务器的设计当中,CGI程序不仅仅与WEB服务器通信,它还需要和守护程序进行通信。由于守护程序是负责连接外围设备,并与之通信的,所以可以通过CGI程序来对外围设备进行通信。通过这样的通信过程实现了客户端与物联网设备终端的交互。其通信过程如下:
(1)客户端利用TCP/IP协议和WEB服务器建立连接;
(2)客户端利用HTTP协议发出URL指向一个CGI程序的请求;
(3)服务器收到请求后,执行对应的CGI程序;
(4)CGI应用程序执行,可以通过读取标准输入或环境变量(QUERY STRING)获取来自客户端的参数;
(5)应用程序利用进行标准输出方式来输出返回结果给WEB服务器。
(6)WEB服务器将结果传送给客户端,完成整个请求返回过程。
3.4 网络应用程序的访问与控制
网站的访问和控制使用JavaScript语言,调用jQuery类库和利用AJAX技术,实现动态显示页面的效果。而页面的参数传递和CGI反馈都是使用JSON数据格式。
JSON即JavaScript Object Notation,它是一种轻量级的数据交换格式。本设计使用JSON数据格式中的”名称/值”对的集合为基本数据结构,它作为页面与CGI程序之间的参数传递和运算结果返回的数据格式。基本格式如下:
{device:"value",model:"value",type:"value",data:“Value”}
利用jQuery类库,每隔1 s中通过请求./cgi-bin/web_cgi。得到请求结果作为当前状态。
4 总结
本文实现了一个基于ARM-Linux平台的通用物联网服务器的设计,本设计可以为用户提供通过WEB页面对物联网中数据采集的实时监测和控制功能,具有较好的实用意义。下一步将继续完善系统的功能,如:增加对更多传感器的支持,系统如何更方便地应用于不同的领域等,系统的安全性也有待完善。
关注电子行业精彩资讯,关注华强资讯官方微信,精华内容抢鲜读,还有机会获赠全年杂志。
关注方法:添加好友→搜索“华强微电子”→关注
或微信“扫一扫”二维码
上一篇:基于光纤传输的延时系统设计
- •摩尔斯微电子推出突破性物联网连接平台2024-12-03
- •大联大品佳集团推出基于联发科技的AI识别与检测方案2024-10-18
- •迈向百亿物联时代,贸泽电子即将亮相IOTE 2024物联网展2024-08-26
- •从慕尼黑电子展,看Qorvo的发展动向2024-07-24
- •摩尔斯微电子任命胡文杰为副总裁兼大中华区及东南亚地区经理2024-07-11
- •摩尔斯微电子在中国台湾设立新办事处,拓展业务版图2024-04-25
- •Arm 推出新一代 Ethos-U AI 加速器及全新物联网参考设计平台,加速推进边缘 AI 发展…2024-04-09
- •思特威物联网专题-快速启动技术,低功耗IoT设备进阶必备2024-02-29
- •瑞萨推出带有增强外设的RZ/G3S 64位微处理器, 应用于物联网边缘和网关设备2024-01-16
- •卓越电子为2023世界移动通信大会带来革命性的创新: 全球首款Wi-Fi HaLow物联网解决方案即将亮相2023-09-18