《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于導航基帶芯片的UART的設計和仿真
基于導航基帶芯片的UART的設計和仿真
來源:電子技術應用2013年第1期
胡 月1,馮華星2,李曉江2,葉甜春1
1.中國科學院微電子研究所,北京100029; 2.杭州中科微電子有限公司,浙江 杭州310053
摘要: 設計了一款帶自動波特率檢測且誤差較小的UART模塊,旨在獲得良好的通信功能。該模塊支持全雙工的串行數(shù)據(jù)傳輸和紅外通信功能,且支持DMA模式以減少CPU的占用時間。UART的發(fā)送和接收通道各有一個FIFO模塊。最后,利用Verilog語言的硬件實現(xiàn)方法在FPGA平臺上進行了驗證。
中圖分類號: TN47
文獻標識碼: A
文章編號: 0258-7998(2013)01-0037-03
Design and simulation of UART module based on baseband CMOS chip of navigation
Hu Yue1,F(xiàn)eng Huaxing2,Li Xiaojiang2,Ye Tianchun1
1.Institute of Microelectronics of Chinese Academy of Sciences, Beijing 100029,China; 2.Hangzhou Zhongke Microelectronics Co.,Ltd.,Hangzhou 310053,China
Abstract: This paper focuses on the design of UART with auto baud rate deceting function and minimal lost signal to get a good transmission. It supports full duplex communication in serial link and ifra-red communcation.In addition,DMA mode can be used to reduce elapsed time of CPU.Each UART channel contains two FIFOs for receiving and transmiting. At last,this paper presents the hardware implementation using verilog HDL,and verification on FPGA platform.
Key words : Verilog;FPGA;baud-rate generator;finite state machine

    通用異步收發(fā)器UART(Universal Asynchronous Receiver/Transmitter)是串行通信的重要組成部分,其基本功能是實現(xiàn)數(shù)據(jù)的串行化/反串行化和錯誤校驗,這也是所有的UART設計都能實現(xiàn)的基本功能,但是其他各種功能都兼顧的設計非常少。參考文獻[1]設計了一個在MCU中運用非常廣泛的UART接口,其功能比較全面,但是波特率產(chǎn)生器采用整數(shù)分頻的設計,導致系統(tǒng)只有在特定系統(tǒng)時鐘、特定波特率的情況下誤差才會比較小,不能滿足高波特率和非標準波特率的要求;參考文獻[2]設計的UART IP基本功能良好,但是不支持紅外、自動波特率檢測等功能;參考文獻[3]的設計只支持中斷模式,不支持DMA模式,不能滿足大量數(shù)據(jù)高速傳輸?shù)男枨螅抑袛嗫偸谴驍郈PU的操作,效率較低。本文提出了一種多功能UART模塊的設計,并利用Verilog HDL語言進行實現(xiàn)。本設計能滿足多模導航基帶芯片中的不同需求(如相關器數(shù)據(jù)的傳輸?shù)?,同時降低誤差,保證衛(wèi)星數(shù)據(jù)的正確性。

1 UART電路主要模塊設計
    本設計采用標準的UART傳輸協(xié)議,字符幀由起始位、數(shù)據(jù)位、奇偶校驗位和停止位四部分組成[4]。UART電路包括UART總控模塊UART_CTRL、波特率產(chǎn)生器UART_BFG、數(shù)據(jù)發(fā)送模塊TRANSMITTER、數(shù)據(jù)接收模塊RECEIVER和FIFO模塊,其總體結(jié)構(gòu)圖如圖1所示。

