国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

51單片機(jī)網(wǎng)絡(luò)通信及ICMP回顯應(yīng)答實(shí)現(xiàn)

2012-04-29 02:38:49于磊
電腦知識(shí)與技術(shù) 2012年12期
關(guān)鍵詞:字段字節(jié)寄存器

于磊

摘要:在基于8位的單片機(jī)控制系統(tǒng)開發(fā)中,51系列單片機(jī)仍然具有廣泛的應(yīng)用前景。將51單片機(jī)與RTL8019AS網(wǎng)絡(luò)控制芯片結(jié)合起來,對(duì)網(wǎng)絡(luò)控制芯片的控制實(shí)現(xiàn)方法進(jìn)行探討,并對(duì)51單片機(jī)ICMP回顯應(yīng)答報(bào)文實(shí)現(xiàn)進(jìn)行研究,具有實(shí)際應(yīng)用價(jià)值。

關(guān)鍵詞:51單片機(jī);RTL8019AS;ICMP回顯應(yīng)答

中圖分類號(hào):TP368文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)12-2917-03

The 51 Series MCU Network Communication and ICMP Echo Reply Implementation

YU Lei

(College of Continuing Education, Guizhou University, Guiyang 550001, China)

Abstract: Based on 8-bit MCU control system development, the 51 series single-chip still has the widespread application prospect.The 51 single-chip microcomputer and RTL8019AS network control chips combine to discussion on the control method for network control chip, and the 51 single chip microcomputer using ICMP Echo Reply methodology for study, which has practical application value.

Key words: the 51 Series MCU; RTL8019AS; ICMP Echo Reply

物聯(lián)網(wǎng)技術(shù)的發(fā)展和應(yīng)用,使越來越多的非PC設(shè)備開始接入到基于TCP/IP協(xié)議的網(wǎng)絡(luò)中。作為8位控制器中的典型產(chǎn)品,51系列單片機(jī)仍是8位嵌入式應(yīng)用開發(fā)的主流。以51單片機(jī)實(shí)際應(yīng)用系統(tǒng)為平臺(tái),對(duì)其TCP/IP網(wǎng)絡(luò)接入及相關(guān)通信協(xié)議的實(shí)現(xiàn)方法進(jìn)行研究具有一定的應(yīng)用意義。

1網(wǎng)絡(luò)控制器的選擇與硬件連接

在網(wǎng)絡(luò)控制器的選擇上,與51單片機(jī)配合使用較典型的產(chǎn)品是臺(tái)灣瑞昱半導(dǎo)體的RTL8019AS。

1.1 RTL8019AS與51單片機(jī)的硬件連接

在與51單片機(jī)連接時(shí),RTL8019AS通常設(shè)置為8位跳線模式,這時(shí)應(yīng)將IOCS16B下拉為低電平。I/O地址選擇線IOS3~0懸空。地址線A5~A7、A10~A19接地,A8~A9置高電平,A0~A4與51單片機(jī)連接,I/O地址設(shè)定為300H。將數(shù)據(jù)線D0~D7連接到51單片機(jī),數(shù)據(jù)線D8~D15懸空??刂凭€IORB、IOWB、RSTDRV與51單片機(jī)連接。在使用硬件中斷的模式下將IRQ選擇線IRQS2~0懸空,選擇INT0作為中斷腳,INT1~INT7腳懸空。由于RTL8019AS的中斷方式為高電平觸發(fā),因此應(yīng)將INT0反向后接入單片機(jī)。

1.2 RTL8019AS的發(fā)送和接收緩沖區(qū)

RTL8019AS內(nèi)置16K字節(jié)的RAM(地址4000H~7FFFH),用來作為數(shù)據(jù)幀的發(fā)送和接收緩存。該緩存空間采用按頁存儲(chǔ)的使用方式,整個(gè)空間被劃分為64頁,每頁大小為256字節(jié),RAM地址的高8位(40H~7FH)即為頁地址。通過RTL8019AS內(nèi)部被稱為“遠(yuǎn)程DMA”的數(shù)據(jù)鏈路,51單片機(jī)可以完成對(duì)該緩存空間的讀寫操作。

在數(shù)據(jù)幀收發(fā)時(shí),RTL8019AS內(nèi)的緩存空間通常從邏輯上劃分為發(fā)送緩存和接收緩存兩個(gè)區(qū)域。其中發(fā)送緩存位于整個(gè)RAM的前部,起始地址由位于Page0中TPSR(發(fā)送緩沖區(qū)首頁地址)寄存器配置。接收緩存緊鄰在發(fā)送緩存之后,其起始地址由位于Page0中的PSTART(接收緩沖區(qū)首頁地址)寄存器配置,末地址由PSTOP(接收緩沖區(qū)末頁地址)寄存器配置。

1.3 RTL8019AS初始設(shè)置

