當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于嵌入式Linux的遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)??

1 引 言
  單片機(jī)和微控制器在工業(yè)現(xiàn)場(chǎng)控制領(lǐng)域已得到廣泛的應(yīng)用,但這些控制系統(tǒng)通常采用RS232或RS485組網(wǎng),作用距離短。如今,Internet飛速發(fā)展,已成為信息交流的重要渠道。而且,基于Web的B/S遠(yuǎn)程監(jiān)控模式技術(shù)也越來越成熟。如果將這種模式應(yīng)用于工業(yè)現(xiàn)場(chǎng)控制領(lǐng)域,則用戶只要在有Internet接入的地方,就可以對(duì)工業(yè)現(xiàn)場(chǎng)設(shè)備進(jìn)行遠(yuǎn)程監(jiān)控。將其應(yīng)用于家庭,則可以朝家電信息化邁出關(guān)鍵的一步。
  上述系統(tǒng)的實(shí)現(xiàn)離不開嵌入式操作系統(tǒng)。后PC時(shí)代,隨著嵌入式系統(tǒng)的廣泛應(yīng)用,嵌入式操作系統(tǒng)也越來越受到重視。嵌入式操作系統(tǒng)具有結(jié)構(gòu)小巧、實(shí)時(shí)性強(qiáng)、穩(wěn)定性高等特點(diǎn)。目前,商用嵌入式操作系統(tǒng)比較多,如Vxworks,QNX,Nucleaus,WinCE等,但價(jià)格都很昂貴,并不適合廣泛應(yīng)用。
  嵌入式Linux為這個(gè)問題提供了良好的解決方案,其開放的源代碼、強(qiáng)大的技術(shù)支持、良好的可擴(kuò)展性及對(duì)眾多硬件的支持都是它嵌入化的優(yōu)勢(shì)。所以我們選擇嵌入式linux為操作平臺(tái),結(jié)合成熟的Web技術(shù)來進(jìn)行遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)。
2 系統(tǒng)結(jié)構(gòu)
   該遠(yuǎn)程控制系統(tǒng)利用Internet/Intranet網(wǎng)絡(luò)資源,只需一臺(tái)聯(lián)網(wǎng)的PC客戶機(jī),就可實(shí)現(xiàn)對(duì)遠(yuǎn)程設(shè)備狀態(tài)的監(jiān)視和控制。這里,我們提出系統(tǒng)結(jié)構(gòu)的兩種設(shè)計(jì)方案,如圖1、2所示。


  兩種方案都利用了Internet/Intranet網(wǎng)絡(luò)資源。不同的是,在方案一中,使用了一臺(tái)PC機(jī)作為代理服務(wù)器接入Internet網(wǎng)絡(luò),這樣便可利用代理服務(wù)器提供強(qiáng)大的數(shù)據(jù)庫功能。該方案適用于測(cè)量設(shè)備較多,相對(duì)集中的場(chǎng)合。嵌入式設(shè)備可通過以太網(wǎng)線直接與服務(wù)器相連,這樣,嵌入式設(shè)備實(shí)際上只需要實(shí)現(xiàn)一個(gè)以太網(wǎng)到RS232的轉(zhuǎn)換。但是,在某些嵌入式的應(yīng)用環(huán)境中,并不適合單獨(dú)使用一臺(tái)PC機(jī)作服務(wù)器,因此,我們提出方案二,嵌入式設(shè)備作為Web Server直接接入Internet/Intranet。嵌入式設(shè)備運(yùn)行一個(gè)操作系統(tǒng)并在此基礎(chǔ)之上實(shí)現(xiàn)WebServer的功能,這對(duì)系統(tǒng)硬件要求比較高,再加上小型嵌入式數(shù)據(jù)庫技術(shù)的不成熟,使得它在數(shù)據(jù)管理方面稍有欠缺。盡管如此,我們?nèi)圆捎梅桨付?,因?yàn)槲覀冋J(rèn)為它代表著嵌入式系統(tǒng)的發(fā)展方向,其應(yīng)用范圍更為廣泛,并且,隨著軟硬件水平的不斷提高,上述的缺點(diǎn)都是可以克服的。
  我們的方案中,硬件上采用32位Motorola微處理器,2M Flash,16M SDRAM,及必要的外圍設(shè)備即可滿足系統(tǒng)的要求。[!--empirenews.page--]