1.1 接收模塊
    串行數(shù)據(jù)幀和接收數(shù)據(jù)時鐘是異步的,由邏輯1跳變?yōu)檫壿?可視為一個數(shù)據(jù)幀的開始,所以接收器首先需要判斷起始位,常用的方法有三倍速采樣法和起始位中斷捕捉定時采樣法。據(jù)經(jīng)驗可知,數(shù)據(jù)的中間采樣值可靠性較高,可以采用中間時刻采樣法[2],并且,接收和發(fā)送單元的數(shù)據(jù)采樣率為波特率的16倍,可降低由于時鐘不匹配引起的誤采樣。接收器采用狀態(tài)機[2]實現(xiàn),狀態(tài)機的描述如下:
    (1)RX_IDLE:當UART接收器復位時,F(xiàn)SM處于這一狀態(tài)。在該狀態(tài)中,狀態(tài)機一直等待RXD電平跳變,即出現(xiàn)下降沿。檢測到起始位后,進入RX_START狀態(tài)。
    (2)RX_START:在該狀態(tài)下,在采樣時鐘的上升沿對URXD低電平進行計數(shù)。當計數(shù)為8(即確保在起始位的中間點)時,轉(zhuǎn)到RX_DATA狀態(tài);如果邏輯零的個數(shù)少于8,則認為是毛刺,跳回RX_IDLE狀態(tài)。
    (3)RX_DATA:在該狀態(tài)下,每隔16個采樣時鐘采樣1 bit串行數(shù)據(jù),接收8 bit異步數(shù)據(jù)并進行串/并轉(zhuǎn)換。同樣是對采樣時鐘的上升沿進行計數(shù),當計數(shù)值為16時進行數(shù)據(jù)采樣。如果起始位為16位,則可以保證數(shù)據(jù)位都是在中點處被采樣,同時進行串/并轉(zhuǎn)換。當探測已經(jīng)接收到相應位的數(shù)據(jù)后,進入奇偶校驗狀態(tài)。
    (4)RX_PARITY:該狀態(tài)的主要功能是奇偶校驗,通過對實際接收到的數(shù)據(jù)的奇偶性與發(fā)送過來的奇偶校驗位進行比較,判斷奇偶校驗錯誤狀態(tài)。
    (5)RX_STOP:對停止位進行采樣,并且判斷停止位是否為1。若停止位不正確,則幀錯狀態(tài)位置1。
    將接收到的數(shù)據(jù)和錯誤狀態(tài)數(shù)據(jù)一起寫入到接收FIFO中。接收到錯誤的數(shù)據(jù)后不馬上產(chǎn)生錯誤中斷,一旦數(shù)據(jù)被讀出,此時錯誤狀態(tài)也一起被讀出,立即產(chǎn)生錯誤中斷。
1.2 發(fā)送模塊
    發(fā)送器實現(xiàn)的功能是將輸入的8 bit并行數(shù)據(jù)變成串行數(shù)據(jù),同時在數(shù)據(jù)位頭部加入起始位,在數(shù)據(jù)位尾部加奇偶校驗位和停止位。發(fā)送模塊的設計比較簡單,其狀態(tài)機與接收模塊相對應,在此不再贅述。
1.3 波特率產(chǎn)生模塊
    波特率發(fā)生器一般采用分頻器實現(xiàn),傳統(tǒng)的采用整數(shù)分頻器實現(xiàn)的誤差在某些系統(tǒng)時鐘下超出了可控范圍,如在參考時鐘為16.37 MHz、波特率為460 Kb/s的情況下,誤差達到了11.2%,會導致數(shù)據(jù)傳輸?shù)腻e誤。因此,本設計采用小數(shù)分頻器實現(xiàn)相對準確的波特率。另外,在收發(fā)的過程中,可以改變波特率寄存器的值,但實際波特率的改變發(fā)生在當前幀傳輸完成之后。波特率產(chǎn)生模塊的電路結(jié)構(gòu)圖如圖2所示。

    小數(shù)分頻的實現(xiàn)方法有很多,但其基本原理是一樣的,即在若干個分頻周期中采取某種方法使某幾個周期多計或少計一個數(shù),從而在整個分頻周期內(nèi)總體平均分頻數(shù)為小數(shù)分頻[5]。
    通過采用小數(shù)分頻,大大降低了實際波特率與要求波特率之間的誤差。在正常情況下,誤差不應超過2%,如果超過了,則需要相應地提高系統(tǒng)時鐘來降低誤差。表1列出了19.2 MHz情況下的整數(shù)分頻和小數(shù)分頻波特率誤差對應表,可以看到采用小數(shù)分頻的波特率誤差明顯較小。

    在本設計中,發(fā)送器、接收器和波特率產(chǎn)生模塊是主要模塊。FIFO(先進先出)模塊是數(shù)字電路設計中比較常用的模塊,本文復用了通用的FIFO模塊,在文中就不再贅述。UART的控制模塊主要負責對寄存器的相關操作,通過APB總線實現(xiàn),其電路設計比較簡單,也不再贅述。
