DSP與以太網(wǎng)卡的接口技術(shù)研究
以太網(wǎng)是當(dāng)今最受歡迎的局域網(wǎng)之一,它包括了OSI七層模型的物理層和數(shù)據(jù)鏈路層的全部?jī)?nèi)容[1]。在以太網(wǎng)中,網(wǎng)卡用于實(shí)現(xiàn)802.3規(guī)程,其代表是NOVELL公司的NE2000和3COM公司的3C503、3C508、3C509等網(wǎng)卡。對(duì)網(wǎng)卡直接編程就可以實(shí)現(xiàn)局域網(wǎng)內(nèi)任意站點(diǎn)之間的通信而完全拋開了網(wǎng)絡(luò)操作系統(tǒng),這就啟發(fā)我們能否在脫離PC環(huán)境的條件下實(shí)現(xiàn)網(wǎng)卡與其它微處理器之間的接口,從而建立基于非PC機(jī)平臺(tái)的局域網(wǎng)絡(luò)。對(duì)ISA總線型網(wǎng)卡,要實(shí)現(xiàn)這一設(shè)想,關(guān)鍵在于怎樣利用微處理器及外圍輔助電路模擬ISA時(shí)序。本文作者根據(jù)所做課題需要,通過分析NE2000網(wǎng)卡與微機(jī)ISA總線的接口電路,用DSP芯片TMS320F206結(jié)合外圍電路模擬ISA時(shí)序,解決了DSP與NE2000網(wǎng)卡的軟、硬件接口問題,初步實(shí)現(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ì)算機(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]。
接口電路主要實(shí)現(xiàn)兩種功能:一是與計(jì)算機(jī)ISA總線相連,包括數(shù)據(jù)總線讀寫、地址總線驅(qū)動(dòng)、中斷控制信號(hào)的產(chǎn)生、存儲(chǔ)器讀寫信號(hào)以及I/O端口讀寫信號(hào)的引入等;二是對(duì)網(wǎng)內(nèi)部的操作,包括對(duì)緩沖RAM的讀寫、對(duì)DP8390的控制、讀站地址PROM以及讀自舉ROM等。表1列出了NE2000網(wǎng)卡接口電路所使用的ISA總線信號(hào)(不考慮電源線和地線)。從表1可以看出,網(wǎng)卡接口電路僅使用了50根ISA信號(hào)線。通過對(duì)網(wǎng)卡工作原理的分析,我們還可以將網(wǎng)卡與DSP之間的接口信號(hào)線減至最少。表1 NE2000網(wǎng)卡接口電路所使用的ISA總線信號(hào)
信號(hào)線 | 引 腳 |
數(shù)據(jù)信號(hào)線 | SD0~SD15 |
地址信號(hào)線 | SA0~SA19 |
地址允許線 | AEN |
I/O通道準(zhǔn)備好信號(hào)線 | IOCHRDY |
復(fù)位信號(hào)線 | RESETDRV |
系統(tǒng)存儲(chǔ)器讀信號(hào) | /SMEMR |
I/O讀信號(hào) | /IOR |
I/O寫信號(hào) | /IOW |
I/O片選16位信號(hào) | /IOCS 16 |
中斷信號(hào)線 | IRQ5,4,3,10,11,12,15 |
(1)網(wǎng)卡自舉ROM中固化了遠(yuǎn)程自舉程序,使得用戶工作站能夠遠(yuǎn)程自舉DOS系統(tǒng),并從服務(wù)器上裝載程序。這個(gè)功能很少用到,而且在基于DSP平臺(tái)的局域網(wǎng)中也不存在DOS系統(tǒng),故一般情況下都是通過跳線屏蔽掉此功能。因而,/SMEMR和SA10~SA19這11根信號(hào)線可以不用。
?。?)AEN信號(hào)只有當(dāng)DMA控制器是總線占有者時(shí),它才生產(chǎn)作用[3]。由于網(wǎng)卡并不使用DMA操作,故可將該信號(hào)線始終保持在低電平,使網(wǎng)卡I/O譯碼操作一直有效。
?。?)80X86系列微機(jī)為了兼容的需要,設(shè)置了/IOCS16信號(hào)線。由于我們使用的是16位DSP,不進(jìn)行8/16位數(shù)據(jù)讀寫的轉(zhuǎn)換,故不需要此信號(hào)。
?。?)DSP只需要一根中斷線,因而可在上述7根線中任選一根即可,其余6根中斷線懸空即可。
?。?)網(wǎng)卡與ISA總線交換數(shù)據(jù)是通過I/O端口實(shí)現(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讀寫的功能。
通過上面對(duì)網(wǎng)卡接口信號(hào)線的詳細(xì)分析,可以看到DSP與網(wǎng)卡之間只需正確連接32根信號(hào)線,從而使DSP的外圍接口電路大大簡(jiǎn)化。
2 DSP與NE2000網(wǎng)卡接口硬件電路
TMS320F206[4]是一種低價(jià)格、高性能的16位定點(diǎn)DSP,它的性價(jià)比極高,目前已成為高檔單片機(jī)的理想替代品,在通信、語(yǔ)音/語(yǔ)言、軍事、儀器儀表、圖像處理、工業(yè)控制等領(lǐng)域得到了廣泛的應(yīng)用。本文所設(shè)計(jì)的就是該DSP與NE2000網(wǎng)卡的軟、硬件接口,從而展開對(duì)基于DSP平臺(tái)的局域網(wǎng)的研究。
根據(jù)上面對(duì)網(wǎng)卡與微機(jī)ISA總線接口電路的分析,表2列出了F206與網(wǎng)卡接口所需的引腳信號(hào)。表2 F206與NE2000網(wǎng)卡接口所需引腳
引 腳 | 說 明 | |
外部總線 | A15A0 | 16條外部地址總線 |
D15D0 | 16條雙向外部數(shù)據(jù)總線 | |
選擇信號(hào) | /IS | I/O空間選擇引腳,/IS有效表明選擇外部I/O空間 |
/STRB | 外部訪問有效選通信號(hào)引腳 | |
讀寫信號(hào) | RD | 讀選擇引腳 |
/WE | 寫使能引腳 | |
請(qǐng)求/控制信號(hào) | READY | 外部設(shè)備準(zhǔn)備就緒引腳 |
通用I/O引腳 | XF | 通用輸出引腳 |
中斷申請(qǐng)信號(hào) | /INT2 | 外部用戶中斷 |
從1表和表2可以看出,NE2000網(wǎng)卡接口電路所需的信號(hào)線與F206的引腳之間有明確的對(duì)應(yīng)關(guān)系。但是,它們之間能否通過簡(jiǎn)單的組合邏輯進(jìn)行相連還需分析微機(jī)ISA決線I/O讀寫時(shí)序與F206的I/O讀寫時(shí)序是否一致。以讀時(shí)序?yàn)槔?圖2給出了微機(jī)ISA總線I/O讀時(shí)序過程,圖3給出了F206的I/O讀時(shí)序。從這兩個(gè)時(shí)序圖可以看出:微機(jī)采用數(shù)據(jù)和地址總線復(fù)用的總線傳送方式,當(dāng)?shù)刂锋i存后,數(shù)據(jù)再送上總線;DSP采用獨(dú)立的數(shù)據(jù)和地址總線傳送方式,地址在一個(gè)I/O周期之間保持有效,數(shù)據(jù)在/RD信號(hào)有效后,在I/O周期內(nèi)保持有效。因此,DSP可以按下述應(yīng)用模仿微機(jī)時(shí)序?qū)W(wǎng)卡進(jìn)行操作。
評(píng)論