《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于導航基帶芯片的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亚洲国产精品_日韩亚洲一区二区
国产精品毛片一区二区三区 | 久久精品国产一区二区电影 | 亚洲欧洲精品一区| 国精品一区二区三区| 国产欧美日韩综合一区在线观看| 欧美日韩中文字幕综合视频| 欧美精品一区二区久久婷婷| 欧美国产一区在线| 欧美暴力喷水在线| 欧美大片在线看| 欧美777四色影视在线| 噜噜噜久久亚洲精品国产品小说| 久久免费国产精品| 久久午夜精品一区二区| 久久午夜精品| 久久影视精品| 麻豆91精品| 欧美成人a视频| 欧美久色视频| 欧美日韩理论| 国产精品海角社区在线观看| 国产精品久久久久9999吃药| 国产精品乱人伦中文| 国产精品尤物| 国产一区二区你懂的| 韩国福利一区| 亚洲第一中文字幕| 亚洲精品永久免费精品| 一区二区三区产品免费精品久久75 | 在线观看精品| 亚洲乱码精品一二三四区日韩在线 | 久久久久久久999| 久久久一区二区三区| 嫩草影视亚洲| 欧美区高清在线| 国产精品国产三级国产aⅴ9色| 国产精品手机视频| 国产一区美女| 亚洲精品国产精品久久清纯直播 | 亚洲欧美三级在线| 亚洲第一区在线观看| 亚洲精品日本| 亚洲专区一区| 久久久久久久91| 欧美精品久久一区| 国产精品看片资源| 狠狠色狠色综合曰曰| 亚洲精品偷拍| 性欧美暴力猛交另类hd| 亚洲欧洲日本在线| 亚洲与欧洲av电影| 久久综合久久久久88| 欧美三级视频| 国产亚洲日本欧美韩国| 亚洲欧洲精品一区二区三区 | 欧美在线国产精品| 欧美α欧美αv大片| 国产精品国产成人国产三级| 黄色精品网站| 在线亚洲激情| 亚洲欧洲精品成人久久奇米网| 亚洲在线黄色| 猛干欧美女孩| 国产精品国产福利国产秒拍 | 午夜精品影院在线观看| 亚洲精品综合在线| 欧美一区二区三区在线| 欧美黄网免费在线观看| 国产精品天天摸av网| 亚洲国产日韩在线一区模特| 亚洲欧美国产毛片在线| 亚洲三级免费电影| 久久国产婷婷国产香蕉| 欧美日韩国产免费观看| 国产一区二区三区网站| 99国产精品久久久久久久| 亚洲电影免费观看高清| 欧美亚洲在线视频| 欧美日韩精品在线播放| 揄拍成人国产精品视频| 亚洲专区国产精品| 一区二区三区国产在线| 久久综合色8888| 国产精品入口福利| 日韩视频在线观看一区二区| 久久激情五月激情| 午夜精品久久久久久久99黑人| 欧美激情一区二区三区全黄| 国产一区二区三区在线观看视频| 99国产成+人+综合+亚洲欧美| 亚洲国产欧美久久| 久久久精品国产一区二区三区| 欧美丝袜一区二区三区| 亚洲激情在线| 亚洲国产专区| 久久精品人人做人人综合| 国产精品美女在线| 亚洲五月婷婷| 亚洲一区二区三区精品在线| 欧美日韩国产91| 亚洲激情网站| 亚洲三级免费电影| 老司机亚洲精品| 国外成人免费视频| 午夜精品视频在线观看| 亚洲欧美日韩一区二区三区在线 | 一区二区三区黄色| 一本久久a久久免费精品不卡| 美女精品自拍一二三四| 狠狠干综合网| 久久精品免费看| 久久蜜臀精品av| 国一区二区在线观看| 午夜精品国产更新| 午夜免费日韩视频| 国产精品久久国产愉拍| av成人动漫| 一区二区三区国产| 欧美日韩免费在线视频| 日韩视频―中文字幕| 一区二区欧美在线观看| 欧美日韩精品一区二区| 日韩一级黄色片| 亚洲一区二区三区免费观看| 欧美日韩一区二区三| 99综合在线| 亚洲欧美一区二区三区极速播放| 国产精品h在线观看| 亚洲午夜精品17c| 性8sex亚洲区入口| 国产欧美日韩不卡| 欧美综合国产精品久久丁香| 久久久久久亚洲精品不卡4k岛国| 国内在线观看一区二区三区| 亚洲二区三区四区| 欧美大片免费看| 亚洲人线精品午夜| 亚洲性线免费观看视频成熟| 国产精品av免费在线观看| 亚洲淫性视频| 久久久免费av| 亚洲电影网站| 一级日韩一区在线观看| 欧美三级网址| 亚洲自拍都市欧美小说| 久久久久9999亚洲精品| 亚洲国产婷婷综合在线精品 | 一区二区激情| 欧美一区二区三区四区高清| 国产在线视频不卡二| 最近中文字幕日韩精品 | 激情久久一区| 亚洲卡通欧美制服中文| 欧美天天视频| 欧美一级视频| 欧美激情一二三区| 亚洲一品av免费观看| 久久人人97超碰国产公开结果| 亚洲国产成人av好男人在线观看| 中文日韩在线视频| 国产拍揄自揄精品视频麻豆| 久久精品国产一区二区三| 欧美精品日本| 亚洲欧美bt| 欧美激情女人20p| 亚洲专区国产精品| 欧美aⅴ一区二区三区视频| 99re热这里只有精品视频| 久久国产精彩视频| 91久久在线播放| 欧美一区二区在线| 91久久久久久国产精品| 校园激情久久| 亚洲黄色天堂| 欧美中文字幕不卡| 亚洲精品小视频在线观看| 欧美专区在线观看| 亚洲人成网站精品片在线观看| 午夜精品久久久久久久久久久久| 在线欧美视频| 午夜视频在线观看一区| 亚洲成人在线| 性色一区二区| 亚洲经典视频在线观看| 久久成人人人人精品欧| 亚洲理论电影网| 久热国产精品| 亚洲欧美精品| 欧美日韩国产精品成人| 亚洲第一页在线| 国产精品免费观看视频| 亚洲乱亚洲高清| 国产一级久久| 亚洲自拍另类| 亚洲欧洲精品一区二区三区不卡 | 国产精品美女久久久免费| 亚洲茄子视频| 国产亚洲永久域名| 亚洲女性裸体视频| 亚洲精品欧美精品|