PCI總線協(xié)議的FPGA實現(xiàn)及驅(qū)動設(shè)計
?。ǎ常┙涌诳刂菩盘枺疲遥粒停牛?、TRDY#、IRDY#、STOP#、DEVSEL#和IDSEL。其中,FRAME#為數(shù)據(jù)傳輸起止信號,TRDY#為主設(shè)備準(zhǔn)備好信號,IRDY#為從設(shè)備準(zhǔn)備好信號,STOP#為從設(shè)備停止請求信號,DEVSEL#為設(shè)備選擇信號,IDSEL為配置空間讀寫時的片選信號;
(4)中斷引腳INTA#。為簡化PCI協(xié)議,本文只實現(xiàn)了最重要的總線命令,表1給出了所支持的總線命令對應(yīng)的C/BE[3:0]#編碼值。
?。玻?配置空間設(shè)置
配置空間大小為256字節(jié),前64字節(jié)必需,記錄了PCI設(shè)備的基本信息,比較重要的有:
?。ǎ保郑澹睿洌铮颍桑摹ⅲ模澹觯椋悖澹桑暮停茫欤幔螅?Code域:分別表示設(shè)備的生產(chǎn)廠商、設(shè)備編號和類型;
?。ǎ玻茫铮恚恚幔睿浜停樱簦幔簦酰笥颍悍謩e給出了對PCI設(shè)備的控制命令和當(dāng)前狀態(tài);
?。ǎ常拢幔螅?Adress Register域:指示此PCI設(shè)備按I/O方式還是內(nèi)存方式進(jìn)行讀寫以及需要的地址空間大??;
?。ǎ矗桑睿簦澹颍颍酰穑?Line和Interrupt Pin域:分別指明了設(shè)備使用的中斷號和中斷引腳。 在對配置空間的訪問中,用AD[7:2]尋址一個雙字DWORD。在本設(shè)計中,配置空間設(shè)置如表2所示,各值的具體含義請參閱文獻(xiàn)[1]。
2.3 簡化的從設(shè)備狀態(tài)機
在PCI協(xié)議中,標(biāo)準(zhǔn)的從設(shè)備狀態(tài)機包含五種狀態(tài),而且各狀態(tài)的跳轉(zhuǎn)條件比較復(fù)雜。本文在不違反PCI協(xié)議的前提下,簡化了從設(shè)備的狀態(tài)機,如圖3所示。
評論