基于增強(qiáng)型SPI接口的大容量Flash擴(kuò)展實(shí)現(xiàn)
1 引言
隨著信息時(shí)代的到來,各種信息的集成和交互越來越頻繁。運(yùn)動(dòng)控制系統(tǒng)中需要處理和存儲(chǔ)的信息量也與日俱增,大部分運(yùn)動(dòng)控制系統(tǒng)的核心器件mcu自身已經(jīng)集成了較大容量的存儲(chǔ)器(與以前mcu相比),但僅僅依靠mcu自身的存儲(chǔ)器一般很難滿足系統(tǒng)對(duì)大容量存儲(chǔ)的要求,因此必須找到高效的方法實(shí)現(xiàn)對(duì)系統(tǒng)存儲(chǔ)容量的擴(kuò)展。
spi是一個(gè)高效、數(shù)據(jù)位數(shù)可編程設(shè)置的高速輸入/輸出串行接口,幾乎所有mcu生產(chǎn)廠商都提供對(duì)spi接口的支持,目前高速spi接口的時(shí)鐘頻率已達(dá)到60mhz甚至更高,spi接口一般只用4根連接線即可完成所有的數(shù)據(jù)通訊和控制操作,因此不占用mcu的數(shù)據(jù)總線和地址總線,極大的節(jié)約了系統(tǒng)的硬件資源,是一種經(jīng)濟(jì)實(shí)用的擴(kuò)展系統(tǒng)存儲(chǔ)容量的方法。
本文利用32位dsp-tms320f2812自身的增強(qiáng)型spi接口,結(jié)合性價(jià)比高的串行接口flash,高效地實(shí)現(xiàn)了對(duì)系統(tǒng)存儲(chǔ)容量的擴(kuò)展。
2 系統(tǒng)總體介紹
flash擴(kuò)展實(shí)現(xiàn)的硬件系統(tǒng)是具有ethernet接口的基于dsp和cpld的運(yùn)動(dòng)控制板,系統(tǒng)總體結(jié)構(gòu)如圖1所示,核心器件是ti公司推出的32位定點(diǎn)dsp-tms320f2812和altera公司推出的maxii系列cpld-epm1270g。主要完成系統(tǒng)輸入信號(hào)的檢測、處理,各種控制算法以及和各種接口(ethernet接口和rs232接口)的通訊,運(yùn)動(dòng)控制系統(tǒng)的部分控制程序、大量的初始化數(shù)據(jù)和系統(tǒng)的配置信息都存在大容量的串行接口flash
m25p80中,通過dsp增強(qiáng)型spi接口實(shí)現(xiàn)與核心處理器dsp的高速通信。
3 flash擴(kuò)展的硬件設(shè)計(jì)
3.1 tms320f2812的增強(qiáng)型spi接口特性
(1)可編程的125種不同的波特率。
(2)可編程的1-16位有效數(shù)據(jù)長度。
(3)支持4種時(shí)鐘模式,不帶相位延時(shí)的下降沿模式、帶相位延遲的下降沿模式、不帶相位延時(shí)的上升沿模式和帶相位延時(shí)的上升沿模式。
(4)可持續(xù)操作的特性:16級(jí)發(fā)送和接收fifo;可編程的中斷優(yōu)先級(jí)和延時(shí)發(fā)送控制功能。
時(shí)鐘模式應(yīng)根據(jù)具體應(yīng)用中與mcu接口器件的操作時(shí)序決定,選取原則是保證在器件進(jìn)行讀寫操作過程中,所要求的clk時(shí)鐘沿到來時(shí)所操作的數(shù)據(jù)必須已經(jīng)在相應(yīng)的引腳上,例如,當(dāng)接口器件(本系統(tǒng)中是flash)在上升沿接收數(shù)據(jù),在下降沿發(fā)送數(shù)據(jù)時(shí),mcu應(yīng)該選擇不帶相位延時(shí)的下降沿方式。
增強(qiáng)型spi接口具有16位16級(jí)深度的發(fā)送和接收fifo,這為高速連續(xù)操作提供了可能,在發(fā)送和接收時(shí)可以最多進(jìn)行32個(gè)字節(jié)的連續(xù)操作,從而極大的提高了通訊效率。
可編程的中斷優(yōu)先級(jí)和可編程的延時(shí)發(fā)送控制功能,增加了spi接口的靈活性,使用戶可以自由配置中斷,并根據(jù)外部器件的特性靈活控制spi接口的操作時(shí)序,既保證了接口操作的高速性也滿足了不同接口器件操作時(shí)序的要求。
3.2 串行接口flash m25p80
m25p80是意法半導(dǎo)體公司推出的8m大容量串行接口flash器件,采用2.7v-3.6v單電源供電,兼容標(biāo)準(zhǔn)的spi接口,器件在上升沿接收數(shù)據(jù),在下降沿發(fā)送數(shù)據(jù),接口時(shí)鐘最高為40mhz,支持最大256bytes的快速頁面編程操作、快速的塊擦除(512kbit)操作和快速的整體擦除(8mhz)操作;具有操作暫停和硬件寫保護(hù)功能。
spi擴(kuò)展模塊硬件原理圖如圖2所示。
spisomi:spi從模式輸出/主模式輸入引腳,與flash的串行數(shù)據(jù)輸出引腳q相連。
spisimo:spi從模式輸入/主模式輸出引腳,與flash的串行數(shù)據(jù)輸入d引腳相連。
spiste:spi從模式發(fā)送使能引腳,與flash的片選引腳s相連。
spiclk:spi串行時(shí)鐘引腳;與flash的時(shí)鐘輸入引腳c相連。
ram_wp信號(hào)由dsp的i/o口輸出,控制外部flash的寫保護(hù)功能,當(dāng)ram_wp為高電平時(shí),使能flash的硬件寫保護(hù)功能,flash內(nèi)部扇區(qū)受保護(hù),不能進(jìn)行寫操作,系統(tǒng)中對(duì)flash的操作不會(huì)發(fā)生暫停,因此m25p80的hold信號(hào)直接接高電平,不進(jìn)行中斷暫停操作。
3.3 m25p80的指令操作
m25p80支持的操作指令共有12條,所有指令都是8位,操作步驟如下:先選中器件(片選信號(hào)拉低),然后輸入8位操作指令字節(jié),緊接著輸入地址字節(jié)(0-3byte,必要時(shí)還要加入啞讀字節(jié)),把片選信號(hào)拉高(有些指令不要求),m25p80即可以啟動(dòng)內(nèi)部控制邏輯,自行完成相應(yīng)的操作。以下以最常用的頁面快速編程指令為例進(jìn)行具體說明(其他指令與該指令操作相似,可以相互參考)。
頁面編程指令時(shí)序圖如圖3所示,進(jìn)行頁面編程操作首先應(yīng)將內(nèi)部狀態(tài)寄存器的寫允許位(wren)置1,然后將片選信號(hào)拉低選中器件,輸入pp指令字節(jié)02h,緊接著輸入三個(gè)字節(jié)的地址數(shù)據(jù),然后輸入要編程的數(shù)據(jù),所有數(shù)據(jù)都輸入后將片選信號(hào)拉高,m25p80隨即啟動(dòng)內(nèi)部邏輯完成編程操作。
4 spi模塊軟件編程
4.1 軟件流程說明
spi模塊軟件流程圖如圖4所示。
a、系統(tǒng)初始化:完成spi接口引腳功能的選擇、dsp外部接口時(shí)鐘的定標(biāo)、spi接口時(shí)鐘的使能。具體為:gpio多路復(fù)用控制寄存器:gpfmux中將相關(guān)引腳配置為spi功能引腳,低速設(shè)備時(shí)鐘定標(biāo)寄存器lospcp中低速設(shè)備時(shí)鐘的定標(biāo),外設(shè)時(shí)鐘控制寄存器pclkcr中spi接口時(shí)鐘使能,程序如下:
b、與spi相關(guān)的中斷初始化,使能外部中斷向量表(pievect寄存器),復(fù)位外部中斷應(yīng)答寄存器(pieack),清除外部中斷標(biāo)志寄存器(pieifr),置位pie中斷使能寄存器(pieier),清除全局中斷屏蔽位(sti寄存器的intm位)。
c、spi接口初始化:首先在spi配置寄存器(spiccr)中置位spi軟件復(fù)位位,使spi進(jìn)入復(fù)位模式,設(shè)置spi接口的時(shí)鐘極性(根據(jù)具體的flash器件操作特性設(shè)置,在4種時(shí)鐘模式中選擇,本系統(tǒng)選擇不帶相位延時(shí)的下降沿方式)、選擇有效數(shù)據(jù)位數(shù)、選擇奇偶校驗(yàn)位;在spi控制寄存器(spictl)中:使能接收中斷和發(fā)送中斷、選擇spi時(shí)鐘相位、選擇主或從模式;spi波特率寄存器(spibrr)中設(shè)置spi接口的通訊波特率。
d、spi增強(qiáng)型特性配置:spififo發(fā)送寄存器(spifftx)中復(fù)位spi發(fā)送和接收通道、使能增強(qiáng)特性、復(fù)位fifo指針、清除fifo中斷標(biāo)志位、使能fifio中斷、設(shè)置fifo中斷優(yōu)先級(jí),spififo接收寄存器(spiffrx),請(qǐng)參考spifftx寄存器配置,兩者基本相同,分別用于發(fā)送控制和接收控制,spififo控制寄存器(spiffct);根據(jù)具體器件的操作時(shí)序要求配置fifo發(fā)送延時(shí)。實(shí)現(xiàn)程序如下:
5 結(jié)束語
本文所述運(yùn)動(dòng)控制系統(tǒng)利用系統(tǒng)核心dsp自身的spi接口,結(jié)合其高速性、可連續(xù)操作性和極大的靈活性,選用性價(jià)比高的大容量串行接口flash,高效地實(shí)現(xiàn)對(duì)系統(tǒng)存儲(chǔ)容量的擴(kuò)展,適應(yīng)了目前信息化發(fā)展趨勢,滿足了系統(tǒng)大容量存儲(chǔ)空間的要求。
評(píng)論