《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > FPGA實現UART和MCU一體化設計
FPGA實現UART和MCU一體化設計
現代電子技術
蘇 航,張 寧 蘭州大學
摘要: 在當今電子設計領域,尤其是電子核心器件和設計軟件落后的情況下,應用傳統的電子設計方法既浪費時間,且成本可能太高,甚至有時候性能也不能滿足要求,通過FPGA技術進行設計可以使性能得到大大改觀。本文就是利用FPGA技術實現的一個計算機外圍I/O設備和一個簡單的微控制器。隨著FPGA技術的進一步成熟和發展,它的性能和靈活性會更加出色,將來完全有可能將一臺計算機系統在其內部,并搭配外圍接口電路,而且性能會更加突出。隨著計算機技術應用的擴大,尤其是嵌入式計算機的廣泛使用,應用FPGA技術進行現代數字系統的設計,會使系統更加緊致,功能更加完善,功耗更加降低,性能更加穩定。因此,應用FPGA進行電子設計勢在必行。
Abstract:
Key words :

摘要:現代數字電子系統設計正在朝著新的方向發展,即利用FPGA" title="FPGA">FPGA技術進行系境設計。介紹了一種利用FPGA來實現通用串行異步收發器(UA-RT)和控制通信的MCU" title="MCU">MCU的數字系統,底層設計模塊采用VHDL硬件描述語言實現,并進行了仿真驗證。該設計方法和理念為以后的計算機系統" title="計算機系統">計算機系統以及其他的數字電子系統提供了一個新的思路,應用此技術可以使系統設計更加緊湊、可靠。
關鍵詞:計算機系統;FPGA;VHDL;UART" title="UART">UART;MCU;有限狀態機" title="有限狀態機">有限狀態機

    計算機技術和微電子技術的發展為現代電子設計提供了新的方法和途徑。傳統的電子設計采用功能獨立的分立元件進行功能組合從而實現特定的功能,計算機設計初期也一直采用這種模式。但是隨著近代電子技術的進步,尤其是FPGA(Field Programmable Gate Array)的出現,使得電子設計和計算機設計都發生了很大的變化,尤其是在數字電子系統的設計領域。利用現場可編程門陣列FPGA可以實現任何數字器件的功能,而且還可以大大縮短設計時間,減少PCB的面積,提高信號的傳輸質量,提高系統的可靠性,增加設計的靈活性和可維護性。本文采用FPGA技術實現一個MCU與串行通信外設進行簡易通信的平臺,一方面了解了計算機的一些控制原理和工作流程;另一方面可以了解利用FPGA進行電子設計的優越性。

1 FPGA與電子設計
    用FPGA進行計算機I/O通信設備的開發設計,實現了功能類似Intel 8250及8251,美國半導體公司的16550串行通信接口的功能,同時實現了帶有簡單類忙編指令的微控制單元MCU來控制與外圍I/O設備的通信。整個設計采用VHDL在Altera的QuartusⅡV6.0進行設計實現,并進行仿真驗證。
1.1 FPGA的原理及其開發平臺
    通常的FPGA由布線資源分隔的可編程邏輯單元構成陣列,又由司編程I/O單元圍繞陣列構成整個芯片,排成這列的邏輯單元由布線通道中可編程內連線連接來實現一定的邏輯功能,也就是說分段的互連線可以通過可編程開關以任意方式連接起來形成邏輯單元的信號線。一個FPGA主要由邏輯陣列塊(LAB)、I/O塊、RAM塊和可編程的行/列線等組成。
1.2 FPGA的開發軟件及設計流程
    FPGA的開發軟件一般由生產FPGA的廠商根據自己的產品特性提供專門的開發工具,目前主要流行的是Xilinx的ISE平臺和Altera的Quar-tus平臺。本文使用的是后者。使用該設計開發軟件能夠完成FPGA系統設計的流程基本包括了設計輸入(原理圖輸入或HDL語言描述輸入)、綜合、布線、下載等工作。本文所設計的電子系統設計輸入采用VHDL語言。
    選定了設計平臺后,只要考慮所要設計系統的功能,借助集成開發環境即可完成想要的設計。一般來說,利用FPGA進行電子設計的完整的設計流程分為電路的設計與輸入、功能仿真、綜合、綜合后仿真、實現、布局布線后仿真、配置下載與調試等步驟。由于FPGA的靈活性和設計的可重復性,可以保證在任何仿真或者驗證步驟出現問題時都能根據錯誤定位返回相應的步驟,以進行更改或者重新設計。這是傳統電子設計方法無法比擬的。

