PCI总线原理(二)
http://blog.c114.net/html/15/562315-75227.html
??????? PCI即Peripheral Component Interconnect,中文意思是“外圍器件互聯(lián)”,是由PCISIG (PCI Special Interest Group)推出的一種局部并行總線標準。在現在電子設備中應用非常廣泛,下面我詳細介紹下PCI總線的工作原理,希望對大家有所幫助。
??
???? ?PCI總線管腳功能
????? PCI主設備最少需要49根線,從設備最少需要47根線,剩下的線可選。在介紹PCI管腳功能前,先來說明下PCI管腳信號的類型。
?
?????? in:輸入信號;
????? out:輸出信號;
????? t/s:雙向三態(tài)信號(Tri-state),無效時為高組態(tài);
????? s/t/s:持續(xù)三態(tài)信號(Sustained Tri-state),每次由且只由一個單元擁有并驅動的低有效雙向、三態(tài)信號。驅動一個s/t/s信號到低的單元在釋放該信號浮空之前必須要將它驅動到高電平至少一個周期。這個特點很重要,在后面我們分析PCI信號質量案例的時候會用到;
???? o/d:漏極開路輸出(Open Drain);
???? #:此符號代表該信號在低電平時有效。
?
?? PCI總線引腳圖如下所示。
?
??? 實際使用中需要上拉的信號有:FRAME#, TRDY#, IRDY#, DEVSEL#, STOP#, PERR#, SERR#, LOCK#, REQ64#, ACK64#, REQ#, GNT#, AD[63:32], C/BE[7:4], PAR64等,上拉電阻一般為10kohm,未使用的PCI管腳也要處理,避免懸空。不需要上拉的信號有AD[31:0], C/BE[3:0], PAR, IDSEL, CLK。
?
???? 1).系統(tǒng)引腳
???????? CLK:in,系統(tǒng)時鐘,為所有PCI上的傳輸及總線仲裁提供時序。除RST#外,所有PCI信號都在CLK信號的上升沿采樣。
?
???????? RST#:in,異步復位信號。
?
?
???? 2).地址及數據引腳
?
???????? AD[31:0]:t/s,地址數據復用引腳。FRAME#開始變?yōu)橛行У哪莻€時鐘周期內AD[31:0]上傳輸的是地址。對于配置空間和存儲空間,這是一個雙字節(jié)地址,對于I/O空間,這個一個單字節(jié)地址。傳輸數據時,AD[7:0]為最低字節(jié)數據。
?
???????? C/BE[3:0]#:t/s,總線命令和字節(jié)允許復用引腳。在AD[31:0]上傳輸地址的時候,C[3:0]上傳輸的是總線命令,AD[31:0]上傳輸數據的時候,BE[3:0]#用作字節(jié)允許,表示哪些通道上的數據是有效的。BE0#對應最低字節(jié)。
?
???????? PAR:t/s,AD[31:0]和C/BE[3:0]#上的數據偶效驗。PAR與AD[31:0]有相同的時序,但延遲一個時鐘,在地址段后一個時鐘,PAR穩(wěn)定并有效;對于數據段,在寫傳輸中,PAR在IRDT#有效一個時鐘穩(wěn)定并有效,而在讀傳輸中,PAR在TRDY#有效后一個時鐘周期穩(wěn)定并有效。一旦PAR有效,它必須保持有效直到當前數據段完成后一個時鐘。在地址段和寫數據段,主PCI設備驅動PAR,在讀數據段,目標從PCI?設備驅動PAR。
?
??? 3).接口控制引腳
?
??????? FRAME#:s/t/s,幀開始信號。由當前總線主設備驅動,以說明一個操作的開始和延續(xù)。FRAME#有效,說明總線開始傳輸,當FRAME#維持有效時,說明總線傳輸繼續(xù)進行,當FRAME#無效時,說明傳送的最后一個字節(jié)正在進行。
?
??????? IRDY#:s/t/s,啟動者準備好信號(Initiator Ready)。說明傳輸的啟動者完成當前數據傳輸的能力。在讀操作中,IRDY#有效說明總線主設備已準備好接收收據。在寫操作中,它說明AD[3:0]上已有有效數據。在IRDY#和TRDY#都有效的時鐘周期完成數據傳輸。在IRDY#和TRDY#都有效之前,需要插入等待狀態(tài)。
?
???????? TRDY#:s/t/s,目標設備準備就緒(Target Ready)。說明傳輸的目標設備完成當前的數據傳輸能力。在寫操作中,TRDY#有效說明目標設備已經準備好接收數據。在讀操作中,它說明AD[31:0]上已有有效數據。
?
???????? STOP#:s/t/s,停止信號。說明當前的目標設備要求總線主設備停止當前傳輸。
?
???????? LOCK#:s/t/s,鎖定信號。
?
???????? IDSEL:in,初始化設備選擇(Initialization Device Select)。在配置空間讀寫操作中,用作片選。
?
???????? DEVSEL#:s/t/s,設備選擇。當驅動有效時,說明驅動它的設備已將其地址解碼為當前操作的目標設備。
?
??? 4).仲裁引腳
??????? REQ#:t/s,申請。向仲裁器說明該單元想使用總線。這是一個點對點的信號,每個總線主設備都有自己的REQ#。
?
????? GNT#:t/s,允許。仲裁器向申請單元說明其對總線的操作已被允許。這是一個點對點信號,每個總線主設備都有自己的GNT#。
?
??? 5).錯誤反饋引腳
?
??????? PERR#:s/t/s,奇偶校驗錯誤(Parity Error)。該引腳用于反饋在除特殊周期外的其他傳送過程中的數據奇偶校驗錯誤。PERR#維持三態(tài),在檢測到奇偶校驗錯誤后,在數據結束后兩個時鐘周期,由接收數據的單元驅動PERR#有效。并至少持續(xù)一個時鐘周期。只有發(fā)出DEVSEL#的單元才能發(fā)出PERR#。
?
?????? SERR#:o/d,系統(tǒng)錯誤(System Error)。用于反饋地址奇偶校驗錯誤、特殊周期命令中的數據奇偶校驗錯誤和將引起重大事故的其他災難性的系統(tǒng)錯誤。
?
?? 6).中斷引腳
????? INTA#, INTB#, INTC#, INTD#:o/d,中斷輸出。
?
?? 7).高速緩存支持引腳
?? 一個能高速緩存的PCI存儲器必須利用這兩條高速緩存支持引腳作為輸入,以支持寫通(write-through)和回寫(write-back)(要了解cache)。如果可高速緩存的存儲器是位于PCI上,則連接回寫高速緩存到PCI的橋路必須利用這兩條引腳,且作為輸出。連接寫通高速緩存的橋路可以只使用一條引腳SDONE。
?
?????? SBO#:in/out,監(jiān)視補償。當其有效時,說明對某條變化線的一次命中。當SBO#無效而SDONE有效時,說明了一次“干凈”的監(jiān)視結果。
?
?????? SDONE:?in/out,監(jiān)視進行。表明對當前操作的監(jiān)視狀態(tài)。當其無效時,說明監(jiān)視結果仍未定。當有效時,說明監(jiān)視已有結果。
?
??????? 8).64位總線擴充引腳
?
??????? AD[63:32]:t/s,地址數據復用引腳提供32個附加位。在一個地址段,傳送64位地址的高32位。在數據段,傳送64位中的高32位。
?
??????? C/BE[7:4]#:t/s,總線命令和字節(jié)允許復用引腳。
?
??????? REQ64#:s/t/s,請求64位傳輸。當其被當前總線主設備有效驅動時,說明總線主設備想作64位傳輸。
?
??????? ACK#:s/t/s,應答64位傳送。在當前操作所尋址的目標設備有效驅動該信號時,說明目標設備能夠進行64位傳輸,ACK#和DEVSEL#有相同的時序。
?
??????? PAR64:t/s,高雙字偶校驗。
總結
以上是生活随笔為你收集整理的PCI总线原理(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多表替代密码
- 下一篇: (转)Cortex-M3 (NXP LP