日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]單片機嵌入式Internet技術(shù)的Web應(yīng)用實現(xiàn)

嵌入式Internet是指電子設(shè)備通過嵌入式模塊而非PC直接接入到Internet,與Internet進行信息交互的過程。目前Internet成為全球最大、信息最豐富的互聯(lián)網(wǎng)絡(luò)。用戶甚至希望家電設(shè)備、儀器儀表以及工業(yè)生產(chǎn)中的數(shù)據(jù)采集與控制等設(shè)備也能夠連接到Internet上,因為這意味著用戶可以方便、快捷、低廉地通過網(wǎng)絡(luò)進行遠程控制、監(jiān)測和信息傳送。美國貝爾實驗室的科學(xué)家預(yù)測,未來將會產(chǎn)生比PC時代多成百上千倍的超級嵌入式Internet服務(wù)器。Internet技術(shù)和嵌入式技術(shù)的相互融合,為嵌入式系統(tǒng)的設(shè)計和產(chǎn)品開發(fā)帶來了前所未有的發(fā)展空間和機遇。
1 單片機嵌入式Web應(yīng)用的硬件系統(tǒng)設(shè)計
    在硬件系統(tǒng)的設(shè)計中,本文采用了ATMEL公司開發(fā)的高性能8位AVR(Advanced RISC)單片機AT90S8515,該單片機內(nèi)置8 KB可編程Flash,使用精簡指令集,支持C語言及匯編語言,與MCS 8051系列單片機相比在性能上有很大的提高,在目前單片機開發(fā)中用得較多。因此利用AT90S8515單片機作為嵌入式系統(tǒng)的微處理器,通過網(wǎng)絡(luò)控制芯片將嵌入式系統(tǒng)與Internet相連接。其硬件系統(tǒng)框圖如圖1所示。

    在電路的硬件系統(tǒng)組成中,注意以下幾點:
    (1)單片機與網(wǎng)卡芯片的接口電路
    AT90S8515單片機所提供的8位數(shù)據(jù)總線PA0~PA7分別對應(yīng)連接網(wǎng)卡的SD0~SD7引腳;5根地址線PC0~PC4對應(yīng)連接網(wǎng)卡的SA0~SA4引腳;讀信號線RD、寫信號線WR與RTL8019AS的相應(yīng)信號線連接[1]。復(fù)位通過PB0控制,PB1片選地址使能[2]。外接時鐘電路單片機為8 MHz,網(wǎng)卡芯片為20 MHz。
    (2)存儲器擴展電路
    一般單片機片內(nèi)數(shù)據(jù)存儲器容量為64 KB,這樣的存儲空間在進行單片機Web應(yīng)用系統(tǒng)的開發(fā)時顯得過小。因此需要擴展數(shù)據(jù)存儲器,擴展容量隨系統(tǒng)數(shù)據(jù)使用量而定。對于Web應(yīng)用,需要很大的存儲空間存放網(wǎng)頁等數(shù)據(jù),所以本系統(tǒng)采用靜態(tài)RAM HM62256芯片作為存儲器擴展電路。
    (3)RTL8019AS工作方式
    RTL8019AS有3種工作方式:跳線方式、即插即用方式和RT免跳線方式[1]。在嵌入式應(yīng)用場合,為了降低系統(tǒng)的復(fù)雜性,單片機盡量少接不必要的芯片。所以將RTL8019AS選擇工作在跳線方式。其IOCS16B引腳接下拉電阻,JP引腳端接高電平。
    (4)MAX232串口電平轉(zhuǎn)換電路
    在現(xiàn)場控制端,由于單片機輸出為TTL電平,現(xiàn)場數(shù)據(jù)采集系統(tǒng)(如傳感器)輸出為EIA電平,而MAX232芯片可以完成單片機和現(xiàn)場數(shù)據(jù)采集系統(tǒng)間的雙向電平轉(zhuǎn)換[3]。
    (5)網(wǎng)絡(luò)隔離濾波接口電路
    在網(wǎng)絡(luò)接入端需要一個網(wǎng)絡(luò)隔離濾波器HR901170A。HR901170A主要對系統(tǒng)電路起保護作用,減少信號共模干擾,完成信號的傳輸。HR901170A的內(nèi)部集成了RJ45接口,可以直接接入到Internet。
