摘要; 本文從設(shè)計角度總結(jié)了微機(jī)系統(tǒng)中PCI總線的特點 ,設(shè)計了一款包括配置空間和I/O空間的PCI接口芯片,并通過FPGA器件進(jìn)行讀寫驗證。通過實現(xiàn)PCI協(xié)議的重要子集,驗證了用FPGA器件進(jìn)行PCI接口設(shè)計的簡易可行性,為進(jìn)一步實現(xiàn)更多更全的協(xié)議功能奠定了堅實基礎(chǔ)。
關(guān)鍵詞; PCI FPGA
1、引言
PCI總線是面向多媒體技術(shù)的高性能局部總線。它通過將微機(jī)處理器 /存儲器與外圍控制部件、外圍附加卡進(jìn)行高度互連,保證了系統(tǒng)各部件之間的可靠高效數(shù)據(jù)傳輸。由于其高性能,高效率以及與現(xiàn)有標(biāo)準(zhǔn)的兼容性和預(yù)留發(fā)展空間,廣泛應(yīng)用于各種計算機(jī)系統(tǒng)中。但相對于其他總線,PCI總線概念復(fù)雜,規(guī)則繁多,要求嚴(yán)格,所以開發(fā)基于PCI總線的接口卡具有一定挑戰(zhàn)性。筆者通過對協(xié)議的深入了解,設(shè)計了本款接口芯片,實現(xiàn)了接口與系統(tǒng)之間的讀寫數(shù)據(jù)傳輸,并通過了驗證。
2、正文
2.1、PCI總線數(shù)據(jù)傳輸
PCI數(shù)據(jù)傳送的地址空間有三類:配置空間,I/O空間和存儲器空間。配置空間可在系統(tǒng)自舉時訪問,也可專門訪問。系統(tǒng)復(fù)位時,便知接口配置情況,由此枚舉PCI總線上的各種設(shè)備,并根據(jù)設(shè)備要求自動配置存儲器和I/O的地址空間。
本文中設(shè)計遵循以下傳送協(xié)議:主機(jī)系統(tǒng)準(zhǔn)備進(jìn)行一個讀 /寫周期時,先使FRAMEn信號有效 ,則地址被驅(qū)動到AD總線上 ,同時交易類型聲明被驅(qū)動到CBEn總線上(地址和交易類型聲明的命令僅有效一個時鐘周期)。目標(biāo)接口收到FRAMEn信號后有效DEVSELn進(jìn)行響應(yīng),表示PCI總線上的主從設(shè)備握手成功。下一時鐘來到時系統(tǒng)發(fā)出IRDYn信號,表示數(shù)據(jù)已發(fā)送至AD總線(寫)或AD總線已做好接收數(shù)據(jù)的準(zhǔn)備。目標(biāo)接口接到IRDYn命令后有效TRDYn表示板卡已做好接收數(shù)據(jù)的準(zhǔn)備(寫)或板卡已將數(shù)據(jù)傳送至AD總線(讀)。在交易中系統(tǒng)無效了IRDYn信號或從設(shè)備無效了TRDYn信號則進(jìn)入等待狀態(tài)并且暫停交易,只有檢測到兩者同時有效時AD總線上才能傳輸數(shù)據(jù)。當(dāng)處于數(shù)據(jù)交換狀態(tài)中時 ,一旦目標(biāo)接口檢測到系統(tǒng)無效了FRAMEn(系統(tǒng)要求結(jié)束進(jìn)程)或系統(tǒng)檢測到STOPn信號(從設(shè)備要求中止進(jìn)程),則在下一時鐘周期停止數(shù)據(jù)交易 ,同時在進(jìn)入空閑狀態(tài)前TRDYn和DEVSELn無效。
2.2、接口硬件設(shè)計
本設(shè)計主要任務(wù)是實現(xiàn)PCI卡配置空間和I/O空間與系統(tǒng)之間數(shù)據(jù)通訊。系統(tǒng)開機(jī)能自動監(jiān)測PCI卡,讀取配置空間信息,進(jìn)行I/O地址空間映射分配。
首先在設(shè)計中進(jìn)行模塊劃分:本設(shè)計分為三個模塊寫,并列的兩個模塊是讀文件ptr和寫文件ptw,分別進(jìn)行配置空間和I/O空間讀寫功能實現(xiàn)。另編寫頂層文件top將讀寫文件銜接。
(1)配置空間設(shè)計:配置空間是容量為256字節(jié)并具有特定紀(jì)錄結(jié)構(gòu)或模型的地址空間。該空間分為頭標(biāo)區(qū)和設(shè)備有關(guān)區(qū)兩部分。頭標(biāo)區(qū)長度是64字節(jié),該區(qū)的各個字段用來唯一的識別設(shè)備,并使設(shè)備能以一般方法控制。本文中實現(xiàn)的是頭標(biāo)區(qū)前20字節(jié),具體定義如表1所示: