《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 基于FPGA的UART設(shè)計(jì)

基于FPGA的UART設(shè)計(jì)

2015-10-15
關(guān)鍵詞: FPGA 有限狀態(tài)機(jī)

  摘要:UART作為RS232協(xié)議的控制接口得到了廣泛的應(yīng)用,將UART的功能集成在FPGA芯片中,可使整個(gè)系統(tǒng)更為靈活、緊湊,減小整個(gè)電路的體積,提高系統(tǒng)的可靠性和穩(wěn)定性。提出了一種基于FPGA的UART的實(shí)現(xiàn)方法,具體描述了發(fā)送、接收等模塊的設(shè)計(jì),恰當(dāng)使用了有限狀態(tài)機(jī),實(shí)現(xiàn)了FPGA片上UART的設(shè)計(jì),給出了仿真結(jié)果。
  關(guān)鍵詞:通用異步收發(fā)器;串口通信;現(xiàn)場(chǎng)可編程邏輯器件;有限狀態(tài)機(jī)
  通用異步收發(fā)器(Universal Asynchronous Receiver/Transmitter,UART)可以和各種標(biāo)準(zhǔn)串行接口,如RS232和RS485等進(jìn)行全雙工異步通信,具有傳輸距離遠(yuǎn)、成本低、可靠性高等優(yōu)點(diǎn)。一般UART由專用芯片來實(shí)現(xiàn),但專用芯片引腳都較多,內(nèi)含許多輔助功能,在實(shí)際使用時(shí)往往只需要用到UART的基本功能,使用專用芯片會(huì)造成資源浪費(fèi)和成本提高。當(dāng)我們不需要用到完整的的UART功能和一些輔助功能時(shí),就可以將需要的UART功能集成用FPGA來實(shí)現(xiàn),然而,F(xiàn)PGA內(nèi)部并不擁有CPU控制單元,無法處理由UART控制器產(chǎn)生的中斷,所以FPGA不能利用現(xiàn)成的UART控制器構(gòu)成異步串行接口,必須將UART控制器的功能集成到FPGA內(nèi)部。從而可以大大的減少了體積、簡(jiǎn)化了電路,也提高了系統(tǒng)的靈活性。

65.png

  1 UART的工作原理
  UART是一種串行數(shù)據(jù)總線,用于異步通信,并且雙向通信,可實(shí)現(xiàn)全雙工發(fā)送和接收。基本的UART只需要兩條信號(hào)線(TXD、RXD)和一條地線就可以完成數(shù)據(jù)的互相通信,接收和發(fā)送互不干擾,這樣就大大節(jié)省了傳輸費(fèi)用。由于UART是異步通信,所以需要對(duì)數(shù)據(jù)進(jìn)行同步。UA RT發(fā)送/接收數(shù)據(jù)的傳輸格式如圖1所示,一個(gè)字符單位由開始位、數(shù)據(jù)位、校驗(yàn)位、停止位組成(其中校驗(yàn)位可供選)。
  發(fā)送或接收一個(gè)完整的字節(jié)信息,首先是一個(gè)作為起始位的邏輯“0”位,接著是8個(gè)數(shù)據(jù)位。然后是停止位邏輯“1”位,數(shù)據(jù)線空閑時(shí)為高或“1”狀態(tài)。在字符的8位數(shù)據(jù)部分,先發(fā)送數(shù)據(jù)的最低位,最后發(fā)送最高位。每位持續(xù)時(shí)間是固定的,由發(fā)送器本地時(shí)鐘控制,每秒發(fā)送的數(shù)據(jù)位個(gè)數(shù),即為“波特率”。起始位和停止位起著很重要的作用。顯然,它們標(biāo)志每個(gè)字符的開始和結(jié)束,但更重要的是他們使接收器能把他的局部時(shí)鐘與每個(gè)新開始接收的字符再同步。異步通信沒有可參照的時(shí)鐘信號(hào),發(fā)送器隨時(shí)都可能發(fā)送數(shù)據(jù),任何時(shí)刻串行數(shù)據(jù)到來時(shí),接收器必須準(zhǔn)確地發(fā)現(xiàn)起始位下降沿的出現(xiàn)時(shí)間,從而正確地采樣緊接著的10或者11位(包括開始位、數(shù)據(jù)位和停止位),接收器的時(shí)鐘和發(fā)送器的時(shí)鐘不是同一個(gè),因此,接收器所確定的采樣點(diǎn)的間隔和發(fā)送器所確定的位間隔時(shí)間不同,這點(diǎn)要特別注意。
  2 UART功能設(shè)計(jì)
  異步通信的一幀傳輸經(jīng)歷以下步驟:1)空閑狀態(tài)。發(fā)送方連續(xù)發(fā)送信號(hào),處于信息“1”狀態(tài)。2)開始傳輸。發(fā)送方在任何時(shí)刻將傳號(hào)變成空號(hào),即“1”跳變到“0”,并持續(xù)1位時(shí)間表明發(fā)送方開始傳輸數(shù)據(jù)。而同時(shí),接收方收到空號(hào)后,開始與發(fā)送方同步,并期望收到隨后的數(shù)據(jù)。3)奇偶傳輸。數(shù)據(jù)傳輸之后是可供選擇的奇偶位發(fā)送或接收。4)停止傳輸。最后是發(fā)送或接收的停止位,其狀態(tài)恒為“1”。
  設(shè)計(jì)的基本原則是保留最主要的功能,基于FPGA的UART系統(tǒng)由波特率時(shí)鐘發(fā)生器、接收器和發(fā)送器3個(gè)子模塊組成,如圖2所示。

