<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è) > 嵌入式系統 > 設計應用 > 51單片機RTL8019AS網(wǎng)卡驅動(dòng)程序

51單片機RTL8019AS網(wǎng)卡驅動(dòng)程序

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

本文引用地址:http://dyxdggzs.com/article/173249.htm

  MAC地址不是隨便定義的,它的組成結構如圖9所示。以太網(wǎng)的地址為48位,由ieee統一分配給制造商,每個(gè)的地址都必須是全球唯一的。共6個(gè)字節的長(cháng)度。FF:FF:FF:FF:FF:FF為廣播地址,只能用在目的地址段,不能作為源地址段。目的地址為廣播地址的數據包,可以被一個(gè)局域網(wǎng)內的所有網(wǎng)卡接收到。合法的以太網(wǎng)地址第32位組播標志必須為0。例如:

  X0:XX:XX:XX:XX:XX

  X2:XX:XX:XX:XX:XX

  X4:XX:XX:XX:XX:XX

  X6:XX:XX:XX:XX:XX

  X8:XX:XX:XX:XX:XX

  XA:XX:XX:XX:XX:XX

  XC:XX:XX:XX:XX:XX

  XE:XX:XX:XX:XX:XX

  為合法以太網(wǎng)地址。上面的X代表0-F中的任一個(gè)。

  地址

  X1:XX:XX:XX:XX:XX

  X3:XX:XX:XX:XX:XX

  X5:XX:XX:XX:XX:XX

  X7:XX:XX:XX:XX:XX

  X9:XX:XX:XX:XX:XX

  XB:XX:XX:XX:XX:XX

  XD:XX:XX:XX:XX:XX

  XF:XX:XX:XX:XX:XX

  為組播地址,只能作為目的地址,不能作為源地址。組播地址可以被支持該組播地址的一組網(wǎng)卡接收到。組播地址主要用在視頻廣播,遠程喚醒(通過(guò)發(fā)一個(gè)特殊的數據包使網(wǎng)卡產(chǎn)生一個(gè)中斷信號,啟動(dòng)電腦),游戲(多個(gè)人在局域網(wǎng)里聯(lián)機打游戲)里等。

  以下是一些具體的組播地址:

  地址范圍

  01:00:5E:00:00:00---01:00:5E:7F:FF:FF 用于ip地址的組播,其他組播地址跟tcp/ip無(wú)關(guān),不做介紹。

  網(wǎng)卡可以接收以下3種地址的數據包:

  第一種 目的地址跟自己的網(wǎng)卡地址是一樣的數據包;

  第二種 目的地址為FF:FF:FF:FF:FF:FF廣播地址的數據包;

  第三種 目的地址為跟自己的組播地址范圍相同的數據包。

  在以太網(wǎng)的應用當中,如果你希望你的數據包只發(fā)給一個(gè)網(wǎng)卡,目的地址用對方的網(wǎng)卡地址;

  如果你想把數據包發(fā)給所有的網(wǎng)卡,目的地址用廣播地址;

  如果你想把數據包發(fā)給一組網(wǎng)卡,目的地址用組播地址。

  其他用到的寄存器:

  CR---命令寄存器 TSR---發(fā)送狀態(tài)寄存器 ISR---中斷狀態(tài)寄存器

  RSR---接收狀態(tài)寄存器 RCR---接收配置寄存器 TCR---發(fā)送配置寄存器

  DCR---數據配置寄存器 IMR---中斷屏蔽寄存器 NCR---包發(fā)送期間碰撞次數

  FIFO---環(huán)回檢測后,查看FIFO內容

  CNTR0---幀同步錯總計數器

  CNTR1---CRC錯總計數器

  CNTR2---丟包總計數器

  PAR0-5---本節點(diǎn)MAC地址

  MAR0-7---多播地址匹配

  建議:將圖形中寄存器名稱(chēng)標注上頁(yè)號和地址偏移(如:BNRY 0頁(yè)0x03),打印出此圖,看圖編程,直觀(guān)且不容易出錯。

  備注:收緩沖區、發(fā)緩沖區、數據存儲區在16K雙口RAM里的安排由用戶(hù)自行決定,只要不引起沖突即可,以下源程序代碼實(shí)現的只是其中的一種分配方案。

  部分源程序清單:

  struct ethernet{

  unsigned char status; //接收狀態(tài)

  unsigned char nextpage; //下一個(gè)頁(yè)

  unsigned int length; //以太網(wǎng)長(cháng)度,以字節為單位

  unsigned int destnodeid[3]; //目的網(wǎng)卡地址

  unsigned int sourcenodeid[3]; //源網(wǎng)卡地址

  unsigned int protocal; //下一層協(xié)議

  unsigned char packet[1500]; //包的內容

  };

  void ne2000init()//ne2000網(wǎng)卡初始化

  {

  rtl8019as_rst();

  reg00=0x21; //選擇頁(yè)0的寄存器,網(wǎng)卡停止運行,因為還沒(méi)有初始化。

  delay_ms(10); //延時(shí)10毫秒,確保芯片進(jìn)入停止模式

  //使芯片處于mon和loopback模式,跟外部網(wǎng)絡(luò )斷開(kāi)

51單片機相關(guān)文章:51單片機教程




評論


相關(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>