基于LXI总线的Web关键技术研究与实现*

2016-12-03 07:39覃斌毅郑金存董积有
电子技术应用 2016年3期
关键词:玉林浏览器嵌入式

覃斌毅,邱 杰,郑金存,董积有

(1.玉林师范学院 电子与通信工程学院,广西 玉林537000;2.西安电子科技大学 机电工程学院,陕西 西安 710071;3.玉林师范学院 计算机科学与工程学院,广西 玉林 537000;4.玉林师范学院 学生工作处,广西 玉林 537000)

基于LXI总线的Web关键技术研究与实现*

覃斌毅1,2,邱 杰3,郑金存1,董积有4

(1.玉林师范学院 电子与通信工程学院,广西 玉林537000;2.西安电子科技大学 机电工程学院,陕西 西安 710071;3.玉林师范学院 计算机科学与工程学院,广西 玉林 537000;4.玉林师范学院 学生工作处,广西 玉林 537000)

LXI总线是继GPIB、VXI和PXI等传统总线技术之后发展起来的新一代仪器总线技术,具有传统测试仪器总线无法比拟的优势。其中,Web页面是LXI总线技术中的一个关键。通过对LXI仪器的Web页面的研究,搭建LXI仪器Web接口的硬件平台,并以IEEE1588同步配置页面的实现为例,提出了一种在LXI仪器中实现Web页面的方法。该方法将boa服务器和SQLite数据库移植到Linux中,同时采用CGI局部刷新技术代替传统的CGI全局刷新,实现LXI仪器Web页面。最后进行系统验证,通过浏览器对LXI仪器进行远程访问控制。实验结果表明,系统能正确实现IEEE1588同步配置页面。

LXI;IEEE1588;嵌入式Web服务器;嵌入式数据库;CGI

0 引言

LXI的全称是仪器在局域网扩展(LAN eXtensions for Instrumentation),它是继GPIB、VXI和PXI等传统总线技术之后发展起来的新一代仪器总线技术。LXI总线具有无处不在的LAN接口、不受距离和节点数目的限制、精确时间同步技术以及远程网页访问等特点。因此,在组建网络化、分布式自动化测试系统时,LXI总线拥有传统测试仪器总线技术无法比拟的优势[1]。

LXI仪器是指符合 LXI标准的新型仪器。LXI标准中明确提出LXI仪器必须提供能够被W3C兼容浏览器访问的Web页面,用户可以通过浏览器对仪器进行远程访问、控制以及故障排查,不需要传统仪器的前面板即可实现单台仪器的所有功能。其中,LXI总线B类仪器需要提供的基本Web页面主要包括:主页面、LAN配置页面、IEEE 1588同步配置页面、仪器功能页面以及事件日志访问页面[2]。因此,Web页面的实现是 LXI总线技术中的一个关键。本文以LXI总线中IEEE1588同步配置页面为例,提出了一种实现LXI仪器Web页面的方法。

1 LXI仪器Web接口硬件设计

为了实现LXI仪器的Web接口,本设计使用ARM+ DM9000+DP83640的架构,其中,选用三星公司的S3C2440处理器为主控制器,DM9000为MAC层芯片,DP83640为物理层芯片[3]。LXI仪器Web接口硬件系统框图如图1所示。

图1 LXI仪器Web接口硬件系统框图

2 LXI仪器Web接口软件设计

本设计操作系统选用Linux系统,在系统中搭建嵌入式服务器,结合HTML、CGI以及SQLite数据库技术,实现了IEEE1588同步配置页面。整个LXI仪器Web接口软件系统如图2所示。

图2 LXI仪器Web接口软件系统框图

系统工作过程为:用户在客户端发送HTTP请求消息,boa服务器对接收到的请求消息进行解析,解析的内容包括:读取请求URL、区分客户端请求的资源是静态页面还是CGI应用程序。若用户请求的是静态页面,则服务器读取相应的HTML的内容,并将其作为HTTP响应消息中的实体返回给客户端浏览器;若客户端请求的是CGI应用程序,则服务器将创建相应的CGI应用程序进程,并将所需信息按CGI规范传递给CGI应用程序进程,此后由 CGI应用程序接管控制。CGI应用程序对接收到的信息进行解码,解码后调用设备驱动程序对硬件进行控制,必要时将解码的参数利用嵌入式数据库进行保存,同时CGI将结果在客户端浏览器上显示。

