<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)與以太網(wǎng)控制器RTL8029接口的VHDL設(shè)計(jì)

          單片機(jī)與以太網(wǎng)控制器RTL8029接口的VHDL設(shè)計(jì)

          作者: 時(shí)間:2012-02-29 來源:網(wǎng)絡(luò) 收藏
            在圖2中,可以完成對(duì)PCI設(shè)備的配置訪問與I/O讀寫訪問,只要有這兩種訪問就完全可以實(shí)現(xiàn)對(duì)RTL8029的操作。IDSEL信號(hào)只是在配置訪問中才起作月,在I/O訪問中不使用該信號(hào)。

          FRAME有效后的第一個(gè)時(shí)鐘前沿是地址期的開始。此時(shí)在AD總線上傳送地址,在C/BE總線上傳送命令。IRDY有效后即為數(shù)據(jù)期,此時(shí)在AD總線上傳送數(shù)據(jù),在C/BE總線上傳送字節(jié)使能。但數(shù)據(jù)的傳輸是在IRDY和TRDY同時(shí)有效的時(shí)鐘前沿進(jìn)行。字節(jié)使能指明此時(shí)32位數(shù)據(jù)線上的數(shù)據(jù)中哪一個(gè)數(shù)據(jù)字節(jié)是有效的。

          讀配置的過程:首先送地址,送命令(命令值為1010B)和字節(jié)使能,再讀配置空間中的內(nèi)容。
          寫配置的過程:首先送地址,送命令(命令值為101lB)和字節(jié)使能,再送配置數(shù)據(jù)。
          讀I/O的過程:首先送地址,送命令(命令值為0010B)和字節(jié)使能,再讀I/O空間中的內(nèi)容。
          寫I/O的過程:首先送地址,送命令(命令值為001lB)和字節(jié)使能,再送數(shù)據(jù)。
          在I/O訪問中,AD[1:O]兩位有特殊要求,需要與C/BE[3:0]相配合。
          當(dāng)C/BEO有效時(shí),AD[1:O]必須為00,當(dāng)C/BE3有效時(shí),AD[1:0]必須為11。在具體訪問中,每當(dāng)一個(gè)設(shè)備地址譯碼選中后,便要檢查字節(jié)使能信號(hào)是否與AD[1:0]相符。如果二者矛盾,則整個(gè)訪問將無法完成。因此,寫軟件需要參考PCI總線協(xié)議中關(guān)于這一部分的內(nèi)容,才能正確操作

          總線命令/字節(jié)使能(C/BE)寄存器的地址有效后的一個(gè)時(shí)鐘周期內(nèi),F(xiàn)RAME信號(hào)應(yīng)該有效,表示地址期開始,C/BE[3:0]總線上為總線命令,地址期可以只持續(xù)一個(gè)周期,然后立即進(jìn)入數(shù)據(jù)期。在系統(tǒng)中可以不考慮去支持復(fù)雜的PCI數(shù)據(jù)連發(fā),進(jìn)入數(shù)據(jù)期后,F(xiàn)RAME信號(hào)應(yīng)立即拉回高電平,此時(shí)C/BE[3:0]總線上為字節(jié)使能。因此FRAME信號(hào)可以用總線命令/字節(jié)使能寄存器的地址信號(hào)來產(chǎn)生。

          IRDY信號(hào)在數(shù)據(jù)期才有效,因此IRDY也可以由總線命令/字節(jié)使能寄存器的地址信號(hào)來產(chǎn)生或由FRAME信號(hào)來產(chǎn)生。

          IDSEL信號(hào)只與配置訪問有關(guān),因此可以通過總線命令的命令字來產(chǎn)生。在I/O訪問時(shí)。命令字的最高位bit3為O;在配置訪問時(shí)。命令字的最高位bit3為l。因此,可以用該位來產(chǎn)生IDSEL信號(hào)。

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();