資料介紹
引言
在網(wǎng)絡(luò)技術(shù)應(yīng)用日益廣泛的今天,網(wǎng)絡(luò)傳輸是最經(jīng)濟(jì)有效的數(shù)據(jù)傳輸方式。如何利用廉價(jià)的51單片機(jī)來 控制網(wǎng)卡芯片進(jìn)行數(shù)據(jù)傳輸,加載TCP/IP協(xié)議連接到互聯(lián)網(wǎng),實(shí)現(xiàn)網(wǎng)絡(luò)通信成了眾多設(shè)計(jì)者的目標(biāo)。但由于指令及資源的限制,實(shí)施過程會(huì)有許多困難。我們 在設(shè)計(jì)方案中舍棄了耗費(fèi)資源的高級(jí)協(xié)議,采用發(fā)送小數(shù)據(jù)包的方式以避免分段,來簡(jiǎn)化TCP協(xié)議和UDP協(xié)議,實(shí)現(xiàn)互聯(lián)接入。
硬件設(shè)計(jì)與實(shí)現(xiàn)
系統(tǒng)的硬件結(jié)構(gòu)框圖如圖1所示。本系統(tǒng)的微控制器是Winbond公司的78E58,網(wǎng)絡(luò)接口芯片是與NE2000系列兼容的Realtek公司的 RTL8019AS.RTL8019AS內(nèi)置了10BASE-T收發(fā)器,外接一個(gè)隔離LPF濾波器,經(jīng)RJ-45接口輸出。外部RAM是 62256,24C02是I2C總線的 EEPROM.
▲ 圖1 嵌入式協(xié)議轉(zhuǎn)換硬件框圖
系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)
為適應(yīng)上網(wǎng)的需求,系統(tǒng)軟件設(shè)計(jì)主要包括兩部分內(nèi)容:一是要執(zhí)行對(duì)RTL8019AS等的控制功能,二是要執(zhí)行與連接Internet相關(guān)的功能,實(shí)現(xiàn)TCP/IP協(xié)議。本文著重介紹第二部分,主程序采用C51語言編寫。
RTL8019AS初始化
要將嵌入式系統(tǒng)接入以太網(wǎng),首先要設(shè)置RTL8019AS的工作方式和工作狀態(tài),分配收發(fā)數(shù)據(jù)的緩沖區(qū),通過對(duì)地址及數(shù)據(jù)口的讀寫來完成以太網(wǎng)幀的接收 與發(fā)送。然后設(shè)置RTL8019AS的工作參數(shù),亦即設(shè)置內(nèi)部控制寄存器。對(duì)RTL8019AS的工作參數(shù)進(jìn)行設(shè)置完畢后,進(jìn)入正常工作狀態(tài),接下來就讀 寫RTL8019AS的RAM以完成數(shù)據(jù)包的接收和發(fā)送。由于篇幅有限,這里就不再詳述。
TCP/IP模型
TCP/IP協(xié)議是一套把Internet上的各種系統(tǒng)互連起來的協(xié)議族,保證Internet上數(shù)據(jù)的準(zhǔn)確快速傳輸。TCP/IP通常采用一種簡(jiǎn)化的四層模型:應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、鏈路層。
本系統(tǒng)中,應(yīng)用層傳遞來自以太網(wǎng)和數(shù)據(jù)終端的數(shù)據(jù),并對(duì)數(shù)據(jù)報(bào)作打包拆包處理。傳輸層采用傳輸控制協(xié)議TCP或用戶數(shù)據(jù)協(xié)議UDP.網(wǎng)絡(luò)層實(shí)現(xiàn)IP協(xié) 議,還要實(shí)現(xiàn)能報(bào)告數(shù)據(jù)傳輸差錯(cuò)等情況的ICMP協(xié)議。鏈路層部分由RTL8019AS完成,鏈路層由控制同一物理網(wǎng)絡(luò)上的不同機(jī)器間數(shù)據(jù)傳送的底層協(xié)議 組成。
在單片機(jī)里只實(shí)現(xiàn)與需要有關(guān)的部分,而不使用的協(xié)議則一概不支持。單片機(jī)應(yīng)用的TCP/IP協(xié)議大多是為了完成數(shù)據(jù)采集和數(shù)據(jù)傳輸,而不需要網(wǎng)頁瀏覽、文件傳輸這些功能。
ARP協(xié)議(地址解析協(xié)議)
以太網(wǎng)是TCP/IP協(xié)議主要采用的局域網(wǎng)技術(shù),是系統(tǒng)接入Internet的基礎(chǔ)。ARP本質(zhì)是完成網(wǎng)絡(luò)地址到以太網(wǎng)物理地址的動(dòng)態(tài)映射。UNIX系統(tǒng)的ARP協(xié)議支持以太網(wǎng)、令牌環(huán)等網(wǎng)絡(luò),但我們的單片機(jī)系統(tǒng)里只支持以太網(wǎng)。
IP協(xié)議(網(wǎng)際協(xié)議)
IP是TCP/IP協(xié)議族中最為核心的協(xié)議。所有的TCP、UDP、ICMP及IGMP數(shù)據(jù)都以IP數(shù)據(jù)報(bào)格式傳輸。就對(duì)某些協(xié)議而言,IP包最大可以 為65K,可以分段傳輸,而在單片機(jī)里根本無法容納如此大的數(shù)據(jù)包,因此一般是不支持分段的。我們的設(shè)計(jì)中采用發(fā)送小數(shù)據(jù)包的方式,以避免分段。
TCP協(xié)議(傳輸控制協(xié)議)
TCP數(shù)據(jù)封裝在一個(gè)IP數(shù)據(jù)報(bào)中,并具有自己的TCP首部, TCP協(xié)議定義十分復(fù)雜,鑒于51單片機(jī)的片內(nèi)資源十分有限,本系統(tǒng)對(duì)TCP協(xié)議進(jìn)行了一定的簡(jiǎn)化處理。標(biāo)準(zhǔn)的TCP協(xié)議使用慢啟動(dòng)的滑動(dòng)窗口機(jī)制,如果 只使用單個(gè)窗口,就變成了一種簡(jiǎn)單確認(rèn)的處理方法。即只需對(duì)單個(gè)數(shù)據(jù)報(bào)發(fā)送和確認(rèn),節(jié)約了系統(tǒng)資源,也使維護(hù)更加方便。
編程實(shí)現(xiàn)TCP協(xié)議的另一個(gè)難點(diǎn)在于TCP建立連接和終止連接的具體過程的實(shí)現(xiàn)。TCP協(xié)議是一個(gè)面向連接的協(xié)議,連接的雙方無論是哪一方向另一方發(fā)送數(shù)據(jù),都必須先通過“三次握手”過程在雙方之間建立一條連接,和通過“四次握手”終止連接。
連接建立后,TCP就可以發(fā)送數(shù)據(jù)塊,稱為數(shù)據(jù)段。當(dāng)TCP發(fā)出一個(gè)段后,它啟動(dòng)一個(gè)定時(shí)器,等待目的端確認(rèn)收到這個(gè)報(bào)文段。如果不能及時(shí)收到一個(gè)確認(rèn),將重發(fā)這個(gè)報(bào)文段。另外,TCP將保持它首部和數(shù)據(jù)的檢驗(yàn)和
系統(tǒng)主應(yīng)用程序的實(shí)現(xiàn)
系統(tǒng)初始化后,進(jìn)入主程序循環(huán)的兩部分:一是對(duì)接收到的以太網(wǎng)數(shù)據(jù)幀進(jìn)行解包,供應(yīng)用程序使用,一是對(duì)發(fā)送的數(shù)據(jù)進(jìn)行封裝并發(fā)送,使采用TCP/IP協(xié)議的以太網(wǎng)內(nèi)的所有計(jì)算機(jī)都能收到此數(shù)據(jù)幀。圖2是系統(tǒng)的主應(yīng)用程序的流程圖。