2 UART模塊的其他功能
2.1 自動波特率檢測

    UART接收通道在接收數(shù)據(jù)之前,如果發(fā)送端的波特率不清楚,可進行自動波特率檢測。實現(xiàn)方法是:發(fā)送端間隔發(fā)送檢測字,間隔時間為傳輸一幀所需的時間。接收方UART根據(jù)start位來確定是否有數(shù)據(jù)在傳輸,當其檢測到下降沿時就進入RX_START的狀態(tài)中,在波特率不明確的情況下,并不產(chǎn)生采樣時鐘,用PCLK進行采樣計數(shù)。由于start位為1 bit,根據(jù)計數(shù)值可知這1 bit所占用的時間。如果接收數(shù)據(jù)完成后,接收到的數(shù)據(jù)是約定值,則證明波特率檢測成功,可以將檢測到的值存儲于寄存器中。自動波特率檢測原理公式如下:
    1/baudrate=count×(1/PCLK)(1)
    根據(jù)式(1)可得發(fā)送端的波特率。實現(xiàn)自動波特率檢測無需專門的模塊設計,在接收器模塊內(nèi)就可以實現(xiàn)。
2.2 自檢測模式
    Loopback(自檢測)模式是UART內(nèi)部的一種自測功能。當UART出現(xiàn)問題時可以先自測,將控制寄存器中Loopback位使能,UART可以將內(nèi)部的發(fā)送(TXD)和接收(RXD)連接在一起,確定內(nèi)部的數(shù)據(jù)通路沒有問題。
2.3 紅外傳輸功能
    本設計的UART支持IrDA 1.0協(xié)議,所以使用紅外時最高波特率為115.2 Kb/s。通過寄存器的紅外控制位選擇紅外使能,可以實現(xiàn)紅外脈沖。IrDA數(shù)據(jù)通路如圖3所示[1]。

2.4 DMA模式
    本設計UART不僅支持查詢、中斷模式,還支持DMA模式以提高連續(xù)傳輸?shù)哪芰Γ軌蚋咝У貍鬏敾鶐酒嚓P器中的大量數(shù)據(jù)。CPU除了在開始和結(jié)束時處理中斷外,在傳輸過程中也可以進行其他工作。
3 仿真驗證和綜合結(jié)果
3.1 仿真驗證

    本文采用Altera公司EP3SL150F1152的FPGA芯片進行實測,使用VCS仿真工具,并利用VERA語言和Verification IP進行驗證。仿真結(jié)果如圖4、圖5所示。

 

 


    圖4是波特率自動檢測的仿真波形。002號波形是未知波特率的接收端波特率產(chǎn)生器的分頻值,在未知的情況下為0;005號波形是發(fā)送端波特率產(chǎn)生器的分頻值,為567H。從002號波形的變化可以看到,發(fā)送端發(fā)送檢測字41H,接收端在接收完一個檢測字41H后,可計算出波特率分頻值為567H。001號波形是接收端的接收移位寄存器,將串行數(shù)據(jù)轉(zhuǎn)化為并行數(shù)據(jù),接收完成后得到41H,也證明了數(shù)據(jù)的正確傳輸。這種波特率檢測的方法迅速準確,一般情況下發(fā)一次檢測字就能檢測出發(fā)送端的波特率。
    圖5是數(shù)據(jù)紅外傳輸?shù)姆抡娌ㄐ巍>幋a模塊將待發(fā)送的001號波形編碼成符合紅外協(xié)議的002號波形發(fā)送出去,接收端接收到005號波形要經(jīng)過譯碼模塊譯碼成006號波形輸出給接收器。由圖中可以看到,發(fā)送寄存器發(fā)送了3個值2cH、78H、65H,在經(jīng)過編碼、譯碼模塊后,接收器能夠接收到正確的值。008號波形中高電平脈沖表示一個數(shù)據(jù)接收成功;007號波形接收移位寄存器中的數(shù)據(jù)正是發(fā)送端發(fā)送的3個值,證明數(shù)據(jù)能夠正確傳輸。本設計支持協(xié)議中5 bit、6 bit、7 bit、8 bit數(shù)據(jù)的傳輸,圖5中采用的是6 bit數(shù)據(jù)位。
