張元敏 羅書克
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,MISO);串行數(shù)據(jù)輸出信號線(Master Out Slave In,MOSI);移位時鐘信號線(SCK);從設備片選信號線(SS)。
2 VC5402的多通道緩存串行口
2.1 McBSP 的功能特點
TMS320V5402 是TI 生產(chǎn)的第二代低功耗定點數(shù)字信號處理器,提供了兩個高速、全雙工、多通道緩存串行口,每個串行口可以支持128 通道,速度達100 Mb/s。狹cBSP是在標準串行接口的基礎之上對功能進行擴展,因此,具有與標準串行接口相同的基本功能:
(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個管腳組成,各個管腳功能如下所示:
〤S:片選端,當〤S為低時,X5043選中。在任何操作之前,需要先在〤S上有一次由高至低的跳變;
SO:串行數(shù)據(jù)輸出端,當讀周期時,數(shù)據(jù)從該引腳移出;
SI:串行數(shù)據(jù)輸入引腳,所要寫入存儲器的操作碼,字節(jié)地址和數(shù)據(jù)都從該引腳輸入;
¦P:當¦P為低時,向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作為主設備使用。
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,〧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ā)送和接收置位在等待兩個時鐘周期,這時才可以進行其他操作。
[BT3+*3]3.2 X5043的讀寫操作
X5043的讀操作包括讀狀態(tài)寄存器、讀存儲器陣列(即讀數(shù)據(jù))。寫操作包括寫使能/寫禁止、寫狀態(tài)寄存器、寫存儲器陣列(寫數(shù)據(jù))。
X5043的指令組如表1所示。
指令名稱指令格式操作
WREN00000110設置寫使能鎖存位
WRDI00000100復位寫使能鎖存位
[BH]RSDR00000101讀狀態(tài)寄存器
[BH]WRSR00000001寫狀態(tài)寄存器
[BH]READ00000011讀存儲器陣列的數(shù)據(jù)
[BH]WRITE00000010寫數(shù)據(jù)至存儲器陣列[HJ0][HJ][HT5SS]
下面主要講一下對單個數(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端才有時鐘輸出,FSX端才輸出低電平的幀同步信號。因為在發(fā)送寫使能和寫數(shù)據(jù)指令之間要求CS(即FSX)變高,所以DSP要分兩次把數(shù)據(jù)送給X5043。且這兩次發(fā)送的字長不同(寫使能一個字節(jié),寫數(shù)據(jù)三個字節(jié)),所以在發(fā)送之前需要重新配置McBSP。
[BT4]3.2.2 讀一個字節(jié)操作
當從E2PROM存儲器陣列讀數(shù)據(jù)時,首先〤S通過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ā)難度,具有很實際的應用價值。
參 考 文 獻
[1]Coding of Speech at 8 Kb/s Using Conjugate[CD*2]structure Algebraic[CD*2]cod Excited Linear[CD*2]Prediction.ITU[CD*2]T Recommendation G.729,1996.
[JP2][2]Redwan Salam,Laflamme I Claude.Reduced Complexity 8 Kb/s CSACELP Codec for Digital Simultaneous Voice and Data[J].IEEE Communication Magazine,1997,9:56[CD*2]63.[JP]
[3]吳俊偉,金春竹,王小旭,等.基于DSP的串口擴展及多協(xié)議異步串口設計[J].測控技術,2008,27(11):49[CD*2]51.
[JP2][4]Shaw[CD*2]Hwa Hwang.Computational Improvement for G.729 Standard[J].IEEE Electronics Letters,2000,36(13):1 163[CD*2]1 164.[JP]
[5]TI公司.TMS320C54X DSP Reference Set[Z].2004.
[6]TI公司.TMS320VC5409數(shù)據(jù)手冊[Z].2004.
[7]相里坤.TMS320F24x 系列芯片串行接口的設計與擴展[J].無線電工程,2008,38(8):52[CD*2]54.
[8]鄭爭兵.基于DSP 的串行通信接口設計[J].測試測量技術,2008(7):13[CD*2]15.
[9]劉金河,于剛,陸鋒.基于DSP McBSP 輸入輸出通信的軟件設計[J].現(xiàn)代電子技術,2008,31(1):134[CD*2]136.
[10]暢洪亮,程維,蔡學敬.TMS320VC5402 HPI接口與PCI總線接口設計[J].單片機與嵌入式系統(tǒng)應用,2006(10):76[CD*2]77.
作者簡介 張元敏 男,1963年出生,教授。主要從事電工、電子技術方面的教學研究工作。