999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

TCP/IP協(xié)議在8051MCU中的移植及應(yīng)用

2008-12-31 00:00:00王曉敏那文鵬
電腦知識與技術(shù) 2008年31期

摘要:將TCP/IP協(xié)議移植到8位MCU上,同時在傳輸?shù)奈募屑尤際TML代碼,實現(xiàn)了一個WEBSERVER,并用其對一個液晶顯示屏進行控制和監(jiān)視。本系統(tǒng)用雙絞線代替RS232、RS485、CAN等總線進行組網(wǎng),可以廣泛應(yīng)用在各種嵌入式系統(tǒng)中。

關(guān)鍵詞:TCP/IP;8051MCU;HTML

中圖分類號:TP36文獻標識碼:A文章編號:1009-3044(2008)31-0863-04

Transplant and Application of TCP/IP Protocol Based on 8051MCU

WANG Xiao-min, NA Wen-peng

(Information Science Enginneering College, Liaoning University of Techology, Jinzhou 121001, China)

Abstract: A WEBSERVER is designed by transplanting TCP/IP protocol to 8 bit MCU and transmitting file with HTML code.The WEBSERVER is used to control a LED.This system in which RS232,RS485,CAN bus is replaced by UTP-5 cable can be universally used in Embedded System.

Key words: TCP/IP; 8051MCU; HTML

1 引言

隨著電子信息技術(shù)的迅猛發(fā)展,嵌入式系統(tǒng)已經(jīng)在社會生活的各個方面得到廣泛的應(yīng)用。為了實現(xiàn)多個嵌入式系統(tǒng)的互聯(lián),工程師們利用RS232、RS485及CAN等進行組網(wǎng)。這樣組成的網(wǎng)絡(luò)覆蓋范圍有限,而且成本也較高。另一方面,INTERNET技術(shù)飛速發(fā)展,它已成為社會最主要的信息基礎(chǔ)設(shè)施,它具有覆蓋范圍廣,技術(shù)成熟,數(shù)據(jù)傳輸速度快,價格低廉等優(yōu)點。針對這種情況,我們設(shè)計一個系統(tǒng),將應(yīng)用最廣泛的INTERNET協(xié)議即TCP/IP協(xié)議移植到8位MCU上,同時在傳輸?shù)奈募屑尤際TML代碼,實現(xiàn)了一個WEBSERVER,并用其對一個液晶顯示屏進行控制和監(jiān)視。這一系統(tǒng)保證了數(shù)據(jù)傳輸?shù)目煽啃裕岣吡藬?shù)據(jù)傳輸?shù)乃俣龋昧朔植紡V泛的INTERNET,同時也為用戶提供了一個友好的操作界面,可以很方便的利用PC機上的瀏覽器對MCU進行遠程控制。

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

系統(tǒng)結(jié)構(gòu)如圖1所示。STC89C516RD+是一款高性能的MCU,它具有64K的片內(nèi)FLASH和1280BYTE的片內(nèi)RAM,最高時鐘頻率可達80M。與之相連的RTL8019AS是以太網(wǎng)控制器,它為系統(tǒng)提供最基本的網(wǎng)絡(luò)物理層接口。HM62256是32K的外部RAM,主要用于存放網(wǎng)絡(luò)上來的數(shù)據(jù)和即將發(fā)送到網(wǎng)絡(luò)上的數(shù)據(jù)。RS232接口用于下載程序和調(diào)試程序。外部設(shè)備指一些被系統(tǒng)控制著的設(shè)備,如傳感器,液晶屏等,本文系統(tǒng)使用的是液晶屏。

3 系統(tǒng)的工作流程

系統(tǒng)上電后首先初始化液晶顯示器,根據(jù)最初的顯示參數(shù)調(diào)用display( )函數(shù)控制液晶屏的顯示,接著初始化TCP/IP協(xié)議棧和RTL8019AS,之后MCU開始監(jiān)聽80端口,若收到請求則發(fā)送一個登錄頁面給客戶端,繼續(xù)監(jiān)聽,用戶在瀏覽器輸入用戶名及密碼發(fā)送,MCU收到正確用戶名和密碼后發(fā)送主頁面,主頁面中包含液晶顯示器狀態(tài)及配置選項。MCU收到配置信息后修改顯示參數(shù)并調(diào)用display( )控制液晶屏的顯示,然后發(fā)送修改過的主頁面給客戶端,客戶可以在瀏覽器中的顯示狀態(tài)區(qū)看到配置后的顯示狀態(tài)以確定配置是否生效。流程圖如圖2所示。

4 RTL8019AS簡介

RTL8019AS是由臺灣REALTEK公司生產(chǎn)的以太網(wǎng)控制芯片。