66.png

  2.1 波特率發(fā)生器設(shè)計(jì)
  波特率發(fā)生器實(shí)質(zhì)是設(shè)計(jì)一個(gè)分頻器,用于產(chǎn)生和RS232通信同步的時(shí)鐘。在系統(tǒng)中用一個(gè)計(jì)數(shù)器來完成這個(gè)功能,分頻系數(shù)N決定了波特率的數(shù)值。該計(jì)數(shù)器一般工作在一個(gè)頻率較高的系統(tǒng)時(shí)鐘下,當(dāng)計(jì)數(shù)到N/2時(shí)將輸出置為高電平,再計(jì)數(shù)到N/2的數(shù)值后將輸出置為低電平,如此反復(fù)即可得到占空比50%的波特率時(shí)鐘,具體的波特率依賴于所使用的系統(tǒng)時(shí)鐘頻率和Ⅳ的大小。如系統(tǒng)時(shí)鐘頻率是6.4 MHz,要求波特率是9 600,則16倍波特率時(shí)鐘的周期約等于42個(gè)系統(tǒng)時(shí)鐘周期,則計(jì)數(shù)器取42/2=21時(shí),當(dāng)計(jì)數(shù)溢出時(shí)輸出電平取反就可以得到16倍約定波特率的時(shí)鐘。
  使用VHDL來描述波特率發(fā)生器的完整代碼如下:

68.png

  2.2 發(fā)送器設(shè)計(jì)
  UART發(fā)送器的設(shè)計(jì)較容易,只要每隔一個(gè)發(fā)送周期按照數(shù)據(jù)幀格式及要求的速率輸出數(shù)據(jù)即可。沒有數(shù)據(jù)要發(fā)送時(shí),發(fā)送數(shù)據(jù)寄存器為空,發(fā)送器處于空閑狀態(tài);當(dāng)檢測(cè)到發(fā)送數(shù)據(jù)寄存器滿信號(hào)后,發(fā)送器及發(fā)送起始位,同時(shí)8個(gè)數(shù)據(jù)位被并行裝入發(fā)送移位寄存器,停止位緊接著數(shù)據(jù)位指示一幀數(shù)據(jù)結(jié)束。只有發(fā)送數(shù)據(jù)寄存器為空時(shí),RAM中的待發(fā)數(shù)據(jù)才能被裝入。程序中使用計(jì)數(shù)器要保證各位周期定時(shí)正確。
  2.3 接收器設(shè)計(jì)
  接收器的工作過程如下,串行數(shù)據(jù)幀和接收時(shí)鐘是異步的,發(fā)送來的數(shù)據(jù)由邏輯1變?yōu)檫壿?可以視為一個(gè)數(shù)據(jù)幀的開始。接收器先要捕捉起始位,然而,通信線上的噪音也極有可能使傳號(hào)“1”跳變到空號(hào)“0”。所以接收器以16倍的波特率對(duì)這種跳變進(jìn)行檢測(cè),確定rxd輸入由1到0,邏輯0要8個(gè)bclkr(16倍的波特率時(shí)鐘)周期,才是正常的起始位,而不是噪音引起的,其中若有一次采樣得到的為高電平則認(rèn)為起始信號(hào)無效,返回初始狀態(tài)重新等待起始信號(hào)的到來。
  采到正確的起始位后,就開始接收數(shù)據(jù),最可靠的接收應(yīng)該是接收時(shí)鐘的出現(xiàn)時(shí)刻正好對(duì)著數(shù)據(jù)位的中央。由于在起始位檢測(cè)時(shí),已使時(shí)鐘對(duì)準(zhǔn)了位中央,用16倍波特率的時(shí)鐘作為接收時(shí)鐘,就是為了確保在位寬的中心時(shí)間對(duì)接收的位序列進(jìn)行可靠采樣,當(dāng)采樣計(jì)數(shù)器計(jì)數(shù)結(jié)束后所有數(shù)據(jù)位都已經(jīng)輸入完成。最后對(duì)停止位的高電平進(jìn)行檢測(cè),若正確檢測(cè)到高電平,說明本幀的各位正確接收完畢,否則出錯(cuò)。最
  后將正確的數(shù)據(jù)轉(zhuǎn)存到數(shù)據(jù)寄存器中,輸出數(shù)據(jù)。還要輸出一個(gè)數(shù)據(jù)接收標(biāo)志信號(hào)標(biāo)志數(shù)據(jù)接收完。
  利用有限狀態(tài)機(jī)實(shí)現(xiàn),完整代碼如下:
 

