在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PCI9052接口芯片的配置及驅(qū)動(dòng)程序開(kāi)發(fā)

            PCI9052接口芯片的配置及驅(qū)動(dòng)程序開(kāi)發(fā)

            作者: 時(shí)間:2012-03-21 來(lái)源:網(wǎng)絡(luò) 收藏
            引言

            如果把PC機(jī)作為控制系統(tǒng)的操作平臺(tái),PCI總線(xiàn)作為一種先進(jìn)的高性能32/64位局部總線(xiàn)正迅速取代原來(lái)的ISA總線(xiàn)的主導(dǎo)地位,以用于高速外設(shè),并成為微型計(jì)算機(jī)系統(tǒng)的主流系統(tǒng),因而也成為工程開(kāi)發(fā)人員用于工業(yè)控制的首選。為了縮短開(kāi)發(fā)周期,一般都采用專(zhuān)用的接口器件。本文就是采用PLX公司的來(lái)把PCI總線(xiàn)上的操作轉(zhuǎn)換為對(duì)局部總線(xiàn)的操作,同時(shí)通過(guò)雙口RAM實(shí)現(xiàn)和下位機(jī)的存儲(chǔ)轉(zhuǎn)接。針對(duì)一般PCI總線(xiàn)開(kāi)發(fā)時(shí)由于軟硬件分離使開(kāi)發(fā)的軟硬件不能很好結(jié)合的現(xiàn)象,本文結(jié)合實(shí)例介紹了應(yīng)用程序并給出了如何通過(guò)DriverSTudio開(kāi)發(fā)的PCI設(shè)備來(lái)訪(fǎng)問(wèn)PCI設(shè)備卡硬件資源的具體程序。

            1 PCI的配置空間及其配置

            PCI總線(xiàn)支持存儲(chǔ)器地址空間、I/O地址空間和配置空間等三個(gè)物理空間。其中,配置空間是PCI總線(xiàn)所特有的一個(gè)空間,PCI總線(xiàn)能實(shí)現(xiàn)即插即用的功能,正是通過(guò)它特有的配置空間來(lái)實(shí)現(xiàn)的。PCI配置空間的大小為256字節(jié),分為頭標(biāo)區(qū)和設(shè)備有關(guān)區(qū)。直接影響設(shè)備特性的配置寄存器在頭標(biāo)區(qū),其他部分則因設(shè)備而異。PCI總線(xiàn)的配置空間通常與PCI相關(guān)。該配置空間包括一系列的PCI配置寄存器。本文采用的芯片的配置寄存器分為PCI配置寄存器和局部配置寄存器,二者都可以由PCI總線(xiàn)和串行EEPROM訪(fǎng)問(wèn)。

            在PCI配置寄存器中的設(shè)備ID、制造商ID、版本號(hào)、首區(qū)類(lèi)代碼、類(lèi)別代碼、指令寄存器和狀態(tài)寄存器等寄存器在所有的PCI設(shè)備中都必須實(shí)現(xiàn),具體設(shè)置可參考文獻(xiàn)[1]。通常情況下,操作系統(tǒng)可使用這些寄存器的內(nèi)容來(lái)決定該P(yáng)CI設(shè)備的加載其

            PCI總線(xiàn)最重要的功能之一是通過(guò)基地址寄存器和局部配置寄存器在地址空間重定位PCI設(shè)備。系統(tǒng)上電時(shí),通過(guò)上層應(yīng)用軟件能判斷系統(tǒng)中存在那些設(shè)備,并建立協(xié)調(diào)的地址映射。所以,基地址寄存器和局部配置寄存器是實(shí)現(xiàn)的關(guān)鍵。

            PCI配置寄存器提供有6個(gè)基地址寄存器(BASE0~BASE5)這些基地址都是系統(tǒng)中的物理地址,其中BASE0和BASE1是用來(lái)訪(fǎng)問(wèn)局部配置寄存器的基地址,BASE0是映射到內(nèi)存的基地址,BASE1是映射到I/O的基地址,可用于通過(guò)內(nèi)存和I/O來(lái)訪(fǎng)問(wèn)局部配置寄存器。這兩個(gè)基地址可固定用于芯片的寄存器操作。

            通過(guò)BASE2~BASE5四個(gè)空間最多可以訪(fǎng)問(wèn)局部端所接的4個(gè)芯片,實(shí)現(xiàn)4個(gè)局部地址空間(局部空間0~3)的PCI總線(xiàn)訪(fǎng)問(wèn)。PCI總線(xiàn)對(duì)局部端所接芯片的局部地址映射是通過(guò)4個(gè)寄存器組(PCI基地址寄存器,局部范圍寄存器,局部基地址寄存器,局部總線(xiàn)區(qū)域描述符)來(lái)實(shí)現(xiàn)的。這個(gè)組定義了每個(gè)空間以及相應(yīng)局部空間的特性。它們將局部端的芯片通過(guò)局部端地址(在局部配置寄存器中設(shè)置)翻譯成PCI總線(xiàn)地址,也就是將本地的芯片映射到系統(tǒng)的內(nèi)存或I/O口。而片選信號(hào)寄存器則是用來(lái)選定這些局部端所接的芯片的。這樣,用程序操作這一段內(nèi)存(或I/O)實(shí)際上就是對(duì)本地芯片的操作。其映射關(guān)系如圖1所示。這些寄存器的內(nèi)容必須在芯片復(fù)位時(shí)通過(guò)串行E2PROM進(jìn)行加載,而正確配置E2PROM的內(nèi)容則是使用PCI9052的關(guān)鍵。

            本設(shè)計(jì)選取LAS0(Local Address Space 0)來(lái)訪(fǎng)問(wèn)局部端的雙口RAM芯片中的2 KB尋址空間,與其有關(guān)的寄存器有四個(gè):LAS0范圍寄存器、LAS0局部基址寄存器、LAS0局部總線(xiàn)區(qū)域描述符和片選0基址寄存器。LAS0范圍寄存器規(guī)定了地址空間的大小。由于需要2 KB的內(nèi)存空間,而計(jì)算機(jī)預(yù)留了32 KB空間(即8000H),所以其寄存器值為0xFFFF8000H,而類(lèi)型則是不可預(yù)取的;LAS0局部基地址寄存器定義了設(shè)備卡資源上所占用的基地址,它的最終目的是將這個(gè)基地址重新映射到PCI地址空間。由于基地址必須是32KB的整數(shù)倍,因此,為方便起見(jiàn),可以將基地址定為00000000H,又由于位0為空間使能位,所以,寄存器的值為00000001H;LAS0局部總線(xiàn)區(qū)域描述符用來(lái)定義地址空間0的具體工作特性。

            該總線(xiàn)采用16位總線(xiàn)寬度,工作方式定義為不使能突發(fā)和不預(yù)取,因此,該寄存器的數(shù)值初步確定為4043A1C0H,最終的值則需要不斷測(cè)試才能確定;片選0基址寄存器使用PCI9052的CS0#作為雙口RAM的片選信號(hào),CS0#片選信號(hào)的起始地址和地址范圍由片選0基址寄存器設(shè)置,局部總線(xiàn)的容量是2 KB,第11位為1,基地址是該范圍的16倍,一般將倍數(shù)放置在范圍位之后,所以寄存器值設(shè)置為0xO008401。當(dāng)從局部空間0基址開(kāi)始的2 KB空間范圍落在CS0基地址寄存器所設(shè)置的范圍內(nèi),CS0端有效,這種方式可減少地址譯碼得到的片選邏輯。

            用PLX9052可將PCI總線(xiàn)上的操作轉(zhuǎn)換為對(duì)局部總線(xiàn)的操作,即通過(guò)LAD0~LAD7、RD、WR、CS等對(duì)局部端芯片訪(fǎng)問(wèn)。如果系統(tǒng)分配給本卡的存儲(chǔ)空間為FFFF0000H~FFFF7FFFFH。那么,當(dāng)系統(tǒng)通過(guò)PCI總線(xiàn)訪(fǎng)問(wèn)這個(gè)區(qū)域時(shí),PLX9052就會(huì)應(yīng)答,并將其轉(zhuǎn)換為局部地址0x0000H~0x07FFH,另外,PLX9052自身也有一些內(nèi)部寄存器,它們被自動(dòng)映射到另一片內(nèi)存區(qū)域,可通過(guò)PCI總線(xiàn)直接訪(fǎng)問(wèn)。

            PCI9052提供了兩種類(lèi)型的中斷源(硬件中斷和軟件中斷)。中斷可通過(guò)PCI9052中斷控制/狀態(tài)寄存器來(lái)(INTCSR)允許和禁止。PCI9052通過(guò)2個(gè)局部中斷引腳來(lái)實(shí)現(xiàn)硬件中斷,它們支持邊緣和電平觸發(fā)中斷,可以通過(guò)對(duì)INTCSR寄存器的編程來(lái)實(shí)現(xiàn)局部中斷,然后產(chǎn)生PCI中斷(INTA),并生成PCI中斷INTA#方式。PCI9052可以軟件方式產(chǎn)生中斷,設(shè)計(jì)時(shí)只需要將INTCSR寄存器的軟件中斷位設(shè)置為1即可。

            2 驅(qū)動(dòng)程序的開(kāi)發(fā)

            在開(kāi)發(fā)PCI板卡功能驅(qū)動(dòng)程序之前,首先要明白所需的PCI硬件資源,并針對(duì)設(shè)備卡的硬件資源來(lái)處理PCI設(shè)備的內(nèi)存、端口的讀寫(xiě),以及中斷處理,從而實(shí)現(xiàn)PCI設(shè)備功能。


            上一頁(yè) 1 2 3 下一頁(yè)

            評(píng)論


            相關(guān)推薦

            技術(shù)專(zhuān)區(qū)

            關(guān)閉