基于ARM&Linux的嵌人式設備遠程調試模塊設計
2.3.2 CGI原理
CGI工作原理如下:客戶端的用戶通過瀏覽器完成一定輸入工作后,向服務器發出HTTP請求(CGI請求),服務器守護進程接收到該請求后,就創建一個子進程(CGI進程)。該CGI子進程將CGI請求的有關數據設置成環境變量,在CGI程序與服務器間建立兩條數據通道,然后啟動URL指定的CGI程序。子進程通過標準輸出流將處理結果傳遞給服務器守護進程,守護進程再將處理結果作為應答消息回送到客戶端。一個CGI程序的任務分成輸入任務和輸出任務。輸入任務根據請求方法的不同,從環境變量QUERY_STR ING或標準輸入中讀取用戶輸入數據。輸出任務生成HT-TP響應頭標內容,如消息正文的數據類型和數據長度等;生成HTTP響應消息正文內容,如動態生成的HTML文件內容。
2.3.3 CGI應用程序設計
CGI作為一種接口協議標準,支持各種編程語言,這選擇常用的C語言編寫應用程序。設備調試工具需要具備兩個基本功能:能實時顯示相關參數;能實時修改相關參數。由于網頁的刷新會對表單的提交產生干擾,因此用框架將主頁分為兩段,分別調用子網頁實現實時顯示和實時修改功能。網頁結構及工作模式如圖3所示。
在顯示參數時,主頁調用子頁1,子頁1每3 s調用1次CGI①,每次調用時CGI①會向應用系統詢問最新參數,并以此為依據生成動態網頁回傳給主頁;修改參數時,用戶在主頁上通過表單提交的數據被CGI②解析后傳輸給應用程序,同時為了便于操作,CGI②提供查詢功能,以便用戶查詢一組參數并對所需部分進行修改。其中,網頁與CGI程序的通信由環境變量傳遞,CGI與應用程序間的通信由Socket完成。在調試時,工程人員只需要在任意用戶端瀏覽器中輸入調試模塊的lP地址,就能登陸調試界面,如圖4所。示界面上部的表格會每3 s刷新1次,實時顯示系統參數。如需修正,則可利用界面下部表單修改對應項。
3 結語
這里采用基于ARM9為核心的AT91 RlM9200芯片為平臺,結合Linux操作系統和Web Sever,運用動態網頁技術實現了設備遠程調試模塊。該系統已應用于船舶VDR系統,經過測試和實際應用,該系統運行良好。為現場調試提供了一種簡便、高效的方法;同時,該系統利用網絡連接上位機和設備系統,調試人員可以利用互連網登陸調試系統,因此也為設備通過網絡遠程調試奠定了基礎。同時,該設計成功在設備與用戶間搭建了高效率的人機交流平臺,如在應用程序上做適當完善,并設計相應的上位機軟件,系統可升級為網絡化測控系統。
利用嵌入式技術采用網口替代常用的串行接口、USB接口等作為設備的調試接口。該系統具備高速、穩定、操作簡潔和傳輸距離遠等優點;為設備調試和測控系統提供了一種有效的方案。
評論