2.1 Web页面构成

IEEE1588同步配置页面是LXI总线B类仪器Web系统中的重要组成部分,用于对IEEE1588时钟同步状态监控和对输出触发信号动态配置。它由2个Web网页构成:IEEE1588基本信息页面和IEEE1588同步参数配置页面。

IEEE1588基本信息页面用于显示 IEEE1588中的参数,如当前超主时钟的MAC地址、父时钟的MAC地址、时钟端口状态、当前PTP时间、PTP子域、IEEE 1588协议版本[4]。

IEEE1588同步参数配置页面可对 IEEE1588中的参数进行设置,如可对PTP子域、PTP首选主时钟、同步时间间隔、PTP时间、IEEE1588触发时间、IEEE1588触发信号类型等进行设置。

2.2 嵌入式Web服务器的移植

嵌入式设备常用的 Web服务器有 Lighttpd、thttpd、shttpd、apache、boa[5]。本设计采用 boa作为嵌入式 Web服务器,它具有小巧、高效、支持CGI技术的特点。

boa服务器是开源的,要将其用于 Linux系统需要进行移植,移植的步骤如下:

(1)从官方网站www.boa.org下载boa发布版源码,本设计选择版本为 boa-0.94.13,在命令终端执行解压命令,将其解压到PC linux虚拟机下。

(2)进入src目录下执行命令./configure,产生一个 makefile文件。修改makefile文件:将CC=gcc改为CC=armlinux-gcc,将CPP=gcc-E改为CPP=arm-linux-g++-E。

(3)修改src目录下 compat.h文件,找到头文件中的#define TIMEZONE_OFFSET(foo)foo##->tm_gmtoff修改成#define TIMEZONE_OFFSET(foo)(foo)->tm_gmtoff。

(4)执行make命令进行编译,然后把编译得到的boa可执行文件拷贝到嵌入式设备文件系统的“sbin/”目录下;把“boa-0.94.13/”目录下的 boa.conf文件拷贝到文件系统的“etc/boa/”目录下。

(5)修改boa配置文件boa.conf,主要修改内容有:

以上为关键设置部分,其他部分采用默认设置。设置完成后,保存退出,然后,拷贝PC机Linux系统etc/目录下的mime.types到文件系统etc/目录下。至此,boa服务器在 Linux系统上的移植完成。最后,将 HTML文件放在文件系统的/www文件夹中,将 CGI脚本程序放在/www/cgi-bin文件夹中即可以实现网络访问。

2.3 嵌入式数据库的移植

数据库主要用于数据存储和查询,在本设计中,嵌入式数据库是客户端浏览器与PTP程序 (PTP程序是指实现IEEE1588协议的应用程序)进行通信的桥梁,如图3所示。

图3 嵌入式数据库的作用

IEEE 1588同步配置页面利用嵌入式数据库实现两个方面的作用:一方面是对一些IEEE 1588配置参数进行存储,PTP程序可以通过数据库 API访问这些参数;另一方面是PTP程序在运行过程中可以动态存储重要的状态信息,客户端可以通过调用CGI应用程序实现对这些信息的访问。本设计选用在嵌入式系统中应用最广的SQLite进行移植。

移植嵌入式数据库SQLite到Linux系统中的步骤如下:

(1)从官方网站 www.sqlite.org下载 SQLite数据库源码压缩包,本设计选择的版本是sqlite-3.5.9。

(2)压缩包将其解压到 PC虚拟机 Linux系统的 opt目录中,会生成一个名为sqlite-3.5.9的文件夹。

(3)在sqlite-3.5.9根目录下新建目录_install。

(4)配置SQLite,生成Makefile文件。

(5)执行 make和 make install命令,编译安装结束后,在/_install目录下生成bin、lib、include目录。

(6)把 bin目录下的 sqlite3和 sqlite_test文件拷贝到嵌入式Linux文件系统中的 bin目录下,把 lib目录下的库文件拷贝到文件系统的lib目录下,这样在嵌入式Linux中就可以使用SQLite数据库了。

(7)把include目录下面的数据库头文件拷贝到交叉编译器的include目录下,把lib目录下的库文件拷贝到交叉编译器的lib目录下,让交叉编译器支持sqlite3数据库。

