電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 3270|回復(fù): 0
收起左側(cè)

常州嵌入式培訓(xùn)機構(gòu)_基于嵌入式Linux的遠程監(jiān)控系統(tǒng)的設(shè)計

[復(fù)制鏈接]

2607

主題

2607

帖子

7472

積分

高級會員

Rank: 5Rank: 5

積分
7472
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-8-4 16:24:44 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
常州嵌入式培訓(xùn)機構(gòu)_基于嵌入式Linux的遠程監(jiān)控系統(tǒng)的設(shè)計,   

1 引 言

單片機和微控制器在工業(yè)現(xiàn)場控制領(lǐng)域已得到廣泛的應(yīng)用,但這些控制系統(tǒng)通常采用RS232或RS485組網(wǎng),作用距離短。如今,Internet飛速發(fā)展,已成為信息交流的重要渠道。而且,基于Web的B/S遠程監(jiān)控模式技術(shù)也越來越成熟。如果將這種模式應(yīng)用于工業(yè)現(xiàn)場控制領(lǐng)域,則用戶只要在有Internet接入的地方,就可以對工業(yè)現(xiàn)場設(shè)備進行遠程監(jiān)控。將其應(yīng)用于家庭,則可以朝家電信息化邁出關(guān)鍵的一步。

上述系統(tǒng)的實現(xiàn)離不開嵌入式操作系統(tǒng)。后PC時代,隨著嵌入式系統(tǒng)的廣泛應(yīng)用,嵌入式操作系統(tǒng)也越來越受到重視。嵌入式操作系統(tǒng)具有結(jié)構(gòu)小巧、實時性強、穩(wěn)定性高等特點。目前,商用嵌入式操作系統(tǒng)比較多,如Vxworks,QNX,Nucleaus,WinCE等,但價格都很昂貴,并不適合廣泛應(yīng)用。

嵌入式Linux為這個問題提供了良好的解決方案,其開放的源代碼、強大的技術(shù)支持、良好的可擴展性及對眾多硬件的支持都是它嵌入化的優(yōu)勢。所以我們選擇嵌入式linux為操作平臺,結(jié)合成熟的Web技術(shù)來進行遠程監(jiān)控系統(tǒng)的設(shè)計。

2 系統(tǒng)結(jié)構(gòu)

該遠程控制系統(tǒng)利用Internet/Intranet網(wǎng)絡(luò)資源,只需一臺聯(lián)網(wǎng)的PC客戶機,就可實現(xiàn)對遠程設(shè)備狀態(tài)的監(jiān)視和控制。這里,我們提出系統(tǒng)結(jié)構(gòu)的兩種設(shè)計方案,如圖1、2所示。




兩種方案都利用了Internet/Intranet網(wǎng)絡(luò)資源。不同的是,在方案一中,使用了一臺PC機作為代理服務(wù)器接入Internet網(wǎng)絡(luò),這樣便可利用代理服務(wù)器提供強大的數(shù)據(jù)庫功能。該方案適用于測量設(shè)備較多,相對集中的場合。嵌入式設(shè)備可通過以太網(wǎng)線直接與服務(wù)器相連,這樣,嵌入式設(shè)備實際上只需要實現(xiàn)一個以太網(wǎng)到RS232的轉(zhuǎn)換。但是,在某些嵌入式的應(yīng)用環(huán)境中,并不適合單獨使用一臺PC機作服務(wù)器,因此,我們提出方案二,嵌入式設(shè)備作為Web Server直接接入Internet/Intranet。嵌入式設(shè)備運行一個操作系統(tǒng)并在此基礎(chǔ)之上實現(xiàn)WebServer的功能,這對系統(tǒng)硬件要求比較高,再加上小型嵌入式數(shù)據(jù)庫技術(shù)的不成熟,使得它在數(shù)據(jù)管理方面稍有欠缺。盡管如此,我們?nèi)圆捎梅桨付,因為我們認為它代表著嵌入式系統(tǒng)的發(fā)展方向,其應(yīng)用范圍更為廣泛,并且,隨著軟硬件水平的不斷提高,上述的缺點都是可以克服的。



我們的方案中,硬件上采用32位Motorola微處理器,2M Flash,16M SDRAM,及必要的外圍設(shè)備即可滿足系統(tǒng)的要求。



3 系統(tǒng)軟件設(shè)計



3.1 Linux的選擇