68.png

69.png

  3 仿真
  本設(shè)計(jì)在Altera Cyclone系列的EP1C3T100I7芯片上進(jìn)行了驗(yàn)證,對(duì)發(fā)送模塊和接收模塊的仿真結(jié)果分別如圖3、圖4所示。發(fā)送的數(shù)據(jù)能嚴(yán)格按照串行通信協(xié)議進(jìn)行傳輸;接收的數(shù)據(jù)也完全正確。仿真無誤后,使用QuarhusⅡ軟件將編譯好的.pof格式文件載到配置芯片EPCS1中。結(jié)果通信數(shù)據(jù)完全正確,電路工作穩(wěn)定、可靠。

70.png

  用FPGA設(shè)計(jì)UART,可以用片上很少的邏輯單元實(shí)現(xiàn)UART的基本功能。與傳統(tǒng)設(shè)計(jì)相比,能有效減少系統(tǒng)的PCB面積,降低系統(tǒng)的功耗,提高設(shè)計(jì)的穩(wěn)定性和可靠性,充分利用FPGA的剩余資源。并可方便地進(jìn)行系統(tǒng)升級(jí)和移植。
  4 結(jié)論
  該設(shè)計(jì)具有很大的靈活性,通過調(diào)整波特率發(fā)生器的分頻參數(shù),就可以使其工作在不同的頻率。采用16倍波特率的采樣時(shí)鐘,可以實(shí)時(shí)有效監(jiān)測(cè)數(shù)據(jù)的起始位,并對(duì)數(shù)據(jù)位進(jìn)行中央采樣,從而保證了所采樣數(shù)據(jù)的正確性。該模塊可以作為一個(gè)完整的IP核,靈活地移植進(jìn)各種型號(hào)FPGA中,在實(shí)際應(yīng)用時(shí)也可嵌入到其他系統(tǒng)中,有很好的借鑒和參考價(jià)值。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久婷婷国产麻豆91天堂| 欧美韩日一区二区三区| 亚洲三级视频| 香蕉久久国产| 亚洲一区二区三区免费视频| 亚洲精品一区久久久久久| 亚洲国产精品久久91精品| 国产亚洲欧洲| 国产原创一区二区| 国产综合色在线| 国产视频一区在线观看| 国产女人精品视频| 国产美女精品在线| 国产欧美日韩综合一区在线观看| 欧美日韩国产一中文字不卡| 欧美在线二区| 欧美亚洲色图校园春色| 欧美插天视频在线播放| 亚洲精品小视频在线观看| 亚洲第一区色| 久久精品国产免费看久久精品| 欧美一区激情| 久久福利电影| 亚洲日韩欧美视频一区| 国产精品福利网| 国产精品久久97| 国产精品色一区二区三区| 国产精品久久91| 国产美女精品在线| 国产亚洲欧洲997久久综合| 一区在线免费| 亚洲精品影视在线观看| 一二三区精品福利视频| 亚洲伊人伊色伊影伊综合网| 欧美一级淫片aaaaaaa视频| 久久精品国产免费| 亚洲美女视频在线免费观看| 中文一区二区| 欧美一级理论性理论a| 久久久久久亚洲精品中文字幕| 麻豆九一精品爱看视频在线观看免费| 欧美粗暴jizz性欧美20| 欧美日一区二区三区在线观看国产免| 欧美亚男人的天堂| 国产亚洲精品成人av久久ww| 亚洲第一精品在线| 99视频精品| 欧美中文字幕精品| 亚洲精品日产精品乱码不卡| 亚洲午夜精品久久| 久久精品一区四区| 欧美精品久久久久久| 国产精品高潮呻吟久久| 黄网站色欧美视频| 一区二区三区 在线观看视频| 亚洲欧美激情一区| 亚洲精品久久嫩草网站秘色| 亚洲欧美日韩国产一区二区| 久久精品二区亚洲w码| 欧美激情免费观看| 国产麻豆午夜三级精品| 亚洲激情二区| 亚洲欧美中文在线视频| 亚洲激情成人| 国产精品第一区| 一本色道**综合亚洲精品蜜桃冫| 午夜精品一区二区三区四区| 亚洲精品在线免费观看视频| 亚洲在线中文字幕| 久久综合婷婷| 欧美性大战xxxxx久久久| 黄色成人av| 一区二区三区日韩精品视频| 久久精品久久99精品久久| 中日韩高清电影网| 免费成人毛片| 国产伪娘ts一区| 亚洲美女色禁图| 欧美制服丝袜| 亚洲欧美自拍偷拍| 欧美另类69精品久久久久9999| 国产手机视频精品| 亚洲精品社区| 亚洲第一精品夜夜躁人人躁| 亚洲欧美国产精品va在线观看 | 亚洲一区二区三区四区五区黄| 久久久久久婷| 国产精品私拍pans大尺度在线 | 日韩亚洲欧美成人一区| 久久久午夜视频| 国产精品日韩久久久久| 亚洲伦伦在线| 亚洲人成网站在线观看播放| 久久国产精品久久久久久电车| 欧美日韩性视频在线| 依依成人综合视频| 欧美一级久久| 性一交一乱一区二区洋洋av| 欧美午夜视频在线| 亚洲国产精品ⅴa在线观看| 午夜在线视频一区二区区别| 亚洲综合欧美日韩| 欧美精品一区二区三区视频| 在线日本成人| 亚洲国产成人av在线| 久久久久国产精品一区二区| 国产精品一区=区| 在线视频亚洲一区| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 黄色亚洲在线| 欧美亚洲一区三区| 亚洲男人的天堂在线观看| 亚洲高清免费视频| 久久久99久久精品女同性| 国产欧美日韩高清| 亚洲在线不卡| 香港久久久电影| 国产精品毛片高清在线完整版| 一本色道久久88综合日韩精品| 性欧美xxxx大乳国产app| 香蕉久久久久久久av网站| 国产精品久久久久999| 一区二区高清在线观看| 亚洲一区在线视频| 国产精品国产三级国产aⅴ浪潮 | 国产精品久久久久天堂| 中文国产一区| 亚洲欧美资源在线| 国产欧美午夜| 先锋亚洲精品| 久久久久久久久一区二区| 国语自产精品视频在线看一大j8 | 欧美成人综合| 日韩视频亚洲视频| 亚洲一区二区三| 国产精品免费一区豆花| 亚洲欧美另类国产| 久久精品亚洲精品国产欧美kt∨| 国模精品一区二区三区色天香| 久久精品2019中文字幕| 免费影视亚洲| 亚洲美女av在线播放| 亚洲欧美日韩国产一区二区| 国产亚洲激情视频在线| 亚洲国产精品va在线看黑人| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲欧洲精品一区二区| 亚洲一区二区三区国产| 国产啪精品视频| 亚洲国产精品va在线看黑人动漫| 欧美激情2020午夜免费观看| 夜夜嗨av一区二区三区中文字幕| 亚洲欧美自拍偷拍| 国产在线拍偷自揄拍精品| 亚洲精品护士| 欧美性天天影院| 久久精品人人做人人爽| 欧美精品一级| 亚洲制服av| 免费观看亚洲视频大全| 一本久道久久综合婷婷鲸鱼| 久久综合精品国产一区二区三区| 一区二区三区在线视频观看| 亚洲免费观看在线视频| 国产精品久久激情| 亚洲电影欧美电影有声小说| 欧美精品入口| 亚洲一区二区三区四区五区午夜| 久久久国产视频91| 亚洲日韩欧美视频一区| 先锋影音一区二区三区| 亚洲春色另类小说| 亚洲欧美文学| 亚洲第一天堂av| 亚洲在线观看视频| 激情久久中文字幕| 亚洲一区二区三区视频| 激情校园亚洲| 亚洲专区一区| 亚洲第一色中文字幕| 欧美亚洲综合在线| 亚洲国产色一区| 欧美一级久久久| 最新国产拍偷乱拍精品| 欧美自拍偷拍午夜视频| 最新成人av网站| 久久精品系列| 在线亚洲伦理| 欧美电影免费观看高清完整版| 亚洲夜晚福利在线观看| 欧美成人日韩| 欧美一区二区三区视频在线观看| 欧美精品性视频| 久久精品亚洲一区二区三区浴池| 欧美三级午夜理伦三级中文幕 | 亚洲欧美日韩中文在线制服| 欧美激情麻豆| 亚洲第一搞黄网站| 国产精品一区二区三区四区 | 精品91视频|