2 系統設計與實現
    本文所設計的系統實現了一個可簡易匯編指令的微控制器MCU和一個計算機組成中的外圍串行通信I/O設備。通過實現的一部分I/O輸入/輸出指令和條件跳轉指令可實現與外設的通信控制。系統功能模塊劃分如圖1所示。

1.JPG


2.1 串行通信外設的設計與實現
    在計算機系統組成中,串行通信占據重要地位,它的使用范圍包括計算機與外部設備之間,計算機與計算機之間、甚至在進行前期CPU設計時都會用到。傳統的設計方法是應用Intel公司的8250/8251或者美國半導體的16550等芯片,但因設計復雜,占用電路體積大,而且出現問題不容易跟蹤定位,所以本文采用FPGA實現。將串行通信的關鍵器件UART集成到FPGA內部,增加系統的可靠性,縮小PCB板體積,使得系統更加緊致,且能根據需要進行適當的設計、擴充和裁剪。實現的該I/O設備功能劃分如圖2所示。

2.JPG


2.1.1 UART模塊的設計與實現
    UART串行數據格式如圖3所示,串行數據包括5~8位數據(可更改設置)、1位起始位、1~2位停止位、1位校驗位。該模塊主要由發送模塊和接收模塊兩部分構成。在各自模塊中分別由接收緩沖器、接收控制電路、發送緩沖區、發送控制電路、數據總線緩沖器、讀寫控制電路組成,邏輯框圖如圖4所示。

3.JPG

    UART模塊的發送模塊和接收模塊公用復位信號、時鐘信號和并行數據線,并且有各自的輸入/輸出模塊和控制電路單元。
    (1)發送模塊的設計。發送模塊將從微控制器MCU送來的8位并行數據轉換成圖3所示的數據幀格式的串行數據發送出去。該模塊分為3種工作模式:空閑模式、載入數據模式、移位模式輸出模式。當并行的8位數據從微控制器MCU通過數據線寫入發送FIFO(在以下2.1.2節實現)中時,發送模塊自動將并行數據裝入鎖存器THR中,首先發送起始位0,然后根據LCR定義的數據格式將數據移位,并通過狀態機和節拍器實現完整的發送序列,并以相應的波特率從TX發送出去。發送模塊的狀態機FSM如圖5所示。
    (2)接收模塊的設計。接收模塊接收串行輸入的數據(見圖3),然后將其轉換為并行數據送給微控制器MCU。與發送模塊相同,也分為3種工作模式:空閑模式,檢測起始位模式、移位輸入模式。首先接收模塊在接收時鐘的控制下,不斷地在RX端口檢測輸入數據的起始位,當檢測到起始位后,接收模塊由空閑模式轉變為移位輸入模式。此時通過RX端口進來的串行數據可能存在著些許抖動,因此需要添加消抖電路進行處理。消抖處理一般有兩種辦法,一種是在前端添加非門的R8觸發器來完成,一種是類似軟件的方式控制采集輸入端的數據,并將前后采集的數據值進行比較,相同則保持,否則繼續采集比較,這里采用的是后者。當接收完數據,更新接收緩沖區狀態,以提供微控制器MCU查詢,方便讀取數據。接收模塊的狀態機FSME如圖6所示。

4.JPG


2.1.2 輸入/輸出緩沖區(FIFC))的設計與實現
    FIFO(First In First Out)是一種先進先出的緩沖區結構。主要在通信過程中解決通信兩端速度不匹配的問題。訪問FIFO僅需要讀/寫控制線,不需要地址線,因此采用FIFO實現的緩沖區接口簡單,讀寫方便。由于文中的微控制器MCU和I/O設備均在FPGA內部實現,因此采用同步FIFO實現,即寫端口和讀端口采用同一個時鐘進行控制操作。該系統分別實現了位寬為8位,深度為256 b的緩沖區來對MCU發送給外設的數據和從外設接收的數據進行緩沖處理。實現方法可以采用Altera公司FPGA內部的資源實現。對FIFO的讀/寫控制可根據緩沖區的使用狀態和MCU發送來的命令來實現。FIFO模塊的結構圖如圖7所示。

