<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 以太網(wǎng)控制器接□模塊的程序設計

以太網(wǎng)控制器接□模塊的程序設計

作者: 時(shí)間:2011-07-20 來(lái)源:網(wǎng)絡(luò ) 收藏

1.軟件開(kāi)發(fā)流程   

由于數據幀最大為1518字節,而單片機PIC 16F877的內存容量只有368字節,因此就要利用接 口控制器RTL8019AS內置的16KB的SRAM,用作接收緩收區,并且單片機PlC16F877僅傳輸和處理數據報的有用 部分。在接收處理時(shí),不使用中斷方式,而采用輪詢(xún)(Polling)方式,其幀接收流程為圖1所示。

圖1 幀接收流程圖  ?。?)流程說(shuō)明。

幀接收流程完成NIC初始化后,主程序始終等待是否有數據幀到達,當收到數據幀后,判別接收幀的類(lèi)型 字段,如果是0806h,轉入ARP接收處理;如果是0800h就轉入IP接收處理。

如果是發(fā)給自己的ARP請求,則生成ARP應答交鏈路層裝幀后發(fā)送,否則丟棄;若經(jīng)判斷數據幀為發(fā)給自己 的P數據報,則將IP數據報交IP協(xié)議處理。

在IP協(xié)議處理中要對ICMP和rap報文進(jìn)行區分,交各自的協(xié)議處理。當rap或ICMP協(xié)議有數據需要發(fā)送時(shí), 則通知P層,IP協(xié)議將待發(fā)數據進(jìn)行封裝,然后交給鏈路層裝幀發(fā)送。對其他數據報沒(méi)有必要應答,仍然繼 續輪詢(xún)。

接口控制器RTL8019AS的接收緩沖區大約有14KB,但實(shí)際上,數據是以256字節為上限(作為一幀) 寫(xiě)入的,假設1頁(yè)中寫(xiě)入1幀(256字節),最大的緩沖容量為58個(gè)幀。一旦發(fā)生緩沖區溢出,程序將對以太 網(wǎng)接口控制器RTL8019AS重置,這期間接收的數據幀將全部廢棄扔掉。一旦發(fā)生溢出,使用上層協(xié)議的超時(shí)等來(lái)保證其可靠性。

(2)初始化過(guò)程。

①從內置E2PROM中將必要的數據拷貝至RAM中。在Remote LO畫(huà)面中,即使改變IP Address或Port號,如果不進(jìn)行重置,其變更值不會(huì )生效。

②如果液晶顯示器的端口號不是0的話(huà),將對液晶顯示器進(jìn)行初始化。該過(guò)程大概需要數十毫秒的時(shí)間。

③對RTL8019AS的RSTDRV端進(jìn)行RESET,大概需要數毫秒完成該動(dòng)作。這期間,   RTL8019AS讀取93C46的CONFIG1ˉCONFIG4。

④PIC經(jīng)8019AS從93C46中讀MAC地址。

⑤將MAC地址寫(xiě)入8019AS內的寄存器中,8019AS的初始化完畢。

⑥檢查JP2,轉入普通模式或輔助程序模式。

⑦在普通模式的最初,判別是否有取P地址(IP=0.0.0.0)的必要,如果必要,在DHCP服務(wù)器中,使用廣播通信方式將DHCP協(xié)議中的DISCOVER信息送出。

上述處理完后,進(jìn)入幀接收處理狀態(tài)。

  初始化過(guò)程如圖2~圖7所示。

圖2 將必要的數據拷貝到RAM   圖3 將8019重置,讀CONFIG寄存器   

圖4 取MAC地址

圖5 將MAC地址寫(xiě)入PAR寄存器    圖6 檢查動(dòng)作方式   圖7 如果是DHCP的話(huà),發(fā)出DISCOVER   

(3)協(xié)議處理程序。

①ARP協(xié)議處理。



關(guān)鍵詞: 以太網(wǎng) 控制器接□

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>