基于Verilog HDL的UART模塊設計與仿真
摘要:通用異步收發(fā)器UART常用于微機和外設之間的數據交換,針對UART的特點(diǎn),提出了一種基于Ver4log HDL的UART設計方法。采用自頂向下的設計路線(xiàn),結合狀態(tài)機的描述形式,使用硬件描述語(yǔ)言設計UART的頂層模塊及各個(gè)子模塊,從而使整個(gè)設計更加緊湊、可靠。同時(shí)采用參數化的設計方法,增強系統的可移植性。仿真結果表明,該系統可支持標準異步串行傳輸RS-232協(xié)議,可集成到FPGA芯片中使用。
關(guān)鍵詞:Verilog HDL;通用異步收發(fā)器(UART);狀態(tài)機;仿真
隨著(zhù)微機應用和計算機網(wǎng)絡(luò )的發(fā)展,計算機與外界之間的信息交換變得越來(lái)越重要,為了保證串行通信的正常進(jìn)行,提高串行通信的效率和CPU的利用率,在微機系統中采用專(zhuān)用的大規模集成電路來(lái)完成這些工作,這就是串行通信接口。通用異步接收發(fā)送器UART(Universal asynchronousreceiver/transmitter)主要用于控制設備之間的串行通信。廣泛應用于調制解調器Modem、手持工業(yè)設備、條形碼閱讀器、測試設備、消費產(chǎn)品與計算機PC、微處理器以及小型通信網(wǎng)絡(luò )之間的通信等。在SOC設計中,異步串行通信接口已成為不可缺少的一部分,它的性能優(yōu)劣將直接影響相應電子系統的性能和指標。
1 UART原理
串行通信是指外部設備和計算機間使用一根數據線(xiàn)(另外需要地線(xiàn),可能還需要控制線(xiàn))進(jìn)行數據傳輸的方式。數據在一根數據線(xiàn)上一位一位傳輸,每一位數據都占據一個(gè)固定的時(shí)間長(cháng)度。與并行通信方式相比,串行通信方式的傳輸速度較慢,但這種通信方式使用的數據線(xiàn)少,在遠距離通信中可以節約通信成本,因此得到了廣泛的應用。
基本的UART只需要發(fā)送和接收兩條數據線(xiàn)就可以完成數據的全雙工通信,其基本功能是在發(fā)送端將控制器通過(guò)總線(xiàn)傳過(guò)來(lái)的并行數據,以設定的格式,設定的頻率串行地傳輸出去,并同時(shí)在接收端將串行接收到的數據,轉換成相應的并行數據發(fā)送出去。UART的基本幀格式如圖1所示。其中,起始位總是邏輯O狀態(tài),停止位總是邏輯l狀態(tài),其持續時(shí)間可選為1位、1.5位或2位,其數據位可為5、6、7、8位,校驗位可根據需要選擇奇校驗位,偶校驗位或無(wú)校驗位。
2 UART的設計
現今復雜的數字系統的設計往往采用自頂向下的設計方案,利用層次化結構化的方法,將一個(gè)設計方案劃分為若干模塊,在不同層次的模塊都可以進(jìn)行仿真,可以很方便地查看某一層次的代碼以改正仿真時(shí)發(fā)現錯誤。在本設計中UART主要由波特率發(fā)生器、接收模塊、發(fā)送模塊3部分組成,并具有l位停止位和無(wú)校驗位。波特率發(fā)生器實(shí)現波特率的變換,利用外部時(shí)鐘信號產(chǎn)生一個(gè)所需波特率16倍的波特率時(shí)鐘,用來(lái)控制UART的接收與發(fā)送。接收模塊是用于接收串行信號,并將其轉化為并行數據;而發(fā)送模塊則將準備輸出的并行數據按照UART的幀格式轉化為串行數據輸出。圖2為UART結構圖。
評論