中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式系統(tǒng)以太網(wǎng)接口的設(shè)計

        嵌入式系統(tǒng)以太網(wǎng)接口的設(shè)計

        作者: 時間:2014-12-02 來源:網(wǎng)絡(luò) 收藏

          3軟件設(shè)計

        本文引用地址:http://www.antipu.com.cn/article/266249.htm

          的編程包括初始化、發(fā)送、接收三部分功能。在接收和發(fā)送數(shù)據(jù)以前要進行必需的檢測和初始化。的初始化主要是設(shè)置所需的寄存器狀態(tài),建立網(wǎng)絡(luò)接口收發(fā)的條件。

          網(wǎng)絡(luò)接口通過2個DMA操作來完成數(shù)據(jù)的接收和發(fā)送。本地DMA完成DMA9008與其內(nèi)部FIFO隊列之間的數(shù)據(jù)傳送,遠程DMA完成與CPU之間的數(shù)據(jù)傳送。

          DM9008可尋址的空間有32個,分別為00H~1FH.其中00H~0FH是寄存器區(qū),00H~1FH.其中00H~0FH是寄存器區(qū),00H作為命令寄存器,通過設(shè)置可選擇3個頁面,10H~17H為數(shù)據(jù)端口,18H~1FH為復(fù)位端口。

          3.1 DM9008的初始化

          DM9008的具體初始化過程如下(CPU對DM9008的尋址需要加上基地址,為了描述方便,省略掉基地址直接用DM9008的內(nèi)部地址描述寄存器地址):

          (1)讀入1FH端口數(shù)據(jù),再寫回該地址以啟動DM9008工作。

          (2)向命令寄存器CR(00H)寫入21H,選擇寄存器頁面0,并進行軟件復(fù)位。

          (3)設(shè)置數(shù)據(jù)結(jié)構(gòu)寄存器DCR(0EH)為48H.

          (4)設(shè)置方式狀態(tài)寄存器TCR(0DH)為02H.

          (5)讀出網(wǎng)絡(luò)的物理地址:

          a.設(shè)置遠程DMA計數(shù)器RBCR1(0BH)、RBCR0(0AH)的值為000CH;

          b.設(shè)置遠程DMA地址RSAR1(09H)、RSAR0(08H)的值為0000H;

          c.設(shè)置命令寄存器CR(00H)為遠程DMA讀,即0AH;

          d.重復(fù)從數(shù)據(jù)端口(10H)讀6個字節(jié),這6個字節(jié)即網(wǎng)絡(luò)物理地址;

          e.停止遠程DMA,設(shè)置CR為21H,RBCR1、RBCR0為0000H.

          (6)設(shè)置接收狀態(tài)寄存器RCR(0CH)為04H.

          (7)劃分緩沖區(qū)接收緩沖區(qū)和發(fā)送緩沖區(qū),并建立接收緩沖環(huán)。將DM9008內(nèi)部RAM地址為4000H~4BFFH設(shè)置為發(fā)送緩沖區(qū),4C00H~7FFFH設(shè)置為接收緩沖區(qū),即設(shè)置PSTART(01H)為4CH,PSTOP(02H)為80H,BNRY(03H)為4CH.

          (8)設(shè)置CR為61H,選擇頁面1.

          (9)設(shè)置網(wǎng)卡地址寄存器,把PAR0(01H)~PAR5(06H)設(shè)置為前面讀出的物理地址。

          (10)設(shè)置當(dāng)前頁面寄存器CURR(07H)為PSTART+1,即4DH.

          (11)清除多址寄存器,即MAR0(08H)~MAR7(0FH)為00H.

          (12)設(shè)置CR為21H,選擇寄存器頁面0.

          (13)清除中斷狀態(tài)寄存器ISR(07H)為0FFH.

          (14)設(shè)置中斷屏蔽寄存器IMR(0FH)為3BH,即接收中斷允許、接收錯誤中斷允許、發(fā)送錯誤中斷允許、溢出中斷允許、計數(shù)器溢出中斷允許。

          (15)設(shè)置發(fā)送設(shè)置寄存器TCR(0DH)為00H.

          (16)設(shè)置CR為22H,芯片進入工作狀態(tài)。

          至此,DM9008的初始化過程完成,DM9008處于接收狀態(tài)。只要網(wǎng)絡(luò)上有可以接收的數(shù)據(jù)包,DM9008自動將數(shù)據(jù)存入接收緩沖區(qū)并在收完后向CPU發(fā)中斷申請。

          3.2接收數(shù)據(jù)

          DM9008收到一個完整的數(shù)據(jù)包后,向CPU發(fā)出中斷請求,CPU響應(yīng)DM9008的中斷申請后,進入中斷服務(wù)程序并開始接收數(shù)據(jù),具體過程如下:

          (1)讀出中斷狀態(tài)寄存器ISR,并寫回該寄存器。

          (2)判斷是否數(shù)據(jù)接收中斷,如果不是,不執(zhí)行以下步驟。

          (3)設(shè)置CR為22H,選擇頁面0.

          (4)設(shè)置遠程DMA地址寄存器RSAR1、RSAR0為接收地址指針,該指針高位字節(jié)初始值位PSTART+1,低位字節(jié)為0.

          (5)設(shè)置遠程DMA計數(shù)器RBCR1、RBCR0為0004H;

          (6)設(shè)置CR為遠程讀0AH,讀數(shù)據(jù)端口,讀出4個字節(jié),這4個字節(jié)第1字節(jié)表示接收狀態(tài),第2個字節(jié)為下一包開始地址指針,第3~4個字節(jié)為本數(shù)據(jù)包的長度(高位字節(jié)在前)。

          (7)設(shè)置CR為22H,遠程DMA完成。

          (8)根據(jù)接收狀態(tài)判斷數(shù)據(jù)包是否接收正確,如果接收正確,啟動遠程DMA,收取該數(shù)據(jù)包并進行處理。

          (9)結(jié)束遠程DMA,設(shè)置下一次接收數(shù)據(jù)指針和接收邊界指針。

        雙絞線傳輸器相關(guān)文章:雙絞線傳輸器原理


        關(guān)鍵詞: 以太網(wǎng) 8051 DM9008

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