《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(tài) > DSP與以太網(wǎng)卡的接口技術(shù)研究

DSP與以太網(wǎng)卡的接口技術(shù)研究

2009-05-18
作者:劉國福 張 屺 廖 巍

  摘? 要: 通過分析NE2000網(wǎng)卡與微機(jī)ISA總線的接口電路,用DSP芯片TMS320F206結(jié)合外圍電路模擬ISA時序,實現(xiàn)了DSP與NE2000網(wǎng)卡的軟、硬件接口,從而使ISA總線型網(wǎng)卡脫離了PC機(jī)環(huán)境的制約。

  關(guān)鍵詞: 網(wǎng)卡? ISA總線? DSP

?

  以太網(wǎng)是當(dāng)今最受歡迎的局域網(wǎng)之一,它包括了OSI七層模型的物理層和數(shù)據(jù)鏈路層的全部內(nèi)容[1]。在以太網(wǎng)中,網(wǎng)卡用于實現(xiàn)802.3規(guī)程,其代表是NOVELL公司的NE2000和3COM公司的3C503、3C508、3C509等網(wǎng)卡。對網(wǎng)卡直接編程就可以實現(xiàn)局域網(wǎng)內(nèi)任意站點(diǎn)之間的通信而完全拋開了網(wǎng)絡(luò)操作系統(tǒng),這就啟發(fā)我們能否在脫離PC環(huán)境的條件下實現(xiàn)網(wǎng)卡與其它微處理器之間的接口,從而建立基于非PC機(jī)平臺的局域網(wǎng)絡(luò)。對ISA總線型網(wǎng)卡,要實現(xiàn)這一設(shè)想,關(guān)鍵在于怎樣利用微處理器及外圍輔助電路模擬ISA時序。本文作者根據(jù)所做課題需要,通過分析NE2000網(wǎng)卡與微機(jī)ISA總線的接口電路,用DSP芯片TMS320F206結(jié)合外圍電路模擬ISA時序,解決了DSP與NE2000網(wǎng)卡的軟、硬件接口問題,初步實現(xiàn)了網(wǎng)卡在非PC機(jī)環(huán)境下的應(yīng)用。

1 NE2000網(wǎng)卡與微機(jī)ISA總線接口電路分析

  NE2000網(wǎng)卡是NOVELL公司生產(chǎn)的16位ISA總線的網(wǎng)卡,利用NE2000網(wǎng)卡可以組成總線結(jié)構(gòu)的以太計算機(jī)局域網(wǎng)。該網(wǎng)卡遵循的標(biāo)準(zhǔn)與協(xié)議為IEEE802.3。其硬件結(jié)構(gòu)如圖1所示,按功能可將其劃分為接口電路、緩沖RAM、站地址PROM、自舉ROM、狀態(tài)設(shè)置跳線器、連接器、DP8390、DP8391以及DP8392九部分[2]。

?

?

  接口電路主要實現(xiàn)兩種功能:一是與計算機(jī)ISA總線相連,包括數(shù)據(jù)總線讀寫、地址總線驅(qū)動、中斷控制信號的產(chǎn)生、存儲器讀寫信號以及I/O端口讀寫信號的引入等;二是對網(wǎng)卡內(nèi)部的操作,包括對緩沖RAM的讀寫、對DP8390的控制、讀站地址PROM以及讀自舉ROM等。表1列出了NE2000網(wǎng)卡接口電路所使用的ISA總線信號(不考慮電源線和地線)。從表1可以看出,網(wǎng)卡接口電路僅使用了50根ISA信號線。通過對網(wǎng)卡工作原理的分析,我們還可以將網(wǎng)卡與DSP之間的接口信號線減至最少。

?

?

  (1)網(wǎng)卡自舉ROM中固化了遠(yuǎn)程自舉程序,使得用戶工作站能夠遠(yuǎn)程自舉DOS系統(tǒng),并從服務(wù)器上裝載程序。這個功能很少用到,而且在基于DSP平臺的局域網(wǎng)中也不存在DOS系統(tǒng),故一般情況下都是通過跳線器屏蔽掉此功能。因而,/SMEMR和SA10~SA19這11根信號線可以不用。

  (2)AEN信號只有當(dāng)DMA控制器是總線占有者時,它才產(chǎn)生作用[3]。由于網(wǎng)卡并不使用DMA操作,故可將該信號線始終保持在低電平,使網(wǎng)卡I/O譯碼操作一直有效。

  (3)80X86系列微機(jī)為了兼容的需要,設(shè)置了/IOCS16信號線。由于我們使用的是16位DSP,不進(jìn)行8/16位數(shù)據(jù)讀寫的轉(zhuǎn)換,故不需要此信號。

  (4)DSP只需要一根中斷線,因而可在上述7根線中任選一根即可,其余6根中斷線懸空即可。

  (5)網(wǎng)卡與ISA總線交換數(shù)據(jù)是通過I/O端口實現(xiàn)的,微機(jī)采用PIO方式,從網(wǎng)卡緩沖RAM中讀入數(shù)據(jù),或?qū)⒅鳈C(jī)內(nèi)存中的數(shù)據(jù)送至網(wǎng)卡RAM緩沖區(qū)。根據(jù)這一分析,DSP及其外圍輔助電路應(yīng)能完成模擬ISA總線I/O讀寫的功能。

  通過上面對網(wǎng)卡接口信號線的詳細(xì)分析,可以看到DSP與網(wǎng)卡之間只需正確連接32根信號線,從而使DSP的外圍接口電路大大簡化。

