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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 串行外圍接口SPI功能模塊的設計

          串行外圍接口SPI功能模塊的設計

          作者: 時間:2011-02-22 來源:網(wǎng)絡 收藏

            2.3 工作模式

            SPI有兩種工作模式,可以通過外部引腳跳線的方式來切換。

            主模式:發(fā)送和接收可以同時工作在主模式下。

            主模式的顯著特征是不論是發(fā)送還是接收始終有SCLK信號,發(fā)送操作是由向發(fā)送FIFO中寫數(shù)據(jù)而觸發(fā)的。在主模式下,時鐘信號的1次作用對應一位數(shù)據(jù)的發(fā)送(MOSI)和另一位數(shù)據(jù)的接收(MISO)。

            如圖3所示,在主片中數(shù)據(jù)從移位寄存器中自右向左發(fā)出送到從片(MOSI),同時從片中的數(shù)據(jù)自左向右發(fā)到主片(MISO),經(jīng)過8位時鐘周期完成1個字節(jié)的發(fā)送。輸入字節(jié)保留在移位寄存器中,此時SPI INT FLAG位自動置位(如果有中斷設置,則產(chǎn)生中斷),移位寄存器的數(shù)據(jù)將被鎖存到接收FIFO中,此后對接收FIFO的讀操作將把數(shù)據(jù)讀出。

            從模式:發(fā)送和接收同時工作在從模式下。從模式的顯著特征是:不論是發(fā)送還是接收始終必須在SCLK信號作用下進行,并且SSN信號必須有效。

            當SSN信號無效時,數(shù)據(jù)的發(fā)送無法進行并且輸入的數(shù)據(jù)視為無效。數(shù)據(jù)的發(fā)送和接收過程見圖3所示,與主模式下基本相似,只是移位寄存器的數(shù)據(jù)移出和輸入方向與之相反。

          主片和從片發(fā)送和接收操作


          圖3 主片和從片發(fā)送和接收操作

            3 SPI模塊功能設計

            3.1 模塊劃分

            根據(jù)功能定義及SPI的工作原理,將整個SPI IP劃分為8個子模塊:APB接口模塊、時鐘分頻模塊、發(fā)送數(shù)據(jù)FIFO模塊、接收數(shù)據(jù)FIFO模塊、寄存器控制模塊、命令解析模塊、中斷處理模塊及發(fā)送接收數(shù)據(jù)模塊。整個SPI模塊劃分結(jié)構(gòu)圖如圖4所示。

          數(shù)據(jù)傳輸結(jié)構(gòu)


          圖4 數(shù)據(jù)傳輸結(jié)構(gòu)

            在這些模塊中,Tx—FIFO和Rx—FIFO用來做接收發(fā)送數(shù)據(jù)的FIFO。DMA/INT是中斷控制模塊,通知或者DMA發(fā)送或者接收數(shù)據(jù)的FIFO。CMD ANALYSIS模塊用來解析在從模式下Host發(fā)過來的命令。CTRl/Register用來放置寄存器,供讀寫配置SPI的各種參數(shù)。Shifter用來做串并轉(zhuǎn)換,收發(fā)送數(shù)據(jù)。Clock模塊用來產(chǎn)生主模式下時鐘。

            3.2 設計方案

            通過深入分析SPI的四種傳輸協(xié)議可以發(fā)現(xiàn),根據(jù)一種協(xié)議,只要對串行同步時鐘進行轉(zhuǎn)換,就能得到其余的三種協(xié)議。為了簡化設計,規(guī)定如果要連續(xù)傳輸多個數(shù)據(jù),在兩個數(shù)據(jù)傳輸之問插入一個串行時鐘的空閑等待,這樣狀態(tài)機只需兩種狀態(tài)(空閑和工作)就能正確工作。相比其它設計,在基本不降低性能的前提下,思路比較精煉、清晰,能夠大大縮短寫代碼的時間,降低出錯率。

            此SPI模塊有兩種工作方式:查詢方式和DMA方式。查詢方式通過處理器核監(jiān)視SPI的狀態(tài)寄存器來獲取其所處的狀態(tài),從而決定下一步動作。

            DMA方式由DMA模塊控制數(shù)據(jù)在內(nèi)存和SPI間的交換,而不需要處理器核的參與,有效提高了總線利用率。

            外部可以通過和內(nèi)部MCU通訊的方式,把從模式的SPI配置成可以解析命令的模式,這樣外部主模式的SPI可以在SSN低電平的時候連續(xù)傳輸多位數(shù)據(jù),在下降沿的第一個數(shù)據(jù)被認為是命令。從模式的SPI可以解析這些命令然后做相應的操作。這些操作主要包括,清除接收FIFO或者發(fā)送FIFO中的數(shù)據(jù),選擇MCU或者DMA來作為數(shù)據(jù)交互的對象等,可以大大節(jié)省和MCU交互所需要的帶寬。

            作為主要組成部分的寄存器控制模塊和SPI核心模塊采用同步電路設計,它們之間的通訊采用異步電路設計。這些主要是考慮到SPI的帶寬通過MCU的控制是可調(diào)的。SPI核心部分的時鐘頻率可調(diào),可實現(xiàn)多種帶寬,增加了本設計SPI的靈活性。



          關(guān)鍵詞: MCU

          評論


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