PCI總線是一種地址和數(shù)據(jù)復(fù)用的總線,即地址和數(shù)據(jù)占用同一組信號(hào)線AD。PCI總線的所有信號(hào)都與時(shí)鐘信號(hào)同步,及所有的信號(hào)的變化都發(fā)生在時(shí)鐘的上升沿,或者在時(shí)鐘上升沿進(jìn)行采樣。
如下圖所示,除了時(shí)鐘信號(hào)CLK和數(shù)據(jù)地址復(fù)用信號(hào)AD之外,PCI總線至少還應(yīng)包括FRAME#(用于表示一次數(shù)據(jù)傳輸?shù)钠鹗迹?、C/BE#(Command/Byte Enable)、IRDY#(Initiator Ready for data)、TRDY#(Target ready)、DESEL#(Device Selec,片選信號(hào),用于選擇PCI設(shè)備)和GNT#(Grant)信號(hào)等。
注:完整的信號(hào)時(shí)序圖,請(qǐng)參考PCI Spec。信號(hào)名后面的#表示該信號(hào)低電平有效。
下面來介紹一個(gè)簡(jiǎn)單的例子,主機(jī)接收來自特定從機(jī)的數(shù)據(jù)。
在第一個(gè)時(shí)鐘上升沿,F(xiàn)RAME#和IRDY#都為inactiv表明總線當(dāng)前處于空閑狀態(tài)。與此同時(shí),某個(gè)設(shè)備的GNT#信號(hào)處于active,表明總線總裁器已經(jīng)選定當(dāng)前設(shè)備為下一個(gè)initiator(可以理解為主機(jī))。
在第二個(gè)時(shí)鐘上升沿,F(xiàn)RAME#被initiator拉低,表明新的事務(wù)(Transaction)已經(jīng)開始。與此同時(shí),地址和命令被依次發(fā)送到AD上,總線上面的所有其他設(shè)備(從機(jī))都會(huì)鎖存這些信息,并檢查地址和命令是否與自己匹配。
在第三個(gè)時(shí)鐘上升沿,IRDY#處于active狀態(tài),表明主機(jī)準(zhǔn)備就緒,可以接收數(shù)據(jù)了。AD信號(hào)上的旋轉(zhuǎn)的箭頭表示AD信號(hào)目前處于三態(tài)狀態(tài)(處于輸出和輸入的轉(zhuǎn)換狀態(tài)),即Turn‐around cycle。需要注意的是,此時(shí)的TRDY#應(yīng)當(dāng)處于inactive狀態(tài),以保證Turn‐around cycle順利進(jìn)行。
在第四個(gè)時(shí)鐘上升沿,PCI總線上的某個(gè)從機(jī)確認(rèn)身份,并依次將DEVSEL#信號(hào)和TRDY#拉低,并將相應(yīng)的數(shù)據(jù)輸出到AD上。此時(shí),F(xiàn)RAME#信號(hào)為active狀態(tài),表明這并不是最后一個(gè)數(shù)據(jù)。
在第五個(gè)時(shí)鐘上升沿,TRDY#處于inactive狀態(tài),表明從機(jī)尚未就緒,因此所有的操作暫緩一個(gè)時(shí)鐘周期(或者說插入了一個(gè)Wait State)。PCI總線最多允許8個(gè)這樣的Wait State。
在第六個(gè)時(shí)鐘上升沿,從機(jī)向主機(jī)發(fā)送第二個(gè)數(shù)據(jù)。此時(shí),F(xiàn)RAME#信號(hào)依舊為active狀態(tài),表明這并不是最后一個(gè)數(shù)據(jù)。
在第七個(gè)時(shí)鐘上升沿,IRDY#處于inactive狀態(tài),表明主機(jī)尚未就緒,再次插入一個(gè)Wait State。但是此時(shí)從機(jī)依舊可以向AD上發(fā)送數(shù)據(jù)。
在第八個(gè)時(shí)鐘上升沿,AD上的第三個(gè)數(shù)據(jù)被發(fā)送至主機(jī),由于此時(shí)FRAME#信號(hào)被拉高,即inactive,表明這是本次事務(wù)(Transaction)的最后一個(gè)數(shù)據(jù)。此后,所有的控制信號(hào)均被拉高,處于inactive狀態(tài),AD、FRAME#和C/BE#處于三態(tài)狀態(tài)。
信號(hào)時(shí)序
-
pci總線
+關(guān)注
關(guān)注
1文章
203瀏覽量
31829 -
時(shí)鐘
+關(guān)注
關(guān)注
10文章
1733瀏覽量
131485
原文標(biāo)題:【博文連載】PCIe掃盲——一個(gè)典型的PCI總線周期
文章出處:【微信號(hào):ChinaAET,微信公眾號(hào):電子技術(shù)應(yīng)用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論