單片機嵌入式Internet技術(shù)的Web應用實(shí)現
2.2 uIP驅動(dòng)底層網(wǎng)絡(luò )設備RTL8019AS
uIP是一個(gè)僅包含3層網(wǎng)絡(luò )層核心協(xié)議的協(xié)議棧,uIP自身不包含任何類(lèi)型的底層網(wǎng)絡(luò )驅動(dòng)和上層應用程序,它只提供接口函數供用戶(hù)開(kāi)發(fā)使用。因此為了完成與底層網(wǎng)絡(luò )設備的交互,用戶(hù)必須根據網(wǎng)絡(luò )設備的類(lèi)型,在uIP中自行實(shí)現對底層網(wǎng)絡(luò )設備的驅動(dòng)。本文采用的網(wǎng)絡(luò )設備是RTL8019AS網(wǎng)卡,因此需要在uIP中實(shí)現對RTL8019AS網(wǎng)卡的驅動(dòng)[4]。
RTL8019AS驅動(dòng)程序包括:RTL8019AS芯片初始化、芯片復位以及數據的發(fā)送和接收。RTL8019AS芯片初始化可以通過(guò)初始化函數void init_8019(void)完成。芯片復位通過(guò)芯片上的RSTDRV引腳執行復位操作,該引腳高電平有效。
3 單片機上嵌入式Web服務(wù)器的軟件實(shí)現
3.1 Web服務(wù)器的建立
在進(jìn)行以上的工作之后,用戶(hù)就可以建立Web服務(wù)器,通過(guò)uIP協(xié)議實(shí)現不同的微控制器或工作站之間的通信。Web服務(wù)器和客戶(hù)端瀏覽器間的通信采用HTTP協(xié)議。嵌入式系統經(jīng)常需要根據用戶(hù)的指令,采集系統的當前數據信息傳送給客戶(hù)端瀏覽器,為實(shí)現這種客戶(hù)端瀏覽器和Web服務(wù)器的動(dòng)態(tài)交互,需要在服務(wù)器端采用通用網(wǎng)關(guān)接口CGI(Common Gateway Interface)技術(shù)。CGI是一個(gè)在服務(wù)器上運行的程序,它分析處理用戶(hù)發(fā)送到服務(wù)器上的數據信息,完成動(dòng)態(tài)文件資源的創(chuàng )建和處理,再將用戶(hù)信息返回給客戶(hù)端。
Web服務(wù)器初始化完成后,服務(wù)器等待客戶(hù)端的連接請求,客戶(hù)端瀏覽器輸入服務(wù)器的IP地址后發(fā)一個(gè)物理地址解析協(xié)議(ARP)請求包,服務(wù)器收到后進(jìn)行應答??蛻?hù)端收到應答包后發(fā)送超文本傳輸協(xié)議(HTTP)包,服務(wù)器收到HTTP包后開(kāi)始建立與客戶(hù)端的TCP連接并作出對此包的響應??蛻?hù)端收到響應包后即斷開(kāi)連接,服務(wù)器偵測到客戶(hù)端斷開(kāi)了連接也同時(shí)斷開(kāi)連接。
3.2 Web服務(wù)器數據處理流程
當系統的網(wǎng)卡接收到從網(wǎng)絡(luò )傳送來(lái)的數據包后,首先分析目的地址是否與自己的物理地址一致,如果不一致,則丟棄此包;如果一致,則讀取網(wǎng)絡(luò )數據并分析。如果是ARP請求包,則轉入ARP處理程序,并發(fā)送一個(gè)ARP應答包給客戶(hù)端。如果是IP包,則交由IP層處理,同時(shí)去掉以太網(wǎng)首部[4-5]。IP層根據IP首部的協(xié)議字段分析該IP包屬于什么數據包,如果是UDP包則,丟棄;如果是ICMP請求包,則發(fā)送一個(gè)ICMP應答包給客戶(hù)端;如果是TCP包且IP地址和端口號正確,則接收數據包,數據解包后,將數據部分通過(guò)串口輸出,控制MAX232現場(chǎng)設備。反之,如果現場(chǎng)通過(guò)串口發(fā)送數據到單片機,單片機將數據按照TCP協(xié)議格式打包,送入RTL8019AS,由RTL8019AS將數據發(fā)送到局域網(wǎng)中。根據需要還可以在收到串口數據時(shí),先完成數據預處理,再將處理好的數據送到局域網(wǎng)。具體的處理過(guò)程如圖2所示。本文引用地址:http://dyxdggzs.com/article/173274.htm
3.3 單片機上的Web服務(wù)器編程
uIP協(xié)議棧提供了一個(gè)稱(chēng)為宏的UIP_APPCALL的應用程序接口供用戶(hù)設計應用程序時(shí)使用[4]。要在單片機上實(shí)現Web Server服務(wù),首先將該宏定義為一個(gè)應用程序函數名,然后在此函數中實(shí)現HTTP協(xié)議。完成后,用戶(hù)可以從局域網(wǎng)內的任何客戶(hù)機訪(fǎng)問(wèn)該單片機Web服務(wù)器。如果分配一個(gè)公網(wǎng)IP地址,則也可以從Internet上訪(fǎng)問(wèn)此Web服務(wù)器。實(shí)現的程序如下:
tcp/ip相關(guān)文章:tcp/ip是什么
評論