2 嵌入式Internet的TCP/IP協(xié)議實現(xiàn)
2.1 嵌入式TCP/IP協(xié)議

    軟件編程是實現(xiàn)嵌入式Web系統(tǒng)的關(guān)鍵。Web通信中的數(shù)據(jù)封裝、解析都是由單片機軟件實現(xiàn)的。軟件實現(xiàn)主要包括兩部分:一是單片機精簡TCP/IP協(xié)議棧的實現(xiàn),對數(shù)據(jù)的逐層打包、封幀、傳送等流程[2];二是單片機Web應(yīng)用服務(wù)的實現(xiàn)。
    由單片機組成的嵌入式Web往往應(yīng)用于特殊的、專用的領(lǐng)域,一般不需要太多的功能,這與PC機上的網(wǎng)絡(luò)應(yīng)用有很大的不同。支持PC機進行Internet通信的TCP/IP協(xié)議是一個非常龐大的協(xié)議簇。而單片機芯片沒有足夠的空間資源,所以從嵌入式網(wǎng)絡(luò)應(yīng)用和單片機空間資源兩個方面考慮,都沒有必要在單片機上實現(xiàn)完整的TCP/IP協(xié)議。目前市場上沒有統(tǒng)一的標(biāo)準(zhǔn)的實現(xiàn)嵌入式Internet的TCP/IP協(xié)議軟件,需要開發(fā)人員根據(jù)具體應(yīng)用的需要去開發(fā)一套適用于單片機的嵌入式TCP/IP協(xié)議,工作量異常龐大,開發(fā)周期較長。一種比較簡單和易實現(xiàn)的做法是使用由瑞士計算機科學(xué)院的Adam Dunkels等開發(fā)的免費公開源代碼的小型TCP/IP協(xié)議,即uIP協(xié)議棧,它專門為8位和16位單片機編寫。uIP的代碼大小為3 304 B,對單片機RAM的需求為360 B,遠遠小于TCP/IP協(xié)議對資源的要求。有關(guān)uIP詳述和應(yīng)用例程可見參考文獻[4]。[!--empirenews.page--]
2.2 uIP驅(qū)動底層網(wǎng)絡(luò)設(shè)備RTL8019AS
    uIP是一個僅包含3層網(wǎng)絡(luò)層核心協(xié)議的協(xié)議棧,uIP自身不包含任何類型的底層網(wǎng)絡(luò)驅(qū)動和上層應(yīng)用程序,它只提供接口函數(shù)供用戶開發(fā)使用。因此為了完成與底層網(wǎng)絡(luò)設(shè)備的交互,用戶必須根據(jù)網(wǎng)絡(luò)設(shè)備的類型,在uIP中自行實現(xiàn)對底層網(wǎng)絡(luò)設(shè)備的驅(qū)動。本文采用的網(wǎng)絡(luò)設(shè)備是RTL8019AS網(wǎng)卡,因此需要在uIP中實現(xiàn)對RTL8019AS網(wǎng)卡的驅(qū)動[4]。
    RTL8019AS驅(qū)動程序包括:RTL8019AS芯片初始化、芯片復(fù)位以及數(shù)據(jù)的發(fā)送和接收。RTL8019AS芯片初始化可以通過初始化函數(shù)void init_8019(void)完成。芯片復(fù)位通過芯片上的RSTDRV引腳執(zhí)行復(fù)位操作,該引腳高電平有效。
