利用FPGA解決TMS320C54x與SDRAM的接口問題
發(fā)布時(shí)間:2008/5/27 0:00:00 訪問次數(shù):593
    
    
    來源:電子技術(shù)應(yīng)用 作者:辛 陽 楊義先
    
    摘要:介紹了如何利用fpga設(shè)計(jì)tms320c54x系列芯片與tms62812a sdram之間的接口。這種接口方法適合于需要外擴(kuò)大容量存儲(chǔ)器的應(yīng)用場合。
    
    關(guān)鍵詞:fpga tms320c54x sdrm 接口
    
    在dsp應(yīng)用系統(tǒng)中,需要大量外擴(kuò)存儲(chǔ)器的情況經(jīng)常遇到。例如,在數(shù)碼相機(jī)和攝像機(jī)中,為了將現(xiàn)場拍攝的諸多圖片或圖像暫存下來,需要將dsp處理后的數(shù)據(jù)轉(zhuǎn)移到外存中以備后用。從目前的存儲(chǔ)器市場看,sdram由于其性能價(jià)格比的優(yōu)勢(shì),而被dsp開發(fā)者所青睞。dsp與sdram直接接口是不可能的。fpga(現(xiàn)場可編程門陣列)由于其具有使用靈活、執(zhí)行速度快、開發(fā)工具豐富的特點(diǎn)而越來越多地出現(xiàn)在現(xiàn)場電路設(shè)計(jì)中。本文用fpga作為接口芯片,提供控制信號(hào)和定時(shí)信號(hào),來實(shí)現(xiàn)dsp到sdram的數(shù)據(jù)存取。
    
    
    
    1 sdram介紹
    
    本文采用的sdram為tms626812a,圖1為其功能框圖。它內(nèi)部分為兩條,每條1m字節(jié),數(shù)據(jù)寬度為8位,故存儲(chǔ)總?cè)萘繛?m字節(jié)。
    
    所有輸入和輸出操作都是在時(shí)鐘clk上升沿的作用下進(jìn)行的,刷新時(shí)鐘交替刷新內(nèi)部的兩條ram。tms626812a主要有六條控制命令,它們是:條激尖/行地址入口、列地址入口/寫操作、列地址入口/讀操作、條無效、自動(dòng)刷新、自動(dòng)刷新。sdram與tms320c54x接口中用到的命令主要有:mrs、deac、actv、wrt-p、read-p和refr。這里,設(shè)計(jì)目的就是產(chǎn)生控制信號(hào)來滿足這些命令的時(shí)序要求。關(guān)于tms626812a的具體說明可以查看其數(shù)據(jù)手冊(cè)。
    
    
    
    2 sdram與tms320c54x之間的通用接口
    
    圖2是dsp與sdram的通用接口框圖,圖中dsp i/f代表tms320c54x端接口單元,sdram cntl代表sdram端接口控制單元。sdram被設(shè)置成一次性讀寫128個(gè)字節(jié),而dsp一次只讀寫一個(gè)字節(jié),因而建立了兩個(gè)緩沖區(qū)b0、b1來緩存和中轉(zhuǎn)數(shù)據(jù)。b0、b1大小都為128字節(jié),而且映射到dsp中的同一地址空間。
    
    盡管b0、b1對(duì)應(yīng)于同一地址空間,但對(duì)兩個(gè)緩沖區(qū)不能在同一時(shí)刻進(jìn)行合法訪問。實(shí)際上,當(dāng)b0被dsp訪問時(shí),b1就被sdram訪問,反之也成立。若dsp向b1寫數(shù)據(jù),sdram就從b0讀數(shù)據(jù);而當(dāng)sdram的數(shù)據(jù)寫到b0中時(shí),dsp就從b1讀數(shù)據(jù)。兩者同時(shí)從同一緩沖區(qū)讀或?qū)懚紝⒓ぐl(fā)錯(cuò)誤。上邊所述的數(shù)據(jù)轉(zhuǎn)移方式有兩種好處:一是加速了tms320c54x的訪問速度,二是解決了二者之間的時(shí)鐘不同步問題。
    
    3 fpga中的硬件設(shè)計(jì)
    
    tms320c54x為外部存儲(chǔ)器的擴(kuò)展提供了下列信號(hào):clk、cs、ao~a15、d0~d15、rw、matrb、istrb、is,而sdram接收下列信號(hào):clk、cke、cs、cqm、w、ras、cas、a0~a11。由于兩端控制信號(hào)不同,需要在dsp與sdram之間加上控制邏輯,以便將從dsp過來的信號(hào)解釋成sdram能夠接收的信號(hào),圖3是用fpga設(shè)計(jì)的頂層硬件接口圖。
    
    圖中主要由三個(gè)模塊:dsp-iq、dma-buf和sd-cmd。其中dsp-io是dsp端的接口,用來解碼tms320c54x發(fā)送的sdram地址和命令。dma-buf代表緩沖區(qū)bo、b1。sd_cmd模塊用來產(chǎn)生sdram訪問所需的各種信號(hào)。
    
    dsp_io模塊又包括io_dma、dsp_buf和dsp_read。io_dma產(chǎn)生sdram的命令信號(hào),即圖3中的dsp_rdy、dsp_sd_rw、dsp_sd_bank_sw、dsp_sd_addr[20..0]、dsp_sd_addr_reset、dsp_sd_start。dsp_buf產(chǎn)生訪問b0、b1的地址、數(shù)據(jù)和控制信號(hào),圖3中指dsp_sd_bufclki、dsp_sd_bufclko、dsp_sd_bufwe、dsp_sd_bufaddr[6..0]、dsp_sd_bufin[7..0]。dsp-read子模塊用來控制dsp的讀寫方向。
    
    
    dma_buf分為b0、b1兩個(gè)緩沖區(qū),用來進(jìn)行數(shù)據(jù)傳送,每個(gè)緩沖區(qū)的輸入輸出信號(hào)包括:clki、clko、we、addr[6-0]、data_in[7-0]、data_out[7-0]。bank_sw是一個(gè)開關(guān)信號(hào),用于dsp和
    
    
    來源:電子技術(shù)應(yīng)用 作者:辛 陽 楊義先
    
    摘要:介紹了如何利用fpga設(shè)計(jì)tms320c54x系列芯片與tms62812a sdram之間的接口。這種接口方法適合于需要外擴(kuò)大容量存儲(chǔ)器的應(yīng)用場合。
    
    關(guān)鍵詞:fpga tms320c54x sdrm 接口
    
    在dsp應(yīng)用系統(tǒng)中,需要大量外擴(kuò)存儲(chǔ)器的情況經(jīng)常遇到。例如,在數(shù)碼相機(jī)和攝像機(jī)中,為了將現(xiàn)場拍攝的諸多圖片或圖像暫存下來,需要將dsp處理后的數(shù)據(jù)轉(zhuǎn)移到外存中以備后用。從目前的存儲(chǔ)器市場看,sdram由于其性能價(jià)格比的優(yōu)勢(shì),而被dsp開發(fā)者所青睞。dsp與sdram直接接口是不可能的。fpga(現(xiàn)場可編程門陣列)由于其具有使用靈活、執(zhí)行速度快、開發(fā)工具豐富的特點(diǎn)而越來越多地出現(xiàn)在現(xiàn)場電路設(shè)計(jì)中。本文用fpga作為接口芯片,提供控制信號(hào)和定時(shí)信號(hào),來實(shí)現(xiàn)dsp到sdram的數(shù)據(jù)存取。
    
    
    
    1 sdram介紹
    
    本文采用的sdram為tms626812a,圖1為其功能框圖。它內(nèi)部分為兩條,每條1m字節(jié),數(shù)據(jù)寬度為8位,故存儲(chǔ)總?cè)萘繛?m字節(jié)。
    
    所有輸入和輸出操作都是在時(shí)鐘clk上升沿的作用下進(jìn)行的,刷新時(shí)鐘交替刷新內(nèi)部的兩條ram。tms626812a主要有六條控制命令,它們是:條激尖/行地址入口、列地址入口/寫操作、列地址入口/讀操作、條無效、自動(dòng)刷新、自動(dòng)刷新。sdram與tms320c54x接口中用到的命令主要有:mrs、deac、actv、wrt-p、read-p和refr。這里,設(shè)計(jì)目的就是產(chǎn)生控制信號(hào)來滿足這些命令的時(shí)序要求。關(guān)于tms626812a的具體說明可以查看其數(shù)據(jù)手冊(cè)。
    
    
    
    2 sdram與tms320c54x之間的通用接口
    
    圖2是dsp與sdram的通用接口框圖,圖中dsp i/f代表tms320c54x端接口單元,sdram cntl代表sdram端接口控制單元。sdram被設(shè)置成一次性讀寫128個(gè)字節(jié),而dsp一次只讀寫一個(gè)字節(jié),因而建立了兩個(gè)緩沖區(qū)b0、b1來緩存和中轉(zhuǎn)數(shù)據(jù)。b0、b1大小都為128字節(jié),而且映射到dsp中的同一地址空間。
    
    盡管b0、b1對(duì)應(yīng)于同一地址空間,但對(duì)兩個(gè)緩沖區(qū)不能在同一時(shí)刻進(jìn)行合法訪問。實(shí)際上,當(dāng)b0被dsp訪問時(shí),b1就被sdram訪問,反之也成立。若dsp向b1寫數(shù)據(jù),sdram就從b0讀數(shù)據(jù);而當(dāng)sdram的數(shù)據(jù)寫到b0中時(shí),dsp就從b1讀數(shù)據(jù)。兩者同時(shí)從同一緩沖區(qū)讀或?qū)懚紝⒓ぐl(fā)錯(cuò)誤。上邊所述的數(shù)據(jù)轉(zhuǎn)移方式有兩種好處:一是加速了tms320c54x的訪問速度,二是解決了二者之間的時(shí)鐘不同步問題。
    
    3 fpga中的硬件設(shè)計(jì)
    
    tms320c54x為外部存儲(chǔ)器的擴(kuò)展提供了下列信號(hào):clk、cs、ao~a15、d0~d15、rw、matrb、istrb、is,而sdram接收下列信號(hào):clk、cke、cs、cqm、w、ras、cas、a0~a11。由于兩端控制信號(hào)不同,需要在dsp與sdram之間加上控制邏輯,以便將從dsp過來的信號(hào)解釋成sdram能夠接收的信號(hào),圖3是用fpga設(shè)計(jì)的頂層硬件接口圖。
    
    圖中主要由三個(gè)模塊:dsp-iq、dma-buf和sd-cmd。其中dsp-io是dsp端的接口,用來解碼tms320c54x發(fā)送的sdram地址和命令。dma-buf代表緩沖區(qū)bo、b1。sd_cmd模塊用來產(chǎn)生sdram訪問所需的各種信號(hào)。
    
    dsp_io模塊又包括io_dma、dsp_buf和dsp_read。io_dma產(chǎn)生sdram的命令信號(hào),即圖3中的dsp_rdy、dsp_sd_rw、dsp_sd_bank_sw、dsp_sd_addr[20..0]、dsp_sd_addr_reset、dsp_sd_start。dsp_buf產(chǎn)生訪問b0、b1的地址、數(shù)據(jù)和控制信號(hào),圖3中指dsp_sd_bufclki、dsp_sd_bufclko、dsp_sd_bufwe、dsp_sd_bufaddr[6..0]、dsp_sd_bufin[7..0]。dsp-read子模塊用來控制dsp的讀寫方向。
    
    
    dma_buf分為b0、b1兩個(gè)緩沖區(qū),用來進(jìn)行數(shù)據(jù)傳送,每個(gè)緩沖區(qū)的輸入輸出信號(hào)包括:clki、clko、we、addr[6-0]、data_in[7-0]、data_out[7-0]。bank_sw是一個(gè)開關(guān)信號(hào),用于dsp和
熱門點(diǎn)擊
- IRIG-B格式時(shí)間碼解碼接口卡電路設(shè)計(jì)
- 可編程多協(xié)議收發(fā)器MAX3160的原理與應(yīng)用
- M-Bus終端收發(fā)芯片TSS721的原理及應(yīng)
- SN75176在微機(jī)多點(diǎn)通訊中的應(yīng)用
- USB總線的體系結(jié)構(gòu)
- 增強(qiáng)并口EPP協(xié)議擴(kuò)展計(jì)算機(jī)的ISA接口
- 基于VME總線的RDC接口電路設(shè)計(jì)
- MAX488收發(fā)器及其應(yīng)用
- 基于C8051F020的通用串口適配器的設(shè)計(jì)
- 光電二極管與放大器集成器件OPT301
推薦技術(shù)資料
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號(hào)調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究