摘 要:本文介紹使用51單片機和網(wǎng)卡芯片RTL8019AS實現(xiàn)嵌入式系統(tǒng)的網(wǎng)絡(luò)接入方案,它支持TCP和UDP,還具有主動、被動連接、跨越網(wǎng)關(guān)的能力。
關(guān)鍵詞:嵌入式系統(tǒng);TCP/IP;單片機;互聯(lián)網(wǎng)
引言
在網(wǎng)絡(luò)技術(shù)應(yīng)用日益廣泛的今天,網(wǎng)絡(luò)傳輸是最經(jīng)濟有效的數(shù)據(jù)傳輸方式。如何利用廉價的51單片機來控制網(wǎng)卡芯片進(jìn)行數(shù)據(jù)傳輸,加載TCP/IP協(xié)議連接到互聯(lián)網(wǎng),實現(xiàn)網(wǎng)絡(luò)通信成了眾多設(shè)計者的目標(biāo)。但由于指令及資源的限制,實施過程會有許多困難。我們在設(shè)計方案中舍棄了耗費資源的高級協(xié)議,采用發(fā)送小數(shù)據(jù)包的方式以避免分段,來簡化TCP協(xié)議和UDP協(xié)議,實現(xiàn)互聯(lián)接入。
硬件設(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ā)器,外接一個隔離LPF濾波器,經(jīng)RJ-45接口輸出。外部RAM是62256,24C02是I2C總線的EEPROM。
系統(tǒng)的軟件設(shè)計與實現(xiàn)
為適應(yīng)上網(wǎng)的需求,系統(tǒng)軟件設(shè)計主要包括兩部分內(nèi)容:一是要執(zhí)行對RTL8019AS等的控制功能,二是要執(zhí)行與連接Internet相關(guān)的功能,實現(xiàn)TCP/IP協(xié)議。本文著重介紹第二部分,主程序采用C51語言編寫。
RTL8019AS初始化
要將嵌入式系統(tǒng)接入以太網(wǎng),首先要設(shè)置RTL8019AS的工作方式和工作狀態(tài),分配收發(fā)數(shù)據(jù)的緩沖區(qū),通過對地址及數(shù)據(jù)口的讀寫來完成以太網(wǎng)幀的接收與發(fā)送。然后設(shè)置RTL8019AS的工作參數(shù),亦即設(shè)置內(nèi)部控制寄存器。對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通常采用一種簡化的四層模型:應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、鏈路層。