新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于DM9000A的網(wǎng)絡接口設計

        基于DM9000A的網(wǎng)絡接口設計

        作者: 時間:2012-07-17 來源:網(wǎng)絡 收藏

        2 芯片操作
        的讀/寫操作與一般的異步存儲器相同,圖2和圖3分別顯示了的讀/寫時序。

        本文引用地址:http://www.104case.com/article/148754.htm

        d.JPG


        根據(jù)芯片資料,編寫讀/寫寄存器的子函數(shù)。
        寄存器的讀操作程序:
        e.JPG
        f.JPG

        3 軟件
        3.1 DM9000A初始化
        對DM9000A芯片的初始化,就是向相應的寄存器寫入期望的值,為芯片的穩(wěn)定工作做好準備。主要需要進行以下設置以便讓芯片處于工作狀態(tài):
        (1)開啟DM9000A工作狀態(tài):芯片GEPIO0的默認值為1,芯片處于Powerdown狀態(tài),所以首先需要將這一位設置為0,來打開芯片。設置方法是將寄存器GPCR的bit[0]設置為1,將寄存器GPR的bit[0]設置為0。
        (2)進行2次復位操作:根據(jù)芯片的特點,要使芯片達到正常工作狀態(tài),需要對其進行2次軟啟動操作,方法是向NCR寄存器寫入3,延遲至少10μs后,寫入0,重復這個操作一次。
        (3)設置MAC地址:初始化時要初始化PAR(10h~15h)寄存器,PAR中保存的是芯片物理地址(MAC地址),芯片根據(jù)數(shù)據(jù)與PAR中的數(shù)據(jù)比較來確定接收到的數(shù)據(jù)是否是發(fā)給自己的。
        (4)收、發(fā)控制寄存器設置:要清除發(fā)送狀態(tài)寄存器,打開收/發(fā)中斷使能。
        初始化完成后可以通過讀NCR寄存器來判斷芯片是否已經(jīng)正確的完成初始化,并處于工作狀態(tài),如果未初始化成功,可以重復以上操作。
        3.2 數(shù)據(jù)發(fā)送
        在數(shù)據(jù)發(fā)送之前,首先要對數(shù)據(jù)按協(xié)議進行封包,將封包后的數(shù)據(jù)全部發(fā)送。DM9000A的內部RAM地址0000h~0BFFh是發(fā)送緩沖區(qū),用來存放發(fā)送數(shù)據(jù)包。用戶在寫入數(shù)據(jù)時,無需關心數(shù)據(jù)存放的地址,只要向MWCMD寄存器連續(xù)寫入封包數(shù)據(jù)即可,芯片會自動將數(shù)據(jù)依次寫入到發(fā)送緩沖區(qū)中。另外還需將要封包后數(shù)據(jù)的大小存放在TXPLH和TXPLL寄存器中,之后再將TCR的bit0設為1,芯片將開始進行封包數(shù)據(jù)的傳送??梢酝ㄟ^讀取TSRI,TSR11寄存器判斷本次數(shù)據(jù)發(fā)送是否成功。



        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 宜兰市| 夏河县| 阳泉市| 呼和浩特市| 商水县| 宁化县| 邢台市| 怀化市| 博湖县| 静安区| 夏津县| 绥宁县| 耿马| 卢龙县| 铜山县| 蒙城县| 醴陵市| 陇川县| 长顺县| 察雅县| 水富县| 崇左市| 普宁市| 屏南县| 五大连池市| 博野县| 马尔康县| 南召县| 获嘉县| 盘锦市| 琼结县| 本溪市| 荃湾区| 淮安市| 西贡区| 七台河市| 无锡市| 宜丰县| 郓城县| 无为县| 保山市|