FPGA實現UART和MCU一體化設計
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所示。本文引用地址:http://www.104case.com/article/191268.htm
讀信號和寫信號由微控制器MCU通過向I/O設備進行數據輸入和輸出操作產生。空標志和滿標志用于MCU探測緩沖區狀態,應用查詢方式對外設進行讀寫數據操作。對于發送緩沖區,當緩沖區處于滿狀態時表明已經沒有可用的存儲空間緩沖數據,此時不允許進行寫操作;對于接收緩沖區,當緩沖區處于空狀態時,表明沒有從設備收到任何的時間,此時不允許微控制器MCU從外設接收緩沖區讀取數據。
通過QuartusⅡ產生的FIFO如圖8所示。
圖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所示指令。每條指令功能的完成具有取指令、指令譯碼、執行指令階段。指令的分析譯碼執行由狀態機邏輯控制具體實現。
評論