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