• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      UART微控制器設(shè)計方法及其FPGA實現(xiàn)

      2016-07-04 06:40:24戚秀真
      電子科技 2016年6期

      楊 瀾,戚秀真

      (長安大學 信息工程學院,陜西 西安 710064)

      UART微控制器設(shè)計方法及其FPGA實現(xiàn)

      楊瀾,戚秀真

      (長安大學 信息工程學院,陜西 西安 710064)

      摘要為滿足FPGA與PC之間的通信需求,提出了一種FPGA的通用異步收發(fā)器設(shè)計實現(xiàn)方法。在Xilinx ISE 11開發(fā)平臺上采用Verilog HDL硬件描述語言及其自帶的IP CORE,實現(xiàn)了UART精確波特率時鐘模塊、UART發(fā)送模塊和UART接收模塊。并在ISE環(huán)境下進行綜合建模仿真,給出各模塊的仿真時序圖以及綜合生成的RTL圖。實驗通過Xilinx公司的XC2VP30 FPGA開發(fā)板對程序進行下載運行調(diào)試,與PC進行實時通信,結(jié)果表明,UART控制器工作穩(wěn)定可靠,較好地實現(xiàn)了數(shù)據(jù)串行通信,達到預期設(shè)計要求。

      關(guān)鍵詞UART;FPGA;Verilog HDL

      通用異步收發(fā)器 (Universal Asynchronous Receiver Transmitter,UART)是一種通用串行異步通信數(shù)據(jù)總線,由于其可靠性高、傳輸距離遠、相對成本較低等優(yōu)點被廣泛應(yīng)用,尤其是在嵌入式微處理器設(shè)計中,UART接口已成為不可缺少的一部分[1-3]。其工作原理是UART發(fā)送器將接收到的并行數(shù)據(jù)幀轉(zhuǎn)換成串行數(shù)據(jù)幀進行傳輸。如表1所示,串行數(shù)據(jù)幀包括1個低位1,7~8個數(shù)據(jù)位,1個可選的奇偶校驗位和1個或多個高位停止位[4-5]。UART接收器發(fā)現(xiàn)低位起始位后與發(fā)送器時鐘同步,然后接收整個串行數(shù)據(jù)幀,最后去掉低位起始位和高位停止位進行相應(yīng)的奇偶校驗生成并行數(shù)據(jù)幀[6]。目前,F(xiàn)PGA(Field Programmable Gate Array)芯片以其集成度、設(shè)計周期短、性價比高可滿足時序復雜的大規(guī)模設(shè)計等諸多優(yōu)點,被廣泛應(yīng)用于工程中[7-10]。由于大部分FPGA芯片內(nèi)部并沒有集成UART通信功能模塊,給FPGA與CPU或其他設(shè)備間的數(shù)據(jù)傳輸造成不便[11-12]。針對以上問題,并順應(yīng)硬件逐漸軟件化的發(fā)展趨勢,本文提出并設(shè)計實現(xiàn)了一種基于FPGA的UART驅(qū)動程序,不但可省去復雜的UART芯片接口,簡化電路,并可增加系統(tǒng)的可靠性和穩(wěn)定性。

      表1 UART幀格式

      1基于Verilog HDL的UART模塊化設(shè)計

      設(shè)計采用模塊化開發(fā)方式,根據(jù)UART的功能可劃分為3個模塊:精確波特率時鐘模塊、發(fā)送模塊和接收模塊。這3模塊統(tǒng)一由頂層原理圖文件驅(qū)動。UART異步傳輸方式?jīng)]有傳輸同步時鐘,因此為了保證數(shù)據(jù)傳輸質(zhì)量,UART采用16倍數(shù)據(jù)波特率的時鐘進行采樣。每個數(shù)據(jù)由16個時鐘采樣,取中間采樣值,以保證采樣不會滑碼或誤碼。系統(tǒng)時鐘為100 MHz,精確波特率時鐘模塊進行651分頻后,得到16倍的波特率(初始波特率為9 600)。發(fā)送模塊和接收模塊由精確波特率時鐘模塊提供的頻率進行數(shù)據(jù)幀的打包、解析。如需更改波特率,則PC需要與FPGA建立通信協(xié)議:選擇波特率如2 400、4 800、11 920、115 300時,PC同時向FPGA器件發(fā)送特殊字符(如,@#¥%&),同時FPGA在波特率為9 600的情況下進行接收,并根據(jù)字符更改分頻器的分頻數(shù),從而到達同時更改波特率和傳輸數(shù)據(jù)。

      1.1UART精確波特率時鐘模塊設(shè)計

      精確波特率時鐘模塊是為發(fā)送模塊和接收模塊提供采樣所需的頻率,并與PC同步波特率。假設(shè)UART初始波特率為115 200,則所需時鐘頻率為16×115 200=1 843 200。UART幀格式為:1位起始位、8位數(shù)據(jù)位、1位停止位、無校驗位。因此數(shù)據(jù)的最大傳輸速率為

      115 200/N=11 520 B·s-1

      (1)

      其中,N為數(shù)據(jù)位10 bit;分頻系數(shù)為100 000 000/(16×115 200)=54。程序中設(shè)置兩種計數(shù)器,以采樣時鐘頻率的上升沿,并當計數(shù)器到達53時信號翻轉(zhuǎn)。

      1.2UART發(fā)送模塊設(shè)計

      當發(fā)送模塊接收到發(fā)送命令后,會按照約定的通信速率與通信協(xié)議輸出幀數(shù)據(jù),即一個低電平的起始位,然后從低到高輸出8個數(shù)據(jù)位,可選的奇偶校驗位,高電平停止位。

      1.3UART接收模塊設(shè)計

      接收模塊負責將接收的數(shù)據(jù)進行解析,得到裸數(shù)據(jù)。即空閑狀態(tài)時線路處于高電位,當檢測數(shù)據(jù)傳輸線路的下降沿時說明線路有數(shù)據(jù)傳輸,按照約定的波特率從低到高位接收數(shù)據(jù)。最后接收并比較奇偶校驗位是否正確,若正確則通知后續(xù)設(shè)備準備接收數(shù)據(jù)或存入緩存。UART接收數(shù)據(jù)時序為:當檢測到數(shù)據(jù)的下降沿時,表明線路上有數(shù)據(jù)進行傳輸,此時計數(shù)器CNT開始計數(shù),當計數(shù)器為24=16+8時,采樣值為第0位數(shù)據(jù);當計數(shù)器的值為40時,采樣值為第1位數(shù)據(jù),依此類推進行后續(xù)6個數(shù)據(jù)的采樣。若需要進行奇偶校驗,則當計數(shù)器值為152時,采樣值即為奇偶位;當計數(shù)器值為168時,采樣值為“1”表示停止位,1幀數(shù)據(jù)接收完成。

      2基于PC的串口監(jiān)視軟件設(shè)計

      基于PC的串口監(jiān)視軟件采用MSComm控件設(shè)計,由程序主控模塊、串口通信模塊和接收顯示模塊組成,其流程如圖1所示。

      圖1 基于PC的串口監(jiān)視軟件程序流程圖

      串口初始化設(shè)置為波特率9 600,無奇偶校驗位,1位停止位。此時與PC波特率相同,進行實時通信。程序還添加了更改波特率功能,以便于高速或低速傳輸。上位機程序驗證實現(xiàn)“自發(fā)自收”,將PC機串口RXD和TXD相連接,程序接收框顯示發(fā)送的數(shù)據(jù)。

      3系統(tǒng)仿真驗證

      為實現(xiàn)所提出的硬件模塊設(shè)計,采用硬件描述語言Verilog HDL對各模塊功能進行描述,寫出RTL級代碼,在Xilinx 11.1開發(fā)環(huán)境下對所有代碼進行綜合,并在Modelsim下對每一個模塊單獨均進行了軟件仿真。仿真中各加入100 MHz的時鐘激勵,結(jié)果如圖2~圖4所示。圖2中,當計數(shù)器為53時進行信號翻轉(zhuǎn),達到設(shè)定波特率。圖3中,datacreat的輸出與dataout輸出相一致,表示發(fā)送模塊功能實現(xiàn)。圖4中,接收模塊的輸出端數(shù)據(jù)與數(shù)據(jù)生成模塊的數(shù)據(jù)相一致,表明接收模塊設(shè)計正確。

      圖3 發(fā)送端仿真原理圖

      圖4 接收端仿真原理圖

      圖2精確波特率時鐘模塊仿真結(jié)果

      如圖5所示,建立頂層文件原理圖,添加精確波特率模塊,數(shù)據(jù)生成模塊,發(fā)送模塊,接收模塊的symbol,借助ISE開發(fā)工具對工程進行設(shè)計綜合、設(shè)計實現(xiàn)、芯片配置、在線調(diào)試。根據(jù)PC的串口調(diào)試工具的設(shè)置,決定代碼是否需要奇偶校驗位,以及分頻系數(shù)。在IPACT軟件將測試信息隨設(shè)計文件下載于Virtex-II PRO XC2VP30開發(fā)板中用以捕獲目標芯片內(nèi)部系統(tǒng)信號節(jié)點處的信息或總線上的數(shù)據(jù)流,而又不影響原硬件系統(tǒng)的正常工作。測試信息通過器件的JTAG端口傳出,并送入計算機進行顯示和分析。如圖6所示,通過本文所提串口監(jiān)視軟件將數(shù)據(jù)從計算機送出,并利用FPGA器件中的UART模塊接收,并發(fā)送回PC顯示。經(jīng)多次測試,收發(fā)數(shù)據(jù)完全相同。結(jié)果表明,PC與FPGA可正常進行串口通信,并可更改波特率,數(shù)據(jù)傳輸正確。

      圖5 頂層文件原理圖

      圖6 更改波特率后進行串口通信

      4結(jié)束語

      本文提出并設(shè)計實現(xiàn)了PC與FPGA通信的UART微控制器驅(qū)動程序,同時開發(fā)了基于PC的上位機測試程序以論證該UART微控制器設(shè)計的正確性。基于FPGA的UART與傳統(tǒng)方法相比可簡化系統(tǒng)PCB電路,降低系統(tǒng)能耗,提高系統(tǒng)的可靠性和芯片的專用性。該UART模塊可作為完整的IP核移植進各種FPGA中,在實際應(yīng)用時可嵌入到其他系統(tǒng)中。

      參考文獻

      [1]胡立坤,王慶超.基于UART的可靠通信與性能分析[J].計算機工程,2006,32(10):15-17,21.

      [2]張松,董玲,于宗光,等.一種適合于SoC集成的UART核的設(shè)計實現(xiàn)[J].微電子學與計算機,2005, 22(9):10-13.

      [3]劉先博.基于FPGA與MCU的多串口通信接口設(shè)計與實現(xiàn)[D].南京:南京理工大學,2014.

      [4]楊晶.基于FPGA的UART接口協(xié)議轉(zhuǎn)換模塊設(shè)計[D].哈爾濱:哈爾濱工業(yè)大學,2014.

      [5]段素蓉,莊圣賢.一種內(nèi)置FIFO全雙工UART的設(shè)計與實現(xiàn)[J].通信技術(shù),2010,43(2):46-47.

      [6]何健標,王宏遠,林靜宜,等.基于最佳接收的UART的設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2006,32(8):55-58.

      [7]張興軍,丁彥飛,黃一元,等.基于FPGA的動態(tài)部分可重構(gòu)高性能計算實現(xiàn)[J].華中科技大學學報:自然科學版,2010,38(S1):82-86.

      [8]Kuon I,Rose J.Measuring the gap between FPGAs and ASICs[J].IEEE Transactions on Computer Aided Design of Integrated Circuits and Systems,2007,17(6):152-160.

      [9]楊海鋼,孫嘉斌,王慰. FPGA器件設(shè)計技術(shù)發(fā)展綜述[J].電子與信息學報,2010,32(3):714-727.

      [10]楊莉莉,郭亮.基于FPGA的磁懸浮微驅(qū)動器控制系統(tǒng)研究[J].機電工程,2015,32(11):1483-1488.

      [11]魏麗玲,朱平,石永亮.基于FPGA的圖像采集與存儲系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2015,41(11): 67-69.

      [12]宋宇飛,張俊杰,王凱,等.基于IP協(xié)議的FPGA萬兆可靠互聯(lián)通信設(shè)計與實現(xiàn)[J].上海大學學報:自然科學版,2015,21(5): 570-578.

      Design and Implementation of UART Controller Using FPGA

      YANG Lan,QI Xiuzhen

      (College of Information Engineering,Chang’an University,Xi’an 710064, China)

      AbstractIn order to realize the communication between FPGA and PC, we design and implement a UART controller based on the Field Programmable Gates Array (FPGA). In the Xilinx ISE 11 development platform, we use the Verilog HDL language and its own IP CORE to implement the receiving module, sending module and precise baud rate clock module. Finally we use XC2VP30 device to verify the function of the UART. The results show that the UART module is stable and reliable.

      KeywordsUART; FPGA; Verilog HDL

      收稿日期:2015-12-23

      基金項目:國家自然科學基金資助項目(51278058);中央高?;究蒲袠I(yè)務(wù)費專項基金資助項目(2013G5240009,310824151035)

      作者簡介:楊瀾(1985-),女,博士。研究方向:數(shù)字信號處理與多源信息融合技術(shù)。

      doi:10.16180/j.cnki.issn1007-7820.2016.06.021

      中圖分類號TN79;TP391

      文獻標識碼A

      文章編號1007-7820(2016)06-072-03

      宝坻区| 社会| 洛阳市| 辉县市| 巴彦淖尔市| 南充市| 呈贡县| 玛沁县| 阆中市| 麻栗坡县| 阿荣旗| 石台县| 泸溪县| 资源县| 遵义市| 杂多县| 咸丰县| 广饶县| 射阳县| 溧水县| 曲周县| 融水| 眉山市| 长治县| 萨嘎县| 衡阳县| 无为县| 军事| 海伦市| 千阳县| 舞钢市| 大石桥市| 渭源县| 泰宁县| 大厂| 罗江县| 龙游县| 威信县| 西城区| 郓城县| 和政县|