▲ 圖2 系統(tǒng)的主應(yīng)用程序的流程圖
在網(wǎng)絡(luò)技術(shù)應(yīng)用日益廣泛的今天,網(wǎng)絡(luò)傳輸是最經(jīng)濟(jì)有效的數(shù)據(jù)傳輸方式。如何利用廉價(jià)的51單片機(jī)來 控制網(wǎng)卡芯片進(jìn)行數(shù)據(jù)傳輸,加載TCP/IP協(xié)議連接到互聯(lián)網(wǎng),實(shí)現(xiàn)網(wǎng)絡(luò)通信成了眾多設(shè)計(jì)者的目標(biāo)。但由于指令及資源的限制,實(shí)施過程會(huì)有許多困難。我們 在設(shè)計(jì)方案中舍棄了耗費(fèi)資源的高級(jí)協(xié)議,采用發(fā)送小數(shù)據(jù)包的方式以避免分段,來簡(jiǎn)化TCP協(xié)議和UDP協(xié)議,實(shí)現(xiàn)互聯(lián)接入。
硬件設(shè)計(jì)與實(shí)現(xiàn)
系統(tǒng)的硬件結(jié)構(gòu)框圖如圖1所示。本系統(tǒng)的微控制器是Winbond公司的78E58,網(wǎng)絡(luò)接口芯片是與NE2000系列兼容的Realtek公司的 RTL8019AS.RTL8019AS內(nèi)置了10BASE-T收發(fā)器,外接一個(gè)隔離LPF濾波器,經(jīng)RJ-45接口輸出。外部RAM是 62256,24C02是I2C總線的 EEPROM.
▲ 圖1 嵌入式協(xié)議轉(zhuǎn)換硬件框圖
系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)
為適應(yīng)上網(wǎng)的需求,系統(tǒng)軟件設(shè)計(jì)主要包括兩部分內(nèi)容:一是要執(zhí)行對(duì)RTL8019AS等的控制功能,二是要執(zhí)行與連接Internet相關(guān)的功能,實(shí)現(xiàn)TCP/IP協(xié)議。本文著重介紹第二部分,主程序采用C51語言編寫。
RTL8019AS初始化
要將嵌入式系統(tǒng)接入以太網(wǎng),首先要設(shè)置RTL8019AS的工作方式和工作狀態(tài),分配收發(fā)數(shù)據(jù)的緩沖區(qū),通過對(duì)地址及數(shù)據(jù)口的讀寫來完成以太網(wǎng)幀的接收 與發(fā)送。然后設(shè)置RTL8019AS的工作參數(shù),亦即設(shè)置內(nèi)部控制寄存器。對(duì)RTL8019AS的工作參數(shù)進(jìn)行設(shè)置完畢后,進(jìn)入正常工作狀態(tài),接下來就讀 寫RTL8019AS的RAM以完成數(shù)據(jù)包的接收和發(fā)送。由于篇幅有限,這里就不再詳述。
TCP/IP模型
TCP/IP協(xié)議是一套把Internet上的各種系統(tǒng)互連起來的協(xié)議族,保證Internet上數(shù)據(jù)的準(zhǔn)確快速傳輸。TCP/IP通常采用一種簡(jiǎn)化的四層模型:應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、鏈路層。
本系統(tǒng)中,應(yīng)用層傳遞來自以太網(wǎng)和數(shù)據(jù)終端的數(shù)據(jù),并對(duì)數(shù)據(jù)報(bào)作打包拆包處理。傳輸層采用傳輸控制協(xié)議TCP或用戶數(shù)據(jù)協(xié)議UDP.網(wǎng)絡(luò)層實(shí)現(xiàn)IP協(xié) 議,還要實(shí)現(xiàn)能報(bào)告數(shù)據(jù)傳輸差錯(cuò)等情況的ICMP協(xié)議。鏈路層部分由RTL8019AS完成,鏈路層由控制同一物理網(wǎng)絡(luò)上的不同機(jī)器間數(shù)據(jù)傳送的底層協(xié)議 組成。
在單片機(jī)里只實(shí)現(xiàn)與需要有關(guān)的部分,而不使用的協(xié)議則一概不支持。單片機(jī)應(yīng)用的TCP/IP協(xié)議大多是為了完成數(shù)據(jù)采集和數(shù)據(jù)傳輸,而不需要網(wǎng)頁瀏覽、文件傳輸這些功能。
ARP協(xié)議(地址解析協(xié)議)
以太網(wǎng)是TCP/IP協(xié)議主要采用的局域網(wǎng)技術(shù),是系統(tǒng)接入Internet的基礎(chǔ)。ARP本質(zhì)是完成網(wǎng)絡(luò)地址到以太網(wǎng)物理地址的動(dòng)態(tài)映射。UNIX系統(tǒng)的ARP協(xié)議支持以太網(wǎng)、令牌環(huán)等網(wǎng)絡(luò),但我們的單片機(jī)系統(tǒng)里只支持以太網(wǎng)。
IP協(xié)議(網(wǎng)際協(xié)議)
IP是TCP/IP協(xié)議族中最為核心的協(xié)議。所有的TCP、UDP、ICMP及IGMP數(shù)據(jù)都以IP數(shù)據(jù)報(bào)格式傳輸。就對(duì)某些協(xié)議而言,IP包最大可以 為65K,可以分段傳輸,而在單片機(jī)里根本無法容納如此大的數(shù)據(jù)包,因此一般是不支持分段的。我們的設(shè)計(jì)中采用發(fā)送小數(shù)據(jù)包的方式,以避免分段。
TCP協(xié)議(傳輸控制協(xié)議)
TCP數(shù)據(jù)封裝在一個(gè)IP數(shù)據(jù)報(bào)中,并具有自己的TCP首部, TCP協(xié)議定義十分復(fù)雜,鑒于51單片機(jī)的片內(nèi)資源十分有限,本系統(tǒng)對(duì)TCP協(xié)議進(jìn)行了一定的簡(jiǎn)化處理。標(biāo)準(zhǔn)的TCP協(xié)議使用慢啟動(dòng)的滑動(dòng)窗口機(jī)制,如果 只使用單個(gè)窗口,就變成了一種簡(jiǎn)單確認(rèn)的處理方法。即只需對(duì)單個(gè)數(shù)據(jù)報(bào)發(fā)送和確認(rèn),節(jié)約了系統(tǒng)資源,也使維護(hù)更加方便。
編程實(shí)現(xiàn)TCP協(xié)議的另一個(gè)難點(diǎn)在于TCP建立連接和終止連接的具體過程的實(shí)現(xiàn)。TCP協(xié)議是一個(gè)面向連接的協(xié)議,連接的雙方無論是哪一方向另一方發(fā)送數(shù)據(jù),都必須先通過“三次握手”過程在雙方之間建立一條連接,和通過“四次握手”終止連接。
連接建立后,TCP就可以發(fā)送數(shù)據(jù)塊,稱為數(shù)據(jù)段。當(dāng)TCP發(fā)出一個(gè)段后,它啟動(dòng)一個(gè)定時(shí)器,等待目的端確認(rèn)收到這個(gè)報(bào)文段。如果不能及時(shí)收到一個(gè)確認(rèn),將重發(fā)這個(gè)報(bào)文段。另外,TCP將保持它首部和數(shù)據(jù)的檢驗(yàn)和
系統(tǒng)主應(yīng)用程序的實(shí)現(xiàn)
系統(tǒng)初始化后,進(jìn)入主程序循環(huán)的兩部分:一是對(duì)接收到的以太網(wǎng)數(shù)據(jù)幀進(jìn)行解包,供應(yīng)用程序使用,一是對(duì)發(fā)送的數(shù)據(jù)進(jìn)行封裝并發(fā)送,使采用TCP/IP協(xié)議的以太網(wǎng)內(nèi)的所有計(jì)算機(jī)都能收到此數(shù)據(jù)幀。圖2是系統(tǒng)的主應(yīng)用程序的流程圖。