3.2 綜合結(jié)果
    UART接口包括UART接口模塊(接收和發(fā)送模塊)、兩個FIFO模塊(深度為32、寬度為8)、UART波特率產(chǎn)生模塊和UART控制模塊,在0.18 μm CMOS的工藝下用Synopsys的Design Compiler對模塊進行綜合,將UART接口的輸入時鐘PCLK設置為100 MHz,模塊總面積為19 620.7 μm2,約合1962邏輯門、7 848個晶體管。
    本文提出了一個功能全面的UART IP核的設計,并采用Verilog HDL語言實現(xiàn)[6]。在與PC機的長時間串口通信實驗中能夠正確進行傳輸,在不同的波特率設置下都能正確工作。同時,用示波器觀測傳輸波形可知,波特率誤差小于1%。設計完成后,在VERA平臺上進行了仿真驗證,最后下載到FPGA平臺上實現(xiàn),與PC的串口相連,采用串口大師軟件進行實測,其在全雙工模式下也能正常工作,實測的結(jié)果顯示其性能和功能都能滿足要求。
參考文獻
[1] Samsung.S3C2410A:user manual revision 1.0[Z].2004.
[2] 趙海登,劉曉文,胡景軍,等.基于FPGA的UART IP核的設計實現(xiàn)[J].通信技術,2009,5(42):177-178.
[3] 張松,董玲,于宗光,等.一種適合于SoC集成的UART核的設計實現(xiàn)[J].微電子學與計算機,2005,22(9):12.
[4] Wang Yongcheng,Song Kefei.A new approach to relize UART[C].International Conference on Electronic & Mechanical Engineering and Information Technology,2011:2751.
[5] 周殿鳳,周素成,王俊華.基于FPGA的任意輸注分頻器的設計[J].信息化研究,2010,36(2):59-60.
[6] 王金明.數(shù)字系統(tǒng)設計與Verilog HDL第二版[M].北京:電子工業(yè)出版社,2005.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品99久久久久久www| 亚洲欧美日韩一区二区在线| 国产精品国产精品| 欧美成人有码| 免费久久99精品国产自在现线| 久久成人精品视频| 欧美一区二区精品| 午夜欧美大片免费观看| 亚洲一区二区三区精品视频| 9i看片成人免费高清| 99国产欧美久久久精品| 99精品国产在热久久下载| 亚洲日本激情| 99re6热在线精品视频播放速度| 亚洲国产成人tv| 亚洲成在线观看| 久久精品日产第一区二区| 欧美一级电影久久| 欧美一区二区三区免费视| 欧美在线三级| 久久精品国产成人| 久久精品一区二区三区四区| 久久精品人人做人人爽| 亚洲国产成人精品久久| 久久精品亚洲一区二区| 亚洲高清色综合| 91久久综合亚洲鲁鲁五月天| 亚洲精品网站在线播放gif| 亚洲美女免费精品视频在线观看| 一本久久a久久免费精品不卡| 亚洲免费观看视频| 一区二区精品在线观看| 亚洲一区在线视频| 欧美在线影院| 卡一卡二国产精品| 欧美大香线蕉线伊人久久国产精品| 欧美成人午夜影院| 欧美日韩国产小视频| 国产精品国产| 韩国一区二区三区美女美女秀| 黄色av日韩| 亚洲精品日韩在线| 亚洲一区二区三区精品动漫| 校园激情久久| 亚洲精品五月天| 亚洲午夜电影| 久久精品国产精品亚洲| 美女精品一区| 欧美视频一区二区在线观看| 国产精品一区二区三区免费观看| 国内精品久久久| 亚洲欧洲免费视频| 亚洲图中文字幕| 久久国产日韩| 99一区二区| 欧美一区二视频在线免费观看| 久久资源av| 欧美三级特黄| 国产亚洲午夜| 亚洲精品色图| 欧美一区二区三区另类| 日韩视频中文字幕| 午夜精品99久久免费| 久久免费视频在线观看| 欧美三日本三级少妇三2023| 国产日韩视频| 亚洲青涩在线| 午夜精品在线观看| 亚洲免费观看高清完整版在线观看熊| 亚洲欧美精品| 欧美a一区二区| 国产精品一区二区视频| 亚洲激情在线观看视频免费| 亚洲欧美国产精品专区久久| 日韩午夜在线| 久久国产手机看片| 欧美日韩中文字幕在线| 狠狠色丁香久久综合频道| 在线视频中文亚洲| 亚洲精品乱码久久久久久蜜桃麻豆 | 在线电影国产精品| 在线性视频日韩欧美| 最新国产精品拍自在线播放| 午夜精品福利电影| 欧美女主播在线| 国产主播一区二区三区四区| 一区二区三区|亚洲午夜| 久久精品道一区二区三区| 性欧美暴力猛交69hd| 欧美欧美全黄| 在线欧美日韩| 久久av在线| 亚洲欧美日韩久久精品 | 精品99一区二区三区| 亚洲免费影院| 亚洲视频高清| 欧美日韩1区| 136国产福利精品导航网址| 欧美一级欧美一级在线播放| 亚洲欧美日韩精品久久| 欧美日韩一区在线播放| 亚洲黄色成人| 亚洲欧洲美洲综合色网| 久久在线精品| 国产一区二区精品久久| 亚洲欧美日韩国产另类专区| 亚洲综合精品四区| 欧美体内she精视频在线观看| 最新国产乱人伦偷精品免费网站| 亚洲国产乱码最新视频| 久久一区二区三区国产精品| 国产日韩欧美在线播放| 亚洲欧美在线一区| 久久av一区二区三区亚洲| 国产精品亚洲欧美| 亚洲尤物在线| 先锋资源久久| 国产精品一区在线观看你懂的| 亚洲资源在线观看| 欧美一级大片在线观看| 国产精品实拍| 夜夜狂射影院欧美极品| 亚洲视频 欧洲视频| 欧美视频在线不卡| 亚洲一级二级在线| 欧美在线视频一区二区| 国产婷婷色一区二区三区| 午夜一区在线| 久久亚洲不卡| 亚洲风情亚aⅴ在线发布| 亚洲精品久久久久| 欧美激情亚洲视频| 日韩视频免费| 亚洲在线一区| 国产午夜精品全部视频播放| 久久精品成人| 欧美福利影院| 一区二区不卡在线视频 午夜欧美不卡在 | 久久高清一区| 狠狠综合久久av一区二区老牛| 亚洲黄色一区二区三区| 欧美金8天国| 亚洲视频一区二区| 久久精品国产免费观看| 在线观看91精品国产入口| 日韩一级成人av| 国产精品白丝av嫩草影院 | 久久午夜精品| 最新高清无码专区| 亚洲欧美国产毛片在线| 国产日本欧洲亚洲| 亚洲国产福利在线| 欧美精品在线视频观看| 亚洲视频自拍偷拍| 久久久久久**毛片大全| 亚洲国产精品成人| 亚洲性夜色噜噜噜7777| 国产伪娘ts一区| 亚洲人午夜精品免费| 欧美视频精品在线| 羞羞答答国产精品www一本| 欧美成人亚洲| 亚洲香蕉视频| 美女精品在线| 一本在线高清不卡dvd| 久久精品中文字幕一区| 91久久精品久久国产性色也91| 亚洲欧美电影院| 影音先锋久久精品| 亚洲伊人网站| 亚洲视频axxx| 国产精品www色诱视频| 欧美一区二区三区日韩| 欧美高清视频| 亚洲欧美在线看| 欧美精品乱码久久久久久按摩| 亚洲性感美女99在线| 免费不卡在线视频| 中文网丁香综合网| 鲁鲁狠狠狠7777一区二区| 在线视频你懂得一区二区三区| 久久久亚洲欧洲日产国码αv| 亚洲乱码国产乱码精品精可以看| 欧美在线视频日韩| 亚洲精品乱码久久久久久黑人| 欧美在线视频全部完| 日韩天天综合| 六十路精品视频| 亚洲影院免费| 欧美日韩综合在线| 亚洲国产一成人久久精品| 国产精品麻豆成人av电影艾秋| 亚洲日本电影在线| 国产亚洲成人一区| 亚洲淫性视频| 亚洲美女毛片| 欧美va亚洲va香蕉在线| 久久成人18免费网站| 国产精品sm| 99精品国产在热久久婷婷|