![基于ARM的嵌入式Web服務(wù)器設(shè)計(jì)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/10/05a80bb5-c98d-4aad-82d8-aa1ea0bd914a/05a80bb5-c98d-4aad-82d8-aa1ea0bd914a1.gif)
![基于ARM的嵌入式Web服務(wù)器設(shè)計(jì)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/10/05a80bb5-c98d-4aad-82d8-aa1ea0bd914a/05a80bb5-c98d-4aad-82d8-aa1ea0bd914a2.gif)
![基于ARM的嵌入式Web服務(wù)器設(shè)計(jì)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/10/05a80bb5-c98d-4aad-82d8-aa1ea0bd914a/05a80bb5-c98d-4aad-82d8-aa1ea0bd914a3.gif)
![基于ARM的嵌入式Web服務(wù)器設(shè)計(jì)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/10/05a80bb5-c98d-4aad-82d8-aa1ea0bd914a/05a80bb5-c98d-4aad-82d8-aa1ea0bd914a4.gif)
![基于ARM的嵌入式Web服務(wù)器設(shè)計(jì)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/10/05a80bb5-c98d-4aad-82d8-aa1ea0bd914a/05a80bb5-c98d-4aad-82d8-aa1ea0bd914a5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第 2 頁(yè) 共 16 頁(yè) 題目:基于ARM的嵌入式Web服務(wù)器設(shè)計(jì)與實(shí)現(xiàn) 學(xué) 號(hào): 1308010139姓 名: 吳明川班 級(jí): 1308010139專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù)課程老師: 孔軍二零一六年五月 摘 要隨著計(jì)算機(jī)、網(wǎng)絡(luò)通信和Internet 技術(shù)的飛速發(fā)展和不斷進(jìn)步,嵌入式系統(tǒng)在家庭和工業(yè)應(yīng)用越來(lái)越廣泛。如何將嵌入式系統(tǒng)和工業(yè)控制系統(tǒng)接入Internet,綜合利用嵌入式系統(tǒng)資源,實(shí)現(xiàn)嵌入式系統(tǒng)的遠(yuǎn)程管理和控制,已成為倍受關(guān)注的研究課題,而實(shí)現(xiàn)嵌入式系統(tǒng)的網(wǎng)絡(luò)化則成為嵌入式系統(tǒng)的發(fā)展趨勢(shì)。網(wǎng)絡(luò)通信時(shí),應(yīng)用程序使用C/S(客戶/服務(wù)器)模式進(jìn)行信息交互。傳統(tǒng)的服務(wù)器程序一般運(yùn)行在大型的
2、擁有高級(jí)操作系統(tǒng)的服務(wù)器的計(jì)算機(jī)上,這樣服務(wù)器軟件需要強(qiáng)大的硬件和系統(tǒng)軟件支持。嵌入式網(wǎng)絡(luò)服務(wù)器是利用嵌入式系統(tǒng)實(shí)現(xiàn)服務(wù)器的軟件和硬件功能,是嵌入式技術(shù)和網(wǎng)絡(luò)技術(shù)相結(jié)合的產(chǎn)物。與傳統(tǒng)服務(wù)器相比,嵌入式Web服務(wù)器具有結(jié)構(gòu)簡(jiǎn)單、體積小、可靠性強(qiáng)以及方便靈活等特點(diǎn)。這些讓它具有很大的發(fā)展?jié)摿ΑA硪环矫?,嵌入式Web服務(wù)器與傳統(tǒng)的web服務(wù)器相比,也受到一些限制。傳統(tǒng)的Web服務(wù)器主要用于處理較大的客戶量的同時(shí)并發(fā)訪問(wèn),硬件方面有強(qiáng)大的處理器和內(nèi)存支持,軟件方面有商業(yè)數(shù)據(jù)庫(kù)支持,而嵌入式Web服務(wù)器的處理能力和存儲(chǔ)容量都有限,這就要求嵌入式Web服務(wù)器在設(shè)計(jì)過(guò)程中需要盡量合理利用資源。將嵌入式技術(shù)與
3、Web 技術(shù)相結(jié)合,已成為目前嵌入式系統(tǒng)的一個(gè)重要發(fā)展方向和必然趨勢(shì)。利用源代碼開(kāi)放的uClinux 為操作系統(tǒng)平臺(tái),實(shí)現(xiàn)了以ARM微處理器為核心的嵌入式Web 服務(wù)器,在分析了嵌入式Web 服務(wù)器的體系結(jié)構(gòu)后,給出了系統(tǒng)的硬件結(jié)構(gòu)組成和軟件設(shè)計(jì)。對(duì)Web 服務(wù)器的測(cè)試結(jié)果表明,該服務(wù)器運(yùn)行穩(wěn)定、控制方便,將在智能家居、遠(yuǎn)程數(shù)據(jù)采集、工業(yè)控制等領(lǐng)域有著廣泛的應(yīng)用前景。 關(guān)鍵詞:網(wǎng)絡(luò)通信;嵌入式系統(tǒng);ARM處理器;uClinux;Boa服務(wù)器;16第 16 頁(yè) 共 16 頁(yè)引言 隨著Internet 技術(shù)的飛速發(fā)展,導(dǎo)致許多領(lǐng)域的傳統(tǒng)控制方式發(fā)生變革。這些領(lǐng)域的控制系統(tǒng)可以通過(guò)Web 服務(wù)器接入
4、Internet,這樣用戶在世界任何一個(gè)地方都可以通過(guò)Internet 獲取Web 服務(wù)器提供的信息,進(jìn)而實(shí)現(xiàn)系統(tǒng)的遠(yuǎn)程控制和管理。但以具有高運(yùn)算處理能力和海量存儲(chǔ)容量的工作站或PC機(jī)為硬件平臺(tái),以非實(shí)時(shí)操作系統(tǒng)為軟件平臺(tái),運(yùn)行著大型復(fù)雜程序的傳統(tǒng)Web 服務(wù)器,并非在任何環(huán)境下都適用,尤其是對(duì)實(shí)時(shí)性要求比較高的領(lǐng)域,如工業(yè)控制、遠(yuǎn)程數(shù)據(jù)采集等?;谇度胧较到y(tǒng)的Web服務(wù)器的出現(xiàn),為以上問(wèn)題的解決開(kāi)辟了一條新途徑。1 發(fā)展背景 隨著計(jì)算機(jī)技術(shù)的發(fā)展,嵌入式系統(tǒng)已成為計(jì)算機(jī)領(lǐng)域的一個(gè)重要組成部分。廣義講,凡是帶有微處理器的專用軟硬件系統(tǒng)都可以稱為嵌入式系統(tǒng)。所謂嵌入式設(shè)備,是指具有計(jì)算機(jī)功能,但
5、又不稱為計(jì)算機(jī)的設(shè)備或器材,幾乎包括了我們周期的所有電路設(shè)備:PDA、手機(jī)機(jī)頂盒、汽車(chē)、微波爐、電梯、安全系統(tǒng)、自動(dòng)售貨機(jī)、醫(yī)療儀器、自動(dòng)取款機(jī)等。嵌入式系統(tǒng)可以通過(guò)各種無(wú)線形式(如WAP、BlueTooth等)和有線形式(TCP/IP、PPP等)的網(wǎng)絡(luò)連接方式實(shí)現(xiàn)它們之間的相互連接,因此,在網(wǎng)絡(luò)通信市場(chǎng)上極具生命力?,F(xiàn)在人們對(duì)Internet應(yīng)用的依賴程序日漸增加,也促進(jìn)了嵌入式技術(shù)的增長(zhǎng)。信息家電的發(fā)展也為嵌入式Internet技術(shù)提供空間,如面向Internet的信息冰箱。這種信息家電的特點(diǎn)就是價(jià)格低廉、軟件功能強(qiáng)大、全面支持Internet訪問(wèn)、軟件可通過(guò)網(wǎng)絡(luò)升級(jí)、有效保護(hù)用戶投資。
6、嵌入式Internet技術(shù)主要包括傳感器技術(shù)、通信技術(shù)、計(jì)算機(jī)技術(shù)和集成電路技術(shù)等。以前的設(shè)備控制系統(tǒng)一般是通過(guò)專用通信線中進(jìn)行的,其通信介質(zhì)、通信協(xié)議、相關(guān)軟件和硬件都是專用的,而Internet技術(shù)的發(fā)展使嵌入式設(shè)備的遠(yuǎn)程控制和管理方式有了改變。不需要專用的通信線路,并且傳輸?shù)男畔⒉痪志钟跀?shù)據(jù)信號(hào),還有聲音和圖像。最重要的是其通信協(xié)議是標(biāo)準(zhǔn)且公開(kāi)的。隨著Web技術(shù)的發(fā)展,幾乎改變了現(xiàn)在的信息表達(dá)形式,很多應(yīng)用都是基于Web技術(shù)的。由于HTML語(yǔ)言的標(biāo)準(zhǔn)統(tǒng)一性,只要在嵌入式設(shè)備中有一個(gè)微型服務(wù)器,就可以使用任意一種Web瀏覽器接收和發(fā)送信息。所以如何設(shè)計(jì)這種特別Web服務(wù)器,如何在嵌入式設(shè)備
7、中安裝Web服務(wù)器,就成了嵌入式Web服務(wù)器的發(fā)展和研究方向。 對(duì)于嵌入式Web服務(wù)器的研究和應(yīng)用,其意義是重大的。它為我們管理、控制和監(jiān)測(cè)各種各樣設(shè)備提供了一個(gè)很好的途徑。這種設(shè)備可以是具有有限內(nèi)存資源的8位或16位系統(tǒng),已足夠提供一個(gè)用戶界面,而且這種方式是基于Internet的。這種設(shè)備可以在世界任何一個(gè)地方,只要它連入Internet就能夠控制它。1.1 課題的研究意義Internet的迅猛發(fā)展,傳統(tǒng)的Client/server體系結(jié)構(gòu)(客戶機(jī)/服務(wù)器),漸漸的在某些方面顯示出它的局限性,Browser/server結(jié)構(gòu)(瀏覽器/服務(wù)器)的出現(xiàn)恰恰彌補(bǔ)了這種缺陷。B/S方式已成為一種時(shí)
8、尚,大部分網(wǎng)絡(luò)應(yīng)用系統(tǒng)都是以這種B/S方式與網(wǎng)絡(luò)用戶交換信息。B/S的基礎(chǔ)是客戶端要有一個(gè)瀏覽器程序,服務(wù)器端要有一個(gè)與之對(duì)應(yīng)的Web服務(wù)器。顯然,Web服務(wù)器在B/S方式下起著決定性的作用,因此,一般互聯(lián)網(wǎng)站都采用功能強(qiáng)大的通用Web服務(wù)器。隨著網(wǎng)絡(luò)各個(gè)核心部分業(yè)務(wù)量的提高,其訪問(wèn)量和數(shù)據(jù)流量快速增長(zhǎng),處理能力和計(jì)算強(qiáng)度也相應(yīng)增大,使得單一設(shè)備根本無(wú)法承擔(dān),而且許多企業(yè)級(jí)應(yīng)用系統(tǒng)的應(yīng)用請(qǐng)求具有突發(fā)性和緊急性的特點(diǎn),當(dāng)應(yīng)用訪問(wèn)急劇上升時(shí),容易造成網(wǎng)絡(luò)瓶頸。解決這一問(wèn)題的辦法是采用多臺(tái)嵌入式Web服務(wù)器為一個(gè)應(yīng)用服務(wù),集群負(fù)載均衡機(jī)制就是為解決多個(gè)網(wǎng)絡(luò)設(shè)備之間實(shí)現(xiàn)合理的業(yè)務(wù)量分配而提出的。 1.
9、2 論文研究?jī)?nèi)容嵌入式Web服務(wù)器是指將Web服務(wù)器引入到現(xiàn)場(chǎng)測(cè)試和控制設(shè)備中,在相應(yīng)的硬件平臺(tái)和軟件系統(tǒng)的支持下,使傳統(tǒng)的測(cè)試和控制設(shè)備轉(zhuǎn)變?yōu)榫邆淞艘訲CP/IP為底層通信協(xié)議,Web技術(shù)為核心的基于互聯(lián)網(wǎng)的網(wǎng)絡(luò)測(cè)試和控制設(shè)備。EWS系統(tǒng)與傳統(tǒng)的Web應(yīng)用相比,簡(jiǎn)化了系統(tǒng)結(jié)構(gòu),將信息采集和信息發(fā)布都集成到現(xiàn)場(chǎng)的測(cè)控設(shè)備中。而有了標(biāo)準(zhǔn)的接口形式和通信協(xié)議,內(nèi)嵌于設(shè)備的從Web服務(wù)器同樣可以向任何接入它所在網(wǎng)絡(luò)的合法用戶提供統(tǒng)一的基于瀏覽器方式的操作和控制界面,瀏覽器成了設(shè)備的前端控制板。由于Web技術(shù)的開(kāi)放性和獨(dú)立平臺(tái)特性,大大降低了軟件系統(tǒng)和通信系統(tǒng)的設(shè)計(jì)、維護(hù)工作量,節(jié)省了人員培訓(xùn)費(fèi)用等,
10、提高了現(xiàn)場(chǎng)測(cè)試和控制設(shè)備的管理水平。本文設(shè)計(jì)的基于ARM的嵌入式Web服務(wù)器,響應(yīng)速度快,實(shí)時(shí)性強(qiáng),用戶通過(guò)瀏覽器中的表單向服務(wù)器發(fā)送控制信息,操作方便、快捷,經(jīng)過(guò)適當(dāng)修改,能夠很好地適應(yīng)智能家居等遠(yuǎn)程監(jiān)控的需要。2 嵌入式Web服務(wù)器的軟件構(gòu)成嵌入式 Web 服務(wù)器主要解決的問(wèn)題是通過(guò) Internet 來(lái)進(jìn)行遠(yuǎn)程訪問(wèn)和控制現(xiàn)場(chǎng)的設(shè)備,所以必須在嵌入式設(shè)備中配置 TCP/IP 協(xié)議和 Web 服務(wù)器 , 以解決網(wǎng)絡(luò)互聯(lián)問(wèn)題。但是嵌入式服務(wù)器系統(tǒng)只需要使用其中的某些基本 的功能,也要減去一些使用不到有功能 ,以節(jié)省有限的嵌入式資源。TCP/IP 此外還要用到的軟件資源有嵌入式實(shí)時(shí)操作系統(tǒng) 、H
11、TTP 協(xié)議 ,同時(shí)帶有 SMTP 和 SNMP 協(xié)議 ,使其具有網(wǎng)絡(luò)管理的簡(jiǎn)單功能 ,通過(guò)網(wǎng)絡(luò)可以對(duì)接 入到 Internet 上的設(shè)備進(jìn)行管理和控制。 2.1 CGI技術(shù)2.1.1 CGI概述由于傳統(tǒng)的Web 服務(wù)器無(wú)法實(shí)現(xiàn)Web 數(shù)據(jù)庫(kù)訪問(wèn)功能,CGI 技術(shù)充當(dāng)了訪問(wèn)數(shù)據(jù)庫(kù)的重要媒介。CGI 是使用應(yīng)用相關(guān)軟件增強(qiáng)Web 服務(wù)器的一種標(biāo)準(zhǔn)方法, 可以用任何語(yǔ)言書(shū)寫(xiě)。CGI 根據(jù)需求更新網(wǎng)頁(yè), 是一種公共網(wǎng)關(guān)接口。它通過(guò)客戶提供給Web 服務(wù)器的各種信息, 由Web 服務(wù)器啟動(dòng)指定CGI 模塊函數(shù), 完成客戶端與服務(wù)器端動(dòng)態(tài)的交互, 從而實(shí)現(xiàn)靜態(tài)HTML 網(wǎng)頁(yè)無(wú)法實(shí)現(xiàn)的功能( 如表單查詢、
12、數(shù)據(jù)庫(kù)查詢等)。通常CGI 應(yīng)用程序處于休眠狀態(tài), 通過(guò)使用一定的網(wǎng)絡(luò)事件觸發(fā)回調(diào)函數(shù)來(lái)實(shí)現(xiàn), 并顯示動(dòng)態(tài)頁(yè)面。例如,Web 服務(wù)器收到一個(gè)URL 里面包含的網(wǎng)頁(yè)請(qǐng)求時(shí), 將執(zhí)行結(jié)果返回給HTML 網(wǎng)頁(yè),CGI 可實(shí)現(xiàn)處理表格、數(shù)據(jù)庫(kù)查詢和電子郵件等操作。2.1.2CGI工作原理系統(tǒng)嵌入式Web服務(wù)器通過(guò)CGI程序來(lái)獲取用戶的請(qǐng)求、查詢條件,使用HTML方式描述結(jié)果并直接回送到客戶端的瀏覽器上,此過(guò)程中瀏覽器將用戶輸入的數(shù)據(jù)發(fā)送到Web服務(wù)器,Web服務(wù)器將數(shù)據(jù)使用STDIN(標(biāo)準(zhǔn)輸入)送到CGI程序。在執(zhí)行CGI程序后,會(huì)訪問(wèn)數(shù)據(jù)庫(kù)的記錄,最后使用STDOUT輸出HTML形式的結(jié)果文件,經(jīng)W
13、eb服務(wù)器送回瀏覽器顯示給用戶。使用CGI實(shí)現(xiàn)客戶與服務(wù)器的交互分一下九個(gè)標(biāo)準(zhǔn)步驟:Web客戶(瀏覽器)通過(guò)URL與Web服務(wù)器相連;服務(wù)發(fā)送HTML(和別的組成請(qǐng)求頁(yè)面的文件)給用戶,一旦頁(yè)面內(nèi)容傳完,這個(gè)連接自動(dòng)斷開(kāi);在客戶方,HTML腳本提示用戶做動(dòng)作或輸入,當(dāng)用戶響應(yīng)后客戶請(qǐng)求Web服務(wù)器建立一個(gè)新的連接;一旦建立連接,客戶把用戶輸入的數(shù)據(jù)傳送給Web服務(wù)器;Web服務(wù)器把這些信息和別的進(jìn)程變量傳給由HTML以URL形式提交的CGI程序;CGI程序根據(jù)輸入作出相應(yīng)的操作,產(chǎn)生對(duì)客戶的響應(yīng)(一般以一個(gè)HTML文檔的形式),并將其傳送給Web服務(wù)器;Web服務(wù)器把應(yīng)答數(shù)據(jù)傳送給客戶,并關(guān)閉
14、連接;圖2.4 CGI工作原理其中CGI與表單之間的信息交互方法有兩種模式:“GET”和“POST”。選擇哪一種模式取決于表單(FORM)的“METHOD”字段的設(shè)置,如果METHOD設(shè)定為GET,CGI程序從環(huán)境變量QUER_STRING中獲取數(shù)據(jù)。為了解釋數(shù)據(jù)和執(zhí)行需要的動(dòng)作,CGI程序必須要分析(處理)此字符串;如果METHOD設(shè)定為POST,數(shù)據(jù)會(huì)以STDIN,必須使用CONTENT_LENGTH值。在本設(shè)計(jì)中CGI程序采用的是POST方法。如果想從服務(wù)器獲得數(shù)據(jù)并且不改變服務(wù)器上的數(shù)據(jù)時(shí),應(yīng)該選用GET方法;也有例外,當(dāng)傳輸?shù)臄?shù)據(jù)很長(zhǎng)時(shí),選用POST方法較好;使用GET方式編寫(xiě)CGI
15、程序會(huì)更加簡(jiǎn)單,但是POST方式則更加先進(jìn);當(dāng)發(fā)送的數(shù)據(jù)將改變Web服務(wù)器端的數(shù)據(jù)時(shí),或者想給CGI程序傳輸大量數(shù)據(jù)(一般地,超過(guò)1024字節(jié),這是URL的極限長(zhǎng)度)時(shí),應(yīng)該選用POST方法。 3 嵌入式Web 服務(wù)器簡(jiǎn)述 嵌入式Web 服務(wù)器(Embedded Web Server)是指將Web 服務(wù)器嵌入到控制設(shè)備和現(xiàn)場(chǎng)測(cè)試中,借助于相關(guān)的軟硬件平臺(tái)系統(tǒng),將傳統(tǒng)嵌入式設(shè)備轉(zhuǎn)變成了以TCP/IP 為底層通信協(xié)議和Web 技術(shù)為核心的網(wǎng)絡(luò)測(cè)試及遠(yuǎn)程控制設(shè)備。嵌入式Web 服務(wù)器基于HTTP 協(xié)議運(yùn)作,具有標(biāo)準(zhǔn)的接口形式和通信協(xié)議,所以它可以向接入其所在網(wǎng)絡(luò)的用戶提供統(tǒng)一的基于瀏覽器的控制界面和
16、相關(guān)操作。這種技術(shù)因具有平臺(tái)獨(dú)立特性和開(kāi)放性,在某種程度上降低了開(kāi)發(fā)難度,使通信系統(tǒng)和軟件系統(tǒng)的設(shè)計(jì)維護(hù)工作更容易,提升了控制設(shè)備和現(xiàn)場(chǎng)測(cè)試的管理水平。如圖1所示是典型的嵌入式Web服務(wù)器的系統(tǒng)模型:圖1 典型的嵌入式Web服務(wù)器系統(tǒng)模型Internet可以提供多種網(wǎng)絡(luò)服務(wù),比如通過(guò)SMTP(簡(jiǎn)單郵件傳輸協(xié)議)收發(fā)郵件,通過(guò)FTP(文件傳輸協(xié)議)傳輸文件。Internet能得到如此大規(guī)模的流行,WWW(World Wide Web)技術(shù)居功至偉??梢哉f(shuō)如果沒(méi)有WWW和HTTP技術(shù)就不會(huì)有這么多人使用Internet,正是WWW技術(shù)把Internet的結(jié)構(gòu)、服務(wù)和應(yīng)用引上了一個(gè)新臺(tái)階。3.1 嵌
17、入式Web 服務(wù)器的主要應(yīng)用目前嵌入式Web 服務(wù)器主要用于設(shè)備管理和企業(yè)應(yīng)用程序網(wǎng)絡(luò)擴(kuò)展,它作為后臺(tái)程序在運(yùn)行嵌入式設(shè)備上,用戶可以通過(guò)網(wǎng)絡(luò)對(duì)設(shè)備進(jìn)行配置、監(jiān)測(cè)和控制,以保證設(shè)備正常而高效地運(yùn)作。Web 接口可以讓用戶借助于Web 瀏覽器和網(wǎng)絡(luò)來(lái)訪問(wèn)嵌入式設(shè)備。以這種方式對(duì)設(shè)備進(jìn)行管理不僅可以監(jiān)測(cè)和控制,而且可以根據(jù)設(shè)備的特點(diǎn)設(shè)計(jì)地更加人性化和智能化。Web 服務(wù)已成為支撐現(xiàn)代應(yīng)用程序的技術(shù)和系統(tǒng)的核心組件,目前大部分企業(yè)用戶都希望為他們的程序添加上基于Web 的用戶接口。3.2 嵌入式Web 服務(wù)器的優(yōu)點(diǎn)嵌入Web 服務(wù)器的優(yōu)點(diǎn)主要體現(xiàn)在以下幾個(gè)方面:1)它可以與Internet 連接,不
18、再使用專用的線路,這樣就具有了最大的普及范圍;2)傳輸內(nèi)容不局限于數(shù)據(jù)信息,還有圖像和聲音等多媒體信息;3)通信協(xié)議(HTTP)獨(dú)立于系統(tǒng)平臺(tái),而且是標(biāo)準(zhǔn)而且公開(kāi)的;4)Web 頁(yè)面使用的HTML 語(yǔ)言是統(tǒng)一的網(wǎng)頁(yè)語(yǔ)言, 這使標(biāo)準(zhǔn)化界面與客戶端的軟硬件平臺(tái)相互獨(dú)立, 節(jié)省了客戶端的開(kāi)發(fā)工作;5)Web 架構(gòu)能夠減少了在設(shè)計(jì)系統(tǒng)時(shí)的工作量;6)存在大量的工具和函數(shù)庫(kù),減少了開(kāi)發(fā)的工作量;7)嵌入式Web 服務(wù)器具有通用性,能夠嵌入到任何設(shè)備當(dāng)中。通過(guò)應(yīng)用程序接口,服務(wù)器可以運(yùn)行程序去實(shí)現(xiàn)高級(jí)功能,普通的監(jiān)控方式達(dá)不到這樣的效果。3.3 嵌入式Web 服務(wù)器實(shí)現(xiàn)原理Web 服務(wù)器監(jiān)聽(tīng)來(lái)自客戶端請(qǐng)求
19、,并根據(jù)請(qǐng)求類(lèi)型提供相對(duì)應(yīng)的服務(wù)。它將Web 服務(wù)器引入到現(xiàn)場(chǎng)嵌入式設(shè)備中,并將信息采集與發(fā)布都集成到現(xiàn)場(chǎng)的嵌入式設(shè)備中。在相應(yīng)的軟硬件平臺(tái)支持下,利用標(biāo)準(zhǔn)的通信協(xié)議和接口形式,內(nèi)嵌于嵌入式設(shè)備的Web 服務(wù)器就具備了向接入它所在網(wǎng)絡(luò)的合法用戶提供統(tǒng)一的基于瀏覽器方式的控制界面和操作,此時(shí)瀏覽器成了設(shè)備的前端控制板。當(dāng)前在嵌入式應(yīng)用領(lǐng)域,主要通過(guò)兩種方式將嵌入式系統(tǒng)轉(zhuǎn)變?yōu)榍度胧絎ebServer:1)通過(guò)網(wǎng)關(guān)服務(wù)器實(shí)現(xiàn)Internet 接入;2)直接通過(guò)TCP/IP 協(xié)議實(shí)現(xiàn)嵌入式設(shè)備的Internet 接入。4 嵌入式Web 服務(wù)器硬件整體結(jié)構(gòu) 嵌入式Web 服務(wù)器的硬件系統(tǒng)包含了具有Web
20、 通信能力的微處理器,它可以通過(guò)現(xiàn)場(chǎng)總線與應(yīng)用系統(tǒng)相連,也可以與前端的應(yīng)用系統(tǒng)直接集成在一起。其硬件結(jié)構(gòu)如圖2所示。系統(tǒng)中的FLASH ROM 存儲(chǔ)器是用來(lái)存儲(chǔ)軟件系統(tǒng)的內(nèi)核、HTML 文檔、TCP/IP 協(xié)議;RAM 存儲(chǔ)器用于存儲(chǔ)各種數(shù)據(jù);網(wǎng)絡(luò)接口用于與Internet 連接;前端現(xiàn)場(chǎng)測(cè)控的硬件完成對(duì)現(xiàn)場(chǎng)設(shè)備的監(jiān)測(cè)、監(jiān)測(cè)、報(bào)警、自動(dòng)控制等功能;微型處理器負(fù)責(zé)全體的管理與運(yùn)行;人機(jī)接口是可選條件,實(shí)現(xiàn)在本地對(duì)現(xiàn)場(chǎng)設(shè)備的人工監(jiān)控。數(shù)據(jù)存儲(chǔ)器RAM存儲(chǔ)器FLASH ROM 網(wǎng)絡(luò)接口部件 微型處理器 應(yīng)用系統(tǒng)硬件 圖2 (a) 嵌入式系統(tǒng)web 服務(wù)器硬件結(jié)構(gòu) Internet虛擬文件系統(tǒng)文檔(網(wǎng)
21、頁(yè)頁(yè)面小程序)HTP引擎配置模塊安全模塊應(yīng)用程序接口嵌入式操作系統(tǒng) 應(yīng)用系統(tǒng)管理嵌入式應(yīng)用系統(tǒng) 圖2(b) 嵌入式系統(tǒng)Web 服務(wù)器軟件系統(tǒng)4.1 嵌入式Web 服務(wù)器軟件構(gòu)成 嵌入式Web 服務(wù)器主要解決的問(wèn)題是通過(guò)Internet 來(lái)進(jìn)行遠(yuǎn)程訪問(wèn)和控制現(xiàn)場(chǎng)的設(shè)備,所以必須在嵌入式設(shè)備中配置TCP/IP 協(xié)議和Web 服務(wù)器,以解決網(wǎng)絡(luò)互聯(lián)問(wèn)題。但是嵌入式服務(wù)器系統(tǒng)只需要使用其中的某些基本的功能,TCP/IP 也要減去一些使用不到有功能,以節(jié)省有限的嵌入式資源。此外還要用到的軟件資源有嵌入式實(shí)時(shí)操作系統(tǒng)、HTTP 協(xié)議, 同時(shí)帶有SMT P 和SNMP 協(xié)議,使其具有網(wǎng)絡(luò)管理的簡(jiǎn)單功能,通過(guò)
22、網(wǎng)絡(luò)可以對(duì)接入到Internet 上的設(shè)備進(jìn)行管理和控制。4.2 精簡(jiǎn)TCP/IP 協(xié)議及實(shí)現(xiàn) 嵌入式Web 服務(wù)器軟件中必須實(shí)現(xiàn)TCP/IP 協(xié)議,但要根據(jù)實(shí)際的需求作相應(yīng)的裁減。精簡(jiǎn)的TCP/IP 協(xié)議通常只包含TCP,IP,ARP,ICMP 等協(xié)議。4.2.1 ARP 協(xié)議及其實(shí)現(xiàn) 嵌入式Web 服務(wù)器軟件方面需實(shí)現(xiàn)ARP 協(xié)議中的應(yīng)答部分: 嵌入式Web 服務(wù)器在收到遠(yuǎn)程ARP 請(qǐng)求后, 將ARP 請(qǐng)求報(bào)文中目標(biāo)機(jī)和本地IP、物理地址進(jìn)行了交換處理,并將EWS 的物理地址寫(xiě)在ARP 應(yīng)答報(bào)文的本地物理地址段。實(shí)際上此ARP 協(xié)議的實(shí)現(xiàn)是通過(guò)向網(wǎng)絡(luò)接口層發(fā)送含有目標(biāo)機(jī)物理地址和本機(jī)IP
23、地址的ARP 應(yīng)答報(bào)文這一過(guò)程來(lái)完成。4.2.2 ICMP 協(xié)議及其實(shí)現(xiàn) ICMP(網(wǎng)際控制報(bào)文協(xié)議)主要用來(lái)將處理一個(gè)IP 數(shù)據(jù)過(guò)程中的錯(cuò)誤顯示出來(lái),并提供相關(guān)狀態(tài)和管理信息。ICMP 的差錯(cuò)信息由8 位代碼和8 位類(lèi)型組成。嵌入式Web 服務(wù)器簡(jiǎn)化了ICMP 協(xié)議,只需簡(jiǎn)化實(shí)現(xiàn)與Ping 命令相關(guān)的ICMP 報(bào)文處理部分。具體可通過(guò)編制PingACK()過(guò)程來(lái)完成,用PingACK()監(jiān)測(cè)Ping 命令,如果監(jiān)測(cè)到對(duì)本機(jī)的Ping 連接,則發(fā)送類(lèi)型為0 的ICMP 報(bào)文。4.2.3 IP 協(xié)議及其實(shí)現(xiàn) IP 協(xié)議提供無(wú)連接的、不可靠的數(shù)據(jù)分組傳送服務(wù),在嵌入式Web 服務(wù)器中,IP 協(xié)議只
24、需要完成接收數(shù)據(jù)的IP 解包和發(fā)送數(shù)據(jù)的IP 封裝。IP 協(xié)議在嵌入式Web 服務(wù)器中的實(shí)現(xiàn)可通過(guò)以下兩個(gè)過(guò)程來(lái)完成:1)IPPack(),此過(guò)程將傳輸層傳來(lái)數(shù)據(jù)的前部添加20 字節(jié)的IP 報(bào)頭。2)IPUnpack( ),此過(guò)程提取網(wǎng)絡(luò)接口層送來(lái)的IP 報(bào)頭的20 字節(jié)數(shù)據(jù)并與本機(jī)的IP 地址進(jìn)行比較,如果相同,記錄對(duì)方的IP 地址,并去除報(bào)數(shù)據(jù)的前20 字節(jié)的報(bào)頭;否則,丟棄。4.2.4 TCP 協(xié)議及實(shí)現(xiàn) TCP 協(xié)議提供面向連接的、可靠的字節(jié)流傳輸服務(wù)。建立連接、數(shù)據(jù)傳輸和關(guān)閉連接的工作過(guò)程,保證了TCP 協(xié)議數(shù)據(jù)傳輸?shù)目煽啃?。在?shù)據(jù)傳輸前,必須在信源與信宿建立一條連接,只有連接成功才
25、可以發(fā)送數(shù)據(jù)。此外,接收端也要對(duì)收到的第一個(gè)報(bào)文進(jìn)行確認(rèn),未經(jīng)確認(rèn)的報(bào)文被認(rèn)為是出錯(cuò)。由于嵌入式Web 服務(wù)器傳輸數(shù)據(jù)量較少,支持單進(jìn)程的TCP 任務(wù)即可,故只需要簡(jiǎn)化TCP協(xié)議的數(shù)據(jù)重組和分組的功能。方法為:嵌入式Web 服務(wù)器在本地打開(kāi)一個(gè)端口監(jiān)聽(tīng)TCP 報(bào)文數(shù)據(jù),監(jiān)測(cè)到遠(yuǎn)程用戶對(duì)系統(tǒng)的TCP請(qǐng)求連接時(shí),系統(tǒng)發(fā)送確認(rèn)報(bào)文并建立TCP 連接,然后開(kāi)始傳送數(shù)據(jù)。發(fā)送數(shù)據(jù)時(shí),TCP 狀態(tài)機(jī)會(huì)在數(shù)據(jù)前面加上TCP 報(bào)頭后發(fā)送到IP 層; 接收數(shù)據(jù)時(shí), 從IP 層來(lái)的數(shù)據(jù)經(jīng)過(guò)TCP 狀態(tài)機(jī)去掉TCP 報(bào)頭后送到應(yīng)用層。TCP 協(xié)議軟件可通過(guò)兩個(gè)過(guò)程來(lái)實(shí)現(xiàn):1)TCPPack( ),將TCP 報(bào)頭添加
26、到應(yīng)用層送來(lái)的數(shù)據(jù)前部;2)TCPUnpack( ),將網(wǎng)絡(luò)接口層送來(lái)的TCP 報(bào)數(shù)據(jù)的34 字節(jié)數(shù)據(jù)(目的端口號(hào))與系統(tǒng)默認(rèn)端口作對(duì)比,如相同,則去除數(shù)據(jù)報(bào)的前20 字節(jié)的報(bào)頭;否則,丟棄。TCP 數(shù)據(jù)報(bào)重發(fā)、確認(rèn)是通過(guò)發(fā)送特定內(nèi)容的報(bào)文來(lái)控制。4.3 HTTP 協(xié)議 HTTP 引擎是嵌入式Web 服務(wù)器的核心,它是瀏覽器與Web 服務(wù)器通信的協(xié)議。HTTP 規(guī)定了瀏覽器和服務(wù)器之間傳輸?shù)南⒏袷郊案鞣N控制信息和發(fā)送和處理請(qǐng)求的標(biāo)準(zhǔn)方式,從而定義了所有Web 通信的基本框架。如圖所示,在嵌入式Web 服務(wù)器中,為了不影響嵌入式系統(tǒng)的CPU 和內(nèi)存資源而又得到一個(gè)穩(wěn)定的用戶界面,應(yīng)該使用HTT
27、P1.0 標(biāo)準(zhǔn)。 HTTP客戶端 HTML文檔 HTTP服務(wù)器端 CGI4.4 CGI 接口 CGI 也就是通用網(wǎng)關(guān)接口,它定義了CGI 腳本與Web 服務(wù)器之間的接口標(biāo)準(zhǔn),其主要功能是在Web 環(huán)境下,將客戶端的一些信息傳送給服務(wù)器端,Web 服務(wù)器接收有關(guān)信息并放入環(huán)境變量,然后啟動(dòng)所指定的CGI 腳本以完成特定的工作。CGI 腳本從環(huán)境變量中獲取相關(guān)信息來(lái)運(yùn)行,最后以HTML 格式輸出相應(yīng)的執(zhí)行結(jié)果返回給瀏覽器端。由于用戶能傳遞不同的參數(shù)給CGI 腳本,所以CGI 技術(shù)使得瀏覽器和服務(wù)器之間具有交互性。5 系統(tǒng)軟件設(shè)計(jì)5.1 嵌入式操作系統(tǒng) uClinux 是一種專為嵌入式系統(tǒng)設(shè)計(jì)的Li
28、nux,它從Linux 2.0/2.4 內(nèi)核派生而來(lái),專門(mén)應(yīng)用于沒(méi)有MMU的CPU9。uClinux 帶有一個(gè)完整的TCP/IP 協(xié)議,同時(shí)它還支持許多其他網(wǎng)絡(luò)協(xié)議。因此,uClinux對(duì)于嵌入式系統(tǒng)來(lái)說(shuō),是一個(gè)網(wǎng)絡(luò)完備的操作系統(tǒng)。另外,由于Linux 的源代碼開(kāi)放性,任何新的網(wǎng)絡(luò)協(xié)議都可以很容易加入到內(nèi)核中,用戶可以方便地開(kāi)發(fā)定制,不受任何限制。正是基于以上原因,本系統(tǒng)采用了uClinux作為嵌入式Web服務(wù)器的操作系統(tǒng)。5.2 Boa的移植 在uClinux 下構(gòu)建Boa服務(wù)器的方法由以下步驟完成: (1)從 上下載Boa的源代碼,將其解壓后生成Makefile 文件
29、。修改Makefile 文件,將文件中的CC=gcc 改為CC=arm-linux-gcc,CPP=gcc-E 改為CPP=arm-linux-gcc-E。然后運(yùn)行make 進(jìn)行編譯,得到可執(zhí)行文件boa,再將調(diào)試信息舍去,使其瘦身。 (2)修改boa.conf文件。Boa啟動(dòng)時(shí)需要用到一個(gè)配置文件boa.conf,該文件用于配置Boa服務(wù)器的相應(yīng)接口、服務(wù)器名稱、相關(guān)文件路徑等。在這里,將Usernobody 改為User 0,將Group nogroup 改為Group 0,將DocumentRoot/var/www 改為DocumentRoot/etc/boa/html,將ScriptA
30、lias/cgi-bin/usr/lib/cgi-bin/修改為ScriptAlias/cgi-bin/etc/boa/cgi-bin/。 (3)由于默認(rèn)的根文件系統(tǒng)是只讀的,所以在編譯內(nèi)核前,需要根據(jù)配置文件boa.conf 在文件系統(tǒng)中建立相關(guān)目錄。 (4)將可執(zhí)行文件boa、配置文件boa.conf、可執(zhí)行的CGI程序和網(wǎng)頁(yè)文件分別放入對(duì)應(yīng)的目錄中,并在/etc/boa/html中建立主頁(yè)文件index.html。 (5)重新編譯內(nèi)核,將編譯好的內(nèi)核下載到開(kāi)發(fā)板。5.3 軟件實(shí)現(xiàn) 為了實(shí)現(xiàn)客戶瀏覽器同Web 服務(wù)器之間的動(dòng)態(tài)交互性,需要采用某種服務(wù)器端技術(shù)來(lái)動(dòng)態(tài)生成Web頁(yè)。目前,實(shí)現(xiàn)動(dòng)
31、態(tài)網(wǎng)頁(yè)的四種技術(shù)分別是CGI、ASP、PHP 和JSP,但uClinux 不支持ASP 和PHP,故采用CGI來(lái)實(shí)現(xiàn)動(dòng)態(tài)Web頁(yè)面。 CGI是一種在Web 服務(wù)器中運(yùn)行的程序,它定義了Web 服務(wù)器與其他可執(zhí)行程序之間進(jìn)行交互的接口標(biāo)準(zhǔn)。當(dāng)Web 服務(wù)器接收到客戶瀏覽器發(fā)送的HTTP請(qǐng)求時(shí),先判斷它是靜態(tài)頁(yè)面請(qǐng)求還是CGI 動(dòng)態(tài)請(qǐng)求,如果是后者就將數(shù)據(jù)傳遞給CGI 程序,并重定向CGI程序的輸出到Web 頁(yè),CGI程序在處理時(shí)將數(shù)據(jù)封裝成HTML形式發(fā)送到輸出,這樣客戶端瀏覽器就可以看到對(duì)應(yīng)的Web 頁(yè)。軟件的設(shè)計(jì)框架如圖3所示。開(kāi)始 監(jiān)聽(tīng)連接連接是否合法 N Y 接受并解析HTTP請(qǐng)求 靜態(tài)
32、頁(yè)面請(qǐng)求/CGI動(dòng)態(tài)請(qǐng)求靜態(tài)頁(yè)面請(qǐng)求 CGI動(dòng)態(tài)請(qǐng)求 直接輸出HTML靜態(tài)文件數(shù)據(jù)封裝并發(fā)送由CGI程序產(chǎn)生網(wǎng)頁(yè)內(nèi)容 圖3 軟件設(shè)計(jì)框圖 其中的監(jiān)聽(tīng)連接部分是一個(gè)無(wú)限循環(huán),它總在監(jiān)聽(tīng)來(lái)自瀏覽器端的連接請(qǐng)求,如果發(fā)現(xiàn)連接合法,就建立起客戶端瀏覽器和Web 服務(wù)器的連接??梢岳胾Clinux提供的Socket套接字在80端口進(jìn)行監(jiān)聽(tīng)連接,其過(guò)程為:socket()bind()listen()accept()。 在Web 環(huán)境中,瀏覽器與服務(wù)器之間的數(shù)據(jù)交互,很多是通過(guò)HTTP中的Form表單完成的,F(xiàn)orm提供了兩種數(shù)據(jù)傳輸?shù)姆绞紾ET 和POST 方法。雖然HTTP支持的方法有多種,考慮到硬件
33、資源的限制和系統(tǒng)響應(yīng)的速度,這里只響應(yīng)GET和POST兩種請(qǐng)求。在嵌入式服務(wù)器端,CGI程序接收到來(lái)自客戶端瀏覽器的請(qǐng)求,將請(qǐng)求分解后,查看其請(qǐng)求的方法是GET還是POST。當(dāng)為GET請(qǐng)求時(shí),從請(qǐng)求行中讀取用戶請(qǐng)求的文件名;當(dāng)為POST 請(qǐng)求時(shí),讀取請(qǐng)求行中的文件名和報(bào)文主體中用戶提交的表單數(shù)據(jù),并對(duì)表單數(shù)據(jù)進(jìn)行處理。 當(dāng)用戶在網(wǎng)頁(yè)中輸入數(shù)據(jù)時(shí),數(shù)據(jù)會(huì)先傳給Web服務(wù)器,再傳給CGI 程序,而Web 服務(wù)器將數(shù)據(jù)傳給CGI 程序前,會(huì)先經(jīng)過(guò)一個(gè)編碼程序,這樣CGI 程序如果想要得到用戶輸入的原始數(shù)據(jù),就需要對(duì)數(shù)據(jù)進(jìn)行解碼。Web 服務(wù)器中對(duì)用戶數(shù)據(jù)進(jìn)行編碼的原則是:每個(gè)輸入字段的名稱和用戶輸入
34、的數(shù)據(jù)會(huì)形成一系列的鍵-值對(duì),鍵和值由“=”分開(kāi);每個(gè)配好對(duì)的鍵-值之間,由“&”分開(kāi);對(duì)字段中的特殊符號(hào),用十六進(jìn)制的ASCII 碼的方式來(lái)編碼,空格則以“+”來(lái)編碼。因此,CGI 程序要想對(duì)數(shù)據(jù)解碼,就需要將每個(gè)配好對(duì)的鍵=值分離出來(lái),去除配對(duì)數(shù)據(jù)間的“&”,把“+”置換成空格,將十六進(jìn)制的ASCII 碼置換成原來(lái)的數(shù)據(jù)。最后,就可以得到用戶輸入的原始數(shù)據(jù)。 雖然動(dòng)態(tài)網(wǎng)頁(yè)的處理由CGI完全可以實(shí)現(xiàn),但由于Web 服務(wù)器每運(yùn)行一個(gè)CGI程序,就需要fork 一個(gè)進(jìn)程為其服務(wù),這樣服務(wù)器與瀏覽器的交互越多,對(duì)服務(wù)器的總體性能影響就越大。因此,對(duì)于數(shù)據(jù)的后期處理和顯示方式等任務(wù),
35、可以采用基于客戶端瀏覽器的動(dòng)態(tài)HTML技術(shù)來(lái)完成,這里由腳本語(yǔ)言JavaScript來(lái)實(shí)現(xiàn),以減輕Web服務(wù)器的負(fù)擔(dān)。6 實(shí)驗(yàn)測(cè)試在Web 服務(wù)器端生成網(wǎng)頁(yè)index.html,放置在目錄etc/boa/html 下。編寫(xiě)的CGI程序,放置在目錄etc/boa/cgi-bin 下。將目標(biāo)板的IP 地址設(shè)置為25 后,啟動(dòng)Boa 服務(wù)器。在任意一個(gè)Web 瀏覽器上輸入http:/25,可以看到服務(wù)器的默認(rèn)網(wǎng)頁(yè)。當(dāng)用戶選擇相關(guān)信息并提交后,CGI將其接收,并根據(jù)提交內(nèi)容對(duì)家居設(shè)備進(jìn)行相應(yīng)控制,圖3(a)就是用戶對(duì)空調(diào)進(jìn)行設(shè)置的測(cè)試頁(yè)面。同時(shí),用戶也可以對(duì)家居設(shè)備的目前狀態(tài)進(jìn)行查詢,查詢結(jié)果如圖4(b)所示。】 圖4(a)Web服務(wù)器的空調(diào)控制測(cè)試頁(yè)面 圖4(b)Web服務(wù)器的家居狀態(tài)查詢頁(yè)面7 結(jié)束語(yǔ) 本文從整體上介紹了嵌入式Web 服務(wù)器的體系結(jié)構(gòu)、程序的組件視圖、嵌入式Web 服務(wù)器的組成模塊以及怎樣精簡(jiǎn)TCP/IP協(xié)議以減少不必要的資源開(kāi)支和適應(yīng)嵌入式系統(tǒng)對(duì)資源的要求。支持Web 瀏覽功能的嵌入式設(shè)備不但可以簡(jiǎn)化設(shè)備的設(shè)計(jì),而且減輕了用戶的應(yīng)用難度,可以通過(guò)瀏覽器方便地設(shè)置嵌入式設(shè)備的參數(shù)。通過(guò)嵌入式Web 技術(shù)實(shí)現(xiàn)設(shè)備的遠(yuǎn)程監(jiān)控、管理和維護(hù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 動(dòng)漫服務(wù)合同范本
- 冷庫(kù)收購(gòu)羊合同范例
- 計(jì)算機(jī)駐場(chǎng)維護(hù)服務(wù)合同范本
- 人員借調(diào)服務(wù)合同范本
- 2025年中國(guó)變頻發(fā)電機(jī)行業(yè)市場(chǎng)發(fā)展監(jiān)測(cè)及投資戰(zhàn)略咨詢報(bào)告
- 保定小學(xué)勞務(wù)合同范本
- 個(gè)人出售合同范本
- 供銷(xiāo)食品合同范例
- 2025年度城市公園場(chǎng)地租賃使用合同范本
- 2025年度建筑工地建筑垃圾買(mǎi)賣(mài)及環(huán)保處理一體化合同范本
- 基于單片機(jī)的交通燈控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 2024年執(zhí)業(yè)醫(yī)師考試-醫(yī)師定期考核(口腔)筆試參考題庫(kù)含答案
- 中國(guó)律師學(xué) 課件 陳衛(wèi)東 第10-17章 律師收費(fèi)制度-律師非訴訟業(yè)務(wù)(二)
- (高清版)TDT 1040-2013 土地整治項(xiàng)目制圖規(guī)范
- 中國(guó)移動(dòng)行測(cè)測(cè)評(píng)題及答案
- 精神科患者服藥依從性健康宣教
- 設(shè)備維保的維修流程與指導(dǎo)手冊(cè)
- 急性腎小球腎炎病人護(hù)理課件
- 招標(biāo)代理服務(wù)的關(guān)鍵流程與難點(diǎn)解析
- GB/T 5465.2-2023電氣設(shè)備用圖形符號(hào)第2部分:圖形符號(hào)
- 《三國(guó)演義》中的佛教文化:以黃承兒為例
評(píng)論
0/150
提交評(píng)論