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