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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > SPI IP核及其在微投影系統(tǒng)中的應(yīng)用

          SPI IP核及其在微投影系統(tǒng)中的應(yīng)用

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

          摘要:介紹了總線控制器核的硬件結(jié)構(gòu)與方法,并著重介紹了該核在微中的使用,以完成微顯示芯片的初始化。實驗表明,該總線接口使用靈活,便于移植,并且穩(wěn)定可靠。
          關(guān)鍵詞:總線控制器;Nios II處理器;核;可編程片上;微

          引言
          SPI總線作為一種簡單高效的4線串行傳輸總線,在電子器件和非常普遍,由于其輸入和輸出的信號線彼此獨立,因而傳輸可靠性更好。Altera公司的EDA設(shè)計工具中有自帶的SPI總線控制IP核,但目前介紹該IP核具體的文獻不多,本文結(jié)合我們在微系統(tǒng)研究中的需求,給出了該SPI IP核的應(yīng)用實例。

          1 SPI核的工作原理
          1.1 硬件結(jié)構(gòu)
          SPI核的硬件結(jié)構(gòu)如圖1所示,主要由波特率分頻器、發(fā)送數(shù)據(jù)寄存器、接收數(shù)據(jù)寄存器、狀態(tài)寄存器和控制寄存器組成。波特率分頻器主要將Avalon的系統(tǒng)時鐘進行分頻,SCK可以配置的頻率=Avalon系統(tǒng)時鐘頻率/(2的倍數(shù))。

          本文引用地址:http://www.ex-cimer.com/article/162271.htm

          a.jpg


          該IP核可以配置為主和從兩種模式。本設(shè)計為嵌入在FPGA中SPI核為主工作模式,可以控制最多16個從設(shè)備,如圖1所示的SEN0~SENl5。只有一個器件時,默認(rèn)為SEN0信號。SPI核傳輸?shù)臄?shù)據(jù)寬度是由用戶配置的,可在1~32位之間,當(dāng)一次數(shù)據(jù)傳輸結(jié)束之后SPI核發(fā)出一個中斷請求。
          主要實現(xiàn)兩種傳輸邏輯(以主模式為例):
          ①發(fā)送邏輯。待發(fā)送的數(shù)據(jù)由Avalon從端口送入發(fā)送數(shù)據(jù)寄存器,再移入移位寄存器中,SCK跳變沿到來時開始數(shù)據(jù)傳輸(經(jīng)SDAT信號線發(fā)出,先移入的數(shù)據(jù)是高位還是低位,取決于SOPC Builder的配置)。
          ②接收邏輯。移位寄存器捕獲到完整的數(shù)據(jù)后,再將其移入接收數(shù)據(jù)寄存器中(由SDO信號線捕獲數(shù)據(jù))。
          1.2 軟件結(jié)構(gòu)
          目前,在采用32位的軟核Nios II處理器中,提供了4層軟件開發(fā)模式:Nios II系統(tǒng)硬件,驅(qū)動程序?qū)?,硬件抽象層?yīng)用程序接口(HAL API),應(yīng)用程序?qū)印PI核的應(yīng)用和軟件結(jié)構(gòu)如圖2所示。

          b.jpg



          上一頁 1 2 3 4 下一頁

          評論


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