《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 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網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产深夜福利视频在线播放 | 中文字幕日韩一区二区 | 亚洲第一成年免费网站 | 欧美大片a一级毛片视频 | 最新国产三级在线不卡视频 | 综合久久久久久中文字幕 | 香蕉视频1024 | a免费毛片在线播放 | 成人69视频在线观看免费 | 成在线人永久免费播放视频 | 久久这里有精品视频 | 日韩中文字 | 在线亚洲精品国产成人二区 | 另类综合视频 | 欧美成人性色区 | 国产午夜爽爽窝窝在线观看 | 一级绝黄 | 成人欧美一区二区三区黑人免费 | 亚洲一区二区三区精品国产 | 成人福利网站含羞草 | 国产三级在线视频观看 | 亚洲精品国产拍拍拍拍拍 | 成人毛片18女人毛片免费 | 日本理论片免费高清影视在线观看 | 国产精品免费综合一区视频 | 久久精品一区二区三区四区 | 日本道在线播放 | 日韩欧美综合在线二区三区 | 亚洲免费高清视频 | 成人精品国产 | 欧美成人久久久 | 欧美日本一区二区三区道 | 日本一区二区三区不卡在线视频 | 国产欧美精品一区二区三区 | 日韩视频专区 | 欧美高清一区二区三区欧美 | 成熟性xxxxx 成网站在线观看人免费 | 久久草在线视频 | 男人又粗又硬桶女人免费 | 欧美成人午夜片一一在线观看 | 99爱在线视频 |