日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
嵌入式系統(tǒng)以太網(wǎng)接口的設(shè)計(jì)
嵌入式系統(tǒng)以太網(wǎng)接口的設(shè)計(jì)
 更新時(shí)間:2008-8-4 4:48:49  點(diǎn)擊數(shù):24
【字體: 字體顏色
t>

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

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

3.1 DM9008的初始化

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

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

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

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

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

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

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

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

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

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

e.停止遠(yuǎn)程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,選擇頁(yè)面1。

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

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

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

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

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

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

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

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

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

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

DM9008收到一個(gè)完整的以太網(wǎng)數(shù)據(jù)包后,向CPU發(fā)出中斷請(qǐng)求,CPU響應(yīng)DM9008的中斷申請(qǐng)后,進(jìn)入中斷服務(wù)程序并開(kāi)始接收數(shù)據(jù),具體過(guò)程如下:

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

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

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

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

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

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

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

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

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

3.3 發(fā)送數(shù)據(jù)

數(shù)據(jù)的發(fā)送過(guò)程應(yīng)包含三個(gè)步驟:數(shù)據(jù)包的封裝;通過(guò)遠(yuǎn)程DMA將數(shù)據(jù)包送入DMA9008的數(shù)據(jù)發(fā)送緩沖區(qū);通過(guò)DM9008的本地DMA將數(shù)據(jù)送入FIFO進(jìn)行發(fā)送。具體過(guò)程如下:

(1)數(shù)據(jù)包在發(fā)送前應(yīng)該按規(guī)定的格式封裝好,格式如下:

  • 上一篇: 微處理器Rabbit2000與液晶顯示控制器KS0108B的接口及編程
  • 下一篇: DSP與智能彩色液晶顯示器接口設(shè)計(jì)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1