基于ARM微處理器TCP/IP協(xié)議棧LwlP實(shí)現(xiàn)
3 底層網(wǎng)絡(luò)驅(qū)動(dòng)的實(shí)現(xiàn)
底層網(wǎng)絡(luò)驅(qū)動(dòng)的框架LwIP已經(jīng)為我們實(shí)現(xiàn)了絕大部分(如圖2所示),我們只需要在作者設(shè)計(jì)好的框架中完成與底層硬件相關(guān)的部分即可。即我們只需要實(shí)現(xiàn)與硬件相關(guān)的網(wǎng)卡初始化函數(shù)網(wǎng)絡(luò)數(shù)據(jù)包發(fā)送函數(shù)和網(wǎng)絡(luò)數(shù)據(jù)包接收函數(shù)。本文引用地址:http://www.ex-cimer.com/article/152206.htm
本文所采用的底層網(wǎng)絡(luò)芯片CS8900A是C IRRU SLO G IC公司生產(chǎn)的低功耗、性能優(yōu)越的16位以太網(wǎng)控制器,功能強(qiáng)大。突出特點(diǎn)是使用靈活,其物理層接口、數(shù)據(jù)傳輸模式和工作模式等都能根據(jù)需要而動(dòng)態(tài)調(diào)整,通過內(nèi)部寄存器的設(shè)置來適應(yīng)不同的應(yīng)用環(huán)境。它的主要特點(diǎn)是符合IEEE 802.3以太網(wǎng)標(biāo)準(zhǔn);片內(nèi)帶有4K字節(jié)的RAM來存儲(chǔ)發(fā)送和接收數(shù)據(jù);與主機(jī)之間的數(shù)據(jù)通訊方式有I/O模式、Memory模式和DMA模式,在電路設(shè)計(jì)時(shí)可根據(jù)具體情況靈活選擇;帶有傳送、接收低通濾波的10Base2T連接端口;支持10Base2,10Base5和10Base2F的AU I接口;自動(dòng)生成報(bào)頭,自動(dòng)進(jìn)行CRC檢驗(yàn),沖突后自動(dòng)重發(fā);全雙工和半雙工可選模式。
CS8900A初始化部分的主要內(nèi)容如下:
?軟件復(fù)位,并檢查復(fù)位完成標(biāo)志是否置位;
?設(shè)定Memory工作模式,使其4K內(nèi)存地址映射到主機(jī)內(nèi)存中;
?設(shè)定臨時(shí)使用的以太網(wǎng)物理地址,真實(shí)地址需要向權(quán)威機(jī)構(gòu)申請(qǐng);
?設(shè)定接收幀的類型,至少要能接收廣播;
?確定數(shù)據(jù)的傳送方向,一般設(shè)為全雙工方式;
?中斷使能允許;
?使能接收中斷;
?確定CS8900A的中斷管腳號(hào),根據(jù)硬件線路使用情況來確定;
?接收發(fā)送使能。
其中需要說明的是由于TCP/IP通信非常頻繁,在arm中接收發(fā)送數(shù)據(jù)采用中斷模式占用資源太多,因此本文采用的是查詢方式,也可以保證數(shù)據(jù)的基本通信。
CS8900A的數(shù)據(jù)發(fā)送基本流程如下:在收到由主機(jī)發(fā)來的數(shù)據(jù)報(bào)后,偵聽網(wǎng)絡(luò)線路。如果線路忙,它就等到線路空閑為止,否則,立即發(fā)送該數(shù)據(jù)幀。發(fā)送過程中,首先,它添加以太網(wǎng)幀頭(包括先導(dǎo)字段和幀開始標(biāo)志),然后,生成CRC校驗(yàn)碼,最后,將此數(shù)據(jù)幀發(fā)送到以太網(wǎng)上。數(shù)據(jù)發(fā)送流程圖如圖3所示。
tcp/ip相關(guān)文章:tcp/ip是什么
評(píng)論