基于FPGA的UART控制器的實(shí)現(xiàn)_圖文_第1頁(yè)
基于FPGA的UART控制器的實(shí)現(xiàn)_圖文_第2頁(yè)
基于FPGA的UART控制器的實(shí)現(xiàn)_圖文_第3頁(yè)
基于FPGA的UART控制器的實(shí)現(xiàn)_圖文_第4頁(yè)
基于FPGA的UART控制器的實(shí)現(xiàn)_圖文_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第31卷第7期 2011年3月紹 興 文 理 學(xué) 院 學(xué) 報(bào) J OURNAL OF S HAOX I NG UN I VER SI TY V o. l 31N o . 7M ar . 2011基于FP GA 的UART 控制器的實(shí)現(xiàn)魏亞昉 李振華 盧雪萍(浙江郵電職業(yè)技術(shù)學(xué)院, 浙江 紹興312016摘 要:文章闡述了UART 的基本原理, 提出一種采用可編程器EP2C5T 144實(shí)現(xiàn)UART 收發(fā)器的方法, 設(shè)計(jì)的各模塊均采用VHDL 語(yǔ)言, 并用M ode l s i m 對(duì)各個(gè)模塊進(jìn)行了仿真, 下載到FPGA 上, 實(shí)現(xiàn)與計(jì)算機(jī)進(jìn)行通信, 測(cè)試運(yùn)行穩(wěn)定、可靠. 關(guān)鍵詞:UART; FP

2、GA; VHDL; 有限狀態(tài)機(jī) 1中圖分類號(hào):TP334; TN 911 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1008-293X (2011 07-0066-050 前言通用異步收發(fā)器(UART, Universa lA synchr onousRece i v er Trans m itter 是一種應(yīng)用廣泛的短距離串行傳輸接口, 具有傳輸線少、成本低、可靠性高等優(yōu)點(diǎn). 8250、8251等都是常見(jiàn)的UART 接口芯片, 但專用芯片一般引腳較多, 內(nèi)含許多輔助模塊和一些輔助功能, 在實(shí)際使用時(shí)往往用不到這些功能, 基本的UART 通信只需要接收和發(fā)送兩條信號(hào)線, 接收與發(fā)送是全雙工形式, 因此若采用U

3、ART 專用芯片, 將會(huì)使電路變得復(fù)雜, PCB 面積增大, 從而導(dǎo)致成本增加, 系統(tǒng)的穩(wěn)定性和可靠性降低. 由于FPGA 的功能日益強(qiáng)大, 開(kāi)發(fā)周期短、可重復(fù)編程等優(yōu)點(diǎn)也越來(lái)越明顯, 可以在FPGA 芯片上集成UART 功能模塊, 從而簡(jiǎn)化電路, 縮小PCB 面積, 提高系統(tǒng)可靠性. 此外, 基于FPGA 的設(shè)計(jì)具有很高的靈活性, 可以方便地進(jìn)行升級(jí)和移植.1 UART 控制器的FPGA 實(shí)現(xiàn)異步收發(fā)器的頂層模塊由波特率發(fā)生器、UART 接收器和UART 發(fā)送器構(gòu)成. UART 發(fā)送器的用途是將準(zhǔn)備輸出的并行數(shù)據(jù)按照基本UART 幀格式轉(zhuǎn)為T(mén)XD 信號(hào)串行輸出; UART 接收器接收RXD

4、串行信號(hào), 并將其轉(zhuǎn)化為并行數(shù)據(jù), 但串并轉(zhuǎn)換的時(shí)鐘同發(fā)送器一樣處理, 收發(fā)設(shè)備間的時(shí)鐘是會(huì)累計(jì)的, 會(huì)導(dǎo)致接收數(shù)據(jù)不正確, 波特率發(fā)生器就是專門(mén)產(chǎn)生一個(gè)遠(yuǎn)遠(yuǎn)高于波特率的本地時(shí)鐘信號(hào)對(duì)輸入RXD 不斷采樣, 以不斷地讓接收器與發(fā)送器保持同步. 2本設(shè)計(jì)主要分為波特率發(fā)生器模塊、發(fā)送模塊和接收模塊, 采用的芯片為康欣公司的KX _7C5系列芯片, 其具體型號(hào)為EP2C5T144, 具備4608個(gè)邏輯宏單元、兩個(gè)鎖相環(huán), 約20萬(wàn)門(mén)、約12萬(wàn)RAM bi. t 具體實(shí)現(xiàn)方法如下:1. 1 波特率控制器波特率控制可有多種方法實(shí)現(xiàn), 常用計(jì)數(shù)器分頻, 或利用片內(nèi)鎖相環(huán)控制, 分頻較為簡(jiǎn)單, 但對(duì)輸入頻

5、率有要求, 分頻后的頻率必須在該波特率下頻率偏差允許范圍內(nèi), 設(shè)定較好的輸入頻率值, 可解決此問(wèn)題, 這樣可較少消耗片內(nèi)資源, 鎖相環(huán)技術(shù)雖然對(duì)輸入頻率沒(méi)有過(guò)高要求, 但定制內(nèi)部鎖相環(huán), 必然耗費(fèi)較多的片內(nèi)資源, 本設(shè)計(jì)出于對(duì)片內(nèi)資源的考慮, 采用了分頻方法實(shí)現(xiàn)波特率控制器. 波特率發(fā)生器實(shí)際是一個(gè)頻率變換器. 可以根據(jù)給定的系統(tǒng)時(shí)鐘和要求的波特率, 通過(guò)內(nèi)部的分頻或倍頻, 最終得到適宜雙方通信的一個(gè)時(shí)鐘頻率. 發(fā)送器和接收器以該頻率為基準(zhǔn), 進(jìn)行發(fā)送和采樣接收.1. 2 接收器由于串行數(shù)據(jù)幀和接收時(shí)鐘是異步的, 由邏輯1轉(zhuǎn)為邏輯0可以被視為一個(gè)數(shù)據(jù)幀的起始位. 然而為*收稿日期:2010-1

6、1-26, 女, , , .第7期 魏亞昉 李振華 盧雪萍:基于FPGA 的UART 控制器的實(shí)現(xiàn) 67 了避免毛刺影響, 能夠得到正確的起始為信號(hào), 必須要求接收到的起始位在波特率采樣過(guò)程中至少有一半是屬于邏輯0才可以認(rèn)定接收到的是起始位. 由于內(nèi)部采樣時(shí)鐘是發(fā)送和接收時(shí)鐘頻率的16倍, 所以起始位至少有8個(gè)連續(xù)采樣時(shí)鐘周期的邏輯0被收到, 才認(rèn)為起始位接收到, 接著數(shù)據(jù)位和奇偶校驗(yàn)位將每隔16個(gè)采樣時(shí)鐘周期被采樣一次(即每一個(gè)波特率時(shí)鐘采樣一次. 如果起始位的確是16個(gè)采樣時(shí)鐘周期, 那么接下來(lái)數(shù)據(jù)在每位中點(diǎn)處被采樣, 采得的數(shù)據(jù)進(jìn)行移位寄存, 當(dāng)一幀接收完, 把移位接收寄存器中的內(nèi)容放入

7、接收緩沖寄存器, 同時(shí)產(chǎn)生接收完一幀的標(biāo)志信號(hào).基于UART 的實(shí)現(xiàn)原理和通信協(xié)議, 本設(shè)計(jì)采用圖1的狀態(tài)機(jī)完成此模塊 .接收器共設(shè)有5個(gè)工作狀態(tài):R START (等待起始位 、R CENTER (求中點(diǎn) 、R WA I T (等待采樣 、R SAMPLE (采樣 、R STOP(停止位接收.(1 R START 狀態(tài):當(dāng)UART 接收器復(fù)位后, 接收狀態(tài)機(jī)將處于這一個(gè)狀態(tài). 在此狀態(tài), 狀態(tài)機(jī)一直在等待RXD 的電平跳轉(zhuǎn), 從邏輯1變?yōu)檫壿?, 即起始位, 這意味著新的一幀UART 數(shù)據(jù)幀的開(kāi)始, 一旦起始位被確定, 狀態(tài)機(jī)將被轉(zhuǎn)入R CENTER 狀態(tài).(2 R CE NTER 狀態(tài):在

8、本狀態(tài), 判定起始位是否真實(shí), 通過(guò)對(duì)采樣時(shí)鐘的個(gè)數(shù)進(jìn)行計(jì)數(shù)(RCNT16為采樣時(shí)鐘個(gè)數(shù)計(jì)數(shù)器, 可以認(rèn)為保持邏輯0超過(guò)1/2個(gè)位時(shí)間的信號(hào)一定是起始位.(3 R WA I T 狀態(tài):當(dāng)狀態(tài)機(jī)處于這一狀態(tài), 等待計(jì)滿15個(gè)采樣時(shí)鐘周期, 在第16個(gè)采樣時(shí)鐘周期是進(jìn)入R SAM PLE 狀態(tài)進(jìn)行數(shù)據(jù)位的采樣檢測(cè), 同時(shí)也判斷是否采集的數(shù)據(jù)位長(zhǎng)度已達(dá)到數(shù)據(jù)幀的長(zhǎng)度(FRAM ELE N , 如果到來(lái), 就說(shuō)明停止位來(lái)臨了.(4 R位的到來(lái).(5 R STOP 狀態(tài):無(wú)論停止位是1還是1. 5位, 或是2位, 狀態(tài)機(jī)在R STOP 不具體檢測(cè)RXD, 只是輸出幀接收完畢信號(hào)(RECDONE<=

9、 1 , 停止位后狀態(tài)機(jī)轉(zhuǎn)回到R START 狀態(tài), 等待下一個(gè)幀的起始位.1. 3 發(fā)送器發(fā)送器在收到發(fā)送命令后, 先發(fā)送一個(gè)寬度為16個(gè)采樣周期的起始位, 并且將發(fā)送緩沖區(qū)數(shù)據(jù)放入發(fā)送移位寄存器, 然后每隔16個(gè)采樣周期移位寄存器移位輸出1個(gè)數(shù)據(jù), 當(dāng)數(shù)據(jù)發(fā)送完, 根據(jù)需要選擇發(fā)送停止位的長(zhǎng)度(常用長(zhǎng)度有0、1、2, 停止位的寬度同樣是16個(gè)采樣. 發(fā)送器只要每隔16個(gè)波特率周期輸出1個(gè)數(shù)據(jù)即可, 次序遵循1位起始位, 8位數(shù)據(jù)位和1位停止位. 在本設(shè)計(jì)中沒(méi)有校驗(yàn)位. 該模塊也用狀態(tài)機(jī)實(shí)現(xiàn), 狀態(tài)圖如圖2 :SAM PLE 狀態(tài):即數(shù)據(jù)位采樣檢測(cè), 完成后無(wú)條件狀態(tài)機(jī)轉(zhuǎn)入R WA I T

10、狀態(tài), 等待下次數(shù)據(jù)紹興文理學(xué)院學(xué)報(bào)(自然科學(xué) 第31卷68發(fā)送器也設(shè)以下5個(gè)工作狀態(tài):XSH I FT(移位 、X STOP(停止.(1 X I DLE (空閑 、X START (起始位 、X WA I T (移位等待 、X I DLE 狀態(tài):當(dāng)UART 被復(fù)位信號(hào)RESETL 復(fù)位后, 狀態(tài)機(jī)將立刻進(jìn)入這一狀態(tài). 在這個(gè)狀態(tài)START, 準(zhǔn)備下, UART 的發(fā)送器一直在等待一個(gè)數(shù)據(jù)幀發(fā)送命令, 當(dāng)數(shù)據(jù)幀發(fā)送命令到來(lái), 狀態(tài)轉(zhuǎn)入X 發(fā)送起始位.(2 X 位. 緊接著狀態(tài)機(jī)轉(zhuǎn)入X WA I T 狀態(tài). START 狀態(tài):在這個(gè)狀態(tài)下, UART 的發(fā)送器一個(gè)位時(shí)間寬度的邏輯0信號(hào)至TXD,

11、 即起始(3 X WA I T 狀態(tài):同UART 接收狀態(tài)機(jī)中的R WA I T 狀態(tài)類似.(4 X SH I FT 狀態(tài):當(dāng)狀態(tài)機(jī)處于這一狀態(tài)時(shí), 實(shí)現(xiàn)待發(fā)數(shù)據(jù)的并串轉(zhuǎn)換. 轉(zhuǎn)換完成立即回到X WA I T 狀態(tài).(5 X STOP :停止位發(fā)送狀態(tài), 當(dāng)數(shù)據(jù)幀發(fā)送完畢, 狀態(tài)機(jī)轉(zhuǎn)入該狀態(tài), 并發(fā)送16個(gè)采樣時(shí)鐘周期的I DLE 狀態(tài), 并等待另一個(gè)數(shù)據(jù)幀的發(fā)送命令. 邏輯1信號(hào), 即1位停止位. 狀態(tài)機(jī)送完停止位后回到X2 仿真測(cè)試2. 1 Test b ench通常是這樣的代碼:它對(duì)輸入產(chǎn)生預(yù)定的激勵(lì), 然后有選擇地觀察響應(yīng), 并檢查該響應(yīng)是否為我們所期望. 功能驗(yàn)證的核心不僅是這個(gè)平臺(tái)

12、, 更在于對(duì)被測(cè)對(duì)象施加了什么樣的激勵(lì)以及在此激勵(lì)下被測(cè)對(duì)象的輸出是什么. Testbench 與被測(cè)對(duì)象的關(guān)系如圖3 :2. 1. 1 為何要寫(xiě)T est b ench(1 畫(huà)波形圖只能提供極低的功能覆蓋率.(2 畫(huà)波形圖無(wú)法實(shí)現(xiàn)驗(yàn)證自動(dòng)化.(3 畫(huà)波形圖難以定位錯(cuò)誤.(4 畫(huà)波形圖的可重用性和平臺(tái)移植性極差.(5 通過(guò)畫(huà)波形圖的驗(yàn)證速度極慢(特別是基于數(shù)據(jù)幀長(zhǎng)度大的通信類設(shè)計(jì), 畫(huà)波形幾乎是不可能的.2. 1. 2 Testbench 的結(jié)構(gòu)一個(gè)好的Testbench 結(jié)構(gòu)應(yīng)該包含兩點(diǎn)要求:層次清晰和具備較好的重用性. 這兩點(diǎn)要求之間也有很重要聯(lián)系:只有層次清晰的Testbench 才是可

13、重用的, 重用性也將使Testbench 層次更加清晰 .第7期 魏亞昉 李振華 盧雪萍:基于FPGA 的UART 控制器的實(shí)現(xiàn) 69圖4是一個(gè)不可重用的Testbench 結(jié)構(gòu), 它將所有的處理放在一個(gè)模塊中, 當(dāng)進(jìn)行新的設(shè)計(jì)時(shí)必然不可重用.圖5是一個(gè)可重用的Testbench 結(jié)構(gòu), 它將不同處理放在不同的模塊, 然后再層次化封裝, 當(dāng)下一次進(jìn)行類似的設(shè)計(jì)時(shí), 必然有一部分模塊是可以直接調(diào)用, 或者只需修改相應(yīng)參數(shù).2. 1. 3 本設(shè)計(jì)的T est b ench 結(jié)構(gòu)本設(shè)計(jì)采用上述可重用的T estbench 結(jié)構(gòu)進(jìn)行了Test b ench 的設(shè)計(jì), 其中Testcase 中主要進(jìn)行了

14、自發(fā)自收的測(cè)試, 定義了如下的測(cè)試序列, 發(fā)送數(shù)據(jù)FF-00-A5.2. 2 模塊仿真測(cè)試2. 2. 1 波特率控制模塊波特率模塊主要是一個(gè)計(jì)數(shù)分頻器, 輸入為高速時(shí)鐘和波特率因子(即分頻系數(shù), 即可實(shí)現(xiàn)任意整數(shù)分頻, 圖6是分頻系數(shù)為3時(shí)的波形仿真圖 .2. 2. 2 發(fā)送器模塊和接收模塊由于可使用自發(fā)自收進(jìn)行測(cè)試, 所以發(fā)送和接收模塊的測(cè)試可以同時(shí)進(jìn)行, 設(shè)計(jì)中的測(cè)試數(shù)據(jù)為A5循環(huán)發(fā)送. 圖7是測(cè)試數(shù)據(jù)的仿真波形圖 .分析上圖得出結(jié)論:標(biāo)尺黃線開(kāi)始, RXD 開(kāi)始重新接收一幀數(shù)據(jù), 同時(shí)通過(guò)TXD 把tbuf 中的數(shù)據(jù)由低位到高位移位發(fā)送. state 為各過(guò)程的狀態(tài)標(biāo)志, 發(fā)送接收狀態(tài)顯

15、示都為011. t b itcnt 和r b itcnt 分別是發(fā)送數(shù)據(jù)和接收數(shù)據(jù)計(jì)數(shù)位, 且發(fā)送跟接收數(shù)據(jù)都準(zhǔn)確無(wú)誤.2. 3 和PC 機(jī)通訊的測(cè)試仿真驗(yàn)證功能之后, 將綜合后的電路寫(xiě)入FPGA 芯片中, 通過(guò)一片RS232轉(zhuǎn)接與PC 機(jī)進(jìn)行串行通信, 上位機(jī)使用的是串口調(diào)試助手軟件, 下位機(jī)的結(jié)果采用LED 顯示. 設(shè)置好波特率9600后, PC 機(jī)發(fā)送的數(shù)據(jù)可下位機(jī)接收, 并由LED 顯示(字符串除外, 并可以通過(guò)轉(zhuǎn)發(fā)回PC 機(jī)在串口小助手上顯示, 所測(cè)數(shù)據(jù)正確無(wú)誤.紹興文理學(xué)院學(xué)報(bào)(自然科學(xué) 第31卷703 結(jié)束語(yǔ)本文完成了UART 控制器的設(shè)計(jì), 實(shí)現(xiàn)了異步串行通訊的基本功能, 并通

16、過(guò)簡(jiǎn)單的串口通訊進(jìn)行了功能調(diào)試. 實(shí)際運(yùn)用中可根據(jù)外設(shè)和處理器的不同需求, 在其基本功能基礎(chǔ)上進(jìn)行波特率調(diào)整、不同幀格式的設(shè)置等升級(jí)改進(jìn), 運(yùn)用于不同的數(shù)字系統(tǒng).參考文獻(xiàn):1 潘松, 黃繼業(yè). EDA 技術(shù)與VHDL M . 北京:清華大學(xué)出版社, 2005:201-225.2 劉樂(lè)善. 微型計(jì)算機(jī)接口技術(shù)及應(yīng)用 M . 武漢:華中科技大學(xué)出版社, 2008:207-215.Desi gn and Realization of the UART Based on FPGAW e iY afang L i Zhenhua Lu X uepi ng(Zhejiang V ocational&

17、;Technical College o f Post and Teleco mm un icati o ns , Shaox i n g , Zhe ji a ng , 312016 Abst ract :This paper presents the basic theory o fUART, and puts for w ar d a UART transceiver i m ple m entati o n m ethod based on progra mm able logic dev ices EP2C5T114. E ach m odu l e is desi g ned by VH DL , si m ulated t h rough M ode lsi

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論