为实现相关的数据存储,建立了一个数据库文件config.db,存放在文件系统的mnt文件夹中。使用“create table”语句创建 2个用于存放 1588参数信息的表:config1588和parameters。其中,config1588存放PTP子域、首选主时钟、同步间隔等;parameters存放超主时钟的MAC地址、父时钟的MAC地址、端口状态等。

2.4 CGI动态网页的实现

嵌入式系统由于自身软硬件资源的限制,Web服务器无法支持功能强大的脚本语言实现动态网页。因此,在嵌入式Web服务器中通常使用CGI实现动态网页。

CGI(公共网关接口)是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在 CGI程序和 Web服务器之间传递信息的规程。例如,可以通过编写CGI程序访问数据库以及通过设备驱动接口访问硬件等[6]。

CGI程序可以用任何脚本语言或者独立编程语言实现,只要该语言可以在系统上运行。传统的使用CGI实现动态网页的方法步骤如下:

(1)浏览器通过表单把请求数据发送到Web服务器。

(2)CGI程序从环境变量或者标准输入中提取表单数据,并进行相应的处理。

(3)用 printf函数输出整个 HTML页面代码,将结果返回给浏览器。

这种方法虽然可行,但是用CGI程序将整个HTML静态页面全部通过 printf输出,会使得 CGI代码混乱不堪,并且难以实现复杂的HTML页面。另外,还有一个缺点就是接到每一次请求都会将整个HTML页面重传一遍,增加了服务器的负担。在已经打开一个网页进行操作的过程中,每次请求往往只需要更新页面中少部分数据即可,没有必要重传整个页面。

为解决上述问题,本设计参照了AJAX技术,使用局部动态网页刷新的方法实现动态网页。AJAX主要由JavaScript、XMLHTTPREQUEST、XML三部分组成。其中JavaScript用于页面数据传递、刷新局部页面;XMLHTTPREQUEST用于向服务器提交请求,与服务器响应;XML是服务器返回数据的格式。由于boa服务器不支持XMLHTTPRE-QUEST发出的请求,因此仍使用CGI实现请求的提交与响应,数据格式可以任意定义。具体实现方法如下:

(1)参照大型服务器Web动态网页的实现方法,先建立一个HTML静态网页框架。

(2)对每一个表单请求创建一个 CGI响应程序,CGI只对需要返回的数据用printf函数输出。

(3)采用HTML内联框架技术将CGI响应的HTML页面进行隐藏。

(4)使用 JavaScript脚本语言从 CGI响应的 HTML页面中取出服务器返回的数据,并将其显示在主HTML页面的指定位置。

3 LXI仪器Web接口功能验证

为了对LXI仪器Web接口功能进行测试,搭建图4所示的测试平台。其中,美国安捷伦公司的触发盒E5818A与待测LXI仪器通过交换机相连,同时,PC也通过交换机接入到局域网中,PC可通过网页访问对待测LXI仪器进行控制。将触发盒和待测 LXI仪器的触发输出口分别接到示波器的两个通道,用于测量同步误差[7]。

图4 测试平台接线图

3.1 IEEE1588基本信息页面的验证

首先,通过交换机将PC与LXI测试仪器相连,设置PC和LXI仪器在同一局域网内,然后在浏览器中输入网址:http://192.168.1.6/ieee1588ViewConfiguration.html,打开网页,界面如图5所示。

经验证,PC可通过浏览器访问嵌入式系统中的IEEE1588基本信息页面,在页面正确显示了 IEEE1588的相关参数。

3.2 IEEE1588同步参数配置页面的验证

通过交换机将PC与LXI测试仪器相连,设置PC和LXI仪器在同一局域网内,然后在浏览器器中输入网址:http://192.168.1.6/ieee1588ModifyConfiguration.html,界面如图6所示。

经验证,PC可通过浏览器访问嵌入式系统中的IEEE1588同步参数配置页面。

通过对触发时间、触发周期、触发源等参数进行设置,可在指定的时刻输出触发信号。为了验证同步触发功能,分别通过网页设置E5818A和待测LXI仪器在同一时刻触发输出脉冲信号,用示波器检测这两路输出信号。图7是在指定时刻下,示波器测得的同步触发的信号,从图7可得同步误差时间是258 ns。

