DSP與ISA總線PnP卡的接口技術研究

表1給出了利用上述方法對三個PnP卡的識別結果,其中兩塊PnP卡是Accton公司設計的10M以太網卡,另一塊是利用Crystal公司的CS4235設計的3D聲卡。
從表1可清楚看到,由于網卡是同一廠家生產的,故其序列標識符的前四個字節相同。同時根據DSP對PnP卡的識別流程可知,第一輪可識別出聲卡,第二輪識別出網卡2,最后識別出網卡1。
本文以NE2000兼容網卡為例,通過對I/O端口地址的配置來闡述DSP是如何對PnP卡進行資源配置的。該網卡使用的芯片為Realtek公司生產的RTL8019,芯片中I/O配置寄存器如表2所示。
當識別出該網卡后,就可把該網卡的資源數據讀出,下面就是從該PnP卡上讀出的有關I/O端口地址配置的資源:
TAG I/O Format
Item byte 47H
I/O information 00H
Min.I/O base bits 7-0 20H
Min.I/O base bits 15-8 02H
Max.I/O base bits 7-0 80H
Max.I/O base bits 15-8 03H
Base alignment 20H
Range length 20H
從上面的資源數據可以看出,該網卡的I/O端口可以配置為220H到380H之間的地址空間,占用的空間范圍為20H,同時要求該地址的步進大小為20H,即只能選擇220H~23FH,240H~25FH等,依此類推?,F假設要給該網卡配置地址空間為300H~31FH,則只需給I/O配置寄存器60H寫入03H,61H寫入00H即可。對IRQ、DMA的配置與I/O端口的配置過程是一樣的。
5 避開PnP協議“關鍵字”的接口方法[3]
從上述PnP卡的識別與配置過程可見,如果是在PC機環境中,那么這一過程可自動完成;而在用戶所設計的系統中,這一過程就顯得有些煩瑣,且意義不是很大。能不能避開PnP協議直接對每塊PnP卡進行編程,就象對老的ISA卡那樣操作呢?實際上,大多數芯片確實提供了這種簡潔、快速的方法,統稱為“某某公司關鍵字”接口方法。以前文中所述聲卡為例介紹這種接口方法。下面所給出的五個步驟完成后,該聲卡就和老的ISA聲卡操作過程一樣了;唯一的不足是如果系統中使用了兩塊該類型的聲卡,即使它們的序列標識符不同,該方法也失效。
評論