RTL8019AS由接收邏輯控制器、接收CRC校驗、接收計數(shù)器、FIFO邏輯隊列、發(fā)送邏輯控制器、發(fā)送CRC校驗、內(nèi)部總線、IO緩沖區(qū)等組成。它的工作流程是:接收邏輯在接收時鐘的控制下將串行數(shù)據(jù)組成字節(jié)送到FIFO和CRC,發(fā)送邏輯將FIFO送來的字節(jié)在發(fā)送時鐘的控制下逐位移出并送到CRC,CRC邏輯在接收是對輸入的數(shù)據(jù)進行CRC校驗并將結(jié)果與幀尾的CRC比較,如不同該幀數(shù)據(jù)將被拋棄,在發(fā)送時CRC對幀數(shù)據(jù)產(chǎn)生CRC校驗碼并附加在數(shù)據(jù)尾傳送,地址識別邏輯對接收幀的目的地址與預(yù)先設(shè)置的物理地址(又叫MAC地址)

進行比較,如不同且不是廣播地址,該幀將被拋棄。

RTL8019AS片內(nèi)有16KB的RAM,地址為0X4000—0X7FFF,每256個字節(jié)稱為一頁,共64頁。頁的地址就是地址的高8位,頁地址為0X40—0X7F。這16K的RAM一部分用來存放接收的數(shù)據(jù)包,一部分用來存儲待發(fā)送的數(shù)據(jù)包。RTL8019AS還提供32個IO端口地址,地址偏移量為00H—1FH。其中,00H—1FH為特殊功能寄存器地址,10H—17H為DMA地址,18H—1FH為復(fù)位端口。特殊功能寄存器分為四頁,我們只用到前三頁。下面介紹幾個重要的寄存器。

CR是控制寄存器,其各位的定義如下所示。

PS1和PS0用來選擇寄存器頁,例如:寫入10表示選擇第二頁。

RD2、RD1、RD0表示執(zhí)行的功能,如表1所示。

TXP在發(fā)送數(shù)據(jù)包時置1,發(fā)送完成自動置0。

最后兩位用來啟動和停止命令。

CURR和BNRY用來控制緩沖區(qū)的存取過程,保證能順次寫入和讀出。

PAR0—PAR5用來存放MAC地址。

10H—17H為DMA地址,只需取一個進行使用,我們?nèi)?0H,向10H中寫數(shù)據(jù)就是向16K的RAM寫數(shù)據(jù)。

18H—1FH復(fù)位端口,對其中的偶數(shù)地址讀或?qū)憯?shù)據(jù),都會引起芯片復(fù)位,可以通過讀或?qū)戇@個端口來軟件復(fù)位。

本系統(tǒng)中RTL8019AS的IO端口的基地址為240H(對網(wǎng)卡來說),對應(yīng)的MCU尋址地址為8000H—8F00H。MCU與RTL8019AS連接如圖3所示。

5 TCP/IP協(xié)議的移植

TCP/IP是一個龐大的協(xié)議棧,8位MCU資源有限,這里我們選擇移植部分協(xié)議,移植的協(xié)議有ARP協(xié)議,IP協(xié)議,ICMP協(xié)議,TCP協(xié)議,HTTP協(xié)議以及為以上各協(xié)議服務(wù)的以太網(wǎng)協(xié)議。

5.1 以太網(wǎng)協(xié)議

以太網(wǎng)協(xié)議直接對以太網(wǎng)芯片進行操作并為上層協(xié)議提供服務(wù),本文使用DIX ETHERNET V2幀結(jié)構(gòu),如下所示。

以太網(wǎng)協(xié)議提供一個函數(shù)query_8019( ),主函數(shù)調(diào)用query_8019( )時,query_8019( )檢查CURR=BNRY+1是否成立,若成立則說明無新到數(shù)據(jù)包,若不成立則說明有新到的數(shù)據(jù)包。若有新到數(shù)據(jù)包,主函數(shù)調(diào)用以太網(wǎng)協(xié)議提供的rcve_frame( )函數(shù)為以太幀分配存儲空間并將其讀入,之后調(diào)用太網(wǎng)協(xié)議提供的

eth_rcve( )函數(shù),該函數(shù)對幀類型字段進行檢查,把符合要求的幀去掉幀頭后送給IP或ARP協(xié)議處理。發(fā)送數(shù)據(jù)時,eth_send( )函數(shù)為上層來的數(shù)據(jù)包增加幀頭,并調(diào)用send_frame( )函數(shù)通過遠程DMA寫操作將幀發(fā)送出去。

5.2 IP協(xié)議

