TMS3206(以下簡稱F206)是TI公司生產的定點DSP芯片TMS320C2XX系列中的一個成員,F206提供了一個4.5K字的片內存儲器,片內存儲器操作比外部存儲器具有更高的抗干擾能力、更低的價格和更低的功耗。此外,F206片內還集成了32K字的閃速存儲器,當系統斷電后,閃速存儲器內容仍保持不變,加電后又可使用。F206的這些特點使得到了廣泛的應用。
在電力故障錄波器的設計中使用了TMS320F206,主要目是是利用它較強的數據處理能力,對電力線路的電壓、電流信號進行連續的16點FFT運行(采集點數為64點/周期),計算出基波及各次諧波含量以便更準確地進行故障啟動判斷。系統主要由數據采集及邏輯控制、F206(DSP)、硬件監控電路、數據通信接口等部分構成。為了滿足數據存儲及處理的需要,還在F206外擴展了64K字的數據存儲RAM(四片IDT71256高速RAM芯片)。
電力故障錄波器的設計關鍵在于保證對電力故障信號及時準確的記錄,系統對實時性的要求相當高。此外,由于變電站、發電廠環境中的電磁條件十分復雜,加之系統運行的時鐘頻率較高,極有可能產生干擾和被干擾現象。有鑒于此,為了保證系統運行的實時性和穩定性,必須非常小心地進行復位及抗干擾設計。
下面就結合基于TMS320F206的故障錄波器的設計體會,詳細探討DSP復位的特點、對系統運行的影響和需要注意的問題。
1 幾種復位方式的討論
對于TM320F206而言,復位是不可屏蔽的外部中斷(中斷矢量地址0000H),隨時可用它外F206置于一種已知狀態。復位是優先級別最高的中斷,一般在加電后芯片處于未知狀態時對其復位。因為復位信號終止存儲器操作并初始化各硬件狀態位,所以每次復位后系統應重新運行初始化程序。
在嚴格的意義上,F206的復位源只有一個,即復位引腳RS產生一個低電平脈沖信號,使芯片復位。為使系統在加電后能正確工作,RS端的低電平有效時間至少需要6個時鐘周期;F206鎖存復位脈沖并產生足夠長的內部復位脈沖以確保芯片復位;在RS上升沿后16個周期,芯片完成對硬件的初始化并從0000H單元開始執行第一條指令,通常這里是一條分支到系統初始化程序的跳轉指令。
雖然F206嚴格意義上的復位源只有一個,但根據對復位源的不同操作,F206的復位又可以分上電復位、硬件監復位、軟件復位等幾種不同的方式。
1.1 上電復位
前面已介紹過,對于TMS320F206數字信號處理器而言,為使芯片初始化正確,一般應保證復位端(RS)低電平至少持續6個時鐘周期,即當時鐘為20MHz時為300ns。但在上電后,系統的晶振往往需要幾百毫秒的穩定期,一般為100ms~300ms。根據這一特點,可以使用如圖1中所示的上電復位電路。
1.2 硬件監控復位(看門狗)
由于TMS320F206的工作時鐘頻率較高,加之故障錄波器的工作環境電磁干擾比較嚴重,為保證設備的正常運行,必須設置硬件監控功能。
F206芯片中并沒有內置看門狗功能,所以只能使用外部硬件監控電路。在有些DSP的相關設計資料中經常推薦使用MAX706硬件監控芯片,這種芯片具有時間長達1.6s的看門狗定時器功能,這具備上電復位和電源監控功能。
但是,根據我們的設計經驗和對系統運行的仔細分析,使用MAX706等類似的許多硬件監控芯片存在兩個需要注意的問題。第一,看門狗定時器的時間過長,MAX706的典型時間為1.6s,也就是說,當DSP中的程序運行產生錯誤時,MAX706的典型時間為1.6s,也就是說,當DSP中的程序運行產生錯誤時,MAX706要在1.6s(相當于80個工頻周期)后才能發出復位信號。第二,監控芯片輸出的復位信號脈沖寬度過大,MAX706的典型值為200ms(相當于10個工頻周期),這主要是為了兼顧上電復位時對晶振100ms~300ms穩定期的要求。因此,從程序運行產生錯誤到DSP芯片完成復位,將有共1.8s的非受控時間,這對實時性要求很高的電力故障錄波器來說是不能忍受的,如果在此期間電網發生故障,錄波器將無法作出正確的反應。很顯然,必須尋找一種具有合適看門狗定時器時間和復位脈沖寬度的硬件監控芯片。
由此看來,硬件監控電路的看門狗時間只要大于2ms即可滿足要求,過長的看門狗時間是不必要的,對保證裝置的實時性也是十分不利的。
根據以上標準,我們選用了MAX6374監控芯片,其看門狗定時器時間可以通過外部引腳ST2、ST1、ST0的邏輯電平進行精確調節,其引腳電平與看門狗定時器時間的關系如表1所示。
表1 MAX6374引腳電平與看門狗定時器時間的關系
ST2電平 | ST1電平 | ST0電平 | 看門狗定時器時間 |
0 0 0 0 1 1 1 1 |
0
0 1 1 0 0 1 1 |
0
1 0 1 0 1 0 1 |
3ms
3s 1s 禁止看門狗功能 30μs 1s 10s 10s |
在此將看門狗定時器時間調節在3ms。
在對MAX6374監控芯片的觸發操作時,為了保證程序的緊湊和監控的有效,不宜采用在一處發脈沖的方式,而應該在程序的一點發出高電平,然后在另一點將電平變低,如此循環復地觸發看門狗定時器。
MAX6374的復位脈沖寬度為1μs,相當于20個DSP時鐘周期(系統采用20MHz有源晶體振蕩器),完全滿足F206的復位要求。
MAX6374監控芯片沒有上電復位和電壓監控功能,需要另外設計上電復位電路。
1.3 軟件復位
除了使用硬件監控功能外,在DSP系統的設計中,為了確保程序運行的準確可靠,還經常使用軟件復位,即在程序開始時在內存中的特定位置設置標志,在程序循環或運行的重要位置檢測標志,若標志發生改變,則判斷系統因干擾或其它原因造成內存中數據錯誤,進而發出軟件復位指令使系統復位,以免造成運行錯誤。
具體在故障錄波器的設計中,我們在片內數據RAM和片外數據RAM中設置了若干檢測標志,在每次程序循環時都對標志進行檢查。若片外數據RAM中的檢測標志發生變化,則認為片外數據RAM受到了干擾而產生錯誤;若片內數據RAM中的檢測標志發生變化,則認為DSP芯片也受到了干擾而產生錯誤。實際經驗表明,片外RAM受干擾發生錯誤的概率遠大于DSP芯片受干擾時的情況。
但是,在TMS320F206的指令中,并沒有軟件復位指令,那么如何實現軟件復位功能呢?在設計中,我們可以利用程序指令NMI觸發不可屏蔽中斷NMI進行復位操作,注意此時應該將芯片的NMI引腳通過上位電阻接至電源正端,以防止意外的中斷。
在這里有兩種利用NMI中斷產生軟件復位的方法:第一種是NMI中斷矢量處或者中斷服務程序中放置一條無條件跳轉指令,使程序重新從0000H或指定的程序空間地址開始運行,但此時不影響芯片的任何模式也不中上正在工作的指令和存儲器操作。很顯然,這種軟件復位并非真正意義的的復位操作,而只是進行程序初始化。這種方法適用于僅外部數據RAM被干擾時的情況。
第二種方法是將F206芯片的外部輸出引腳XF引至芯片的復位輸入端RS,在NMI中斷服務程序中將XF端置零以產生硬件復位信號(這里需要特別指出的是,XF端的芯片復位期間及復位后狀態為1)。顯然,此時芯片的復位操作與上電復位相同。這種方法適用于內部數據RAM被干擾時的情況。
綜上所述,可以將幾種在DSP運行時產生復位的方式列表比較,如表2所示。
表2 幾種復位方式比較
硬件監控復位 | 軟件復位方式1 | 較件復位方式2 | |
是否進行硬件初始化 | 是 | 否 | 是 |
對干擾的反應時間 | 長 | 短 | 較短 |
對程序運行連續性的影響 | 大 | 小 | 大 |
抗干擾處理能力 | 強 | 弱 | 較強 |
在程序設計中綜合采用以上幾種復位方式,完整的系統復位原理圖(包括電復位)如圖1所示。
圖中,在F206的復位端(RS)接一個或門的主目的是為了將幾種低電位的復位信號隔離起來,不至于互相影響。
2 進一步的說明
(1)在基于TMS320F206的電力故障錄波器設計中綜合使用了本文中討論的復位方法,其目的是在電磁干擾比較嚴重的工作條件下盡量保證裝置運行的實時性和可靠性。但是,在一般的DSP系統設計時可以有選擇地加以運用,而非需要全部使用到。實際上,在許多情況下,只要工作環境不是十分惡劣,并且印制板和軟件設計合理,DSP系統不采用外部硬件監控也可以非常穩定地工作。
(2)雖然本文中的討論是圍繞TMS320F206展開的,但其思想也適用于TMS320F2XX和TMS320F24X兩個系列的其它型號的DSP。需要指出的是,主要用于控制領域的TMS320F24X芯片中自帶了硬件監控電路而不需要外加。
(3)選擇看門狗定時器時間必須充分考慮到程序設計中的中斷嵌、查詢等待、外部低速器件(如液晶顯示屏)等影響程序完成一個循環所需時間的各種因素并留有余量,否則會產生意外的看門狗復位,具體時間應由試驗決定。在設計初始階段最穩妥的辦法是在監控芯片的時間選擇端設置撥位開關,以便根據實際情況進行選擇。
評論
查看更多