摘要:作為新一代的通用總線接口標準,,PCI-Express(PCI-E)高帶寬、低延遲,、可擴展,、支持熱插拔等優(yōu)點,使其全面取代了PCI,、AGP等早期總線,。ZLG致遠電子功率分析儀的內部多個高速數據總線中,也包含了PCI-E,。下面我們來一起認識這一接口。
1.1 架構
圖 1 框架圖
1,、 Root Complex(RC)
PCI-E根控制器,集成在主處理器系統(tǒng)中,,管理處理器與PCIE設備的連接。
2,、 Switch
PCI-E交換設備,,用于PCI-E總線的擴展。
3,、 Bridge
PCI-E橋設備,用于PCI-E與其它總線的橋接。例如:PCIE to PCI橋,。
4、 Endpoint(EP)
PCI-E終端設備,例如網卡等通訊板卡或其它數據采集板卡。
實際應用中,,我們關注較多的則是此類設備,。
1.2 通訊
1,、 地址映射
EP設備可通過配置自身PCI-E控制器,,將設備內部一段內存地址映射到CPU保留地址空間。CPU通過訪問該映射后的地址,便可透明地讀寫設備,,而不必關心物理傳輸細節(jié),。
2、 直接內存訪問
EP設備具有總線主控能力,,即能夠主動訪問CPU地址空間,。通過修改PCI-E控制器的地址映射,,配合DMA控制器,,可以實現無需CPU干預的數據傳輸,。
3,、 MSI(Message Signaled Interrupt)中斷
EP設備可以將某個特定消息寫到特定地址,,觸發(fā)一個CPU中斷,。
1.3 枚舉
1,、 配置空間
圖 2 1 配置空間
如圖2所示,配置空間是由EP設備定義,,用于描述EP設備資源及特性的一組寄存器,。在枚舉過程中,,RC會掃描PCI-E總線上的所有設備。通過訪問該設備的配置空間,,可以獲得加載EP設備驅動所需的DeviceID、VendorID等信息,。
1、 BAR(Base Address Registers)
EP設備可向RC請求將自身的1~6段設備地址映射到CPU的地址空間,,這1~6個CPU地址由RC軟件在枚舉過程中分配并回寫到配置空間中的BAR寄存器,。
2,、 枚舉流程
圖 3 枚舉流程
如圖3所示,,CPU以一定順序掃描系統(tǒng)內的PCI-E總線,,為發(fā)現的設備分配總線號,、設備號,,構建設備樹,,分配地址空間并回寫B(tài)AR。操作系統(tǒng)啟動后,,將根據DeviceID、VendorID找到匹配的驅動程序并加載運行,。