IP協(xié)議提供的是一種無連接不可靠的數(shù)據(jù)傳輸方式,它只提供傳輸服務(wù),可靠性由TCP保證。IP協(xié)議調(diào)用ip_rcve( )函數(shù)對網(wǎng)絡(luò)上來的IP包進行校驗,比較IP地址,檢測協(xié)議類型,然后轉(zhuǎn)到TCP或ICMP進一步處理。IP協(xié)議調(diào)用ip_send( )函數(shù)為上層來的數(shù)據(jù)包增加IP數(shù)據(jù)報報頭,然后交給以太網(wǎng)協(xié)議處理。

5.3 ARP協(xié)議

ARP協(xié)議實現(xiàn)從IP地址到MAC地址的對應(yīng),當(dāng)系統(tǒng)要發(fā)送一個IP包時,首先到ARP地址緩存中查詢該IP地址對應(yīng)的MAC地址,然后才能生成以太網(wǎng)幀發(fā)送出去。ARP報文格式如下所示:

當(dāng)收到一個ARP請求,ARP協(xié)議調(diào)用arp_send( )發(fā)送一個ARP應(yīng)答,并檢查地址緩存中是否有請求方的IP和MAC,若沒有則將其加入。當(dāng)發(fā)送一個IP數(shù)據(jù)包時,系統(tǒng)首先在地址緩存中查找IP地址對應(yīng)的MAC地址,若找到則用該MAC地址生成以太網(wǎng)幀,若沒找到則發(fā)送ARP請求,然后等待ARP應(yīng)答,若收到應(yīng)答則將其加入地址緩存,若經(jīng)過一個等待時間后沒收到應(yīng)答則重發(fā)請求,經(jīng)兩次重發(fā)還沒收到應(yīng)答則放棄這一次IP包的發(fā)送。

5.4 ICMP協(xié)議

本系統(tǒng)的ICMP協(xié)議用于實現(xiàn)PING功能,當(dāng)用戶要檢查系統(tǒng)是否連接正常時,可以用PING命令向系統(tǒng)發(fā)送ICMP包,系統(tǒng)收到后則發(fā)回一個ICMP應(yīng)答包,用戶據(jù)此可以判斷系統(tǒng)是否連通。ICMP報文格式如下所示。

5.5 TCP協(xié)議

TCP協(xié)議是面向連接的協(xié)議,它采用三次握手建立連接。

TCP將用戶數(shù)據(jù)打包構(gòu)成報文段,它發(fā)送后啟動一個定時器,另一端對收到的數(shù)據(jù)進行確認,對失序的數(shù)據(jù)重新排序,丟失重復(fù)數(shù)據(jù),TCP計算和驗證一個端到端的檢驗和以保證傳輸?shù)目煽俊?/p>

5.6 HTTP協(xié)議

系統(tǒng)啟動后,等候瀏覽器的請求報文。瀏覽器發(fā)出的HTTP請求報文格式如下所示。

請求行中包含方法字段、統(tǒng)一資源標識字段和HTTP版本字段,其中方法字段包括GET和POST等。GET方法取回由統(tǒng)一資源標識標識的信息。POST方法可以請求服務(wù)器接收包含在請求中的實體信息,可以用于提交信息。系統(tǒng)在HTTP報文中檢查方法字段,若方法為GET則發(fā)送HTML網(wǎng)頁代碼。若方法為POST則根據(jù)接收到的參數(shù)調(diào)用與參數(shù)對應(yīng)的函數(shù)調(diào)整對設(shè)備的控制,并修改要發(fā)送的HTML網(wǎng)頁代碼,然后發(fā)送。發(fā)出的HTTP報文由以下兩部分組成。

char code header[] = {

\"HTTP/1.1 200 OK\\"

\"Cache-control: no-cache\\"

\"Connection: Keep-Alive\\"

\"Content-Length: TAG:LEN1\\"

\"Content-Type: text/html\\r\\\r\\" };

char code web_page[] = {……………..}

header[]是HTTP報文頭,其中的TAG:LEN需要由HTML代碼的長度來替換,web_page[]是報文主體,省略的部分是HTML代碼。

6 HTML的應(yīng)用

在瀏覽器輸入WEBSERVER的IP后首先得到的是如下的登錄界面。

圖4 登錄界面

其HTML代碼如下

<html>

<head><title>輸入用戶姓名</title></head>

<body>

<form >

請輸入你的姓名:

<input type=tex name=yourname><br>

請輸入你的密碼:

<input type=text name=password>

<input type=submit value=提交>

</form>

</body>

</html>

用戶提交名字和密碼后點擊提交,WEBSERVER檢查其正確與否,若錯誤則發(fā)回一個網(wǎng)頁提示用戶重新輸入,若正確則發(fā)送如下的HTML代碼

<html>

<body>

顯示屏狀態(tài):<br>

<table width=\"350\" border=\"1\">

<tr>

<th align=\"center\">顯示參數(shù)類型</th>

<th align=\"center\">參數(shù)值</th>

