- 相關(guān)推薦
51單片機(jī)網(wǎng)絡(luò)通信及ARP協(xié)議論文
本文主要以SST89E564RD型51單片機(jī)和RTL8019AS 網(wǎng)絡(luò)接口芯片為例,研究了如何將51單片機(jī)與網(wǎng)絡(luò)接口芯片進(jìn)行硬件的電路連接,并通過將ARP協(xié)議進(jìn)行簡化和重新定義,實(shí)現(xiàn)了將51單片機(jī)接入TCP/IP進(jìn)行網(wǎng)絡(luò)通信,對該領(lǐng)域的研究具有一定的借鑒意義。
1 51單片機(jī)與網(wǎng)絡(luò)控制器的連接
RTL8019AS 網(wǎng)絡(luò)接口芯片是臺(tái)灣 Realtek 公司的代表性產(chǎn)品之一,該芯片基于 ISA 總線結(jié)構(gòu),性能穩(wěn)定且價(jià)格低廉,在工業(yè)企業(yè)領(lǐng)域有非常廣泛的應(yīng)用[ 1 ]。
1.1 RTL8019AS接口芯片的主要特性
RTL8019AS芯片主要優(yōu)點(diǎn)有:
一是支持熱插拔(即插即用)的動(dòng)態(tài)檢測;
二是完全兼容當(dāng)前主流的NE2000 模式并可在8 位與 16 位兩種模式下工作;
三是有跳線與非跳線兩種模式可供選擇;
四是支持全雙工通信模式,雙工通信時(shí)信道的傳輸速率可達(dá)到10Mbps;
五是內(nèi)置數(shù)據(jù)預(yù)取功能;
六是內(nèi)置 16K 字節(jié)的閃存;
七是支持 8/16兩種前端總線工作模式,內(nèi)置8 個(gè)中斷申請線,同時(shí)有16 個(gè)I/O地址可供選擇。
1.2 51單片機(jī)與RTL8019AS連接實(shí)現(xiàn)網(wǎng)絡(luò)通信的電路設(shè)計(jì)
1.2.1 RTL8019AS 與 93C46 接口電路
93C46接口電路內(nèi)部存儲(chǔ)容量為1Kbits,是四線串行接口EEPROM。RTL 8019 AS芯片在上電或者初始化復(fù)位時(shí),首先要從該芯片中讀取預(yù)設(shè)的配置信息才能完成初始化。 93C46 內(nèi)部存儲(chǔ)器的前三個(gè)地址空間用于存放 RTL8019AS芯片的上電初始化信息;后5個(gè)地址空間用于記錄本機(jī)地址;0AH-11H 的地址空間分配給制造商存儲(chǔ)產(chǎn)品的信息;
12H~7FH 的地址空間用于記錄即插即用信息。RTL 8019 AS 的EECS引腳連接93C46的CS引腳,EESK引腳連接SK引腳,EEDI引腳連接DI,EEDO引腳連接DO引腳,即由EECS 提供片選信號,EESK 提供時(shí)鐘信號,EEDI 與 EEDO 定義為串行數(shù)據(jù)I/O通道。
1.2.2 RTL8019AS 與 SST89E564RD 接口電路的硬件連接
SST 系列單片機(jī)是美國 SST公司生產(chǎn)的一種中高端51系列單片機(jī),SST89 E564RD 單片機(jī)是其SST系列單片機(jī)中的一個(gè)型號。將RTL8019AS 的SD0-SD7 引腳與SST89E564RD 的P0.0-P0.7引腳相連,相連后的引腳通過鎖存器與A0-A7引腳相接,同時(shí)將74HC573的A0-A5引腳與 RTL 8019AS 的SA0-SA5引腳相接,將SST89E564RD的P0口用作D/A端口。
此外,SST89E564RD的 P2.0-P2.6 引腳與 靜態(tài)存儲(chǔ)芯片TMS62256 的高7位地址線引腳相接,組合成訪問 TMS的15位地址總線。將SST 89E564 RD的SMEMRB 引腳接+5V,同時(shí)將IOCHDRY引腳懸空,JP 引腳為跳線模式,IOCS 16B引腳接地,使 RTL8019AS 工作在 8 位模式[ 2 ]。
1.3 網(wǎng)絡(luò)接口電路的地址定義
RTL8019AS中 SA0-SA19 的連接方式如下:SA5-SA7以及SA10-SA19 接 GND,SA8-SA9 接+5V電壓,SA0-SA4 接74HC573的A0-A5引腳。SST 單片機(jī)可以通過 P0.0-P0.4來選中RTL8019AS 的 32 個(gè)I/O端口并相應(yīng)地對其進(jìn)行R / W操作。此外,將RTL8019AS 的IORB 和 IOWB 引腳分別與SST89E564RD單片機(jī)的 RD 和 WR 相連作為R/W選通信號。
然后在 93C46 接口電路的低位00H 單元中寫入 00H,將IOS0-IOS3 賦值為 0,這樣就可將RTL8019AS 選擇 I/O 端口的基本尋址地址定義為 300H,地 址 空 間 就為 00300H-0031FH。
2 51單片機(jī)系統(tǒng)網(wǎng)絡(luò)通信中 ARP 協(xié)議設(shè)計(jì)與實(shí)現(xiàn)
2.1 ARP協(xié)議工作流程
根據(jù)TCPIP協(xié)議的定義,任何的需要遠(yuǎn)程通信和訪問的主機(jī)在進(jìn)行任何形式的通信前必須獲得用于傳輸?shù)谋镜氐刂。如果通信發(fā)起的源主機(jī)和通信目的端主機(jī)在同一個(gè)子網(wǎng)網(wǎng)段,那么這種通信形式不需要進(jìn)行網(wǎng)關(guān)的數(shù)據(jù)交換,本地地址就是目的主機(jī)的硬件地址。否則通信發(fā)起者就要通過本地路由器(網(wǎng)關(guān))的地址向目的主機(jī)進(jìn)行IP地址和物理地址的溝通。 本文只考慮不需要使用路由器的情況。
在不使用路由器的前提下,ARP 進(jìn)行地址解析的步驟如下:通信發(fā)起端在網(wǎng)絡(luò)中廣播接收端的 IP 地址,然后與廣播地址一致的.計(jì)算機(jī)在收到廣播后會(huì)相應(yīng)地發(fā)送一個(gè)應(yīng)答,該應(yīng)答中包含了該應(yīng)答計(jì)算機(jī)的IP 地址和實(shí)際物理地址的相關(guān)信息,接著發(fā)送端用接收到的地址信息進(jìn)行數(shù)據(jù)分組和傳輸,最后發(fā)送端將獲取到 MAC 地址信息存入本地緩存,作為下次通信數(shù)據(jù)傳輸?shù)牡刂放渲眯畔,這個(gè)本地緩存就是ARP 緩存。
如果數(shù)據(jù)傳輸?shù)牡刂废嗤,那么發(fā)送端就可以通過讀取 ARP 緩存來獲取 MAC 地址,如果數(shù)據(jù)傳輸?shù)牡刂放c以往不同,則重復(fù)上文的步驟直到獲取物理地址。
2.2 51單片機(jī)網(wǎng)絡(luò)通信時(shí)ARP 協(xié)議中緩存機(jī)制分析與實(shí)現(xiàn)
ARP 緩存條目可以使用靜態(tài)或者動(dòng)態(tài)兩種方式生成。使用靜態(tài)的方式生成 ARP 緩存條目時(shí)占用系統(tǒng)的資源較多,運(yùn)行效率不高,所以通常采用動(dòng)態(tài)方式生成 ARP 緩存。ARP 條目的定時(shí)刷新主要通過定時(shí)器來實(shí)現(xiàn),緩存的生存期由單片機(jī)定時(shí)器初始值和刷新定時(shí)器的時(shí)間間隔的乘積確定,ARP 條目的查詢操作定義可考慮直接對緩存中的IP 地址進(jìn)行逐個(gè)比較來完成查詢操作,具體的定義為:發(fā)送方先在 ARP 緩存中查詢目的方主機(jī)的地址,如果在緩存中能夠查找到,說明此前進(jìn)行過該路由的通信過程,則可以在獲得目的主機(jī)的MAC 地址后開始進(jìn)行數(shù)據(jù)傳輸;否則就需要進(jìn)行上文提到的獲取ARP緩存的步驟,發(fā)送ARP請求報(bào)文直至對方的進(jìn)行應(yīng)答。
2.3 ARP報(bào)文格式
一個(gè)完整的 ARP 頭部包含 28個(gè)字節(jié)的數(shù)據(jù),在硬件類型部分選用 DIX 型以太網(wǎng)幀(值為 1);協(xié)議類型部分選用 IP 協(xié)議(注冊值為0x0800);硬件地址長度部分為 6字節(jié);PLEN 為 IP 地址長度部分值為4字節(jié);操作代碼部分,當(dāng)請求操作時(shí)值為 1,應(yīng)答操作時(shí)值為 2。
【51單片機(jī)網(wǎng)絡(luò)通信及ARP協(xié)議論文】相關(guān)文章:
初中議論文(通用51篇)09-19
關(guān)于多媒體網(wǎng)絡(luò)通信系統(tǒng)的作文10-09
以反省為話題的議論文(精選51篇)03-16
熱愛生活議論文(精選51篇)05-13
自律與他律議論文800字(精選51篇)04-20
寬容的議論文800字作文(通用51篇)10-08