由于Linux過于龐大,要將它應(yīng)用于小巧的嵌入式系統(tǒng),首先必須將其小型化。目前,出現(xiàn)了各種不同的嵌入式Linux版本,有一些還具有一定的實時性。我們首先依據(jù)自己所選擇的CPU類型,以公開的嵌入式Linux源代碼為基礎(chǔ),根據(jù)自己設(shè)計的主板情況編寫相應(yīng)的bootloader程序或BIOS,運行自己的系統(tǒng)。一旦加載上了嵌入式Linux,則對于上層應(yīng)用軟件的編程與在運行普通Linux的PC機上一樣,所有的程序都可以先在Linux的PC機上調(diào)試通過,然后只需要修改MakeFile文件,就可以完全移植到嵌入式Linux設(shè)備上運行。如果編譯嵌入式Linux時選擇網(wǎng)絡(luò)文件系統(tǒng)(NFS),則調(diào)試的時候可利用gdbserver,省去了無數(shù)次下載程序的麻煩。這種方法有很大的靈活性與自由度,但也要注意到,由于硬件的配置不同,或程序本身原因,網(wǎng)上下載的源代碼未必都合適,這需要自己對照源碼去調(diào)試與發(fā)現(xiàn)。



3.2 應(yīng)用程序設(shè)計



3.2.1 C/S(Client/Server)模式與B/S(Browser/Server)模式傳統(tǒng)的C/S模式采用兩層設(shè)計,客戶應(yīng)用層負責(zé)提供交互界面,實現(xiàn)應(yīng)用邏輯以發(fā)送數(shù)據(jù)、請求并處理返回數(shù)據(jù);數(shù)據(jù)庫服務(wù)器層負責(zé)處理客戶數(shù)據(jù)請求并返回結(jié)果,有效管理系統(tǒng)資源。該模式需獨立開發(fā)和安裝每個應(yīng)用,系統(tǒng)升級維護困難,客戶機負擔重。此外,與數(shù)據(jù)庫的直接交互導(dǎo)致應(yīng)用程序?qū)?shù)據(jù)結(jié)構(gòu)有很強的依賴性,且浪費數(shù)據(jù)庫連接資源。



基于二層結(jié)構(gòu)的C/S模式無法適應(yīng)Internet網(wǎng)絡(luò)的特性,因此出現(xiàn)了一種新的體系結(jié)構(gòu)——B/S模式。B/S是一種基于Hyperlink,HTML,Java的三級或多級C/S,客戶端僅需要單一的瀏覽器軟件,其它大量工作都由Web Sever完成。B/S模式使用簡單、易于維護、擴展性好,已逐漸成為主流。



嵌入式人越來越少, 重郵嵌入式系統(tǒng), 青島歌爾嵌入式研發(fā), 嵌入式面盆發(fā)霉, 嵌入式處理器的現(xiàn)狀, 嵌入式軟件組件產(chǎn)品, 嵌入式輻射檢測儀, 嵌入式我要自學(xué)網(wǎng), 嵌入式數(shù)字閃爍, 潤譜嵌入式電話錄音, 嵌入式嫁接法, 屬于嵌入式軟件嗎, 三級嵌入式激活碼, 浙大嵌入式培訓(xùn)中心, 野火嵌入式開發(fā), 嵌入式人機界面編程, 嵌入式崗位細分, 嵌入式初始化代碼, 嵌入式不銹鋼格柵, 昆侖通態(tài)嵌入式幫助, 集成(嵌入式)軟件, 嵌入式xp系統(tǒng)補丁,

3.2.2 客戶端工作過程



該系統(tǒng)使用的是B/S模式,對客戶端幾乎沒有特別要求?蛻舳酥灰谄胀╓indows視窗系統(tǒng),安裝IE或Netscape即可。換句話說,任何一臺上網(wǎng)的計算機,都可能成為客戶端。



客戶端的工作過程如下:通過Internet/Intranet網(wǎng)絡(luò)訪問監(jiān)控中心的主頁,根據(jù)需要輸入用戶名和密碼,檢驗成功則進入Web Server系統(tǒng)的監(jiān)控界面,點擊相應(yīng)的設(shè)備按鈕可以獲得該設(shè)備的運行狀態(tài)并可以對設(shè)備的參數(shù)進行設(shè)置。





3.2.3 服務(wù)器端程序的設(shè)計



(1)服務(wù)器模式



