DSP與以太網(wǎng)卡的接口技術(shù)研究
?。?)數(shù)據(jù)線、地址線可以直接相連。網(wǎng)卡僅使用F206的A0~A9這10根地址線。
?。?)/IOR、/IOW信號線可通過/IS、/STRB、/RD、/WE這4根信號線譯碼得到,下式給出了生成/IOW、/IOR的譯碼邏輯關(guān)系:
/IOR=/IS+STRB+/RD
/IOW=/IS+/STRB+WE
另外,XF引腳信號經(jīng)驅(qū)動可直接連至RESETDRV,READY引腳經(jīng)上拉電阻連接IOCHRDY,/INT2反向后與IRQ5相連。圖4給出了F206與網(wǎng)卡連接時的硬件框圖,GAL16V8來完成譯碼及驅(qū)動的工作。
DSP對NE2000網(wǎng)卡的編程就是DSP對網(wǎng)絡(luò)接口控制器(NIC)DP8390中各種寄存器進行編程控制,完成數(shù)據(jù)分組的正確發(fā)送和接收。網(wǎng)絡(luò)通信過程可分為網(wǎng)卡初始化、接收控制和發(fā)送控制等三部分。限于篇幅,有關(guān)DP8390頁面寄存器的詳細說明和微機環(huán)境下的編程技術(shù)請參閱文獻[5],DSP的完整匯編程序請有興趣的讀者和作者聯(lián)系。下面只給出DSP讀取NE2000網(wǎng)卡物理地址的一段程序,實際中是用來難驗證上述硬件連接是否正確而編制的。我們購買的網(wǎng)卡物理地址為0040056388E7,在PC機上已經(jīng)得到驗證。實驗證明,通過下面的程序運行讀到了正確的物理地址,從而表明我們所做的設(shè)想和實際結(jié)果是完全一致的。
SPLK #0021H,60H;選擇“0”頁寄存器,后續(xù)操作為復(fù)位操作
OUT 60H,CR
SPLK #0049H,60H;選擇16位傳輸方式
OUT 60H,DCR
SPLK #0000H,60H;清DMA遠程字節(jié)寄存器
OUT 60H,RBCR0
OUT 60H,RBCR1
SPLK #001FH,60H;初始化接收狀態(tài)配置寄存器
OUT 60H,RCR
SPLK #0002H,60H;初始化發(fā)達狀態(tài)配置寄存器
OUT 60H,TCR
SPLK #004CH,60H;設(shè)置接收緩沖環(huán)起始頁面地址寄存器
OUT 60H,PSTART
SPLK #0080H,60H ;設(shè)置接收緩沖環(huán)終止頁面地址寄存器
OUT 60H,PSTOP
SPLK #004CH,60H ;設(shè)置邊界指針寄存器
OUT 60H,BNRY
SPLK #00FFH,60H ;清網(wǎng)卡中斷狀態(tài)
OUT 60H,ISR
SPLK #00FFH,60H ;設(shè)置中斷屏蔽寄存器
OUT 60H,IMR
SPLK #0000H,60H ;設(shè)置遠程DMA起始地址為0000H
OUT 60H,RSAR0
OUT 60H,RSAR1
OUT 60H,RBCR1
SPLK #0006H,60H ;網(wǎng)卡地址長度為6個字節(jié)
OUT 60H,RBCR0
SPLK #000AH,60H;啟動遠程DMA讀
OUT 60H,CR
NOP
IN 61H,DATA_PORT ;61H中存放網(wǎng)卡首字節(jié)地址“00H”
IN 62H,DATA_PORT ;62H存放網(wǎng)卡第二字節(jié)地址“40H”
IN 63H,DATA_PORT ;63H中存放網(wǎng)卡第三字節(jié)地址“05H”
IN 64H,DATA_PORT ;64H中存放網(wǎng)卡第四字節(jié)地址“63H”
IN 65H,DATA_PORT ;65H中存放網(wǎng)卡第五字節(jié)地址“88H”
IN 66H,DATA_PORT ;66H中存放網(wǎng)卡第六字節(jié)地址“E7H”
網(wǎng)卡在DSP中的應(yīng)用解決了DSP與DSP之間、DSP與PC之間的準(zhǔn)確、高速地通信問題。同,由于網(wǎng)卡中包含了OSI七層模型中物理層和數(shù)據(jù)鏈路層的全部內(nèi)容,用戶不必再為這兩層的具體連接和實現(xiàn)操心,可把精力和時間用在要解決的實際問題中去,這必將給用戶帶來極大的方便。
評論