目前國外對于大型光電望遠鏡系統(tǒng)所采用的觀測站遠程監(jiān)控系統(tǒng)已經(jīng)比較完善,但是國內(nèi)還沒得到很好的應(yīng)用。本課題將設(shè)計一個觀測站遠程監(jiān)控系統(tǒng),把ARM- Linux嵌入式系統(tǒng)應(yīng)用到該系統(tǒng)中,實現(xiàn)一個在線實時監(jiān)測、控制于一體的低成本遠程監(jiān)控系統(tǒng)。隨著嵌入式系統(tǒng)的發(fā)展越來越成熟,嵌入式處理技術(shù)很好地解決和實現(xiàn)了高低端系統(tǒng)的實時性、多任務(wù)性、大數(shù)據(jù)量處理的要求。嵌入式Internet技術(shù)的產(chǎn)生,使得設(shè)備可以輕而易舉地接入Internet網(wǎng)絡(luò),實現(xiàn)設(shè)備上網(wǎng)和設(shè)備的遠程監(jiān)控。短消息服務(wù)(SMS)已成為一種成熟的技術(shù),其業(yè)務(wù)已為人們廣泛使用和喜愛。由于GSM網(wǎng)絡(luò)覆蓋面廣,可靠性高,采用無線網(wǎng)絡(luò)遠程監(jiān)控也有很廣闊的應(yīng)用前景。
1.1 系統(tǒng)工作原理
基于Internet網(wǎng)絡(luò)的在線監(jiān)控模式,一方面運行在Web服務(wù)器上的CGI程序根據(jù)客戶端瀏覽器的請求負責接收現(xiàn)場數(shù)據(jù),并將數(shù)據(jù)進行html轉(zhuǎn)換,發(fā)往客戶端瀏覽器;另一方面解析客戶端發(fā)來的命令數(shù)據(jù),通過CGI程序發(fā)往現(xiàn)場設(shè)備,實現(xiàn)遠程控制;同時在客戶端對監(jiān)控頁面進行一定時間間隔的動態(tài)刷新,以實現(xiàn)實時的遠程監(jiān)控。
CGI(Common Gateway Interface)公共網(wǎng)關(guān)接口,是一種服務(wù)器與瀏覽器信息交換的標準接口。在物理上,CGI是一段程序,它運行在服務(wù)器上,提供客戶端HTML頁面接口,完成HTML無法做到的交互功能,CGI建立在客戶機/服務(wù)器機制上,為外部擴展應(yīng)用程序與Web服務(wù)器交互提供了一個標準接口。按照CGI標準編寫的外部擴展應(yīng)用程序可以處理客戶端輸入的工作數(shù)據(jù),完成客戶端與服務(wù)器的交互操作。
基于GSM網(wǎng)絡(luò)的無線監(jiān)控模式,是采用手機短信息的方式進行數(shù)據(jù)傳輸?shù)?。按照系統(tǒng)設(shè)定的命令發(fā)送短信息,根據(jù)用戶不同的短信息內(nèi)容,GSM模塊內(nèi)的SIM 卡將以短信的形式返回現(xiàn)場的環(huán)境信息或相關(guān)設(shè)備開關(guān)量的狀態(tài),還可控制現(xiàn)場相關(guān)設(shè)備的開關(guān)量(在此用開發(fā)板上的3個LED來模擬現(xiàn)場相關(guān)設(shè)備的開關(guān)量),其框圖如圖1所示。
1.2 系統(tǒng)硬件組成
監(jiān)控系統(tǒng)控制器的核心CPU選用基于ARM920T內(nèi)核的16/32位RISC處理器 S3C2410A。該處理器功能強、性價比高、功耗低,提供了一套較完整的通用外圍設(shè)備接口,帶MMU(內(nèi)存管理單元),可支持Linux、μC/OS- II、WindowsCE等多種操作系統(tǒng)的移植。系統(tǒng)硬件結(jié)構(gòu)框圖如圖2所示。
64 MB Nand Flash采用的是K9F1208,用于存儲大量的數(shù)據(jù)。其特點是高密度、低價格、較快的寫入和擦除速度,較長的復(fù)寫壽命。本系統(tǒng)用來存儲嵌入式 Linux鏡像、根文件系統(tǒng)和應(yīng)用程序;內(nèi)存為64 MB SDRAM,由2片HY57V561620組成,工作在32位模式下的SDRAM是一種揮發(fā)存儲記憶體,不能永久保存數(shù)據(jù),在嵌入式系統(tǒng)中用作代碼運行,系統(tǒng)和用戶數(shù)據(jù)、堆棧等均位于SDRAM存儲器中。
網(wǎng)絡(luò)接口模塊中的以太網(wǎng)接口芯片為10/100M自適應(yīng)以太網(wǎng)控制芯片DM9000。GPRS無線模塊選用法國Wavecom公司設(shè)計的Q2403A,雙波段(900/1800 MHz)工作,支持通用的AT命令。串口采用標準RS232接口。在小擴展板上具有JTAG口轉(zhuǎn)并口電路的JTAG調(diào)試模塊,用并口線將該模塊與主機的并口相連,同時在主機上運行協(xié)議轉(zhuǎn)換軟件,就能夠進行代碼下載、仿真調(diào)試和Flash ROM固化等工作。在本系統(tǒng)目標板的Bootload-er設(shè)計階段,用于Bootloader的調(diào)試和燒寫。
2 系統(tǒng)的軟件設(shè)計
2.1 系統(tǒng)的嵌入式軟件結(jié)構(gòu)
整個系統(tǒng)軟件結(jié)構(gòu)從下到上大體可分為3個層次,如圖3所示:底層的Bootloder、嵌入式Linux內(nèi)核以及系統(tǒng)應(yīng)用程序。
Bootloader移植的是廣泛支持PowerPC、MIPS、X86、ARM、XScale等諸多常用系列處理器的u-boot。
嵌入式Linux操作系統(tǒng)的內(nèi)核源代碼開放且精簡、速度快、可靠性高、功能強大,可以根據(jù)需要對內(nèi)核進行定制。嵌入式Linux內(nèi)核是整個軟件系統(tǒng)的主體,它不僅為應(yīng)用程序提供真正的多任務(wù)運行環(huán)境,還提供強大的硬件驅(qū)動、網(wǎng)絡(luò)和文件系統(tǒng)支持。本系統(tǒng)采用2.6.22版本的嵌入式Linux內(nèi)核和 Yaffs根文件系統(tǒng)。Web服務(wù)器選用的是適合嵌入式系統(tǒng)的Boa,為了功能的擴展和大數(shù)據(jù)量的傳輸?shù)拇鎯?,移植了適合嵌入式系統(tǒng)的數(shù)據(jù)庫 sqlite。
另外,嵌入式Linux具有一套完整的免費交叉編譯環(huán)境,利用S3C2410能實現(xiàn)低成本的設(shè)計并開發(fā)出滿足自己需要的嵌入式系統(tǒng)。該系統(tǒng)的開發(fā)主要是采用NFS網(wǎng)絡(luò)文件系統(tǒng)的交叉開發(fā)模式。用NFS方式建立宿主機和開發(fā)板的通信,在開發(fā)調(diào)試階段利用NFS服務(wù),在內(nèi)核啟動過程掛接NFS網(wǎng)絡(luò)文件系統(tǒng),這樣不用頻繁地寫入Flash,縮短開發(fā)周期。通過Minicom設(shè)置,監(jiān)視串口工作狀態(tài),接收顯示串口收到的信息。
2.2 軟件的開發(fā)
軟件開發(fā)包括以下5個方面:相關(guān)驅(qū)動的開發(fā),串口數(shù)據(jù)通信程序的開發(fā),靜態(tài)頁面的開發(fā),CGI程序的開發(fā),無線GSM網(wǎng)絡(luò)監(jiān)控收發(fā)短信息程序的開發(fā)。
嵌入式Linux設(shè)備文件主要分為字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備3種類型。根據(jù)課題需要主要針對DM9000網(wǎng)卡驅(qū)動和Nand Flash的驅(qū)動進行改寫,以及對LED字符設(shè)備的驅(qū)動開發(fā)。然后將其編譯進內(nèi)核,實現(xiàn)相應(yīng)設(shè)備的驅(qū)動。
在嵌入式Linux系統(tǒng)中訪問串口設(shè)備要把串口看作是一個設(shè)備文件,用戶可以使用文件操作函數(shù)實現(xiàn)對串口的基本操作:如用open()函數(shù)打開串口,用 read()、write()來讀/寫串口,操作完成后用close()關(guān)閉串口等。對串口的設(shè)置包括波特率設(shè)置、奇偶校驗位、停止位和模式設(shè)置。對串口的設(shè)置主要是設(shè)置struct termios()結(jié)構(gòu)中各成員的值。在讀串口程序中使用select函數(shù)實現(xiàn)多路復(fù)用式串口讀寫。串口0和串口1分別與GPRS模塊和氣象儀連接。
用html語言對靜態(tài)頁面的開發(fā),在主界面中采用ht-ml的框架技術(shù),具有以下優(yōu)點:頁面結(jié)構(gòu)清晰;功能列表放在左邊,系統(tǒng)功能一目了然;便于頁面跳轉(zhuǎn);安全性高,不管提交的表單數(shù)的方式是GET方式還是POST方式,在IE地址欄都不會顯示出相關(guān)信息,保證了數(shù)據(jù)傳遞的安全性。
該遠程監(jiān)控系統(tǒng)采用瀏覽器/服務(wù)器(B/S)通信模式,利用動態(tài)網(wǎng)頁技術(shù)CGI,使得監(jiān)控端能直觀地對現(xiàn)場進行集中監(jiān)控。一般來講,CGI程序可以分為3 個部分:解碼部分,即對從客戶端獲取的諸多環(huán)境變量進行分析,得到支持CGI程序運行的必要信息,解碼屬于CGI編程范疇;功能部分,即利用得到的信息完成CGI程序所要實現(xiàn)的功能;輸出部分,即將運行的結(jié)果返回服務(wù)器,最終返回給客戶端。
無線GSM網(wǎng)絡(luò)監(jiān)控收發(fā)短信息的開發(fā),對GSM模塊短信息格式的設(shè)定、傳送回報的打開,以及短消息的讀取和刪除等是通過AT指令完成的。AT指令都是以 AT開始,《CR》結(jié)束,而AT指令回應(yīng)的開始與結(jié)束都是以《CR》結(jié)束。這是串口編程接收數(shù)據(jù)與發(fā)送數(shù)據(jù)標志。如果AT命令的語法有錯誤,GSM就返回ER-ROR。用手機實現(xiàn)遠程監(jiān)控的GSM程序流程如圖4所示。
3 系統(tǒng)運行效果
對目標板上電,系統(tǒng)的硬軟件先后啟動。當遠程用戶通過瀏覽器訪問存儲在嵌入式boa Web服務(wù)器上的網(wǎng)頁時,首先通過以太網(wǎng)在普通瀏覽器中直接輸入正確的網(wǎng)址http://10.0.22.121即可看到測試主頁,如圖5所示。
要求用戶填寫管理ID,并通過密碼驗證。只有通過驗證的用戶才能進入下面的監(jiān)控主頁,監(jiān)控主界面如圖6所示。
該監(jiān)控主頁面左側(cè)顯示有3個模塊:重新登陸頁面;觀測站遠程環(huán)境信息檢測系統(tǒng),能方便實時地查詢現(xiàn)場的環(huán)境狀態(tài),如圖7所示;現(xiàn)場開關(guān)的遠程監(jiān)控系統(tǒng),可以控制3個開關(guān)量的開關(guān),如圖8所示,并能查詢它們當前狀態(tài),設(shè)置監(jiān)控頁面每隔15 s動態(tài)刷新一次,如圖9所示,可實現(xiàn)實時的遠程監(jiān)控。系統(tǒng)默認的是當前的實時查詢,提交查詢后,用戶可以得到設(shè)備的運行情況。
手機用戶可以根據(jù)開發(fā)程序中設(shè)定好的命令,發(fā)送短消息實現(xiàn)遠程監(jiān)控。例如:發(fā)送“m”到GSM模塊的SIM卡中,即可返回現(xiàn)場的環(huán)境信息;發(fā)送“naw”或“faw”,可打開或關(guān)閉LED1并且以短信的形式返回現(xiàn)場3個開關(guān)量LED的狀態(tài)。
4、結(jié) 論
ARM嵌入式系統(tǒng)與Internet網(wǎng)絡(luò)技術(shù)的融合在大型設(shè)備的遠程監(jiān)控和診斷維護中的應(yīng)用更加廣泛。本課題把ARM嵌入式系統(tǒng)引入觀測站的遠程監(jiān)控系統(tǒng)中,通過Internet:及GSM雙網(wǎng)絡(luò)實現(xiàn)了遠程對大型光電望遠鏡設(shè)備所在環(huán)境信息的實時監(jiān)測以及對現(xiàn)場一些開關(guān)量的控制。系統(tǒng)強大的網(wǎng)絡(luò)功能不僅能實現(xiàn)跨地域的信息訪問,而且利用網(wǎng)絡(luò)低廉的通信費用給基于ARM-Linux嵌入式的大型光電望遠鏡設(shè)備的監(jiān)控診斷以及維護帶來了全新的活力和更高的效益??傊?,基于嵌入式的雙網(wǎng)絡(luò)遠程監(jiān)控技術(shù)將會廣泛運用,必將大大提高設(shè)備使用效能,有利于對大型光電望遠鏡設(shè)備的管理和維護。的結(jié)構(gòu)示意圖和引腳排列圖,表1列出了各引腳在SPI模式下的定義和功能描述。主機與SD卡之間通過指令來實現(xiàn)交互。
責任編輯:gt
評論
查看更多