為了進行服務(wù)器端程序的設(shè)計,首先要確定服務(wù)器的工作模型。我們知道,Linux系統(tǒng)網(wǎng)絡(luò)服務(wù)器主要分為兩種:循環(huán)服務(wù)器(Iterative Server)和并發(fā)服務(wù)器(ConcurrentServer)。循環(huán)服務(wù)器在同一時刻只能處理一個客戶機請求,而并發(fā)服務(wù)器在同一時刻可以處理多個客戶機請求。TCP套接字大多采用并發(fā)服務(wù)器提供服務(wù)。TCP并發(fā)服務(wù)器有多種實現(xiàn)方法:



·服務(wù)器對每個接收到的客戶連接都創(chuàng)建一個新的子進程來處理客戶請求;



·服務(wù)器預(yù)先創(chuàng)建多個子進程,由這些子進程處理客戶機的請求。這種方式稱為“預(yù)創(chuàng)建(prefork)”服務(wù)器;



·服務(wù)器用函數(shù)select實現(xiàn)對多個客戶機連接的多路復(fù)用;



·由超級服務(wù)器(Inetd)激活的服務(wù)器。



其中,一個子進程對應(yīng)一個客戶機的服務(wù)器模型很簡單,父進程完成接收連接和創(chuàng)建子進程的任務(wù),子進程處理客戶機的具體請求,每個子進程的處理過程完全獨立。



這種服務(wù)器可以同時處理的客戶機數(shù)目受到系統(tǒng)所允許的最大子進程數(shù)目的限制。這種服務(wù)器的缺點是,為每一個客戶創(chuàng)建一個子進程的開銷比較大。但如果我們能考慮到實際情況,并加以適當?shù)淖兓,就會發(fā)現(xiàn),它很適合我們的系統(tǒng)。首先,該系統(tǒng)是一個監(jiān)控系統(tǒng),決定了不會有過多客戶同時發(fā)出監(jiān)控命令,所以無須擔心出現(xiàn)系統(tǒng)資源被耗盡的情況;其次,客戶一旦進行監(jiān)控,一般會持續(xù)較長時間,這種創(chuàng)建子進程的開銷對服務(wù)器效率影響不大;最后,如果系統(tǒng)在Internet上運行,可能會有許多外來的好奇者想進入,為了減少開銷,在系統(tǒng)設(shè)計中,并不是一旦建立連接就創(chuàng)建子進程,而是當口令通過后并向系統(tǒng)發(fā)出ASP請求才建立子進程。



(2)程序設(shè)計



根據(jù)我們的方案,服務(wù)器所需做的工作是:通過串口對設(shè)備進行數(shù)據(jù)的收發(fā);對數(shù)據(jù)進行處理;將處理的數(shù)據(jù)交給Web Server子進程;子進程將數(shù)據(jù)顯示到Web頁下傳給客戶,并接收客戶的參數(shù)設(shè)置命令,將參數(shù)設(shè)置上傳到遠程設(shè)備。



服務(wù)器程序結(jié)構(gòu)如圖4所示,父進程首先創(chuàng)建一個子進程專門處理數(shù)據(jù),然后再根據(jù)用戶的請求創(chuàng)建相對應(yīng)的子進程。用戶子進程與串口數(shù)據(jù)處理子進程之間采用進程間通信來實現(xiàn)數(shù)據(jù)交換。



服務(wù)器啟動之后的第一件事,就是創(chuàng)建專用子進程來收發(fā)數(shù)據(jù)。服務(wù)器任何時刻都在監(jiān)聽用戶請求。若用戶發(fā)出監(jiān)控請求,而且通過了密碼校驗,服務(wù)器就會產(chǎn)生一個子進程來處理該用戶的請求:發(fā)送數(shù)據(jù),接收設(shè)置等。



4 結(jié)束語



身處信息社會,人們已經(jīng)能夠利用網(wǎng)絡(luò)資源快捷方便地獲得信息,并能利用網(wǎng)絡(luò)資源進行各種設(shè)備的遠程監(jiān)控。本文提出的基于嵌入式Linux的遠程監(jiān)控系統(tǒng)的方案已在小型局域網(wǎng)中得到實現(xiàn)。該系統(tǒng)在工業(yè)現(xiàn)場、遠程診斷、信息家電中有著很好的應(yīng)用前景。 (編輯:chiying)
回復(fù)

使用道具 舉報

發(fā)表回復(fù)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表