0 引 言
近年來,,隨著DSP技術的普及,、高性能DSP芯片的出現(xiàn),DSP已越來越多地被廣大的工程師所接受,,并越來越廣泛地被應用于各個領域,,例如:語音處理、圖像處理,、模式識別及工業(yè)控制等,,并且已日益顯示出其巨大的優(yōu)越性。DSP是利用專門或通用的數(shù)字信號處理芯片,,以數(shù)字計算的方法對信號進行處理,,具有處理速度快、靈活,、精確、抗干擾能力強,、體積小及可靠性高等優(yōu)點,,滿足了對信號快速、精確,、實時處理及控制的要求,。
在語音處理、圖像處理,、模式識別及工業(yè)控制中,,少不了對必要的數(shù)據(jù)進行存儲保護。如果存儲在內外RAM之中,,掉電數(shù)據(jù)就丟失,,起不到保護數(shù)據(jù)的作用;存儲在FLASH中,,由于對FLASH進行數(shù)據(jù)寫入時,,要先進行擦除操作,然后才能整頁的寫入,,如果每次寫入的數(shù)據(jù)比較少,,這樣就要占據(jù)很大的CPU時間,操作比較麻煩,。
針對這些缺點,,根據(jù)多年的研發(fā)經(jīng)驗,,結合實際,提出一種基于SPI方式的外部數(shù)據(jù)擴展方式,。本文所用到的數(shù)據(jù)存儲器是Xicor公司生產(chǎn)的帶有塊鎖保護的4 Kb CMOS串行E2PROM X5043(接口符合SPI協(xié)議),。該器件利用Xicor專有的直接寫入晶片,提供最小為10萬次擦寫和最少100年的數(shù)據(jù)保存期,。數(shù)據(jù)寫入之前不需要外部進行擦除操作,,芯片本身自動完成。同時X5043還具有上電復位,、看門狗定時器,、電源電壓監(jiān)控四種常用的功能。這種組合不但降低了系統(tǒng)成本,、減少了電路板空間,,還增加了系統(tǒng)可靠性。
1 SPI協(xié)議
圖1是典型的SPI協(xié)議,。SPI協(xié)議采用主從設置,,相互連接的設備中一個作為主設備,其他的設備作為從設備,。接口連線主要包括4條信號線:串行數(shù)據(jù)輸入信號線,,(Master In Slave Out,MIS()),;串行數(shù)據(jù)輸出信號線(Master Out Slave In,,MOSI);移位時鐘信號線(SCK),;從設備片選信號線(SS),。
2 VC5402的多通道緩存串行口(McBSP)
2.1 McBSP的功能特點
TMS320V5402是TI生產(chǎn)的第二代低功耗定點數(shù)字信號處理器,提供了兩個高速,、全雙工,、多通道緩存串行口,每個串行口可以支持128通道,,速度達100 Mb/s,。McBSP是在標準串行接口的基礎之上對功能進行擴展,因此,,具有與標準串行接口相同的基本功能:
(1)全雙工通信,;
(2)擁有兩級緩沖發(fā)送和三級緩沖接收數(shù)據(jù)寄存器,允許連續(xù)數(shù)據(jù)流傳輸,;
(3)為數(shù)據(jù)發(fā)送和接收提供獨立的幀同步脈沖和時鐘信號,;
(4)能夠與工業(yè)標準的解碼器、模擬接口芯片(AICs)和其他串行A/D和D/A設備直接連接,;
(5)支持外部移位時鐘或內部頻率可編程移位時鐘,。
此外,,McBSP還具有的其他特殊功能,本文所用到的有:
(1)串行字長度可選,,包括8,,12,16,,20,,24和32位可選。
(2)進行8位數(shù)據(jù)傳輸時,,可以選擇LSB或MSB為起始位,;
(3)幀同步脈沖和時鐘信號的極性可編程;
(4)內部時鐘和幀同步脈沖的產(chǎn)生可編程,,具有相當大的靈活性,。
2.2 McBSP與X5043的接口設計
X5043的外部接口符號SPI協(xié)議規(guī)范。DIP封裝的X5043有8個管腳組成,,各個管腳功能如下所示:
CS:片選端,,當CS為低時,X5043選中,。在任何操作之前,,需要先在CS上有一次由高至低的跳變;
SO:串行數(shù)據(jù)輸出端,,當讀周期時,,數(shù)據(jù)從該引腳移出;
SI:串行數(shù)據(jù)輸入引腳,,所要寫入存儲器的操作碼,字節(jié)地址和數(shù)據(jù)都從該引腳輸入,;
WP:當WP為低時,,向X5043的非易失性寫被禁止,但器件其他功能正常,,為高時,,所用功能都正常;
SCK:串行時鐘端,。串行時鐘控制串行總線數(shù)據(jù)輸入和輸出的時序,。
McBSP的時鐘停止模式與SPI協(xié)議兼容。當McBSP處于時鐘停止模式時,,發(fā)送器和接收器是內部同步的,,因此可以將McBSP作為SPI主設備或從設備。當設置McBSP為主設備時,,發(fā)送端輸出信號DXR就作為SPI協(xié)議的MOSI信號,,接收端輸入信號DRR就作為SPI協(xié)議的MISO信號,。發(fā)送幀同步脈沖信號FSX作為從設備片選信號SS,而發(fā)送時鐘信號CLKX就與SPI協(xié)議的串行時鐘信號SCK相對應,。由于接收時鐘信號CLKR和接收幀同步脈沖信號FSR與發(fā)送端的相應部分CLKX和FSX在內部相互連接,,因此這些信號不用于時鐘停止模式。該設計中McBSP作為主設備使用,。X5043與McBSP的接口電路如圖2所示,。
3 軟件設計
軟件設計主要包括DSP相關寄存器的配置,X5043狀態(tài)寄存器的配置,,以及X5043的讀寫操作,。
3.1 寄存器的配置
DSP端需要配置的寄存器主要包括CLKMD,SPCR[1,,2],,XCR[1,2],,RCR[1,,2],SRGR[1,,2],,PCR等。
其中CLKMD主要配置DSP的時鐘,;XCR[1,,2],RCR[1,,2]主要配置接收和發(fā)送數(shù)據(jù)的幀的個數(shù),、幀長以及字長。根據(jù)對X5043操作的不同,,發(fā)送和接收的字長也不同,,但是針對某一種操作,接收和發(fā)送字長是一樣的,;SRGR[1,,2]主要是對CLKGDV,CLKSM,,F(xiàn)SGM三個位域的配置,;SPCR[1,2]主要是對CLKSTP位域的配置,,因為它決定了McBSP是采用時鐘停止模式(SPI模式)還是正常模式,;引腳控制寄存器(PCR)配置了各個引腳的工作狀態(tài)。
值得注意的是在配置McBSP的寄存器之前,首先要使發(fā)送,、接收和分頻器復位,,配置完SPCR[1,2],,XCR[1,,2],RCR[1,,2],,PCR后,使分頻器置位,,等待兩個時鐘周期,,在配置SRGR[1,2],,然后使發(fā)送和接收置位在等待兩個時鐘周期,,這時才可以進行其他操作。
3.2 X5043的讀寫操作
X5043的讀操作包括讀狀態(tài)寄存器,、讀存儲器陣列(即讀數(shù)據(jù)),。寫操作包括寫使能/寫禁止、寫狀態(tài)寄存器,、寫存儲器陣列(寫數(shù)據(jù)),。X5043的指令組如表1所示。
下面主要講一下對單個數(shù)據(jù)的讀寫操作,。
3.2.1 寫一個字節(jié)操作
寫操作之前必須寫使能,,即向X5043先發(fā)送數(shù)據(jù)(06H)。首先將CS拉低,,然后向器件輸入WREN指令,,在將CS拉高。再次將CS拉低并輸入WRITE指令,,后面跟隨8位地址,,在后面需要寫入的數(shù)據(jù)。WRITE指令的位3是地址位A8,,它選擇是陣列的高半部分還是低半部分。如果CS在WREN和WRITE之間沒變?yōu)楦?,則WRITE指令被忽略,。寫操作時序如圖3所示。
在字節(jié)的最后一個位0寫入后,,CS必須被拉高,。如果它在其他時間拉高,寫操作不完全。在存儲器寫操作之后跟隨一次非易失性寫操作,??梢酝ㄟ^讀狀態(tài)寄存器的WIP位來判斷非易失性寫是否結束。只有非易失性寫結束之后才可以進行下次寫操作,。
值得注意的是McBSP在SPI模式下,,只有數(shù)據(jù)發(fā)送的時候CLKX端才有時鐘輸出,F(xiàn)SX端才輸出低電平的幀同步信號,。因為在發(fā)送寫使能和寫數(shù)據(jù)指令之間要求CS(即FSX)變高,,所以DSP要分兩次把數(shù)據(jù)送給X5043。且這兩次發(fā)送的字長不同(寫使能一個字節(jié),,寫數(shù)據(jù)三個字節(jié)),,所以在發(fā)送之前需要重新配置McBSP。
3.2.2 讀一個字節(jié)操作
當從E2PROM存儲器陣列讀數(shù)據(jù)時,,首先CS通過FSX引腳拉低為低電平,,然后送READ指令到器件,后面跟隨8位地址,,在后面就是發(fā)送8位無意義的數(shù)據(jù)(目的是為了繼續(xù)產(chǎn)生時鐘信號),。發(fā)送結束后,所選地址中的數(shù)據(jù)從SO端移出到McBSP的數(shù)據(jù)接收引腳,。讀操作時序如圖4所示,。
讀操作和寫操作一樣,都是發(fā)送三個字節(jié)的數(shù)據(jù),,所以McBSP的串口字長要配置為24位,。讀操作發(fā)出以后,通過查看SPCR1寄存器的RRDY位來判斷接收數(shù)據(jù)是否完成,,若RRDY為1,,則讀DRR寄存器獲取數(shù)據(jù)。
3.3 值得注意的地方
無論是寫使能/寫禁止,、寫狀態(tài)寄存器還是寫數(shù)據(jù),,當McBSP相應數(shù)據(jù)發(fā)送結束后,McBSP的時鐘和幀同步信號都將變?yōu)闊o效狀態(tài),,這種無效狀態(tài)要保持至少10μs之上(否則數(shù)據(jù)將無法正確寫入),,然后在讀取X5043的狀態(tài)寄存器,判斷非易失性寫是否結束,,結束了才可以進行其他操作,。
4 結 語
通過SPI接口外接E2PROM,簡化了硬件電路,,提高了系統(tǒng)的可靠性和開發(fā)難度,,具有很實際的應用價值。