RTL8019AS內(nèi)的寄存器按地址和功能被分布在Page0~Page3四個(gè)頁面上,通過對(duì)CR(Command Register)寄存器中的PS1、PS0位設(shè)置,可以完成相應(yīng)的換頁操作。

在與51單片機(jī)連接時(shí),僅使用Page0~Page2三頁中的“NE2000寄存器”。初始時(shí),由于Page2的寄存器為只讀,只需對(duì)Page0、Page1兩頁的寄存器進(jìn)行正確配置即可。其中注意:8位模式下,接收緩沖區(qū)末頁地址寄存器(PSTOP)的最大值不超過60H。在采用中斷的數(shù)據(jù)接收方式下,中斷掩碼寄存器(IMR)應(yīng)配置為允許PRX中斷(01H)。

1.4接收緩沖區(qū)的循環(huán)使用

在RTL8019AS接收數(shù)據(jù)幀時(shí),借助Page1中的CURR和位于Page0中的BNRY兩個(gè)寄存器的配合,可以完成接收緩存的循環(huán)使用。其中:

當(dāng)前頁寄存器CURR指出接收緩存中當(dāng)前用于接收的頁地址。從網(wǎng)絡(luò)讀取的幀寫入一頁后,CURR寄存器的值由RTL8019AS控制自動(dòng)加一,并且在達(dá)到接收緩沖區(qū)末頁地址值時(shí),自動(dòng)被重置為接收緩沖區(qū)首頁地址值。

邊界寄存器BNRY指出最后收入接收緩存且已被主機(jī)讀取的頁地址,其值由51單片機(jī)控制改變。當(dāng)51單片機(jī)通過遠(yuǎn)程DMA鏈路讀取一頁數(shù)據(jù)并做相應(yīng)處理后,應(yīng)將BNRY的值加1并測(cè)試是否到達(dá)接收緩沖區(qū)末頁地址值,若是,則應(yīng)將BNRY重置為接收緩沖區(qū)首頁地址值。

2網(wǎng)絡(luò)數(shù)據(jù)的收、發(fā)

RTL8019AS在物理信道上進(jìn)行幀的發(fā)送、接收時(shí),均遵守IEEE802.3物理傳輸幀格式規(guī)定。

2.1數(shù)據(jù)幀的接收

51單片機(jī)的網(wǎng)絡(luò)連接應(yīng)用通常是基于短數(shù)據(jù)包通信的。在采用中斷的數(shù)據(jù)接收方式下,應(yīng)允許RTL8019AS接收到無差錯(cuò)的數(shù)據(jù)包后產(chǎn)生中斷,由中斷處理程序通過遠(yuǎn)程DMA鏈路將接收緩存中的數(shù)據(jù)讀取到51單片機(jī)的內(nèi)存進(jìn)行上層處理。一種典型的收包中斷處理流程如圖1所示。

在數(shù)據(jù)格式上,RTL8019AS的網(wǎng)絡(luò)接口層向上層表達(dá)數(shù)據(jù)幀時(shí):前導(dǎo)序列、幀起始位以及最后的CRC校驗(yàn)等字段由RTL8019AS自動(dòng)刪除;然后在頭部自動(dòng)添加“接收狀態(tài)(1字節(jié))、下一頁指針(1字節(jié))、以太網(wǎng)幀長(zhǎng)度(兩字節(jié))”三個(gè)字段。

在51單片機(jī)從遠(yuǎn)程DMA鏈路讀取數(shù)據(jù)時(shí),先將RTL8019AS的寄存器RSAR0置0,將邊界寄存器BNRY的當(dāng)前值寫入RSAR1;將讀取幀的長(zhǎng)度計(jì)數(shù)值分別寫入RBCR0和RBCR1寄存器。然后置CR為遠(yuǎn)程DMA讀取值(0AH);啟動(dòng)循環(huán),將遠(yuǎn)程DMA端口的值順序讀取到51單片機(jī)內(nèi)存。

2.2數(shù)據(jù)幀的發(fā)送

發(fā)送操作時(shí),先依據(jù)對(duì)應(yīng)協(xié)議規(guī)定的格式將需要發(fā)送的數(shù)據(jù)在51單片機(jī)的內(nèi)存中裝配成幀。其中:前導(dǎo)序列、幀起始位以及CRC校驗(yàn)等字段由RTL8019AS自動(dòng)添加,裝配程序無須干預(yù)。之后通過遠(yuǎn)程DMA鏈路將裝配好的數(shù)據(jù)傳送到RTL8019AS的發(fā)送緩存,然后啟動(dòng)發(fā)送。實(shí)際應(yīng)用中,發(fā)送緩存也可以循環(huán)使用。

2.3 ICMP回顯應(yīng)答原理及實(shí)現(xiàn)

因特網(wǎng)控制報(bào)文協(xié)議ICMP(Internet Control Message Protocol)是工作于IP層的因特網(wǎng)標(biāo)準(zhǔn)協(xié)議,用于傳遞差錯(cuò)情況和提供有關(guān)異常情況的報(bào)告。ICMP覆蓋的范圍很廣,其中最常用的一種是ICMP回顯請(qǐng)求及應(yīng)答。