5.JPG


    讀信號和寫信號由微控制器MCU通過向I/O設備進行數據輸入和輸出操作產生。空標志和滿標志用于MCU探測緩沖區狀態,應用查詢方式對外設進行讀寫數據操作。對于發送緩沖區,當緩沖區處于滿狀態時表明已經沒有可用的存儲空間緩沖數據,此時不允許進行寫操作;對于接收緩沖區,當緩沖區處于空狀態時,表明沒有從設備收到任何的時間,此時不允許微控制器MCU從外設接收緩沖區讀取數據。
    通過QuartusⅡ產生的FIFO如圖8所示。

6.JPG


    圖8中,aclr是異步復位信號;clock是時鐘輸入;rdreq和wrreq分別是讀和寫信號線;data[7…O]是FIFO的并行數據輸入端;q[7…0]是FIFO的并行數據輸出端;empty和full分別為FIFO空滿標志的狀態線;usedw[7…O]為當前狀態下FIFO已經使用的存儲量,即FIFO中已經寫入并保存的數據量。
2.2 微控制器MCU的設計與實現
    在一個計算機系統中,中央處理器處于核心控制地位,它不僅是參與運算的核心器件,而且是控制外設的中樞。一般情況下,它實現了一定的功能指令集,用來由用戶自己編程控制外部設備動作或者進行一些算術邏輯運算。本文中所實硯的微控制器MCU主要以實現對外設的控制,實現了對外設端口的讀寫控制以及一些必要的程序控制指令。在一個微控制器的設計中,指令系統的設計尤其重要,它不僅關系到控制器的設計,也關系到軟件程序的設計方法。指令系統的設計分為指令集設計和指令動作設計兩部分,前者側重于控制器的總體功能;后者側重于指令的具體實現。進行指令設計時首先要進行指令分析,根據系統所要完成的功能,完成所需指令的功能設想,這是指令設計的基礎;然后分析指令該放在什么地方,微控制器如何取指令和對指令進行識別等操作;最后確定指令格式以及每個指令完成指定功能所需要的一系列基本動作過程。可以使用ALtera公司FPGA內部的ROM作為程序存儲器,詳細的實現過程參看參考文獻。通過此系統進行分析,設計實現如表1所示指令。每條指令功能的完成具有取指令、指令譯碼、執行指令階段。指令的分析譯碼執行由狀態機邏輯控制具體實現。

7.JPG



3 系統仿真驗證
    用硬件描述語言VHDL所實現的設計輸入,需要經過完整的編譯過程才可以進行仿真驗證,甚至下載配置。整個編譯過程包括4個階段:分析/綜合(Analysis&Synthesis)、適配(Filter)、裝配(Assembier)、時序分析(Timing Analyzer)。
    分析/綜合階段使用QuartusⅡ中Integrated綜合用VHDL實現的輸入文件,生成后續過程使用的EDIFice網表文件(.edf)。適配階段使用由上一階段建立的網表數據庫,將工程的邏輯和時序要求與器件的可用資源相匹配,這個過程會將每個邏輯功能分配給最佳的邏輯單元位置,并選定相應的互聯路徑和引腳分配,為以后的布線和時序分析做準備。裝配階段根據上一階段的資源匹配生成可供下載配置的功能文件。時序分析是對所有的邏輯進行分析,根據適配階段的資源匹配情況進行時序分析,驗證最佳情況(最快速率等級的最小延時)下的時序。在Quartus中可以通過選擇Start Complieation來運行所有的編譯器模塊,也可以通過選擇Start單獨運行各個模塊,還可以通過選擇omplierTool(Tools菜單),在Complier Tool窗口運行該模塊,以啟動編輯器模塊。在Complier Tool窗口中,可以打開該模塊的設置文件或報告文件,或打開其他相關的窗口。
    完成上述編譯階段以后,就要編程實現數據的發送和接收工作。在本例中,為了方便測試,在外設內部通過將發送線直接連接至接收線進行內部環路的自檢測試,外設緩沖區狀態采用輪詢方式工作。測試程序編寫如下:
    8.JPG
    上述簡單程序段所對應的微控制器碼加載在程序存儲器中,如圖9所示。