3 系統(tǒng)軟件設(shè)計(jì)
3.1 Linux的選擇
  由于Linux過于龐大,要將它應(yīng)用于小巧的嵌入式系統(tǒng),首先必須將其小型化。目前,出現(xiàn)了各種不同的嵌入式Linux版本,有一些還具有一定的實(shí)時(shí)性。我們首先依據(jù)自己所選擇的CPU類型,以公開的嵌入式Linux源代碼為基礎(chǔ),根據(jù)自己設(shè)計(jì)的主板情況編寫相應(yīng)的bootloader程序或BIOS,運(yùn)行自己的系統(tǒng)。一旦加載上了嵌入式Linux,則對(duì)于上層應(yīng)用軟件的編程與在運(yùn)行普通Linux的PC機(jī)上一樣,所有的程序都可以先在Linux的PC機(jī)上調(diào)試通過,然后只需要修改MakeFile文件,就可以完全移植到嵌入式Linux設(shè)備上運(yùn)行。如果編譯嵌入式Linux時(shí)選擇網(wǎng)絡(luò)文件系統(tǒng)(NFS),則調(diào)試的時(shí)候可利用gdbserver,省去了無數(shù)次下載程序的麻煩。這種方法有很大的靈活性與自由度,但也要注意到,由于硬件的配置不同,或程序本身原因,網(wǎng)上下載的源代碼未必都合適,這需要自己對(duì)照源碼去調(diào)試與發(fā)現(xiàn)。
