新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一種新型嵌入式遠程監控系統的設計開發

        一種新型嵌入式遠程監控系統的設計開發

        作者: 時間:2009-04-22 來源:網絡 收藏

        Web的應用層協議HTTP是Web的核心。HTTP協議實現的客戶機/服務器模式是一種請求/響應結構。考慮到系統實現時TCP協議同時支持的連接次數和安全性問題,本文采用HTTP1.0協議,Web服務器每次發送完響應就斷開連接。狀態碼的含義很多,本文使用了兩種:當請求網頁成功時,返回狀態碼200,原因短語為OK;當所請求的網頁不存在時,返回狀態碼404,原因短語為NOT FOUND。頭部字段名也是可選部分,但是本文使用了其中一個選項Content-Length:指出所發送對象的字節數,以方便程序調試。實體部分就是響應的具體內容,譬如一個HTML網頁或者一張圖片等等。

        本文HTTP協議靜態頁面的實現需要完成如下內容:首先獲取URL中的文件名,接著根據該文件名調用https_calculatehash()函數獲取文件句柄,即文件處理入口數據結構中的hash域值,根據該值查找文件的起始地址,然后將文件裝入TCP套接字發送緩沖區。當所發送的文件過長而大于發送緩沖區的大小時則會發生緩沖區的溢出問題,本文的解決辦法是:首先判斷文件的長度,當文件過長時,將文件分割成多個不大于發送緩沖區大小的分段,然后循環發送出去。HTTP協議中靜態頁面處理的程序流程如圖2所示。

        圖2 HTTP靜態頁面處理流程圖

        4.2 CGI的設計與實現

        在該中,除了支持靜態頁面,還必須支持動態內容和動態表單的處理,主要包括動態生成實時采集數據頁面和處理控制命令表單。為了實現該功能,本文設計了CGI接口處理程序。

        考慮到實際應用情況,本文無需在NE64中移植操作系統,因此為Web服務器創建CGI接口不能照搬標準CGI。首先,本文的Web服務器不能同時運行多個應用程序,每個應用程序的運行都會獨占CPU,直到完成才會釋放CPU。其次,本文未實現復雜的緩存機制,所以反復執行應用程序是個低速的過程。因此,本文對標準CGI進行了裁減,設計了CGI(Embedded CGI),通過該方法實現了Web服務器的數據的采集和監控。其工作處理流程如圖3所示。

        圖3 CGI處理流程

        5 A/D采集子程序

        為了實現不同精度、更多路的數據采集,系統既使用了NE64集成的A/D采集模塊,又使用了通過SPI外擴的專用的A/D采集芯片TLC2543。因此,A/D采集子程序包含了這兩部分的內容。在具體實現時,本文通過變量TLCAD控制調用哪個采集子程序,當TLCAD=100時,調用TLC2543采集子程序;當TLCAD=99時,調用集成A/D采集子程序。系統在采集數據時,模擬量輸入信號從最小的通道號依次接入,實際模擬量的個數由變量NE64ADNmb和TLCADNmb決定,分別表示采集精度為10位的模擬量個數以及采集精度為12位的模擬量個數。

        在A/D數據采集過程中,不可避免地會受到隨機噪聲的干擾,從而造成采集數據的不準確,進而得出錯誤的結論。為了防止脈沖干擾該系統,本文作者采用了中值濾波的方法。在中值濾波的基礎上,為了保證采集數據的穩定性,本文作者采用了算術平均值濾波的方法。

        6 模塊測試

        軟件的主要功能是實現多路數據采集、網絡協議通信以及對象控制機制。模塊測試部分主要針對各模塊進行軟件測試。由于篇幅限制,下面主要針對起數據采集部分介紹其測試部分。SD12-MCS共支持30路模擬量數據采集,其中8路10位精度的AD屬于NE64的A/D模塊,剩余22路屬于2片TLC2543采集芯片。為了驗證每個采集程序是否正確,本文設計了這樣一個測試用例:首先單獨運行其中一種精度的采集程序,發送所有通道采集到的數據,通過串行口發送給高端PC機,并由PC機的測試用例顯示,若顯示數據正確,則程序正確。在此基礎上,發送參數確定調用哪種子程序,同時控制采集多路模擬量,由于本文設置模擬量采集都是從第0通道開始,并依此類推,因此不需要設置究竟是采集哪個通道的模擬量,從而簡化程序處理。

        本文作者創新點:

        本文主要介紹了一種基于Web的嵌入式控制策略設計與實現。通過對各功能模塊測試顯示該監控系統性能良好,符合相關設計要求。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 隆化县| 洪江市| 雷州市| 霸州市| 杂多县| 利津县| 靖远县| 嘉鱼县| 峨山| 毕节市| 汽车| 肃宁县| 康保县| 禹城市| 高唐县| 惠来县| 古蔺县| 营山县| 岑巩县| 阳朔县| 邵阳市| 杭州市| 响水县| 阳原县| 白朗县| 鹤壁市| 克山县| 泾阳县| 原阳县| 库尔勒市| 顺义区| 从江县| 抚顺市| 石门县| 阜宁县| 罗源县| 措美县| 同仁县| 二连浩特市| 三穗县| 德昌县|