3 單片機上嵌入式Web服務(wù)器的軟件實現(xiàn)
3.1 Web服務(wù)器的建立

    在進行以上的工作之后,用戶就可以建立Web服務(wù)器,通過uIP協(xié)議實現(xiàn)不同的微控制器或工作站之間的通信。Web服務(wù)器和客戶端瀏覽器間的通信采用HTTP協(xié)議。嵌入式系統(tǒng)經(jīng)常需要根據(jù)用戶的指令,采集系統(tǒng)的當(dāng)前數(shù)據(jù)信息傳送給客戶端瀏覽器,為實現(xiàn)這種客戶端瀏覽器和Web服務(wù)器的動態(tài)交互,需要在服務(wù)器端采用通用網(wǎng)關(guān)接口CGI(Common Gateway Interface)技術(shù)。CGI是一個在服務(wù)器上運行的程序,它分析處理用戶發(fā)送到服務(wù)器上的數(shù)據(jù)信息,完成動態(tài)文件資源的創(chuàng)建和處理,再將用戶信息返回給客戶端。
    Web服務(wù)器初始化完成后,服務(wù)器等待客戶端的連接請求,客戶端瀏覽器輸入服務(wù)器的IP地址后發(fā)一個物理地址解析協(xié)議(ARP)請求包,服務(wù)器收到后進行應(yīng)答??蛻舳耸盏綉?yīng)答包后發(fā)送超文本傳輸協(xié)議(HTTP)包,服務(wù)器收到HTTP包后開始建立與客戶端的TCP連接并作出對此包的響應(yīng)??蛻舳耸盏巾憫?yīng)包后即斷開連接,服務(wù)器偵測到客戶端斷開了連接也同時斷開連接。
3.2 Web服務(wù)器數(shù)據(jù)處理流程
    當(dāng)系統(tǒng)的網(wǎng)卡接收到從網(wǎng)絡(luò)傳送來的數(shù)據(jù)包后,首先分析目的地址是否與自己的物理地址一致,如果不一致,則丟棄此包;如果一致,則讀取網(wǎng)絡(luò)數(shù)據(jù)并分析。如果是ARP請求包,則轉(zhuǎn)入ARP處理程序,并發(fā)送一個ARP應(yīng)答包給客戶端。如果是IP包,則交由IP層處理,同時去掉以太網(wǎng)首部[4-5]。IP層根據(jù)IP首部的協(xié)議字段分析該IP包屬于什么數(shù)據(jù)包,如果是UDP包則,丟棄;如果是ICMP請求包,則發(fā)送一個ICMP應(yīng)答包給客戶端;如果是TCP包且IP地址和端口號正確,則接收數(shù)據(jù)包,數(shù)據(jù)解包后,將數(shù)據(jù)部分通過串口輸出,控制MAX232現(xiàn)場設(shè)備。反之,如果現(xiàn)場通過串口發(fā)送數(shù)據(jù)到單片機,單片機將數(shù)據(jù)按照TCP協(xié)議格式打包,送入RTL8019AS,由RTL8019AS將數(shù)據(jù)發(fā)送到局域網(wǎng)中。根據(jù)需要還可以在收到串口數(shù)據(jù)時,先完成數(shù)據(jù)預(yù)處理,再將處理好的數(shù)據(jù)送到局域網(wǎng)。具體的處理過程如圖2所示。

