系統(tǒng)中斷
根據(jù)處理器的最終應(yīng)用,有多種外部器件可以中斷處理器。這些中斷信號包括數(shù)據(jù)采集和數(shù)據(jù)處理兩種請求,F(xiàn)在,通過分離對微處理器的數(shù)據(jù)處理請求,可以由外部 CPLD 來處理數(shù)據(jù)采集請求。利用 CPLD 來處理數(shù)據(jù)采集中斷可以卸載對微處理器的中斷請求,從而降低功耗。
是否可將數(shù)據(jù)采集中斷類型劃歸 CPLD 取決于最終應(yīng)用。可以將要求對輸入數(shù)據(jù)予以響應(yīng)的外設(shè)或輸入數(shù)據(jù)劃為數(shù)據(jù)采集中斷請求類型。數(shù)據(jù)采集中斷包括:
存儲器存取中斷
I2C、UART、SPI 和 ISA 等通信接口
通用 I/O 中斷
LCD 接口中斷
這并非可由 CPLD 處理的中斷的完整列表,只是為系統(tǒng)設(shè)計提供一個起點。
操作流程
圖 5 所示為 CPLD 設(shè)計的主要操作流程。CPLD 一旦識別出有效的外部中斷,就會自我判斷是否具有處理該中斷的功能。CPLD 處理該中斷之后,會向處理器發(fā)出一個中斷申請,請求其進行所要求的數(shù)據(jù)處理。CPLD 如果不能處理該中斷,則將其傳遞給處理器。CPLD 還負(fù)責(zé)監(jiān)測處理器的操作狀態(tài)。
功能
低功耗 CPLD 設(shè)計由處理中斷請求的中斷接口和控制器、處理中斷的功能以及處理器接口組成。下面分別詳述 CPLD 的各主要功能:
系統(tǒng)器件的中斷接口
中斷控制器
用于中斷處理的外設(shè)接口
微處理器中斷接口
微處理器操作模式接口
中斷接口
CPLD 的中斷接口接收經(jīng)過微處理器識別的所有外部器件的中斷請求。該中斷接口判斷 CPLD 是否有能力處理相應(yīng)的中斷請求。CPLD 對請求數(shù)據(jù)接收和存儲功能的數(shù)據(jù)采集中斷進行處理。CPLD 如果不能處理該中斷,則將其傳遞給微處理器。
CPLD 的中斷接口為所有中斷源提供屏蔽功能,并且具有判斷中斷源的能力。可編程邏輯能夠靈活地改變觸發(fā)模式,包括高低電平敏感觸發(fā)模式和升降沿敏感觸發(fā)模式。CPLD 的中斷控制寄存器與微處理器中的寄存器相似。
中斷控制器
CPLD 的中斷控制器模擬系統(tǒng)微處理器中的功能。該中斷控制器判斷數(shù)據(jù)采集中斷來自哪個器件,然后啟動中斷處理。CPLD 處理本該由微處理器處理的數(shù)據(jù)采集中斷請求。
中斷控制器啟動處理請求的操作。由 CPLD 從遠程器件接收數(shù)據(jù)的應(yīng)用就是這樣的例子。該器件請求將所傳送的數(shù)據(jù)寫入存儲器。CPLD 的中斷控制器識別出有效中斷,然后啟動存儲器接口來解譯數(shù)據(jù)。
外設(shè)接口
CPLD 提供處理中斷請求所需的系統(tǒng)器件接口。所需器件接口取決于最終應(yīng)用。如果外部器件向 CPLD 發(fā)出中斷請求,要求對存儲元件進行數(shù)據(jù)讀寫操作,則 CPLD 設(shè)計中就需具備該存儲器的接口。所需接口類型可以為存儲器接口、LCD 接口以及 PCI、UART、SPI 和 ISA 等通信接口。
微處理器中斷接口
像請求處理器提供服務(wù)的所有外部器件一樣,CPLD 也具有向微處理器發(fā)出中斷的功能。CPLD 必須能夠在完成數(shù)據(jù)采集操作之后向微處理器發(fā)出中斷。設(shè)計人員可以為來自 CPLD 的中斷請求設(shè)置優(yōu)先級,并可選擇該中斷是否喚醒處于斷電狀態(tài)的處理器。
微處理器操作模式接口
CPLD 是否能識別處理器的操作狀態(tài)取決于系統(tǒng)微處理器。有些微處理器提供表示當(dāng)前操作模式的外部引腳。CPLD 可能會識別出處理器的當(dāng)前操作狀態(tài),并且確定是否向處理器發(fā)出執(zhí)行等待中斷的請求,這取決于 CPLD 和微處理器的設(shè)計。例如,如果 CPLD 接收到低優(yōu)先級中斷,而處理器無需從低功耗狀態(tài)轉(zhuǎn)至其他狀態(tài),則 CPLD 可以創(chuàng)建一個寄存器以指示將中斷掛起。然后,當(dāng)處理器蘇醒時,可由微處理器讀取掛起中斷的寄存器。
優(yōu)點
圖 6 和圖 7 所示為可在一種典型電池供電器件中實現(xiàn)的節(jié)電效果;其中圖 7 所示為使用先進的低功耗 CPLD,圖 6 所示為使用獨立的微處理器設(shè)計。與通過延長微處理器低功耗模式所實現(xiàn)的節(jié)電效果相比,CPLD 的功耗要求微不足道。典型低功耗 CPLD 的待機電流約為 100μA。操作功耗取決于應(yīng)用和時鐘頻率。對于充滿 16 位計數(shù)器和 50MHz 時鐘的 64 宏單元的 CPLD 來說,ICC 約為 10mA。請注意,所實現(xiàn)的實際節(jié)電效果取決于系統(tǒng)設(shè)計,包括微處理器類型和 CPLD 設(shè)計。
隨著用 CPLD 獲得節(jié)電效果,中斷響應(yīng)時間也縮短了。外設(shè)不必再等待微處理器從節(jié)電狀態(tài)蘇醒的延遲時間?梢詫崿F(xiàn)的其他設(shè)計節(jié)省項包括:
減少對處理器的中斷請求數(shù)
減少一定時長上的處理器喚醒周期數(shù)
在不影響吞吐量的情況下降低時鐘頻率
進行數(shù)據(jù)處理操作時以較低頻率運行處理器
進行數(shù)據(jù)采集操作時以較高頻率運行 CPLD
結(jié)論
設(shè)計功耗敏感型應(yīng)用不僅涉及使用軟件進行電源管理,還涉及運用硬件設(shè)計技巧。通過設(shè)計低功耗 CPLD 來延長微處理器的低功耗操作狀態(tài),可以顯著降低系統(tǒng)功耗。當(dāng)今市場上的最新 CPLD 可以為任何最終應(yīng)用提供低功耗和高速度的靈活組合應(yīng)用。
參考文獻
《Intel StrongARM SA-1110 微處理器開發(fā)手冊》,2000 年 6 月。
《摩托羅拉半導(dǎo)體應(yīng)用指南》之“DragonBall 電源管理”,摩托羅拉公司,1998 年。
《Geode GX1 處理器系列低功耗集成 x86 解決方案》,National Semiconductor 公司,2000 年 10 月。
《微處理器報告》,1999 年 9 月。
《第 27 期微處理器/控制器年度報告》之“EDN 訪問”,2000 年 9 月。