</tr>

<tr>

<td align=\"left\">文字內(nèi)容</td>

<td align=\"right\">text</td>

</tr>

<tr>

<td align=\"left\">字體大小</td>

<td align=\"right\">size</td>

</tr>

<tr>

<td align=\"left\">移動方向</td>

<td align=\"right\">direction</td>

</table><br><br><br>

顯示屏參數(shù)設(shè)置:

<form >

文字內(nèi)容:

<input type=text name=neirong><br>

字體大小:

<input type=text name=daxiao><br>

移動方向:

<input type=text name=fangxiang><br>

<input type=submit value=提交>

</form>

</body>

</html>

瀏覽器收到后顯示如圖5參數(shù)設(shè)置和狀態(tài)顯示頁面。

用戶輸入?yún)?shù)并提交,WEBSERVER收到參數(shù)后調(diào)用顯示函數(shù)對液晶屏進行控制并發(fā)回一個網(wǎng)頁,在此網(wǎng)頁中的顯示屏狀態(tài)欄中的text等參數(shù)將被替換為用戶設(shè)置的參數(shù)。

7 結(jié)束語

本系統(tǒng)完成了TCP/IP協(xié)議在8051MCU中的移植,實現(xiàn)了通過瀏覽器這一廣泛使用的工具對液晶屏的遠程控制,對系統(tǒng)稍作修改就可以將其應(yīng)用到其他各種各樣的控制系統(tǒng)中,它具有很好的穩(wěn)定性和很高的傳輸速度,由于其基于廣泛使用的INTERNET,所以其組網(wǎng)的成本也比較低廉,可以取代傳統(tǒng)的總線,具有很好的應(yīng)用前景。

參考文獻:

[1] 周曉峰.單片機上簡單TCP/IP協(xié)議的實現(xiàn)[J].微電子學(xué)與計算機,2004(2):100-102.

[2]REALTEK SEMICONDUCTOR CO.RTL8019AS SPECIFICATION[S].2001.

[3] 李群芳,肖看.單片機原理、接口及應(yīng)用-嵌入式系統(tǒng)技術(shù)基礎(chǔ)[M]. 北京:清華大學(xué)出版社,2005.

主站蜘蛛池模板: 色男人的天堂久久综合| 国产va在线观看| AV无码一区二区三区四区| 97国产精品视频人人做人人爱| 国产成人高清精品免费5388| 久久国产亚洲偷自| 在线毛片网站| 91国语视频| 欧美在线一二区| 久久综合九色综合97网| 亚洲国产精品无码久久一线| 亚洲国产日韩一区| 日韩在线影院| 亚洲国内精品自在自线官| 国产精品三级专区| 日本草草视频在线观看| 毛片最新网址| 久久婷婷六月| 亚洲成人黄色网址| 欧美日韩午夜| 国产精品国产三级国产专业不 | 亚洲a级在线观看| 永久天堂网Av| AV片亚洲国产男人的天堂| 亚洲人网站| 亚洲欧美极品| 欧美天堂在线| 男人天堂伊人网| 人人爽人人爽人人片| 亚洲综合欧美在线一区在线播放| 婷婷丁香色| 69综合网| jizz国产视频| 欧美a在线看| 欧美综合中文字幕久久| 黄色网在线| 高清精品美女在线播放| 国产人在线成免费视频| 九色综合伊人久久富二代| 国产精品嫩草影院视频| 人人妻人人澡人人爽欧美一区| 国产精品999在线| 精品人妻无码中字系列| 男女男免费视频网站国产| 欧美日一级片| 日韩欧美91| 亚洲国产综合精品一区| 国产凹凸视频在线观看| 人妻丰满熟妇av五码区| 日韩二区三区| 欧美激情视频一区| 久久人人妻人人爽人人卡片av| 国产系列在线| 亚洲精品成人7777在线观看| 亚洲天堂免费| AV在线麻免费观看网站| 国产区在线看| 亚洲va在线观看| 国产在线精品香蕉麻豆| 视频国产精品丝袜第一页| 在线99视频| 日本爱爱精品一区二区| 色爽网免费视频| 亚洲欧美天堂网| 99r在线精品视频在线播放 | 波多野结衣无码视频在线观看| 亚洲aaa视频| 91香蕉视频下载网站| 97无码免费人妻超级碰碰碰| 国产伦精品一区二区三区视频优播 | 亚洲精品色AV无码看| 国产亚卅精品无码| 国产精品专区第一页在线观看| 天天躁狠狠躁| 喷潮白浆直流在线播放| 亚洲国产日韩一区| 亚洲欧美日韩精品专区| 在线日韩日本国产亚洲| 免费a在线观看播放| 亚洲不卡网| 999精品视频在线| 精品撒尿视频一区二区三区|