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

          新聞中心

          EEPW首頁 > EDA/PCB > 設計應用 > 基于CPLD/FPGA的多串口設計與實現(xiàn)

          基于CPLD/FPGA的多串口設計與實現(xiàn)

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

          摘要:在工業(yè)控制中如何提高一對多的串口通訊可靠性和系統(tǒng)的集成性成為研究熱點。本文利用嵌入式技術,提出基于擴展設計方案。實現(xiàn)并行口到多個全雙工異步通訊口之間的轉換,并根據(jù)嵌入式系統(tǒng)實時性的需要,在每個UART接收器中開辟了8個接收緩沖單元,實現(xiàn)高速嵌入式CPU與RS232通訊設備之間的速度匹配,同時,串行口波特率等參數(shù)可根據(jù)需要進行設置。通過實踐證明,本文設計的基于完全符合工業(yè)控制中一對通訊的要求。
          關鍵詞:;多串口擴展;全雙工;異步通信;嵌入式系統(tǒng)

          在工業(yè)控制中,設備的通訊與控制主要采用簡潔高效的串口方式進行。工控機通過PCI擴展卡方式進行串口的擴展,或采用電路復雜的擴展芯片實現(xiàn)串口擴展。隨著嵌入式技術發(fā)展,嵌入式系統(tǒng)的應用逐步代替了成本高昂的工業(yè)控制計算機。為了簡化硬件電路的設計,降低系統(tǒng)成本,本文提出了一種基于CPLD/FPGA多串口擴展的方案,實現(xiàn)多個外設串口的擴展和管理,同時解決一對多的串口通訊可靠性問題,滿足嵌入式系統(tǒng)串口擴展的需求。

          1 系統(tǒng)結構
          本設計以CPLD/FPGA芯片為核心,在芯片內部通過設計、編程實現(xiàn)并行總線接口到多個串行口的擴展。設計的多串口擴展包括并行總線接口、4路接收緩沖器、4路發(fā)送器、波特率發(fā)生器和UART接口。為實現(xiàn)高速嵌入式CPU與RS232通訊設備之間的速度匹配,充分利用嵌入式系統(tǒng)的實時性,在每個接收緩沖器中開辟了8個接收緩沖單元。在實際應用中,可根據(jù)嵌入式系統(tǒng)擴展的需要,靈活增減串口數(shù)量以及接收緩沖單元個數(shù)。在通訊過程,波特率發(fā)生器的時鐘信號由外部有源晶振提供,選擇合適的晶振頻率即可獲得高性能的數(shù)據(jù)傳輸。系統(tǒng)結構如圖1所示。

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

          a.jpg



          2 功能模塊設計
          2.1 接收緩沖模塊
          2.1.1 接收緩沖模塊構架
          在設計過程中,為便于串口擴展功能的實現(xiàn),將功能相似的部件進行了集成。本設計以4路UART接口擴展為例,接收緩沖部分包含了4個獨立的接收緩沖器,其結構如圖2所示。接收緩沖器共用clk時鐘信號,并將其作為串行數(shù)據(jù)接收的波特率;每個接收緩沖器均有單獨的rxd、bf、cs引腳,其功能分別為:串行數(shù)據(jù)輸入、接收緩沖器儲存狀態(tài)、接收緩沖器片選。各接收緩沖器的片選端分別與2-4譯碼器的輸出腳相連。譯碼器的輸入端構成了4路接收緩沖器選擇的地址線,分別對應a3、a4腳;結構圖中數(shù)據(jù)總線d0~d7、讀緩沖端rd、緩沖儲存狀態(tài)清‘0’端clr和緩沖單元地址線a0~a2為共用信號端口,分別與4個接收緩沖器相連。

          b.jpg


          上一頁 1 2 3 下一頁

          關鍵詞: CPLD FPGA 多串口

          評論


          相關推薦

          技術專區(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); })();