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