3.3 單片機上的Web服務(wù)器編程
    uIP協(xié)議棧提供了一個稱為宏的UIP_APPCALL的應(yīng)用程序接口供用戶設(shè)計應(yīng)用程序時使用[4]。要在單片機上實現(xiàn)Web Server服務(wù),首先將該宏定義為一個應(yīng)用程序函數(shù)名,然后在此函數(shù)中實現(xiàn)HTTP協(xié)議。完成后,用戶可以從局域網(wǎng)內(nèi)的任何客戶機訪問該單片機Web服務(wù)器。如果分配一個公網(wǎng)IP地址,則也可以從Internet上訪問此Web服務(wù)器。實現(xiàn)的程序如下:[!--empirenews.page--]
    #define UIP_APPCALL uip_http /*定義宏UIP_APPCALL為uip_http的應(yīng)用程序函數(shù)*/
    void uip_http(void)           /*開始實現(xiàn)http協(xié)議建立Web服務(wù)器*/
    {struct uip http_state*s;
    s=(struct uip app_state*)uip_conn->appstate;
    if(uip_connected())
      {…                       /*打開連接接口函數(shù),開始一個新的應(yīng)用程序連接*/
          }
     if(uip_newdat()||uip_rexmit())  /*接收數(shù)據(jù)接口或重發(fā)數(shù)據(jù)接口函數(shù),應(yīng)用程序發(fā)送數(shù)據(jù)*/
      {if(uip_datalen()>0)     /*判定數(shù)據(jù)的大小接口函數(shù)
        {if(uip_conn->lport==80)  /*收到新連接端口號為80的請求,此即http應(yīng)用*/
           {update_table_data();
              s->dataptr=newpage;
              s->dataleft=1957;
              uip_send(s->dataptrs->dataleft); /*發(fā)送上述http應(yīng)用數(shù)據(jù)*/
            }
         }
     }
    if(uip_acked())      /*返回ACK數(shù)據(jù)確認接口函數(shù)*/
     {if(s->dataleft>uip_mss()&&uip_conn->lport==80)
       {s->dataptr+=uip_conn->len;
        s->dataleft-=uip-conn->len;
        uip_send(s->dataptrs->dataleft);
        }
      return;
     }
    if(uip_poll())
     {…                /*輪詢接口函數(shù)用于輪詢各個客戶端發(fā)起的連接*/
        return;
        }
      if(uip_timedout()||      /*判斷連接是否超時*/
      uip_closed()||          /*關(guān)閉當(dāng)前的連接*/
      uip_aborted())         /*中斷連接接口*/
      {return;}
    }
    本文設(shè)計的系統(tǒng)成功應(yīng)用在寧波市某商業(yè)廣場的地下停車場監(jiān)測系統(tǒng)中。由于該商業(yè)廣場停車場業(yè)務(wù)量較大,常常導(dǎo)致車位飽和而客戶不知道的情形下進入停車場尋找車位,而該停車場規(guī)定進入停車場超過15 min的車輛即開始收費。導(dǎo)致客戶常常尋找超過規(guī)定的時間而仍未找到停車位但需付費,從而發(fā)生客戶和管理方之間的糾紛,影響商業(yè)廣場的整體形象。使用了該系統(tǒng)后,各個車位上的數(shù)據(jù)采集系統(tǒng)實時采集停車信息并反饋給系統(tǒng)。系統(tǒng)在停車場入口處顯示停車場當(dāng)前有無可停車位以及哪些區(qū)域有空閑車位等信息。如果車位已滿,將會顯示無可停車位。除此之外,管理人員還可通過客戶端進行查詢、計時計費等工作。本系統(tǒng)最大的優(yōu)點是開發(fā)費用低廉且操作簡單。在本文設(shè)計的系統(tǒng)中,客戶端使用普通的Web瀏覽器,通過Internet即可與單片機嵌入式Web應(yīng)用服務(wù)器進行通信。客戶端瀏覽器不需要開發(fā)額外的軟件,也不需要瀏覽器支持特別的功能。客戶端可通過訪問嵌入式Web服務(wù)器的網(wǎng)頁內(nèi)容與之進行交互。嵌入式Web與現(xiàn)場控制接口互連,可實現(xiàn)對被控設(shè)備的遠程監(jiān)測、控制、診斷、管理及維護等。嵌入式技術(shù)和Internet技術(shù)的相互融合,加速了電子設(shè)備的網(wǎng)絡(luò)化應(yīng)用趨勢。應(yīng)用單片機作為嵌入式Internet技術(shù)的硬件設(shè)備可以降低系統(tǒng)的成本。本文設(shè)計的嵌入式Web系統(tǒng)根據(jù)不同的應(yīng)用需求,稍加修改即可應(yīng)用在智能家電、智能建筑、儀器儀表、通訊產(chǎn)品、工業(yè)控制等眾多領(lǐng)域。
參考文獻
[1] 李正軍.現(xiàn)場總線與工業(yè)以太網(wǎng)及其應(yīng)用系統(tǒng)設(shè)計[M].北京:人民郵電出版社,2008.
[2] 求是科技.單片機典型模塊設(shè)計實例導(dǎo)航[M].北京:人民郵電出版社,2008.
[3] 華清遠見嵌入式培訓(xùn)中心.嵌入式Linux C編程入門[M].北京:人民郵電出版社,2007.
[4] uIP協(xié)議棧網(wǎng)絡(luò)站點.http://dunkels.com/adam/uip/.2010.
[5] 羅鈺.深入淺出Linux TCP/IP協(xié)議棧[M].北京:人民郵電出版社,2008.

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

串口作為單片機開發(fā)的一個常用的外設(shè),應(yīng)用范圍非常廣。大部分時候,串口需要接收處理的數(shù)據(jù)長度是不定的。那么怎么才能判斷一幀數(shù)據(jù)是否結(jié)束呢,今天就以STM32單片機為例,介紹幾種接收不定長數(shù)據(jù)的方法。

