《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于LXI總線的Web關鍵技術研究與實現
基于LXI總線的Web關鍵技術研究與實現
2016年電子技術應用第3期
覃斌毅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同步配置頁面。
中圖分類號: TP316
文獻標識碼: A
DOI: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.
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 of Elecrto-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
Abstract: 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.
Key words : LXI;IEEE1588;embedded Web serve;embedded database;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所示。

ck2-t1.gif

2 LXI儀器Web接口軟件設計

    本設計操作系統選用Linux系統,在系統中搭建嵌入式服務器,結合HTML、CGI以及SQLite數據庫技術,實現了IEEE1588同步配置頁面。整個LXI 儀器Web接口軟件系統如圖2所示。

ck2-t2.gif

    系統工作過程為:用戶在客戶端發送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,產生一個 make-file文件。修改makefile文件:將CC=gcc改為CC=arm-linux-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,主要修改內容有:

    Port 80 //端口

    User root

    Group root

    ServerName GUET //服務器名

    DocumentRoot /www //存放html文檔主目錄

    DirectoryIndex index.html

    MimeTypes/etc/mime.types //指明文件位置

    DefaultType text/plain

    CGIPath /bin:/usr/bin:/usr/sbin:/sbin

    ScriptAlias /cgi-bin/ /www/cgi-bin/

    以上為關鍵設置部分,其他部分采用默認設置。設置完成后,保存退出,然后,拷貝PC機Linux系統etc/目錄下的mime.types到文件系統etc/目錄下。至此,boa服務器在Linux系統上的移植完成。最后,將HTML文件放在文件系統的/www文件夾中,將CGI腳本程序放在/www/cgi-bin文件夾中即可以實現網絡訪問。

2.3 嵌入式數據庫的移植

    數據庫主要用于數據存儲和查詢,在本設計中,嵌入式數據庫是客戶端瀏覽器與PTP程序(PTP程序是指實現IEEE1588協議的應用程序)進行通信的橋梁,如圖3所示。

ck2-t3.gif

    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]

ck2-t4.gif

3.1 IEEE1588基本信息頁面的驗證

    首先,通過交換機將PC與LXI測試儀器相連,設置PC和LXI儀器在同一局域網內,然后在瀏覽器中輸入網址:http://192.168.1.6/ieee1588ViewConfiguration.html,打開網頁,界面如圖5所示。

ck2-t5.gif

    經驗證,PC可通過瀏覽器訪問嵌入式系統中的IEEE1588基本信息頁面,在頁面正確顯示了IEEE1588的相關參數。

3.2 IEEE1588同步參數配置頁面的驗證

    通過交換機將PC與LXI測試儀器相連,設置PC和LXI儀器在同一局域網內,然后在瀏覽器器中輸入網址:http://192.168.1.6/ieee1588ModifyConfiguration.html,界面如圖6所示。

ck2-t6.gif

    經驗證,PC可通過瀏覽器訪問嵌入式系統中的IEEE1588同步參數配置頁面。

    通過對觸發時間、觸發周期、觸發源等參數進行設置,可在指定的時刻輸出觸發信號。為了驗證同步觸發功能,分別通過網頁設置E5818A 和待測LXI儀器在同一時刻觸發輸出脈沖信號,用示波器檢測這兩路輸出信號。圖7是在指定時刻下,示波器測得的同步觸發的信號,從圖7可得同步誤差時間是258 ns。

ck2-t7.gif

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.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产精品久久久久… | 亚洲六月丁香色婷婷综合久久 | 99久久免费精品视频 | 日韩欧美国产综合 | av区无码字幕中文色 | 精品无人乱码区1区2区3区 | 午夜美女视频在线观看高清 | 国产二区精品 | 黄视频网站在线观看 | 奇米1111| 国产精品欧美亚洲韩国日本不卡 | 婷婷色网站| 不是男人是女人电视剧免费观看 | 欧美二区三区 | 日日摸夜夜摸狠狠摸97 | 99在线在线视频免费视频观看 | 免费一级毛片在线播放 | 99夜色| 久久精品视频免费观看 | 日韩欧美成人免费中文字幕 | 欧美一区欧美二区 | 青草伊人久久 | 国产亚洲精 | 四虎8848永久在线 | 男人天堂成人 | 国产在线视频www片 国产在线色视频 | 欧美一进一出 | 无人码一区二区三区视频 | 99精品国产免费久久久久久下载 | 免费人成年短视频在线观看免费网站 | 毛片网站观看 | 亚洲热热久久九九精品 | 国产一级视频免费 | 国产综合婷婷 | 蜜臀一区| 日韩欧美中文字幕在线视频 | 国产精品你懂得 | 99福利网| 久久999视频 | 免费视频一区二区三区四区 | 色婷五月综激情亚洲综合 |