《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 數(shù)字信號處理器TMS320F206復(fù)位問題研究
數(shù)字信號處理器TMS320F206復(fù)位問題研究
孫 光 趙志敏
摘要: 在數(shù)字信號處理器的應(yīng)用系統(tǒng)設(shè)計中,復(fù)位處理是一個最基本又極為關(guān)鍵的問題。較全面地闡述了TMS320F206DSP的復(fù)位和抗干擾問題,并就如何保證DSP系統(tǒng)運行的實時性進行了重點討論,詳細介紹了幾種相關(guān)的復(fù)位方法。
關(guān)鍵詞: DSP 看門狗 TMS320F206 TI
Abstract:
Key words :

    摘  要: 在數(shù)字信號處理器的應(yīng)用系統(tǒng)設(shè)計中,復(fù)位處理是一個最基本又極為關(guān)鍵的問題。較全面地闡述了ti" title="ti">title="TMS320F206" title="TMS320F206">TMS320F206">TMS320F206DSP" title="DSP">DSP的復(fù)位和抗干擾問題,并就如何保證DSP系統(tǒng)運行的實時性進行了重點討論,詳細介紹了幾種相關(guān)的復(fù)位方法。 

    關(guān)鍵詞: TMS320F206  復(fù)位  看門狗" title="看門狗">看門狗  實時性

 

    TMS320F206(以下簡稱F206)是TI公司出產(chǎn)的定點DSP芯片TMS320C2XX系列中的一個成員,F206提供了一個4.5K字的片內(nèi)存儲器,片內(nèi)存儲器操作比外部存儲器具有更高的抗干擾能力、更低的價格和更低的功耗。此外,F206片內(nèi)還集成了32K字的閃速存儲器,當系統(tǒng)斷電后,閃速存儲器內(nèi)容仍保持不變,加電后又可使用。F206的這些特點使得它得到了廣泛的應(yīng)用。 

    在電力故障錄波器的設(shè)計中使用了TMS320F206,主要目的是利用它較強的數(shù)據(jù)處理能力,對電力線路的電壓、電流信號進行連續(xù)的16點FFT運算(采集點數(shù)為64點/周期),計算出基波及各次諧波含量以便更準確地進行故障啟動判斷。系統(tǒng)主要由數(shù)據(jù)采集及邏輯控制、F206(DSP)、硬件監(jiān)控電路、數(shù)據(jù)通信接口等部分構(gòu)成。為了滿足數(shù)據(jù)存儲及處理的需要,還在F206外擴展了64K字的數(shù)據(jù)存儲RAM(四片IDT71256高速RAM芯片)。 

    電力故障錄波器的設(shè)計關(guān)鍵在于保證對電力故障信號及時準確的記錄,系統(tǒng)對實時性的要求相當高。此外,由于變電站、發(fā)電廠環(huán)境中的電磁條件十分復(fù)雜,加之系統(tǒng)運行的時鐘頻率較高,極有可能產(chǎn)生干擾和被干擾現(xiàn)象。有鑒于此,為了保證系統(tǒng)運行的實時性和穩(wěn)定性,必須非常小心地進行復(fù)位及抗干擾設(shè)計。 

    下面就結(jié)合基于TMS320F206的故障錄波器的設(shè)計體會,詳細探討DSP復(fù)位的特點、對系統(tǒng)運行的影響和需要注意的問題。 

1 幾種復(fù)位方式的討論

    對于TMS320F206而言,復(fù)位是不可屏蔽的外部中斷(中斷矢量地址0000H),隨時可用它將F206置于一種已知狀態(tài)。復(fù)位是優(yōu)先級別最高的中斷,一般在加電后芯片處于未知狀態(tài)時對其復(fù)位。因為復(fù)位信號終止存儲器操作并初始化各硬件狀態(tài)位,所以每次復(fù)位后系統(tǒng)應(yīng)重新運行初始化程序。 

    在嚴格的意義上,F206的復(fù)位源只有一個,即復(fù)位引腳RS產(chǎn)生一個低電平脈沖信號,使芯片復(fù)位。為使系統(tǒng)在加電后能正確工作,RS端的低電平有效時間至少需要6個時鐘周期;F206鎖存復(fù)位脈沖并產(chǎn)生足夠長的內(nèi)部復(fù)位脈沖以確保芯片復(fù)位;在RS上升沿后16個周期,芯片完成對硬件的初始化并從0000H單元開始執(zhí)行第一條指令,通常這里是一條分支到系統(tǒng)初始化程序的跳轉(zhuǎn)指令。 

    雖然F206嚴格意義上的復(fù)位源只有一個,但根據(jù)對復(fù)位源的不同操作,F206的復(fù)位又可以分為上電復(fù)位、硬件監(jiān)控復(fù)位、軟件復(fù)位等幾種不同的方式。 

