- 相關(guān)推薦
ARM922T核ZCP320A處理器PCI總線操作
摘要:本文簡要說明了ZCP320A處理器內(nèi)部集成的PCI總線接口、編程模式及工作模式,并介紹了作為主設(shè)備時如何訪問外部擴(kuò)展的RTL8139 PCI網(wǎng)卡設(shè)備。為以后的設(shè)計(jì)者提供借鑒及應(yīng)用基礎(chǔ)。ZCP320A采用了ARM公司的ARM922T核,ARM922T是ARM9TDMI通用處理器家族中的一員采用哈佛結(jié)構(gòu)內(nèi)部使用5級流水線支持32位的ARM指令系統(tǒng)和16位的Thumb指令系統(tǒng)包括兩個相互獨(dú)立的8KB 的數(shù)據(jù)和指令高速緩存,高速緩存行的長度是8個字。ARM922T 實(shí)現(xiàn)增強(qiáng)型ARM結(jié)構(gòu)v4MMU以提供對指令和數(shù)據(jù)地址的轉(zhuǎn)換和訪問許可檢測。ARM922T 支持ARM調(diào)試結(jié)構(gòu)協(xié)處理器以及Tracking ICE。
ZCP320A內(nèi)部使用三條AHB總線連接實(shí)現(xiàn)功能所需的主從設(shè)備。每條AHB總線連接一個主設(shè)備和多個從設(shè)備。根據(jù)總線連接的主設(shè)備的不同,三條總線分別被命名為COREBUS(ARM9 核作為該總線的主設(shè)備)、PBUS(PCI橋作為該總線的主設(shè)備)和DBUS(DMA控制器作為該總線的主設(shè)備)。這三條總線由總線管理模塊統(tǒng)一進(jìn)行管理。
ZCP320A集成的PCI總線接口是一個符合PCI協(xié)議2.2的總線接口。由于ZCP320A的內(nèi)部總線是符合AMBA AHB協(xié)議的總線,所以在ZCP320A中設(shè)計(jì)了一個AHB-PCI的橋來實(shí)現(xiàn)AMBA AHB協(xié)議到PCI協(xié)議的轉(zhuǎn)換。PCI總線通過AHB-PCI橋連接到內(nèi)部AHB總線。
1 PCI總線接口概述
在ZCP320A中設(shè)計(jì)了一個AHB-PCI的橋來實(shí)現(xiàn)AMBA AHB協(xié)議到PCI協(xié)議的轉(zhuǎn)換。PCI總線通過AHB-PCI橋連接到內(nèi)部AHB總線。如圖1所示。
AHB-PCI 橋是實(shí)現(xiàn)AHB總線和PCI總線的協(xié)議轉(zhuǎn)換,實(shí)現(xiàn)AHB總線和PCI 總線之間數(shù)據(jù)交換的一個設(shè)備,AHB-PCI橋是32位的,即AHB總線和PCI總線都是32位的地址/數(shù)據(jù)總線。在CPU內(nèi)部橋和兩條內(nèi)部總線相連接,COREBUS 和PBUS。這兩條內(nèi)部總線都符合AMBA AHB總線協(xié)議。在COREBUS上,ARM CORE 作為該總線的唯一主設(shè)備,橋則作為該總線的一個從設(shè)備。在PBUS上,橋作為該總線的唯一主設(shè)備,PCI緩沖及存儲器則作為其從設(shè)備。在CPU外部,橋則和PCI總線相連接。通過COREBUS, ARM CORE訪問橋及穿過橋訪問外部的PCI設(shè)備。外部的PCI設(shè)備則通過PCI總線訪問該橋并穿過橋到PBUS上訪問CPU的內(nèi)部存儲器等資源。橋?yàn)镻CI總線和內(nèi)部ARM CORE及內(nèi)部存儲器的通信提供了數(shù)據(jù)緩沖。ARM CORE寫數(shù)據(jù)緩沖由兩個FIFO組成,每個FIFO可容納32字節(jié)的數(shù)據(jù)和4 字節(jié)的地址。ARM CORE讀數(shù)據(jù)緩沖由一個FIFO組成,該FIFO可容納32字節(jié)的數(shù)據(jù)和4字節(jié)的地址。在另一側(cè)PCI寫數(shù)據(jù)緩沖由兩個FIFO組成,每個FIFO可容納32字節(jié)的數(shù)據(jù)和4字節(jié)的地址。PCI讀數(shù)據(jù)緩沖由一個FIFO組成,此FIFO也可容納32字節(jié)的數(shù)據(jù)和4字節(jié)的地址。當(dāng)有大量數(shù)據(jù)需要進(jìn)行傳輸?shù)臅r候,橋上提供了DMA控制器供使用,可以大大提高數(shù)據(jù)通信效率。該DMA 控制器具有一個32字節(jié)的接收FIFO和一個32字節(jié)的發(fā)送FIFO。因此DMA在傳輸數(shù)據(jù)的時候可以實(shí)現(xiàn)乒乓效應(yīng),也就是說在接收的同時發(fā)送數(shù)據(jù)。
通過AHB-PCI橋,內(nèi)部的ARM核可以對外部PCI設(shè)備進(jìn)行訪問;同時,外部的PCI設(shè)備也可以對內(nèi)部的CPU資源進(jìn)行訪問。當(dāng)AHB-PCI橋作為COREBUS上的從設(shè)備的時候,它從COREBUS上接收ARM發(fā)出讀/寫命令,然后在PCI總線上發(fā)起相應(yīng)的傳輸,也就是說此時橋作為PCI的主設(shè)備。當(dāng)外部PCI設(shè)備對AHB-PCI橋進(jìn)行訪問的時候,橋作為PCI從設(shè)備接收PCI 總線上的命令,同時作為AHB主設(shè)備在PBUS上發(fā)起相應(yīng)的操作以達(dá)到訪問CPU資源的目的。這就是CPU訪問外部設(shè)備和外部設(shè)備訪問CPU資源的兩條路徑。
ZCP320A的PCI橋在PCI總線仲裁方面,可以用外部的仲裁器,也可以用橋本身提供的仲裁器。設(shè)計(jì)人員可以根據(jù)需要選擇用外部的仲裁器,還是用ZCP320A的PCI橋上的仲裁器。這個選擇通過配置PCI混合控制寄存器PCI_MISC_CTL(偏移地址是0x100)的位12。如果使用外部仲裁器則將該位配置為1,而如果使用橋內(nèi)部的仲裁器則將該位配置為0。橋上的PCI 仲裁器最多支持6個PCI主設(shè)備(包括ZCP320A本身)。其仲裁算法為分組輪循的優(yōu)先算法。
ZCP320A提供了地址轉(zhuǎn)換功能和地址空間范圍定義功能。地址轉(zhuǎn)換包括兩個方向,一是從ARM CORE到外部PCI空間的地址轉(zhuǎn)換;二是從PCI空間到PBUS空間的轉(zhuǎn)換。地址轉(zhuǎn)換和地址空間范圍都是通過一個稱為地址窗口的機(jī)制來實(shí)現(xiàn)的。在從ARM CORE到外部PCI空間的方向定義了4個窗口,即窗口0/1/2/3,每個窗口由兩個寄存器來定義,窗口基地址寄存器(CBUS_BST0/1/2/3)和窗口控制寄存器(CBUS_TI0/1/2/3_CTL)。在窗口基地址寄存器中定義了該窗口在COREBUS上的基地址及該窗口的屬性(存儲器或I/O空間是否可預(yù)取,是否可對32位的任一字節(jié)進(jìn)行訪問),而在窗口控制寄存器中則定義了該窗口轉(zhuǎn)換到PCI空間后的基地址,該窗口的大小及窗口使能控制和地址轉(zhuǎn)換使能控制。在從PCI 空間到PBUS空間的方向也定義了4個窗口,PCI寄存器窗口和PCI從設(shè)備窗口0/1/2。其中PCI寄存器窗口由一個寄存器(PCI_BSREG)來控制該窗口在PCI總線空間的基地址及窗口屬性,而PCI 從設(shè)備窗口0/1/2則由兩個寄存器來定義,即窗口基地址寄存器(PCI_BST0/1/2)和窗口控制寄存器(PCI_TI0/1/2)。在窗口基地址寄存器中定義了該窗口在PCI總線上的基地址及窗口屬性(存儲器或I/O空間是否可預(yù)取,是否可對32位的任一字節(jié)進(jìn)行訪問),而在窗口控制寄存器中則定義了該窗口轉(zhuǎn)換到PBUS空間后的基地址及該窗口的大小窗口使能控制和地址轉(zhuǎn)換使能控制。
2 PCI總線編程模式
PCI橋上的寄存器占了4K的空間,從偏移地址0x000到0xfff。其中0x000到0x0ff
【ARM922T核ZCP320A處理器PCI總線操作】相關(guān)文章:
光纖CAN總線自愈環(huán)網(wǎng)的研究06-01
DS2438及其在單總線微網(wǎng)中的應(yīng)用05-31
用Verilog HDL實(shí)現(xiàn)I2C總線功能06-01
淺談旅游景區(qū)事件營銷操作策略05-12
TD—LTE與TD—SCDMA雙網(wǎng)互操作04-30
淺議核分析技術(shù)這門應(yīng)用科學(xué)在生命科學(xué)中的應(yīng)用08-02
談顱骨缺損鈦網(wǎng)修補(bǔ)手術(shù)操作心得體會05-13