關(guān)鍵字: 單片機 串口 STM32

經(jīng)過幾十年發(fā)展,嵌入式技術(shù)已經(jīng)用在了我們生活中的方方面面,但是嵌入式始終都帶有小眾,專業(yè)性強的屬性,讓很多非嵌入式領(lǐng)域的同學(xué)望而卻步。近十幾年的發(fā)展,物聯(lián)網(wǎng)覆蓋了越來越多領(lǐng)域,包括了家居,商業(yè),工業(yè),農(nóng)業(yè)等領(lǐng)域,不僅吸引...

關(guān)鍵字: 嵌入式 物聯(lián)網(wǎng) 技術(shù)

隨著IT技術(shù)飛速發(fā)展,互聯(lián)網(wǎng)已經(jīng)進入了“物聯(lián)網(wǎng)”時代。物聯(lián)網(wǎng)中需要的大量設(shè)備不在依賴人與人之間的交互產(chǎn)生聯(lián)系,更多通過協(xié)議、通信、程序設(shè)計等方式連接到一處。即 “物聯(lián)網(wǎng)”的目的則是讓所有的物品都具有計算機的智能但并不以通...

關(guān)鍵字: 嵌入式 物聯(lián)網(wǎng) 計算機

單片機誕生于1971年,經(jīng)歷了SCM、MCU、SoC三大階段。單片機由以前的1位、4位、8位、16位,發(fā)展到現(xiàn)在的32位甚至64位。當(dāng)前國內(nèi)MCU廠商已有上百家,對標(biāo)進口芯片的情況非常嚴(yán)重,導(dǎo)致國內(nèi)MCU產(chǎn)品將陷入同質(zhì)化...

關(guān)鍵字: 單片機 MCU 市場

最近看到APP上,給我推送了很多類似的回答,借此機會,也想著重新審視一下自己的學(xué)習(xí)歷程,以及結(jié)合自身和大牛,分享一些學(xué)習(xí)經(jīng)驗,希望對大家有所啟發(fā)和幫助。

關(guān)鍵字: APP 嵌入式 C語言

(微控制單元 MCU(Microcontroller Unit),又稱單片機,是把中央處理器(CentralProcess Unit; CPU)的頻率與規(guī)格做適當(dāng)縮減,并將內(nèi)存(memory)、計數(shù)器(Timer)、US...

關(guān)鍵字: 單片機 芯片 CPU

在疫情的影響下,出門后、用餐前使用酒精消毒已成了人們的日常,而酒精噴霧機也因此變得十分熱銷。為了避免交叉感染的風(fēng)險,自動酒精噴霧器也就應(yīng)運而生。不同于傳統(tǒng)手動噴霧器不美觀、手部接觸不衛(wèi)生的bug,此款自動感應(yīng)酒精噴霧器使...

關(guān)鍵字: 芯嶺技術(shù) 方案開發(fā) 解決方案 單片機

在實際的單片機控制系統(tǒng)中,有時候會使用數(shù)字邏輯芯片對單片機和受控元件進行隔離,以保護單片機,或者令單片機更好地對后級進行控制。

關(guān)鍵字: 單片機 數(shù)字邏輯芯片 受控元件

MH32F103AVET6使用高性能的32位內(nèi)核,內(nèi)置了多達2個高級定時器、10個通用定時器、2個基本定時器、3個12位的ADC、2個12位的DAC,還包含標(biāo)準(zhǔn)和先進的通信接口包括:3個SPI接口、2個I2S接口、2個I...

關(guān)鍵字: 單片機 MCU

最近由于換季,天氣突然的轉(zhuǎn)涼,大家也是直呼好冷。天冷了自然是要注意防寒保暖。一個能夠當(dāng)充電寶用的暖手寶會是你最好的陪伴。暖手寶是一種非常便捷易用的發(fā)熱工具,并且體形小巧,可以隨身攜帶并輕易握在手中,也可以放置在身上的其它...

關(guān)鍵字: 芯嶺技術(shù) 方案開發(fā) 解決方案 單片機

嵌入式軟件

15715 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