單片機總線(xiàn)接口芯片及其ISA模式應用
2.3 串行EEPROM的配置
與ISA總線(xiàn)相比,PCI總線(xiàn)支持三個(gè)物理空間:存儲器地址空間、I/O地址空間和配置空間。配置空間是PCI所特有的一個(gè)空間,所有的PCI設備必須提供配置空間。串行EEPROM存儲了PCI9052重要的配置信息,如設備號DID、制造商號VID、子設備號SDID、子制造商號SVID、中斷號、設備類(lèi)型號、局部空間基地址、局部空間描述符、片選響應以及局部響應控制CNTRL等信號。EEPROM的內容非常重要,它直接關(guān)系到整個(gè)板卡能否正常工作,在設計時(shí)要非常注意。
系統加電時(shí),通過(guò)PCI的RST復位以后,PCI9052首先檢測EEPROM是否存在。如果檢測到EEPROM首字不是FFFFH,PCI9052將依次讀取EEPROM的內容來(lái)初始化內部寄存器。PCIBIOS根據配置寄存器的內容進(jìn)行系統資源分配,這樣,整個(gè)PCI設備的資源才不會(huì )發(fā)生沖突,從而實(shí)現了PCI總線(xiàn)的即插即用的特性。
PCI9052的內部寄存器為總線(xiàn)接口的設計與實(shí)現提供了最大的靈活性,這些寄存器可以分為兩類(lèi):PCI配置寄存器和局部配置寄存器。PCI配置寄存器有6個(gè)基地址寄存器,這些基地址是在系統中的物理地址。其中,基地址0和基地址1分別是以?xún)却娣绞胶虸/O方式訪(fǎng)問(wèn)局部配置寄存器的基地址,基地址2和基地址3分別映射到局部基地址0和局部基地址1。局部總線(xiàn)配置寄存器用于設定局部總線(xiàn)的工作方式,如基地址和地址范圍等。實(shí)際上,9052在PCI和ISA總線(xiàn)之間起到一個(gè)翻譯作用,要訪(fǎng)問(wèn)ISA端地址只需對PCI端基地址進(jìn)行操作就可以了。對于我們的設計,EEPROM的值及裝入順序如表1所示。
表1中,DID和VID是PLX公司的標志,一般不能更改。操作系統就是通過(guò)DID、VID、SDID、SVID及設備類(lèi)型碼來(lái)識別不同廠(chǎng)家的設備的。
在ISA模式下,局部空間1必須映射為I/O空間,局部空間0必須映射為內存空間。另外要注意:在ISA模式下雖然不存在片選信號,但我們必須設置它,使它的值和局部空間1的基地址和范圍相匹配,否則,局部地址空間無(wú)法響應PCI的控制指令。同樣,如果用到局部地址空間0,也要設置它的值。
對于PCI9052芯片,它的配置寄存器的內容是在芯片復位時(shí)通過(guò)串行EEPROM加載的。在ISA模式下,串行EEPROM一定不能省略,我們一般使用松下公司的NM93CS46或與之兼容的存儲器。配置寄存器的內容編寫(xiě)完以后,可以用編程器寫(xiě)入EEPROM中。另外,也可以通過(guò)主機在線(xiàn)燒寫(xiě),但由于各種原因,成功率很低。
3 板卡調試
板卡做好以后,就可以插入主機板的PCI插槽中進(jìn)行調試。在調試的過(guò)程中,為了跟蹤信號的變化通常要用到數字示波器,另外,還需要一個(gè)軟件調試工具。PLX公司提供了一個(gè)905X的專(zhuān)用調試軟件PLXmon,我們可以從它的網(wǎng)站免費下載。PLXmon包括以下功能:PCI總線(xiàn)的探測與選擇;配置寄存器的檢查和修改;內存空間的顯示、修改和填充;EEPROM內容的讀寫(xiě)等。利用這個(gè)工具,我們可以很清楚地看到EEPROM的內容以及PCI配置寄存器和局部端配置寄存器的內容,另外,用戶(hù)還可以進(jìn)行內存和I/O端口的讀寫(xiě)。
此外,我們也可以用WinDriver或SoftICE軟件進(jìn)行板卡調試,但總的來(lái)說(shuō),使用起來(lái)都不如PLXmon方便。有了開(kāi)發(fā)工具,設計者就可以根據板卡的具體要求進(jìn)行調試了。
4 驅動(dòng)程序的編寫(xiě)
板卡調試成功以后就可以編寫(xiě)驅動(dòng)程序了。目前,編寫(xiě)驅動(dòng)程序最常用的工具是VtoolsD和WinDriver,它們都是專(zhuān)門(mén)的驅動(dòng)開(kāi)發(fā)工具。尤其是WinDriver,開(kāi)發(fā)人員不需要掌握WINDOWS驅動(dòng)編程的知識,利用它的向導工具,能很快地開(kāi)發(fā)出高質(zhì)量的驅動(dòng)程序。
在Windows9x環(huán)境下,操作系統統一管理硬件資源,出于安全性考慮,ring3層應用程序不能直接訪(fǎng)問(wèn)硬件(I/O端口訪(fǎng)問(wèn)除外),因此,必須編寫(xiě)運行在ring0層的虛擬設備驅動(dòng)程序(VxD)來(lái)響應系統底層的中斷。如果板卡只有I/O操作,而沒(méi)有用到中斷和內存操作,可以不用編寫(xiě)驅動(dòng)程序,直接在應用程序里實(shí)現輸入輸出就可以了。編程的方法是先找到板卡,再找到卡中與我們用到的局部空間相對應的PCI基地址,然后就可以根據要求對這個(gè)基地址進(jìn)行操作了。如果在WINDOWS98以上版本的操作系統下,就要編寫(xiě)WDM設備驅動(dòng)程序了。
5 結束語(yǔ)
由于PCI總線(xiàn)數據吞吐量大,傳輸速率高,在微機接口設計中,基于PCI總線(xiàn)的設計成為主流。PCI9052是一款優(yōu)秀的PCI接口芯片,設計者用它可避免直接面對復雜的PCI總線(xiàn)協(xié)議,降低了設計難度,從而使用戶(hù)可以集中精力解決具體的應用問(wèn)題,縮短了開(kāi)發(fā)周期。實(shí)踐證明,PCI9052為開(kāi)發(fā)作為總線(xiàn)接口目標設備的產(chǎn)品,特別是對基于ISA總線(xiàn)的接口板向PCI的轉換提供了極大的方便。
評論