3.2 應(yīng)用程序設(shè)計(jì)
3.2.1 C/S(Client/Server)模式與B/S(Browser/Server)模式傳統(tǒng)的C/S模式采用兩層設(shè)計(jì),客戶應(yīng)用層負(fù)責(zé)提供交互界面,實(shí)現(xiàn)應(yīng)用邏輯以發(fā)送數(shù)據(jù)、請(qǐng)求并處理返回?cái)?shù)據(jù);數(shù)據(jù)庫服務(wù)器層負(fù)責(zé)處理客戶數(shù)據(jù)請(qǐng)求并返回結(jié)果,有效管理系統(tǒng)資源。該模式需獨(dú)立開發(fā)和安裝每個(gè)應(yīng)用,系統(tǒng)升級(jí)維護(hù)困難,客戶機(jī)負(fù)擔(dān)重。此外,與數(shù)據(jù)庫的直接交互導(dǎo)致應(yīng)用程序?qū)?shù)據(jù)結(jié)構(gòu)有很強(qiáng)的依賴性,且浪費(fèi)數(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的三級(jí)或多級(jí)C/S,客戶端僅需要單一的瀏覽器軟件,其它大量工作都由Web Sever完成。B/S模式使用簡(jiǎn)單、易于維護(hù)、擴(kuò)展性好,已逐漸成為主流。

3.2.2 客戶端工作過程
  該系統(tǒng)使用的是B/S模式,對(duì)客戶端幾乎沒有特別要求??蛻舳酥灰谄胀╓indows視窗系統(tǒng),安裝IE或Netscape即可。換句話說,任何一臺(tái)上網(wǎng)的計(jì)算機(jī),都可能成為客戶端。
  客戶端的工作過程如下:通過Internet/Intranet網(wǎng)絡(luò)訪問監(jiān)控中心的主頁,根據(jù)需要輸入用戶名和密碼,檢驗(yàn)成功則進(jìn)入Web Server系統(tǒng)的監(jiān)控界面,點(diǎn)擊相應(yīng)的設(shè)備按鈕可以獲得該設(shè)備的運(yùn)行狀態(tài)并可以對(duì)設(shè)備的參數(shù)進(jìn)行設(shè)置。
3.2.3 服務(wù)器端程序的設(shè)計(jì)
   (1)服務(wù)器模式
  為了進(jìn)行服務(wù)器端程序的設(shè)計(jì),首先要確定服務(wù)器的工作模型。我們知道,Linux系統(tǒng)網(wǎng)絡(luò)服務(wù)器主要分為兩種:循環(huán)服務(wù)器(Iterative Server)和并發(fā)服務(wù)器(ConcurrentServer)。循環(huán)服務(wù)器在同一時(shí)刻只能處理一個(gè)客戶機(jī)請(qǐng)求,而并發(fā)服務(wù)器在同一時(shí)刻可以處理多個(gè)客戶機(jī)請(qǐng)求。TCP套接字大多采用并發(fā)服務(wù)器提供服務(wù)。TCP并發(fā)服務(wù)器有多種實(shí)現(xiàn)方法:
  ·服務(wù)器對(duì)每個(gè)接收到的客戶連接都創(chuàng)建一個(gè)新的子進(jìn)程來處理客戶請(qǐng)求;
  ·服務(wù)器預(yù)先創(chuàng)建多個(gè)子進(jìn)程,由這些子進(jìn)程處理客戶機(jī)的請(qǐng)求。這種方式稱為“預(yù)創(chuàng)建(prefork)”服務(wù)器;
  ·服務(wù)器用函數(shù)select實(shí)現(xiàn)對(duì)多個(gè)客戶機(jī)連接的多路復(fù)用;
    ·由超級(jí)服務(wù)器(Inetd)激活的服務(wù)器。
  其中,一個(gè)子進(jìn)程對(duì)應(yīng)一個(gè)客戶機(jī)的服務(wù)器模型很簡(jiǎn)單,父進(jìn)程完成接收連接和創(chuàng)建子進(jìn)程的任務(wù),子進(jìn)程處理客戶機(jī)的具體請(qǐng)求,每個(gè)子進(jìn)程的處理過程完全獨(dú)立。
  這種服務(wù)器可以同時(shí)處理的客戶機(jī)數(shù)目受到系統(tǒng)所允許的最大子進(jìn)程數(shù)目的限制。這種服務(wù)器的缺點(diǎn)是,為每一個(gè)客戶創(chuàng)建一個(gè)子進(jìn)程的開銷比較大。但如果我們能考慮到實(shí)際情況,并加以適當(dāng)?shù)淖兓蜁?huì)發(fā)現(xiàn),它很適合我們的系統(tǒng)。首先,該系統(tǒng)是一個(gè)監(jiān)控系統(tǒng),決定了不會(huì)有過多客戶同時(shí)發(fā)出監(jiān)控命令,所以無須擔(dān)心出現(xiàn)系統(tǒng)資源被耗盡的情況;其次,客戶一旦進(jìn)行監(jiān)控,一般會(huì)持續(xù)較長(zhǎng)時(shí)間,這種創(chuàng)建子進(jìn)程的開銷對(duì)服務(wù)器效率影響不大;最后,如果系統(tǒng)在Internet上運(yùn)行,可能會(huì)有許多外來的好奇者想進(jìn)入,為了減少開銷,在系統(tǒng)設(shè)計(jì)中,并不是一旦建立連接就創(chuàng)建子進(jìn)程,而是當(dāng)口令通過后并向系統(tǒng)發(fā)出ASP請(qǐng)求才建立子進(jìn)程。
   (2)程序設(shè)計(jì)
  根據(jù)我們的方案,服務(wù)器所需做的工作是:通過串口對(duì)設(shè)備進(jìn)行數(shù)據(jù)的收發(fā);對(duì)數(shù)據(jù)進(jìn)行處理;將處理的數(shù)據(jù)交給Web Server子進(jìn)程;子進(jìn)程將數(shù)據(jù)顯示到Web頁下傳給客戶,并接收客戶的參數(shù)設(shè)置命令,將參數(shù)設(shè)置上傳到遠(yuǎn)程設(shè)備。
  服務(wù)器程序結(jié)構(gòu)如圖4所示,父進(jìn)程首先創(chuàng)建一個(gè)子進(jìn)程專門處理數(shù)據(jù),然后再根據(jù)用戶的請(qǐng)求創(chuàng)建相對(duì)應(yīng)的子進(jìn)程。用戶子進(jìn)程與串口數(shù)據(jù)處理子進(jìn)程之間采用進(jìn)程間通信來實(shí)現(xiàn)數(shù)據(jù)交換。

服務(wù)器啟動(dòng)之后的第一件事,就是創(chuàng)建專用子進(jìn)程來收發(fā)數(shù)據(jù)。服務(wù)器任何時(shí)刻都在監(jiān)聽用戶請(qǐng)求。若用戶發(fā)出監(jiān)控請(qǐng)求,而且通過了密碼校驗(yàn),服務(wù)器就會(huì)產(chǎn)生一個(gè)子進(jìn)程來處理該用戶的請(qǐng)求:發(fā)送數(shù)據(jù),接收設(shè)置等。
4 結(jié)束語
  身處信息社會(huì),人們已經(jīng)能夠利用網(wǎng)絡(luò)資源快捷方便地獲得信息,并能利用網(wǎng)絡(luò)資源進(jìn)行各種設(shè)備的遠(yuǎn)程監(jiān)控。本文提出的基于嵌入式Linux的遠(yuǎn)程監(jiān)控系統(tǒng)的方案已在小型局域網(wǎng)中得到實(shí)現(xiàn)。該系統(tǒng)在工業(yè)現(xiàn)場(chǎng)、遠(yuǎn)程診斷、信息家電中有著很好的應(yīng)用前景。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