▲ 圖2 系統(tǒng)的主應(yīng)用程序的流程圖
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 基于ARM嵌入式系統(tǒng)的Socket通信設(shè)計(jì)
- (網(wǎng)盤)ARM嵌入式Linux系統(tǒng)開發(fā)詳解
- 嵌入式詳解
- 嵌入式系統(tǒng)定義
- 嵌入式發(fā)動(dòng)機(jī)活塞溫度測(cè)試系統(tǒng)設(shè)計(jì)方案 22次下載
- 基于ARM的嵌入式Web服務(wù)器設(shè)計(jì)方案 20次下載
- 基于TMS320LF2407A DSP的嵌入式網(wǎng)絡(luò)控制系統(tǒng) 8次下載
- 長(zhǎng)文詳解嵌入式Linux系統(tǒng)移植資料下載
- 如何使用ARM進(jìn)行嵌入式系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 14次下載
- 嵌入式軟件技術(shù)應(yīng)用設(shè)計(jì)方案匯總 4次下載
- 嵌入式視頻系統(tǒng)的設(shè)計(jì)方案匯總 0次下載
- 采用FPGA的嵌入式系統(tǒng)設(shè)計(jì)方案
- 基于Java的嵌入式網(wǎng)絡(luò)測(cè)控系統(tǒng)設(shè)計(jì)
- 基于MPEG-4標(biāo)準(zhǔn)和嵌入式技術(shù)的監(jiān)控系統(tǒng)設(shè)計(jì)
- 基于GPRS網(wǎng)絡(luò)的嵌入式系統(tǒng)的研究
- 什么是嵌入式系統(tǒng)?嵌入式系統(tǒng)的具體應(yīng)用 2562次閱讀
- 基于優(yōu)先級(jí)調(diào)度的嵌入式實(shí)時(shí)操作系統(tǒng)內(nèi)核詳解(下) 936次閱讀
- 如何實(shí)現(xiàn)嵌入式系統(tǒng)遠(yuǎn)程調(diào)試 5401次閱讀
- 基于嵌入式系統(tǒng)的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)設(shè)計(jì) 2768次閱讀
- 具備M2M功能的嵌入式網(wǎng)絡(luò)解決方案將成為未來的走向 1027次閱讀
- 基于SOPC技術(shù)的嵌入式以太網(wǎng)網(wǎng)絡(luò)終端設(shè)備解決方案設(shè)計(jì)詳解 1338次閱讀
- 基于嵌入式數(shù)據(jù)庫的礦場(chǎng)安全系統(tǒng)設(shè)計(jì)方案詳解 1145次閱讀
- 關(guān)于嵌入式系統(tǒng)以及嵌入式平臺(tái)下的學(xué)科分工詳解 2025次閱讀
- 關(guān)于IPSec網(wǎng)絡(luò)安全協(xié)議在嵌入式系統(tǒng)中的應(yīng)用與實(shí)現(xiàn)詳解 2057次閱讀
- 基于嵌入式環(huán)境的WiFi通信設(shè)計(jì)方案詳解 5750次閱讀
- 關(guān)于嵌入式系統(tǒng)8大關(guān)鍵特性詳解 1153次閱讀
- 嵌入式系統(tǒng)有哪些部分組成_嵌入式系統(tǒng)的應(yīng)用領(lǐng)域 3.4w次閱讀
- ARM嵌入式系統(tǒng)硬件設(shè)計(jì)及應(yīng)用實(shí)例詳解 1w次閱讀
- 一種嵌入式Web服務(wù)器的設(shè)計(jì)方案 4306次閱讀
- 基于ARM的嵌入式無線視頻采集系統(tǒng)設(shè)計(jì) 1888次閱讀
下載排行
本周
- 1TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開關(guān)電源基礎(chǔ)知識(shí)
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 651單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)大棚環(huán)境控制器仿真程序
- 1.10 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論