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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DSP與CPLD的I2C總線接口的設(shè)計(jì)與實(shí)現(xiàn)

          基于DSP與CPLD的I2C總線接口的設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2012-04-14 來(lái)源:網(wǎng)絡(luò) 收藏

          2.3 DSP與CPLD的接口模塊

          根據(jù)DSP的時(shí)序,DSP與CPLD之間必須根據(jù)雙方(ADSP21992和PCF8583)的時(shí)序制定一個(gè)握手協(xié)議。當(dāng)讀程序時(shí),由于I2C總線協(xié)議只能支持最高400kbit/s的傳輸速率,而DSP的同步時(shí)鐘可達(dá)幾十兆赫。因此,DSP必須等到I2C核把PCF8583的數(shù)據(jù)讀到CPLD后才能獲得正確的數(shù)據(jù)(這里可以通過(guò)設(shè)立一個(gè)忙標(biāo)志來(lái)實(shí)現(xiàn))。而當(dāng)寫程序時(shí),為了節(jié)約CPLD的資源(數(shù)據(jù)緩存特別占用資源),可以設(shè)置DSP定時(shí)輸出數(shù)據(jù)給I2C核,讓I2C核的一次只送一個(gè)數(shù)據(jù)。

          2.4 硬件設(shè)計(jì)

          此I2C核可外掛多個(gè)帶有I2C總線接口的芯片,可以通過(guò)發(fā)送不同的器件地址來(lái)選擇。SDA和SCL線必須接上拉電阻。此外,同步時(shí)鐘不能太高,否則會(huì)影響數(shù)據(jù)傳輸?shù)姆€(wěn)定性。

          2.5 時(shí)序

          (1)I2C核時(shí)序

          以寫為例,I2C核時(shí)序如圖5所示。

          (2)PCF8583時(shí)序

          PCF8583的數(shù)據(jù)是8bit一個(gè)存儲(chǔ)單元,共256個(gè)字節(jié),所以只需要8位地址,而且器件本身有兩種尋址方式:一種是從指定地址開(kāi)始遞增尋址,另一種是從首地址開(kāi)始遞增尋址。兩種尋址方式的時(shí)序是不一樣的,如圖6所示。


          3 實(shí)現(xiàn)方法

          本系統(tǒng)是選用ALTERA公司CPLD7000S系列EPM7128S芯片,并基于MAXPLUSII開(kāi)發(fā)的。I2C核采用VHDL語(yǔ)言編寫,使用SYNPLIFY 編譯、綜合,用AHDL繪成圖表,用MAXPLUSII仿真和布局。DSP采用VISUAL DSP++2.0編寫。最后分別通過(guò)JTAG口下載到芯片并聯(lián)機(jī)調(diào)試成功。

          隨著DSP芯片和2C通信方式的廣泛應(yīng)用,它們之間的接口問(wèn)題必須得到解決。本文提出的解決方案具有非常好的可移植性和產(chǎn)品開(kāi)發(fā)能力。本系統(tǒng)既可以作為一個(gè)單獨(dú)的系統(tǒng)運(yùn)行,又可以作為一個(gè)通信模塊植入一個(gè)大系統(tǒng)中,而其中的I2C核又是一個(gè)可移植IP核。利用CPLD的邏輯可編程性,還可以在其剩下的資源中再開(kāi)發(fā)所需的邏輯器件,既能降低硬件成本又能大大減小系統(tǒng)主板的面積,使電路的設(shè)計(jì)更具靈活性。


          上一頁(yè) 1 2 3 下一頁(yè)

          關(guān)鍵詞: DSP CPLD I2C總線

          評(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); })();