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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設計應用 > 三線制同步串行通信控制器接口設計

          三線制同步串行通信控制器接口設計

          作者: 時間:2009-11-11 來源:網(wǎng)絡 收藏

          2 結構
          2.1 基于傳統(tǒng)的硬件電路實現(xiàn)
          的傳統(tǒng)硬件電路中,需使用多片元器件來實現(xiàn)其功能,包括:異步四位計數(shù)器、移位寄存器、8位D觸發(fā)器、與門、與非門和反相器等主要功能器件,接口電路原理圖在ProteI 99 SE中實現(xiàn)。
          接收接口硬件電路如圖2所示。

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

          從圖2中可看到,通過復位信號rst n、片選信號CS、門控信號strobe和讀寫信號RW等的不同組合,實現(xiàn)邏輯控制功能。通過異步四位計數(shù)器SN54HC161的計數(shù)功能,使得移位寄存器SN54HC164順利進行數(shù)據(jù)的串/并轉換,將8位并行數(shù)據(jù)通過8位D觸發(fā)器SN54HC374鎖存在內部總線上等待系統(tǒng)接收。在輸出端,通過雙D觸發(fā)器SN54HC74產(chǎn)生中斷信號int,通知系統(tǒng)內的微處理器進行數(shù)據(jù)接收操作。
          三線制同步串行通信控制器發(fā)送接口硬件電路如圖3所示。
          從圖3可知,系統(tǒng)時鐘start-clk通過分頻電路模塊產(chǎn)生發(fā)送時鐘原始信號code-clk,用于電路的時鐘狀態(tài)控制。系統(tǒng)內的微處理器將要發(fā)送的8位并行數(shù)據(jù)通過8位D觸發(fā)器SN54HC377,將數(shù)據(jù)鎖存在其Q端口等待發(fā)送,然后在異步四位計數(shù)器SN54HC161的計數(shù)功能控制下,移位寄存器SN54HC165進行數(shù)據(jù)的并/串轉換操作。在輸出端,通過雙D觸發(fā)器SN54HC74產(chǎn)生中斷信號,然后開始通過單向總線驅動器SN54HC244進行幀同步信號、時鐘信號及數(shù)據(jù)的發(fā)送操作。
          2.2 基于C的接口結構設計
          為解決傳統(tǒng)硬件電路元器件多,功耗大,體積大等缺點,利用C技術,同時結合VHDL硬件描述語言設計三線制同步串行通信控制器接口已成為一種必然,結合三線制同步串行通信機理,設計出了基于C的三線制同步串行通信控制器接口內部結構,其功能結構如圖4所示。

          整個三線制同步串行通信控制器接口的內部結構主要由時鐘分頻模塊、系統(tǒng)接口控制邏輯、數(shù)據(jù)接收模塊、數(shù)據(jù)發(fā)送模塊等四大模塊構成。
          時鐘分頻模塊主要用于數(shù)據(jù)收/發(fā)模塊產(chǎn)生同步時鐘信號。系統(tǒng)接口控制邏輯主要用于各種邏輯功能信號的控制,同時還可以接收_中斷仲裁邏輯模塊產(chǎn)生的中斷信號,控制數(shù)據(jù)的接收或者發(fā)送操作。數(shù)據(jù)接收模塊是三線制同步串行通信控制器接口進行數(shù)據(jù)接收的核心部分,其模塊結構如圖5所示。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();