国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于FPGA的SOC系統(tǒng)中的串口設(shè)計

發(fā)布時間:2010-8-5 15:40    發(fā)布者:lavida
關(guān)鍵詞: FPGA , SoC , 串口設(shè)計
1 概述

在基于FPGA的SOC設(shè)計中,常使用串口作為通信接口,但直接用FPGA進(jìn)行串口通信數(shù)據(jù)的處理是比較繁雜的,特別是直接使用FPGA進(jìn)行串口通信的協(xié)議的解釋和數(shù)據(jù)打包等處理,將會消耗大量的FPGA硬件資源。  

為簡化設(shè)計,降低硬件資源開銷,可以在FPGA中利用IP核實現(xiàn)的嵌入式微處理器來對串口數(shù)據(jù)進(jìn)行處理。  

本文中的設(shè)計采用了XILINX的FPGA,可選用的嵌入式微處理器IP核種類繁多,但基于對硬件資源開銷最少的考慮,最終選用了Picoblaze。  
嵌入式微處理器PicoBlaze適用于Spartan-II/E、CoolRunner-II和Virtex系列FPGA,運行速度可達(dá)到40MIPS以上,提供49個不同的指令,16個寄存器,256個地址端口,1個可屏蔽的中斷。其性能超過了傳統(tǒng)的8bit微處理器。嵌入式微處理器Picoblaze的功能、原理見參考文獻(xiàn)[1]。  
Picoblaze使用靈活,但其缺點是可尋址的存儲空間非常有限,因此為滿足實際需要本文同時也提出了使用片外SDRAM器件對其存儲能力進(jìn)行擴(kuò)展的設(shè)計方法。  

2 串口收發(fā)接口設(shè)計
2.1 串口收發(fā)接口硬件設(shè)計  

嵌入式微處理器PicoBlaze本身并不具備串行接口,因此必須在FPGA中設(shè)計串口接收和發(fā)送模塊并通過總線結(jié)構(gòu)與Picoblaze連接。  

串口接收和發(fā)送模塊的設(shè)計可采用成熟的IP核。實際設(shè)計中采用了XLINX的串口收發(fā)IP核,其特點是串口波特率,符號規(guī)則都可以靈活地定制,同時具有16字節(jié)的接收FIFO和16字節(jié)的發(fā)送FIFO。  

使用Picoblaze和串口收發(fā)IP核構(gòu)成的串口收發(fā)系統(tǒng)結(jié)構(gòu)見圖1。  
  
在設(shè)計中,發(fā)送模塊、接收模塊和標(biāo)志寄存器分別有不同的地址,Picoblaze通過地址端口對串口收發(fā)模塊進(jìn)行訪問。設(shè)計中的標(biāo)志寄存器,可用于指示發(fā)送模塊和接收模塊中FIFO的狀態(tài),Picoblaze通過查詢標(biāo)志寄存器來完成對串口數(shù)據(jù)的收發(fā)控制。  

2.2 串口收發(fā)接口軟件設(shè)計  

串口發(fā)送、接收子程序  

Picoblaze通過對標(biāo)志寄存器的查詢,根據(jù)FIFO的狀態(tài)進(jìn)行操作。串口發(fā)送和接收子程序流程見圖2。  


  
Picoblaze的編程,類似于匯編語言。  

串口發(fā)送子程序代碼如下:  

(1)串口接收子程序  
receive:
INPUT s0,uartrxflag;查詢接收FIFO是否非空
AND s0,01
AND s0,s0
JUMP Z,receive;若FIFO為空時繼續(xù)查詢
INPUT rxdata,uartrx;若FIFO非空時讀取數(shù)據(jù)
RETURN  

(2)串口接收子程序  
translate:
INPUT s0,uarttxflag;查詢發(fā)送FIFO是否為空
AND s0,01
AND s0,s0
JUMP NZ,translate;若發(fā)送FIFO非空時繼續(xù)查詢
OUTPUTtxdata,uarttx;若發(fā)送FIFO為空時寫入數(shù)據(jù)
RETURN  