图5 IEEE1588基本信息页面

图6 IEEE1588同步参数配置页面

图7 IEEE1588时钟同步触发(同步误差为 258 ns)

4 结束语

本设计使用ARM+DM9000+DP83640的架构实现了LXI仪器Web硬件接口;将boa服务器和sQList数据库、Linux操作系统、HTML、CGI等技术结合起来,实现了LXI仪器 Web软件接口。在 Web软件接口实现的过程中,使用了CGI局部刷新技术代替传统的 CGI全局刷新,减轻了Web服务器的负担。最终,通过搭建测试平台,验证了所提出的方法切实可行,为 LXI仪器的 Web页面设计提供了参考。

[1]王彪.LXI关键技术研究[D].哈尔滨:哈尔滨工业大学,2009.

[2]LXI Consortium,Inc.LXI Consortium.LXI standard revision1.3[S]. 2008.

[3]覃斌毅,陈铁军,邱杰,等.基于IEEE1588协议时钟同步精度影响因素的研究[J].计算机测量与控制,2014,22 (10):3312-3315.

[4]于志成.LXI关键技术-IEEE1588协议的研究与实现[D].哈尔滨:哈尔滨工业大学,2012.

[5]胡聪,高明,牛军浩.LXI标准Web接口仪器控制研究[J].计算机测量与控制,2011,19(6):1354-1356.

[6]谢仕义,徐兵.嵌入式Web服务器的设计及其CGI实现[J].计算机工程与设计,2007,28(7):1598-1600.

[7]朱旺纯,覃斌毅,王玉娟.基于IEEE1588协议同步技术的研究[J].计算机测量与控制,2014,33(7):98-101.

Research and implementation of Web key technologies based on LXI bus

Qin Binyi1,2,Qiu Jie3,Zheng Jincun1,Dong Jiyou4
(1.Electronic and Communication Engineering College,Yulin Normal University,Yulin 537000,China;2.School ofElecrto-Mechanical Engineering,Xidian University,Xi′an 710071,China;3.Computer Science and Engineering College,Yulin Normal University,Yulin 537000,China;4.Department of Student Affairs,Yulin Normal University,Yulin 537000,China)

LXI bus is a new generation of instrument bus technology which is following the GPIB,VXI and PXI traditional bus technology.It has the incomparable advantage over traditional instrument bus.Among them,the Web page is a key of LXI bus technology.This paper researches Web pages of LXI instrument and puts forward a realization method of the Web page in LXI instruments,which take an example of the realization of the IEEE1588 synchronization configuration page.This method realizes the Web page by transplanting boa server and SQLite database into Linux.At the same time,traditional CGI global refresh is replaced by CGI local refresh.Finally the system is verified,the browser is used to control of LXI instruments by remote access.The experimental results show that the system can realize IEEE1588 right synchronization configuration page.

LXI;IEEE1588;embedded Web serve;embedded database;CGI

TP316

A

10.16157/j.issn.0258-7998.2016.03.021

覃斌毅,邱杰,郑金存,等.基于 LXI总线的 Web关键技术研究与实现[J].电子技术应用,2016,42 (3):74-77.

英文引用格式:Qin Binyi,Qiu Jie,Zheng Jincun,et al.Research and implementation of Web key technologies based on LXI bus[J]. Application of Electronic Technique,2016,42(3):74-77.

2015-12-15)

覃斌毅(1985-),男,博士研究生,助教,主要研究方向:自动测试总线与系统、太赫兹成像。

邱杰(1987-),男,助教,主要研究方向:数据挖掘、嵌入式技术。

郑金存(1979-),男,讲师,主要研究方向:生物医学、虚拟仪器技术。

广西高校科学技术研究项目(KY2015LX297);玉林师范学院一般项目(2013YJYB13);玉林师范学院重点项目(2014YJZD04)

猜你喜欢
玉林浏览器嵌入式
王玉林作品
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
反浏览器指纹追踪
邱玉林艺术作品欣赏
TS系列红外传感器在嵌入式控制系统中的应用
Unit 6 Travelling around Asia Listening and speaking
搭建基于Qt的嵌入式开发平台
环球浏览器
瞻云寄兴
倍福 CX8091嵌入式控制器