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

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 一種3線制半雙工SPI接口設(shè)計(jì)

          一種3線制半雙工SPI接口設(shè)計(jì)

          作者: 時(shí)間:2010-06-08 來源:網(wǎng)絡(luò) 收藏


          2.2 串行寄存器組

          串行寄存器的作用是接收射頻芯片內(nèi)部狀態(tài)信息并轉(zhuǎn)換成24 bit串行數(shù)據(jù)輸出,以及接收外部串行控制字輸入并轉(zhuǎn)換成30 bit并行數(shù)據(jù)輸入射頻芯片,其基本結(jié)構(gòu)如圖2所示。串行寄存器組是方式的核心,輸入和輸出數(shù)據(jù)共享此數(shù)據(jù)通路,必須保證數(shù)據(jù)傳輸方向的正確切換。本文采用串行寄存器鏈+輸入選擇器方式實(shí)現(xiàn)輸入和輸出數(shù)據(jù)間的切換。



          2.3 讀控制器

          讀控制器的作用是在SEN為高電平的周期內(nèi),控制串行寄存器組在第一個(gè)SCK上升沿到來時(shí)接收指定的24 bit射頻芯片內(nèi)部信號,并將最低位串行輸出,然后在剩下的23個(gè)時(shí)鐘周期內(nèi)將余下的23 bit數(shù)據(jù)串行輸出,讀控制器結(jié)構(gòu)如圖3所示。



          2.4 寫入寄存器組

          寫入寄存器的作用是在SEN信號的上升沿接收串行寄存器組的輸出,并將結(jié)果寫入射頻芯片的內(nèi)部模塊。其中射頻芯片比較特殊的要求是根據(jù)寫入控制字第7位選擇將串行輸入數(shù)據(jù)的第0~6 bit數(shù)據(jù)寫入兩個(gè)不同的控制寄存器中的一個(gè),這樣,寫入寄存器組的輸出位數(shù)就變成了30 bit,輸入為23 bit。輸出寄存器的結(jié)構(gòu)如圖4所示。



          2.5 寫控制器

          寫控制器的作用是在SEN信號的低電平周期內(nèi),判斷寫入數(shù)據(jù)是否恰好滿足24 bit以使能輸出寄存器組,另外根據(jù)寫入數(shù)據(jù)的第8位控制低7位數(shù)據(jù)的寫入方向(寄存器A或寄存器B)。寫控制器的結(jié)構(gòu)如圖5所示。



          3 實(shí)現(xiàn)結(jié)果

          圖6是采用Verilos實(shí)現(xiàn)的接口的部分功能仿真波形,測試激勵首先將接口置于發(fā)送模式下(SEN為高電平),SPI接口將從內(nèi)部獲得的信息碼“24’hFFFFFE”正確地串行發(fā)出;測試激勵再將SPI接口置于接收模式下(SEN為低電平),SPI接口正確接收外部發(fā)送的“24’hFFFFF8”,并轉(zhuǎn)換成內(nèi)部的“30’h3FFC078”。為了保證收發(fā)方向切換在一個(gè)時(shí)鐘周期內(nèi)完成,SEN信號的轉(zhuǎn)換在接口時(shí)鐘的下降沿完成。通過NC-Verilog仿真,SPI接口功能正確,工作時(shí)序符合設(shè)計(jì)要求。


          4 結(jié)論

          本SPI接口模塊已成功應(yīng)用在一個(gè)射頻芯片中,以硬IP的形式集成進(jìn)射頻模塊中。SPI接口電路在0.18 μm工藝下實(shí)現(xiàn)后的版圖總尺寸約為240 μm×460 μm,最高工作頻率原高于10 MHz的設(shè)計(jì)上限,相應(yīng)在10 MHz下的功耗約為2 mW。

          上一頁 1 2 下一頁

          評論


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