協(xié)議處理子程序  
本文應(yīng)用中的串口通信,采用應(yīng)答機(jī)制,數(shù)據(jù)具有一定的幀結(jié)構(gòu),Picoblaze需要對命令幀進(jìn)行拆包處理,并根據(jù)幀的內(nèi)容進(jìn)行相應(yīng)的操作,然后發(fā)送響應(yīng)幀。  

表1通信數(shù)據(jù)的命令幀結(jié)構(gòu)  

  
表2通信數(shù)據(jù)的響應(yīng)幀結(jié)構(gòu)  

  
根據(jù)幀格式,Picoblaze對串口數(shù)據(jù)的處理流程見圖3。  


  
以上的Picoblaze程序流程所處理的數(shù)據(jù)幀結(jié)構(gòu)是較為簡單的,當(dāng)需要處理復(fù)雜的通信協(xié)議時可以考慮采用多個Picoblaze并行處理。  

3 存儲器接口設(shè)計  

Picoblaze的優(yōu)點是資源占用少,使用靈活,但可尋址的地址空間最多為256字節(jié),無法滿足對大量通信數(shù)據(jù)進(jìn)行存儲的需要。因此本文中采用了SDRAM器件來對Picoblaze的存儲能力進(jìn)行擴(kuò)展。  

SDRAM器件的管腳分為控制信號、地址和數(shù)據(jù)三類。通常一個SDRAM中包含幾個BANK,每個BANK的存儲單元是按行和列尋址的。SDRAM的具體特性見參考文獻(xiàn)。  

SDRAM在使用時需要專用的控制器來產(chǎn)生滿足SDRAM所需的信號。FPGA中SDRAM控制器也有多種IP核可以選用。出于對設(shè)計通用性的考慮,本文中采用了一款Altera提供的SDRAM控制器IP核,并增加了必要的設(shè)計以滿足與Picoblaze的接口要求。SDRAM控制器IP核的功能、原理見參考文獻(xiàn)。  

對Picoblaze與SDRAM控制器的接口設(shè)計有以下幾個出發(fā)點:  
  
總線匹配  

Picoblaze為8位處理器,數(shù)據(jù)線僅8bit,而SDRAM控制器總線寬度與SDRAM相同,可以為8、16或32bit。因此對于SDRAM控制器的數(shù)據(jù)Picoblaze必須以字節(jié)為單位進(jìn)行處理。   

地址控制  
Picoblaze地址線僅8位,無法直接對SDRAM進(jìn)行尋址。因此Picoblaze對SDRAM的尋址可借鑒先入先出存儲器FIFO的設(shè)計,即設(shè)計專門的地址計數(shù)器,通過地址計數(shù)器實現(xiàn)對SDRAM的尋址。   

時序匹配  

Picoblaze的運行速度不超過40MHz,而SDRAM的工作速度通常大于100MHz。因此為了滿足SDRAM的時序要求,要增加必要的緩沖機(jī)制。
   
3.1存儲器接口硬件設(shè)計  

Picoblaze與SDRAM存儲器接口的硬件原理框圖見圖4。  

  
控制狀態(tài)機(jī)控制的地址計數(shù)器為SDRAM控制器提供地址,同時控制狀態(tài)機(jī)還控制輸入數(shù)據(jù)緩沖區(qū)和輸出數(shù)據(jù)緩沖區(qū),并且根據(jù)Picoblaze的地址端口數(shù)據(jù)和讀/寫使能信號產(chǎn)生SDRAM控制器的命令字。  

(1)SDRAM初始化  

每次加電或復(fù)位后控制狀態(tài)機(jī)執(zhí)行對SDRAM控制器的初始化操作,設(shè)置SDRAM的時間參數(shù)和刷新周期等。  

(2)數(shù)據(jù)寫入SDRAM  

輸出數(shù)據(jù)緩沖區(qū)由16×8bit的FIFO構(gòu)成,當(dāng)Picoblaze向輸出數(shù)據(jù)緩沖區(qū)寫入超過8個字節(jié)后,通過“半滿”信號使控制狀態(tài)機(jī)進(jìn)入SDRAM的長度為8的突發(fā)寫模式,在寫入完成后控制狀態(tài)機(jī)將地址計數(shù)器增加8,以準(zhǔn)備好下一次的寫入。  