9.JPG


    建立仿真輸入文件,設置時鐘信號和發送總線數據即可。首先對串行通信設備進行仿真測試,測試輸入如圖10所示。串行通信設備的仿真結果如圖11所示。

10.JPG


    從仿真結果可以看出,串行通信設備已達到預定的功能要求。
    加入微控制器MCU作用后,使用圖8所對應的類匯編程序進行測試。在此例程中,只簡單發送了一個8位數據來說明問題,如圖12所示。
    系統仿真結果如圖13所示。

11.JPG


    可以看出程序的執行結果如預想一樣,最終在數據總線上顯示的是接收到并從接收緩沖區讀出的數據。說明加入MCU和FIFO緩沖區后系統環路測試功能正常,已達到設計要求。

4 結語
     在當今電子設計領域,尤其是電子核心器件和設計軟件落后的情況下,應用傳統的電子設計方法既浪費時間,且成本可能太高,甚至有時候性能也不能滿足要求,通過FPGA技術進行設計可以使性能得到大大改觀。本文就是利用FPGA技術實現的一個計算機外圍I/O設備和一個簡單的微控制器。隨著FPGA技術的進一步成熟和發展,它的性能和靈活性會更加出色,將來完全有可能將一臺計算機系統在其內部,并搭配外圍接口電路,而且性能會更加突出。隨著計算機技術應用的擴大,尤其是嵌入式計算機的廣泛使用,應用FPGA技術進行現代數字系統的設計,會使系統更加緊致,功能更加完善,功耗更加降低,性能更加穩定。因此,應用FPGA進行電子設計勢在必行。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美日韩另类字幕中文| 国产一区二区三区奇米久涩 | 亚洲欧洲在线一区| 狠狠色狠狠色综合日日小说 | 国产一级揄自揄精品视频| 国产精品国产三级国产专区53| 欧美国产在线视频| 欧美成人精品激情在线观看| 久久综合九色九九| 久久免费精品视频| 久久精品91久久香蕉加勒比 | 久久精品国产亚洲5555| 欧美一区三区二区在线观看| 午夜一区二区三区不卡视频| 午夜久久一区| 午夜视频一区| 欧美一级欧美一级在线播放| 欧美一区=区| 久久精品国产999大香线蕉| 欧美在线欧美在线| 久久久久久国产精品mv| 久久免费99精品久久久久久| 蜜臀99久久精品久久久久久软件| 每日更新成人在线视频| 欧美成人免费大片| 欧美精品福利在线| 欧美日韩亚洲一区三区 | 亚洲一区国产| 亚洲自拍电影| 亚洲欧美999| 香蕉久久夜色精品国产使用方法| 欧美在线国产精品| 久久频这里精品99香蕉| 欧美xx视频| 欧美日韩一区高清| 国产精品午夜国产小视频| 国产精品揄拍一区二区| 国产亚洲欧美aaaa| 在线观看视频免费一区二区三区| 91久久久国产精品| 夜色激情一区二区| 亚欧美中日韩视频| 亚洲激情综合| 亚洲无线视频| 欧美在线观看一区| 鲁鲁狠狠狠7777一区二区| 欧美极品一区二区三区| 国产精品成人一区| 国内成+人亚洲| 亚洲激情啪啪| 亚洲综合999| 亚洲激情小视频| 亚洲一本大道在线| 久久久久国色av免费观看性色| 麻豆精品视频在线| 欧美亚洲第一页| 国内自拍亚洲| 亚洲免费成人| 欧美一区二区三区久久精品| 亚洲九九精品| 久久激情视频免费观看| 亚洲在线电影| 最新国产成人av网站网址麻豆| 中文久久精品| 久久久久久久欧美精品| 欧美区在线播放| 国产日韩精品综合网站| 亚洲经典自拍| 小处雏高清一区二区三区| 99精品国产福利在线观看免费| 欧美一区二区三区四区在线观看地址| 另类激情亚洲| 国产精品爱久久久久久久| 在线播放亚洲| 亚洲一区中文字幕在线观看| 亚洲三级免费观看| 欧美在线视频日韩| 欧美乱在线观看| 国内精品久久国产| 一区二区三区日韩精品视频| 亚洲国产精品一区二区第一页 | 国产小视频国产精品| 亚洲美女av网站| 久久国产精品72免费观看| 亚洲午夜一区二区三区| 另类尿喷潮videofree| 国产精品色婷婷| 亚洲第一毛片| 亚洲一二三级电影| 日韩视频永久免费| 玖玖玖免费嫩草在线影院一区| 国产精品日日做人人爱| 日韩视频在线免费| 亚洲免费av网站| 久久人人97超碰人人澡爱香蕉| 国产精品成人久久久久| 最新成人av在线| 久久精品人人做人人综合| 欧美一区二区三区四区在线观看| 欧美日韩综合在线免费观看| 亚洲成人直播| 久久成人一区二区| 欧美一区三区三区高中清蜜桃| 欧美色一级片| 亚洲精品综合在线| 亚洲人成网站777色婷婷| 久久久久综合| 国产综合网站| 欧美一级午夜免费电影| 午夜精品一区二区三区在线视 | 欧美激情精品| 在线观看视频一区| 久久成人精品| 久久久久久97三级| 国产一区二区三区高清| 狠狠色狠狠色综合日日91app| 欧美一区二区免费观在线| 欧美亚洲视频一区二区| 欧美午夜视频在线| 一本大道久久a久久精二百| 日韩一级大片在线| 免费影视亚洲| 亚洲盗摄视频| 亚洲高清精品中出| 美女国产一区| 亚洲小说春色综合另类电影| 欧美性猛交99久久久久99按摩| 精东粉嫩av免费一区二区三区| 午夜精品国产| 新狼窝色av性久久久久久| 国产精品v一区二区三区 | 狠狠88综合久久久久综合网| 性8sex亚洲区入口| 久久精品卡一| 极品av少妇一区二区| 久久精品二区亚洲w码| 欧美中文日韩| 国内成人自拍视频| 久久精品欧洲| 欧美 日韩 国产精品免费观看| 在线观看国产精品淫| 亚洲大片av| 欧美激情第4页| 亚洲精品影视在线观看| 99视频热这里只有精品免费| 欧美日韩ab| 国产精品99久久不卡二区| 午夜视频在线观看一区| 国产亚洲成av人片在线观看桃| 欧美一区二区三区视频在线观看 | 亚洲免费观看在线视频| 欧美日韩爆操| 一区二区三区偷拍| 香蕉久久久久久久av网站| 国产一区二区日韩精品| 亚洲国产精品黑人久久久| 欧美成人激情视频免费观看| 亚洲精品视频中文字幕| 亚洲一区精彩视频| 国产精品一区二区女厕厕| 欧美一区二区视频在线观看| 久久综合伊人77777麻豆| 亚洲激情影视| 亚洲香蕉视频| 国产午夜精品久久久久久久| 亚洲国产精品成人久久综合一区| 你懂的国产精品| 亚洲人成亚洲人成在线观看图片| 亚洲一区二区免费视频| 国产精品日韩欧美大师| 久久成人精品视频| 欧美激情免费在线| 亚洲视频欧美在线| 久久久久国色av免费观看性色| 亚洲黄色高清| 亚洲欧美美女| 激情文学一区| 亚洲天堂成人| 国产自产v一区二区三区c| 99视频在线观看一区三区| 国产精品美女诱惑| 久久国产日韩欧美| 欧美日韩成人综合天天影院| 亚洲欧美在线一区| 欧美精品成人| 欧美一区二区视频在线观看| 欧美精品一区二区三区久久久竹菊 | 久久aⅴ乱码一区二区三区| 在线日韩电影| 午夜国产精品影院在线观看| 狠狠色狠狠色综合日日91app| 一区二区三区视频在线播放| 国产一区二区高清| 一区二区三区视频在线| 韩国三级在线一区| 亚洲社区在线观看| 激情综合电影网| 新67194成人永久网站| 亚洲精品国久久99热| 久久国产精品免费一区|