- 相關(guān)推薦
高性能FLASH存儲器在DSP電機(jī)智能保護(hù)中的應(yīng)用
摘要:DSP芯片以其高速、實(shí)時性等優(yōu)點(diǎn)逐步被用到電機(jī)保護(hù)中,利用高性能外圍器件尤其是外圍存儲器與DSP的硬件匹配是充分發(fā)揮其優(yōu)點(diǎn)的必要條件。文中以基于TMS320C32高速CPU為核心芯片的智能型電機(jī)保護(hù)裝置為模型,介紹了高性能FLASH芯片Am29F010B與DSP芯片的硬件接口電路、軟件編程技術(shù)以及應(yīng)注意的問題和設(shè)計(jì)技巧。關(guān)鍵詞:Flash存儲器 DSP 嵌入式算法 Am29F010B
國內(nèi)的電動機(jī)保護(hù)裝置種類繁多,但隨著現(xiàn)代大中型電動機(jī)對保護(hù)要求的不斷提高和VLSI技術(shù)的不斷進(jìn)步,傳統(tǒng)的基于熱敏電阻、機(jī)械式繼電器和電子式等保護(hù)模式均因可靠性不高,容易出現(xiàn)誤操作等缺點(diǎn)已不能滿足需要;而以單片機(jī)為核心的數(shù)字或保護(hù)裝置的運(yùn)算速度不高、資源有限、數(shù)據(jù)處理能力和可擴(kuò)展性不好等問題日益突出。新的相關(guān)理論和技術(shù)(如小波變換、自適應(yīng)保護(hù)、故障診斷、模糊整定等)的出現(xiàn)加速了高性能和綜合型微機(jī)保護(hù)的發(fā)展,但這不僅要求更高性能的CPU(如近年飛速發(fā)展的系列DSP芯片)的支持,而且還要有與之相適應(yīng)的外圍存儲器的支持。鑒于此,筆者在開發(fā)基于DSP的大中型智能電動機(jī)保護(hù)裝置(系統(tǒng)結(jié)構(gòu)功能如圖1)時,在外擴(kuò)存儲器方面采用了AMD公司生產(chǎn)的Flash芯片Am29F010B。該Flash memory因容量大、體積小、功耗低、成本低等優(yōu)點(diǎn)而被廣泛應(yīng)用于消費(fèi)類電子、軍事、航空航天等領(lǐng)域。(范文先生網(wǎng)www.gymyzhishaji.com收集整理)它可以在線更新,并具有較高的靈活性,因而可與高性能CPU芯片TMS320C32達(dá)到良好的配合,從而可顯著提高系統(tǒng)性能和可靠性。
1 硬件設(shè)計(jì)
1.1 TMS320C32芯片的特點(diǎn)
美國TI公司生產(chǎn)的TMS320系列DSP芯片以其改進(jìn)的哈佛總線結(jié)構(gòu)、獨(dú)立的指令系統(tǒng)、專用硬件乘法器、多種尋址方式等優(yōu)點(diǎn)以及高速數(shù)據(jù)處理能力廣泛應(yīng)用在通訊、雷達(dá)、工業(yè)控制等領(lǐng)域。TMS320C32是TI的第一代浮點(diǎn)DSP芯片TMS320C3X系列中的一款高性能浮點(diǎn)芯片,是對TMS320C30、TMS320C31中的不常用資源進(jìn)行簡化、并對其性能進(jìn)一步改進(jìn)后的高性價比處理器。它具有增強(qiáng)的外部存儲器接口,可以靈活方便地存取8/16/24/32位數(shù)據(jù)。它支持16/32位外部程序,從而為其外圍接口電路設(shè)計(jì)提供了很大的靈活性;其硬件上增加的一個非常有用的程序引導(dǎo)(Bootloader)功能使其程序可以從低速EPROM、PROM或串口裝入到系統(tǒng)的高速RAM中全速運(yùn)行;它所配備的C編譯器具有很高的效率,可直接用匯編語言或兩者相結(jié)合使用,因而靈活性和實(shí)時性都很強(qiáng);由于中斷矢量表可重設(shè)位,因此,將其應(yīng)用到電動機(jī)保護(hù)中可以大大提高整個保護(hù)裝置的各項(xiàng)性能。
1.2 Flash Memory芯片Am29F010B
Am29F010B是AMD公司生產(chǎn)的多功能閃爍內(nèi)存,它的主要技術(shù)特點(diǎn)如下:
*可單電壓(5V)進(jìn)行讀、寫操作;
*高性能,最大存取時間為45ns;
*可靠性極高,可重復(fù)編程不小于10萬次,數(shù)據(jù)保持大于100年;
*低功耗(讀操作,寫/擦除操作以及空閑狀態(tài)的電流典型值分別為12mA、30mA和1μsA);
*具有扇區(qū)擦除能力,對于所分成的8個完全一樣的分扇區(qū),既可以塊擦除,也可以整個芯片一起擦除;
*嵌入式擦除算法可自動地預(yù)編程和擦除芯片,它可以將設(shè)好的扇區(qū)用嵌入式編程算法自動地編程以把數(shù)據(jù)寫到特定的地址;
*帶有JEDEC標(biāo)準(zhǔn)的Flash EEPROM管腳輸出和命令集;
*具有編程周期結(jié)束檢測功能,可縮短等待時間;
Am29F010B存儲器采用PDIP,PLCC,TSOP封裝,圖2給出了Am29F010B的PDIP封裝引腳圖,各引腳的功能如下:
DQ7~DQ0:雙向數(shù)據(jù)線,可用于輸出數(shù)據(jù)或?qū)懭朊詈蛿?shù)據(jù)。
A0~A16:地址線,其中A16~A14為扇區(qū)地址,可用000~111代表8個扇區(qū),A13~A0為扇區(qū)內(nèi)的字節(jié)地址。
CE:片選線,低電平有效,高電平時芯片處于空閑狀態(tài);
OE,WE:分別為讀、寫控制線。圖3給出了對FLASH編程時,CE、OE和WE的狀態(tài)時序。
其中,PD為編程數(shù)據(jù),tch為CE持續(xù)時間,tcs為CE建立時間,tDS為數(shù)據(jù)建立時間,tDH為數(shù)據(jù)維持時間,twp為寫脈沖寬度。
1.3 Am29F010B與TMS320C32的硬件接口
Am29F010B與TMS320C32的硬件接口電路原理圖如圖4所示。圖中,Am29F010B的17根地址線A0~A16分別與TMS320C32的A0~A16相連。每片Am29F010B的容量為128k×8B。在本開發(fā)系統(tǒng)中,數(shù)據(jù)采用的是32位浮點(diǎn)數(shù),連接方法是將四片8位數(shù)據(jù)寬的Am29F010B一起與TMS320C32連接,即將四片Am29F010B的D0~D7依次與TMS320C32的D0~D7、D8~D15、D16~D23及D24~D31連接,總?cè)萘繛?28k×32B。
TMS320C32的外擴(kuò)存儲器的尋址空間范圍由三組相互獨(dú)立的控制信號STRB0、STRB1和IOSTRB來控制,可用于對相互獨(dú)立的存取空間進(jìn)行操作而不會出現(xiàn)端口沖突。所不同的是,IOSTRB只能用32位寬的程序或數(shù)據(jù)存儲器進(jìn)行存操作;STRB0和STRB1由各自的四個控制引腳來實(shí)現(xiàn),可以用8/16/32位寬的存儲器存取8/16/32位數(shù)據(jù),還可以用16或32位寬的程序存儲器進(jìn)行存取操作,因而比較靈活。
圖4的設(shè)計(jì)中使用的是STRB0,F(xiàn)lash所占的128k×32B存取空間的地址范圍為000000H~01FFFFH,外圍程序存儲器配置為32位,可由PRGW置低電平來實(shí)現(xiàn)。此時各片的片選信號CE分別由STRB0-B0、STRB0-B1、STRB0-B2、STRB0-B3控制。上電復(fù)位后,外部總線接口控制寄存器STRB0可根據(jù)PRGW引腳電平的高低來決定存儲器的寬度控制位和數(shù)據(jù)位數(shù)控制位的復(fù)位值。
2 Am29F010B的在系統(tǒng)編程技術(shù)
2.1 Am29F010B的基本編程操作
對FLASH的基本操作主要有讀、字節(jié)編程、復(fù)位、扇區(qū)擦除、片擦除等。Am29F010B閃爍存儲器的讀操作與普通的存儲器操作相同,它不需要特定的時序,在電路上電或內(nèi)部編程等操作后可自動進(jìn)入讀數(shù)據(jù)狀態(tài)。而擦除和寫操作相對復(fù)雜一些,它不能簡單的直接寫入,同時,out文件不能load到FLASH中,且CCS和CSource Debugger中的load命令均不能對flash寫入,而需要專門的程序才能寫入一系列Flash Memory的命令寄存器中,然后調(diào)用嵌入式算法的內(nèi)部程序來完成相應(yīng)的命令。Am29F010B編程的一般步驟是復(fù)位、擦除、字節(jié)編程等。
(1)復(fù)位操作
復(fù)位命令用以取消擦除或?qū)懭氩僮鞫勾鎯ζ鲝?fù)位。復(fù)位操作不影響各單元的數(shù)據(jù)。在編程、擦除或正常操作出現(xiàn)錯誤時都要使用復(fù)位命令。向FLASH存儲器的任意一個地址寫入0F0H均可使其復(fù)位并進(jìn)入讀數(shù)據(jù)狀態(tài)。
(2)擦除操作
擦除操作的具體軟件命令序列如表1所列。該操作包括按扇區(qū)擦除和整片擦除兩種方式。二者均為6總線周期操作。使用片擦除操作則可一次清除FLASH芯片內(nèi)的所有數(shù)據(jù)。扇區(qū)擦除操作則用于清除某一個扇區(qū)的所有數(shù)據(jù),這在僅需要改動少量數(shù)據(jù)而不是整片數(shù)據(jù)時特別方便。
(3)字節(jié)編程操作
該操作是一個4總線周期指令,可將任意數(shù)據(jù)寫入Am29F010B獨(dú)立使用的編程,只能寫入8位寬的數(shù)據(jù),而本開發(fā)系統(tǒng)每次可寫入32位寬數(shù)據(jù)。具體軟件命令序列如表1所列。
2.2 Am29F010B的編程注意事項(xiàng)及操作技巧
在對Am29F010B進(jìn)行編程操作時,三條關(guān)鍵控制檢測線OE、CE和WE都必須處于正確狀態(tài),當(dāng)CE或WE不是低電平或OE不是高電平時,編程操作將被禁止。
由于在32位浮點(diǎn)芯片TMS320C32進(jìn)行硬件連接時,采用的是4片數(shù)據(jù)寬度為8位的Flash來作為一片數(shù)據(jù)寬度為32位的Flash使用,所以在實(shí)際的總線操作過程中,向?qū)?yīng)地址寫入的數(shù)據(jù)應(yīng)為8位16進(jìn)制數(shù)據(jù)。例如芯片復(fù)位操作時,寫入某一地址的數(shù)據(jù)應(yīng)該是0xF0F0F0,而不應(yīng)是單片時寫入的0xF0。其軟件命令序列可同時參見表1。
表1 Am29F010B編程命令序列表
在Am29F010B擦除及編程操作中使用檢測機(jī)制可確保操作的正確性和有效性。其核心代碼如下:
flash_rase:
……
check_rase:LDI *AR0,R0
NOP
NOP
XOR *AR2,R0
BNZ check_rase
……
RETS
flash_prog:
……
check_prog:LDI * -AR1,R0
NOP
NOP
XOR *-AR1,R0
BNZ check_prog
……
RETS
在將數(shù)據(jù)或程序燒寫到Am29F010B時,應(yīng)先單步執(zhí)行燒寫程序,同時應(yīng)觀察燒寫程序執(zhí)行過程中有無異常。筆者曾遇到過的FLASH的操作指令代碼執(zhí)行后變成.word XXH的情形,后來經(jīng)檢查發(fā)現(xiàn)是由于芯片Am29F010B的地址線引腳再現(xiàn)虛焊所致;另一方面,還要觀察在仿真開發(fā)環(huán)境的存儲區(qū)查看窗口,以觀察FLASH內(nèi)相應(yīng)單元內(nèi)容的變化有否異常。
圖4 Am29F010B與TM320C32的硬件接口電路原理圖
3 結(jié)束語
本文討論的方法在軟、硬件上均已得到實(shí)現(xiàn),對高性能Flash存儲器芯片Am29F010B和高速DSP處理器TMS320C32優(yōu)點(diǎn)的充分利用,使得在硬件和軟件上保證了裝置的先進(jìn)性和高可靠性;目前,該裝置已成功用于WSM2000電動機(jī)智能保護(hù)裝置系統(tǒng)中,而且效果理想。
【高性能FLASH存儲器在DSP電機(jī)智能保護(hù)中的應(yīng)用】相關(guān)文章:
通過JTAG口對DSP外部Flash存儲器的在線編程08-06
Flash存儲器在TMS320C3x系統(tǒng)中的應(yīng)用08-06
鐵電存儲器FM18L08在DSP系統(tǒng)中的應(yīng)用08-06
CPLD在DSP系統(tǒng)中的應(yīng)用設(shè)計(jì)08-06
鐵電存儲器在儀表中的應(yīng)用08-06
TigerSHARC DSP在信號處理系統(tǒng)中的應(yīng)用04-12
利用DSP控制直流無刷電機(jī)08-06