(3)數(shù)據(jù)讀取  

數(shù)據(jù)讀取時Picoblaze首先向控制狀態(tài)機(jī)發(fā)送讀取請求,控制狀態(tài)機(jī)進(jìn)入SDRAM的長度為1的突發(fā)讀模式,并將讀取的數(shù)據(jù)寫入輸入數(shù)據(jù)緩沖區(qū),此后Picoblaze再由輸入數(shù)據(jù)緩沖區(qū)中讀取數(shù)據(jù)。在讀取后,地址計數(shù)器做相應(yīng)的增加,以實現(xiàn)先入先出功能。  

以上的設(shè)計方法適用于需要數(shù)據(jù)連續(xù)寫入后再連續(xù)讀取的場合。  

控制狀態(tài)機(jī)狀態(tài)圖見圖5。  

  
3.2 存儲器接口軟件設(shè)計  

由于在SDRAM控制器與Picoblaze之間增加了控制狀態(tài)機(jī),簡化了Picoblaze的程序設(shè)計。  

(1)數(shù)據(jù)寫入  
數(shù)據(jù)寫入時Picoblaze向輸出數(shù)據(jù)緩沖區(qū)直接寫入數(shù)據(jù)即可。  

(2)數(shù)據(jù)讀取  
數(shù)據(jù)讀取時Picoblaze首先向控制狀態(tài)機(jī)發(fā)出請求,然后等待輸入數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)準(zhǔn)備就續(xù)后再讀取。  

4結(jié)論  

本文在XILINX FPGA中采用嵌入式處理器Picoblaze進(jìn)行SOC設(shè)計,以較少的硬件資源實現(xiàn)了對串口通信數(shù)據(jù)的處理,同時采用SDRAM器件對Picoblaze的存儲能力進(jìn)行擴(kuò)展。所采用的設(shè)計已應(yīng)用于多個產(chǎn)品中。經(jīng)過了長期的使用和測試證明文中的設(shè)計方法穩(wěn)定、可靠,并且具有資源占用少,設(shè)計靈活的優(yōu)點。
本文地址:http://www.qingdxww.cn/thread-19518-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 更佳設(shè)計的解決方案——Microchip模擬開發(fā)生態(tài)系統(tǒng)
  • 想要避免發(fā)生災(zāi)難,就用MPLAB SiC電源仿真器!
  • 深度體驗Microchip自動輔助駕駛應(yīng)用方案——2025巡展開啟報名!
  • 利用模擬開發(fā)工具生態(tài)系統(tǒng)進(jìn)行安全電路設(shè)計
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 麻豆网站视频 | 午夜国产在线 | 在线免费观看亚洲 | 亭亭色| 男人的天堂在线免费视频 | 乱中年女人伦中文字幕久久 | 亚洲精品在线播放视频 | 国产伦精品一区二区三区精品 | 日本色视| 九九热九九热 | 日韩欧美亚洲中字幕在线播放 | 久久国产免费观看精品 | 亚洲综合网在线观看 | 欧美日韩精选 | 日本中文字幕高清 | 亚洲婷婷第一狠人综合精品 | 中文字幕一二三区 | 久久99蜜桃精品久久久久小说 | 2021国产麻豆剧传媒剧情最新 | va在线视频| 亚a在线| 欧美一区2区三区4区公司贰佰 | 搞黄视频免费看 | 久久99国产精品免费观看 | 久草视频资源在线 | 四虎影院网 | 麻豆久久婷婷综合五月国产 | 91九色丨porny丨制服 | 国产福利网站 | 亚洲免费人成在线视频观看 | 日韩欧美视频在线 | 国产三级精品在线 | 美女的隐私免费看无遮挡 | 99热自拍| 午夜视频精品 | 国产精品久久久久免费视频 | 国产一区二区视频免费 | 国产欧美一区二区三区在线 | 国产黄在线免费观看 | 97精品在线 | 亚洲黄色免费网站 |