1.1 上電復(fù)位

    前面已介紹過,對于TMS320F206數(shù)字信號處理器而言,為使芯片初始化正確,一般應(yīng)保證復(fù)位端(RS)低電平至少持續(xù)6個時鐘周期,即當時鐘為20MHz時為300ns。但在上電后,系統(tǒng)的晶振往往需要幾百毫秒的穩(wěn)定期,一般為100ms~300ms。根據(jù)這一特點,可以使用如圖1中所示的上電復(fù)位電路。 

 

 

1.2 硬件監(jiān)控復(fù)位(看門狗)

    由于TMS320F206的工作時鐘頻率較高,加之故障錄波器的工作環(huán)境電磁干擾比較嚴重,為保證設(shè)備的正常運行,必須設(shè)置硬件監(jiān)控功能。 

    F206芯片中并沒有內(nèi)置看門狗功能,所以只能使用外部硬件監(jiān)控電路。在有些DSP的相關(guān)設(shè)計資料中經(jīng)常推薦使用MAX706硬件監(jiān)控芯片,這種芯片具有時間長達1.6s的看門狗定時器功能,還具備上電復(fù)位和電源監(jiān)控功能。 

    但是,根據(jù)我們的設(shè)計經(jīng)驗和對系統(tǒng)運行的仔細分析,使用MAX706等類似的許多硬件監(jiān)控芯片存在兩個需要注意的問題。第一,看門狗定時器的時間過長,MAX706的典型時間為1.6s,也就是說,當DSP中的程序運行產(chǎn)生錯誤時,MAX706要在1.6s(相當于80個工頻周期)后才能發(fā)出復(fù)位信號。第二,監(jiān)控芯片輸出的復(fù)位信號脈沖寬度過大,MAX706的典型值為200ms(相當于10個工頻周期),這主要是為了兼顧上電復(fù)位時對晶振100ms~300ms穩(wěn)定期的要求。因此,從程序運行產(chǎn)生錯誤到DSP芯片完成復(fù)位,將有共1.8s的非受控時間,這對實時性要求很高的電力故障錄波器來說是不能忍受的,如果在此期間電網(wǎng)發(fā)生故障,錄波器將無法作出正確的反應(yīng)。很顯然,必須尋找一種具有合適看門狗定時器時間和復(fù)位脈沖寬度的硬件監(jiān)控芯片。 

    在這里,必須明確對看門狗定時器時間的選擇條件。在程序設(shè)計中,為了保證硬件監(jiān)控效果,不宜過多地設(shè)置對看門狗芯片的操作,一般應(yīng)在程序循環(huán)的關(guān)鍵部位設(shè)置一至兩處對看門狗芯片的觸發(fā)。所以,看門狗定時器的時間只要大于一個需時最長的程序循環(huán)即可。在基于F206的故障錄波器中,需時最長的程序循環(huán)包含一個16點的FFT運算,整個程序循環(huán)的總時間小于2ms。 

    由此看來,硬件監(jiān)控電路的看門狗時間只要大于2ms即可滿足要求,過長的看門狗時間是不必要的,對保證裝置的實時性也是十分不利的。 

    根據(jù)以上標準,我們選用了MAX6374監(jiān)控芯片,其看門狗定時器時間可以通過外部引腳ST2、ST1、ST0的邏輯電平進行精確調(diào)節(jié),其引腳電平與看門狗定時器時間的關(guān)系如表1所示。

 

 

    在此將看門狗定時器時間調(diào)節(jié)在3ms。 

    在對MAX6374監(jiān)控芯片的觸發(fā)操作時,為了保證程序的緊湊和監(jiān)控的有效,不宜采用在一處發(fā)脈沖的方式,而應(yīng)該在程序的一點發(fā)出高電平,然后在另一點將電平變低,如此循環(huán)往復(fù)地觸發(fā)看門狗定時器。 

    MAX6374的復(fù)位脈沖寬度為1μs,相當于20個DSP時鐘周期(系統(tǒng)采用20MHz有源晶體振蕩器),完全滿足F206的復(fù)位要求。 

    MAX6374監(jiān)控芯片沒有上電復(fù)位和電壓監(jiān)控功能,需要另外設(shè)計上電復(fù)位電路。 