ICMP回顯請(qǐng)求及應(yīng)答用來測(cè)試目的站是否可達(dá)以及是否響應(yīng)。通常請(qǐng)求主機(jī)會(huì)向目的主機(jī)發(fā)出ICMP回顯請(qǐng)求,收到該報(bào)文的機(jī)器必須給源主機(jī)發(fā)送ICMP回顯應(yīng)答報(bào)文,從而檢測(cè)出鏈路或主機(jī)的工作狀態(tài)。

2.3.1 ICMP回顯請(qǐng)求幀

圖2為實(shí)際應(yīng)用中由RTL8019AS接收并讀入51單片機(jī)內(nèi)存的ICMP回顯請(qǐng)求幀。

圖2 ICMP回顯請(qǐng)求幀數(shù)據(jù)

幀的1~18字節(jié)為幀頭部。由于ICMP報(bào)文是在IP數(shù)據(jù)報(bào)內(nèi)部被傳輸?shù)?,因此?9到38字節(jié)為長(zhǎng)度20字節(jié)的IP首部。39到78字節(jié)為ICMP回顯請(qǐng)求報(bào)文,其中從第47字節(jié)到78字節(jié)為選項(xiàng)數(shù)據(jù)字段。2.3.2 51單片機(jī)下ICMP回顯應(yīng)答實(shí)現(xiàn)

對(duì)ICMP回顯請(qǐng)求幀的應(yīng)答可以通過直接修改接收到的請(qǐng)求幀來完成。修改后的應(yīng)答幀交付RTL8019AS的發(fā)送緩存時(shí),裝入數(shù)據(jù)的起點(diǎn)應(yīng)偏移4字節(jié)。其一般過程為:

將ICMP回顯請(qǐng)求幀接收并裝入51單片機(jī)內(nèi)存;

將ICMP報(bào)文部分的類型、代碼兩字段(39、40字節(jié))的值置為零,表明該報(bào)文是對(duì)ICMP回顯請(qǐng)求的應(yīng)答;

將ICMP報(bào)文檢驗(yàn)和字段(41~42字節(jié))值清零,并重新計(jì)算。該檢驗(yàn)和的計(jì)算覆蓋整個(gè)ICMP報(bào)文;

將IP首部源IP地址字段(31~34字節(jié))和目的IP地址字段(35~38字節(jié))的IP地址值交換;

清除IP首部檢驗(yàn)和字段(29~30字節(jié))值,并重新計(jì)算。對(duì)于普通IP數(shù)據(jù)報(bào),IP首部檢驗(yàn)和的計(jì)算范圍為IP首部20字節(jié);將幀頭部源地址字段(5~10字節(jié))和目的地址字段(11~16字節(jié))的MAC地址交換。

3結(jié)束語

通過匯編語言的實(shí)現(xiàn),ICMP回顯應(yīng)答協(xié)議在51單片機(jī)應(yīng)用系統(tǒng)下獲得了可靠穩(wěn)定的效果,對(duì)進(jìn)一步實(shí)現(xiàn)高層協(xié)議、實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)采集和控制具有實(shí)際意義。

參考文獻(xiàn):

[1]胡漢才.單片機(jī)原理及其接口技術(shù)[M].北京:清華大學(xué)出版社,1998.

[2]謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)[M]. 4版.北京:電子工業(yè)出版社,2005.

[3]符意德,陸陽.嵌入式系統(tǒng)原理及接口技術(shù)[M].北京:清華大學(xué)出版社,2007.

[4]李建文,張成現(xiàn).實(shí)用網(wǎng)絡(luò)通信編程技術(shù)[M].北京:北京郵電大學(xué)出版社,2006.

猜你喜歡
字段字節(jié)寄存器
圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
No.10 “字節(jié)跳動(dòng)手機(jī)”要來了?
簡(jiǎn)談MC7字節(jié)碼
分簇結(jié)構(gòu)向量寄存器分配策略研究*
CNMARC304字段和314字段責(zé)任附注方式解析
無正題名文獻(xiàn)著錄方法評(píng)述
關(guān)于CNMARC的3--字段改革的必要性與可行性研究
高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
博罗县| 铜梁县| 玛沁县| 昆明市| 上虞市| 和田市| 陆川县| 都兰县| 通化市| 资源县| 嘉黎县| 贡觉县| 五家渠市| 固始县| 正阳县| 乐山市| 宜章县| 临海市| 葫芦岛市| 庆安县| 晋州市| 宜昌市| 厦门市| 高阳县| 台山市| 青田县| 马关县| 瑞安市| 南漳县| 库尔勒市| 余姚市| 兖州市| 齐齐哈尔市| 轮台县| 佳木斯市| 临颍县| 柞水县| 焉耆| 瑞丽市| 永平县| 囊谦县|