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

          新聞中心

          EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的帶CRC校驗的異步串口通信

          基于FPGA的帶CRC校驗的異步串口通信

          作者: 時間:2010-12-23 來源:網(wǎng)絡 收藏

          摘要:由于具有速度快,效率高,靈活穩(wěn)定,集成度高等優(yōu)點,所以為了提高串口的速度和效率,在串行中采用來實現(xiàn)串口是十分必要的。由于通信傳輸?shù)牟淮_定性以及干擾等原因,串行通信經常會出現(xiàn)異常情況。然而,在串行通信中添加校驗,可以提高通信的可靠性。采用Verilog HDL設計的一個帶校驗的串口通信程序,對其下栽到芯片中進行實驗驗證,得到的結論是用FPGA進行串口通信,可大大提高通信的速度和效率,且校驗確保了通信的準確性及卡可靠性。
          關鍵詞:Verilog HDL;串口通信;FPGA;CRC檢驗

          O 引言
          現(xiàn)場可編程門陣列(field programmable gate array,F(xiàn)PGA)在數(shù)字電路設計中已經被廣泛使用。這種設計方式可以將以前需要多塊集成芯片的電路設計到一塊大模塊可編程邏輯器件中,大大減少了電路板的尺寸,增強了系統(tǒng)的可靠性和設計的靈活性。本文詳細介紹了已在實際項目中應用的基于FPGA的串口通信設計。硬件描述語言(hardware description language,HDL)是一種用形式化方法來描述數(shù)字電路和設計數(shù)字邏輯系統(tǒng)的語言。數(shù)字邏輯電路設計者可以利用這種語言來描述自己的設計思想,然后利用電子設計自化(EDA)工具進行仿真,再自動綜合到門級電路,然后用ASIC或Soft-Core實現(xiàn)其功能。Verilog HDL是硬件描述語言的一種,用于數(shù)字電子系統(tǒng)設計。串口通信是指在一個時間內傳輸1位數(shù)字數(shù)據(jù)。從19世紀的二進位電報編碼,發(fā)展到現(xiàn)在的RS 232(EIA 232),主要用于連接終端和大型主機。串口通信在過去的40年里,大大推動了通信技術的發(fā)展。通信協(xié)議是指通信雙方的一種約定。約定包括對數(shù)據(jù)格式、同步方式、傳送速度、傳送步驟、檢糾錯方式以及控制字符定義等問題做出統(tǒng)一規(guī)定,通信雙方必須共同遵守。因此,也叫通信控制規(guī)程,或稱傳輸控制規(guī)程,它屬于 ISO’sOSI七層
          參考模型中的數(shù)據(jù)鏈路層,其主要完成的作用如下:
          (1)實現(xiàn)數(shù)據(jù)格式化;
          (2)進行串/并轉換;
          (3)控制數(shù)據(jù)傳輸速率;
          (4)進行錯誤檢測;
          (5)進行TTL與EIA電平轉換;
          (6)提供EIA-RS 232C接口標準所要求的信號線;
          (7)為了完成上述串行接口的任務,串行通信接口電路一般由可編程的串行接口芯片、波特率發(fā)生器、EIA與TTL電平轉換器以及地址譯碼電路組成。

          1 方案設計與分析
          1.1 硬件電路
          該方案的硬件電路設計包括:FPGA芯片、MAX3232,DB9。其硬件電路與微機通信的結構框圖如圖1所示。
          a.JPG

          1.2 軟件設計思想
          軟件部分的設計流程如圖2所示。

          b.JPG

          fpga相關文章:fpga是什么


          通信相關文章:通信原理



          上一頁 1 2 3 下一頁

          關鍵詞: FPGA CRC 異步串口 通信

          評論


          相關推薦

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