2 DSP與NE2000網(wǎng)卡接口硬件電路

  TMS320F206[4]是一種低價格、高性能的16位定點(diǎn)DSP,它的性價比極高,目前已成為高檔單片機(jī)的理想替代品,在通信、語音/語言、軍事、儀器儀表、圖像處理、工業(yè)控制等領(lǐng)域得到了廣泛的應(yīng)用。本文所設(shè)計的就是該DSP與NE2000網(wǎng)卡的軟、硬件接口,從而展開對基于DSP平臺的局域網(wǎng)的研究。

  根據(jù)上面對網(wǎng)卡與微機(jī)ISA總線接口電路的分析,表2列出了F206與網(wǎng)卡接口所需的引腳信號。

  從表1和表2可以看出,NE2000網(wǎng)卡接口電路所需的信號線與F206的引腳之間有明確的對應(yīng)關(guān)系。但是,它們之間能否通過簡單的組合邏輯進(jìn)行相連還需分析微機(jī)ISA總線I/O讀寫時序與F206的I/O讀寫時序是否一致。以讀時序為例,圖2給出了微機(jī)ISA總線I/O讀時序過程,圖3給出了F206的I/O讀時序。從這兩個時序圖可以看出:微機(jī)采用數(shù)據(jù)和地址總線復(fù)用的總線傳送方式,當(dāng)?shù)刂锋i存后,數(shù)據(jù)再送上總線;DSP采用獨(dú)立的數(shù)據(jù)和地址總線傳送方式,地址在一個I/O周期之間保持有效,數(shù)據(jù)在/RD信號有效后,在I/O周期內(nèi)保持有效。因此,DSP可以按下述應(yīng)用模仿微機(jī)時序?qū)W(wǎng)卡進(jìn)行操作。

?

?

  (1)數(shù)據(jù)線、地址線可以直接相連。網(wǎng)卡僅使用F206的A0~A9這10根地址線。

  (2)/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ū)動的工作。

?

?

3 DSP對NE2000網(wǎng)卡的編程

  DSP對NE2000網(wǎng)卡的編程就是DSP對網(wǎng)絡(luò)接口控制器(NIC)DP8390中各種寄存器進(jìn)行編程控制,完成數(shù)據(jù)分組的正確發(fā)送和接收。網(wǎng)絡(luò)通信過程可分為網(wǎng)卡初始化、接收控制和發(fā)送控制等三部分。限于篇幅,有關(guān)DP8390頁面寄存器的詳細(xì)說明和微機(jī)環(huán)境下的編程技術(shù)請參閱文獻(xiàn)[5],DSP的完整匯編程序請有興趣的讀者和作者聯(lián)系。下面只給出DSP讀取NE2000網(wǎng)卡物理地址的一段程序,實際中是用來驗證上述硬件連接是否正確而編制的。我們購買的網(wǎng)卡物理地址為0040056388E7,在PC機(jī)上已經(jīng)得到驗證。實驗證明,通過下面的程序運(yùn)行讀到了正確的物理地址,從而表明我們所做的設(shè)想和實際結(jié)果是完全一致的。

  SPLK #0021H,60H???? ;選擇“0”頁寄存器,后續(xù)操作為復(fù)位操作

????OUT 60H,CR

????SPLK #0049H,60H?????;選擇16位傳輸方式

????OUT 60H,DCR

????SPLK #0000H,60H???? ;清DMA遠(yuǎn)程字節(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è)置遠(yuǎn)程DMA起始地址為0000H

??? OUT 60H,RSAR0

??? OUT 60H,RSAR1

??? OUT 60H,RBCR1

??? SPLK #0006H,60H???? ;網(wǎng)卡地址長度為6個字節(jié)

??? OUT 60H,RBCR0

??? SPLK #000AH,60H???? ;啟動遠(yuǎn)程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)操心,可把精力和時間用在要解決的實際問題中去,這必將給用戶帶來極大的方便。

?

參考文獻(xiàn)

1 何 誠.局部網(wǎng)絡(luò)軟件、硬件及其協(xié)議.成都:四川科學(xué)技術(shù)出版社,1992年

2 李 鵬.計算機(jī)通信技術(shù)及其程序設(shè)計.西安:西安電子科技大學(xué)出版社,1998年

3 閻 凱主編.386微型計算機(jī)硬件設(shè)計原理分析與維修(下).北京:科學(xué)出版社,1994年

4 武漢力源電子股份有限公司.TMS320C2XX數(shù)字信號處理器用戶指南.1998年

5 劉彥明,李 鵬.實用網(wǎng)絡(luò)編程技術(shù).西安:西安電子科技大學(xué)出版社,1998年
本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。