新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > FPGA實(shí)現(xiàn)UART和MCU一體化設(shè)計(jì)

FPGA實(shí)現(xiàn)UART和MCU一體化設(shè)計(jì)

作者: 時(shí)間:2011-03-30 來(lái)源:網(wǎng)絡(luò) 收藏

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

本文引用地址:http://m.butianyuan.cn/article/191268.htm

5.JPG


讀信號(hào)和寫信號(hào)由微控制器MCU通過(guò)向I/O設(shè)備進(jìn)行數(shù)據(jù)輸入和輸出操作產(chǎn)生??諛?biāo)志和滿標(biāo)志用于MCU探測(cè)緩沖區(qū)狀態(tài),應(yīng)用查詢方式對(duì)外設(shè)進(jìn)行讀寫數(shù)據(jù)操作。對(duì)于發(fā)送緩沖區(qū),當(dāng)緩沖區(qū)處于滿狀態(tài)時(shí)表明已經(jīng)沒(méi)有可用的存儲(chǔ)空間緩沖數(shù)據(jù),此時(shí)不允許進(jìn)行寫操作;對(duì)于接收緩沖區(qū),當(dāng)緩沖區(qū)處于空狀態(tài)時(shí),表明沒(méi)有從設(shè)備收到任何的時(shí)間,此時(shí)不允許微控制器MCU從外設(shè)接收緩沖區(qū)讀取數(shù)據(jù)。
通過(guò)QuartusⅡ產(chǎn)生的FIFO如圖8所示。

6.JPG


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

7.JPG




關(guān)鍵詞: FPGA UART MCU

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