1.3 軟件復(fù)位

    除了使用硬件監(jiān)控功能外,在DSP系統(tǒng)的設(shè)計中,為了確保程序運行的準確可靠,還經(jīng)常使用軟件復(fù)位,即在程序開始時在內(nèi)存中的特定位置設(shè)置標志,在程序循環(huán)或運行的重要位置檢測標志,若標志發(fā)生改變,則判斷系統(tǒng)因干擾或其它原因造成內(nèi)存中數(shù)據(jù)錯誤,進而發(fā)出軟件復(fù)位指令使系統(tǒng)復(fù)位,以免造成運行錯誤。 

    具體在故障錄波器的設(shè)計中,我們在片內(nèi)數(shù)據(jù)RAM和片外數(shù)據(jù)RAM中設(shè)置了若干檢測標志,在每次程序循環(huán)時都對標志進行檢查。若片外數(shù)據(jù)RAM中的檢測標志發(fā)生變化,則認為片外數(shù)據(jù)RAM受到了干擾而產(chǎn)生錯誤;若片內(nèi)數(shù)據(jù)RAM中的檢測標志發(fā)生變化,則認為DSP芯片也受到了干擾而產(chǎn)生錯誤。實際經(jīng)驗表明,片外RAM受干擾發(fā)生錯誤的概率遠大于DSP芯片受干擾時的情況。 

    但是,在TMS320F206的指令中,并沒有軟件復(fù)位指令,那么如何實現(xiàn)軟件復(fù)位功能呢?在設(shè)計中,我們可以利用程序指令NMI觸發(fā)不可屏蔽中斷NMI進行復(fù)位操作,注意此時應(yīng)該將芯片的NMI引腳通過上拉電阻接至電源正端,以防止意外的中斷。 

    在這里有兩種利用NMI中斷產(chǎn)生軟件復(fù)位的方法:第一種是在NMI中斷矢量處或者中斷服務(wù)程序中放置一條無條件跳轉(zhuǎn)指令,使程序重新從0000H或指定的程序空間地址開始運行,但此時不影響芯片的任何模式也不中止正在工作的指令和存儲器操作。很顯然,這種軟件復(fù)位并非真正意義上的復(fù)位操作,而只是進行程序初始化。這種方法適用于僅外部數(shù)據(jù)RAM被干擾時的情況。 

    第二種方法是將F206芯片的外部輸出引腳XF引至芯片的復(fù)位輸入端RS,在NMI中斷服務(wù)程序中將XF端置零以產(chǎn)生硬件復(fù)位信號(這里需要特別指出的是,XF端在芯片復(fù)位期間及復(fù)位后狀態(tài)為1)。顯然,此時芯片的復(fù)位操作與上電復(fù)位相同。這種方法適用于內(nèi)部數(shù)據(jù)RAM被干擾時的情況。 

    綜上所述,可以將幾種在DSP運行時產(chǎn)生復(fù)位的方式列表比較,如表2所示。 

 

 

    在程序設(shè)計中綜合采用以上幾種復(fù)位方式,完整的系統(tǒng)復(fù)位原理圖(包括上電復(fù)位)如圖1所示。 

    圖中,在F206的復(fù)位端()接一個或門的主要目的是為了將幾種低電位的復(fù)位信號隔離起來,不至于互相影響。 

2 進一步的說明

    (1)在基于TMS320F206的電力故障錄波器設(shè)計中綜合使用了本文中討論的復(fù)位方法,其目的是在電磁干擾比較嚴重的工作條件下盡量保證裝置運行的實時性和可靠性。但是,在一般的DSP系統(tǒng)設(shè)計時可以有選擇地加以運用,而非需要全部使用到。實際上,在許多情況下,只要工作環(huán)境不是十分惡劣,并且印制板和軟件設(shè)計合理,DSP系統(tǒng)不采用外部硬件監(jiān)控也可以非常穩(wěn)定地工作。 

    (2)雖然本文中的討論是圍繞TMS320F206展開的,但其思想也適用于TMS320F2XX和TMS320F24X兩個系列的其它型號的DSP。需要指出的是,主要用于控制領(lǐng)域的TMS320F24X芯片中自帶了硬件監(jiān)控電路而不需要外加。 

    (3)選擇看門狗定時器時間必須充分考慮到程序設(shè)計中的中斷嵌套、查詢等待、外部低速器件(如液晶顯示屏)等影響程序完成一個循環(huán)所需時間的各種因素并留有余量,否則會產(chǎn)生意外的看門狗復(fù)位,具體時間應(yīng)由試驗決定。在設(shè)計初始階段最穩(wěn)妥的辦法是在監(jiān)控芯片的時間選擇端設(shè)置撥位開關(guān),以便根據(jù)實際情況進行選擇。 

參考文獻

1 張芳蘭.TMS320C2XX用戶指南. 北京:電子工業(yè)出版社,1999 

2 張雄偉,曹鐵勇.DSP芯片的原理與開發(fā)應(yīng)用(第2版).北京:電子工業(yè)出版社,2000 

3 劉文東,蔡茂國,楊淑雯.TMS320F206設(shè)計中應(yīng)注意的幾個問題. 北京:電子技術(shù)應(yīng)用,2001;27(8) 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。