使用Smart I/O模塊實(shí)現(xiàn)管腳電平數(shù)字邏輯功能和降低CPU負(fù)載
摘要
本文引用地址:http://m.butianyuan.cn/article/201608/295245.htm在系統(tǒng)集成和電路板設(shè)計(jì)過程中,工程師常常需要根據(jù)輸入輸出信號(hào)實(shí)現(xiàn)管腳電平數(shù)字邏輯功能。使用外置獨(dú)立邏輯元件通常會(huì)造成物料成本增加,因而不適合低成本系統(tǒng)。此外,微控制器需要具備高效的功率,才能實(shí)現(xiàn)電池驅(qū)動(dòng)設(shè)備的長時(shí)間工作。這些問題在芯片設(shè)計(jì)層面就可以得到解決,方法是將可編程邏輯模塊添加到輸入輸出端口,以集成與輸入輸出相關(guān)的板級(jí)膠合邏輯功能,并減少微控制器的一些信號(hào)處理任務(wù),降低設(shè)備功耗。 我們提供了LED控制等應(yīng)用示例,以展示邏輯門在減少物料成本和設(shè)備功耗方面所起的作用。
芯片設(shè)計(jì)工程師常常需要根據(jù)輸入輸出信號(hào)(Input and Output, I/O)實(shí)現(xiàn)管腳電平數(shù)字邏輯。例如,系統(tǒng)工程師利用微控制器進(jìn)行時(shí)鐘增殖時(shí)常常需要?jiǎng)?chuàng)建時(shí)鐘樹,將輸入時(shí)鐘輸入至多個(gè)緩沖時(shí)鐘(具有適當(dāng)?shù)尿?qū)動(dòng)能力),和/或倒轉(zhuǎn)時(shí)鐘極性。還有許多場景下,系統(tǒng)工程師必須對I/O信號(hào)進(jìn)行邏輯組合。 他們通常的方案是利用離散組合邏輯模塊等外置元件實(shí)施最后時(shí)刻的改變,使用“藍(lán)線(blue wire)”將元件連接起來。這不僅提高了物料成本,而且還會(huì)影響生產(chǎn)PCB時(shí)耗時(shí)的自轉(zhuǎn)步驟。
圖 1 MCU + 離散邏輯芯片
隨著電池供電設(shè)備的快速增長,功耗已成為系統(tǒng)工程師關(guān)心的重要問題。每節(jié)省一點(diǎn)電能都將延長電池一次充電的使用時(shí)間。因此,系統(tǒng)工程師嘗試在硬件上完成一些簡單的I/O信號(hào)處理任務(wù)來降低CPU負(fù)載——CPU是系統(tǒng)的主要耗電部件。例如,將兩個(gè)脈寬調(diào)制(PWM)信號(hào)輸入到異或門,,輸出信號(hào)即可實(shí)現(xiàn)呼吸燈。兩個(gè)PWM信號(hào)擁有微小的頻率差,頻率差產(chǎn)生的拍頻就是呼吸燈期望的呼吸頻率。在這個(gè)方案中,如果固件中實(shí)現(xiàn)了運(yùn)行邏輯,CPU將無需定時(shí)啟動(dòng)。
圖2 8個(gè)呼吸燈的硬件實(shí)現(xiàn)
今天的微控制器已經(jīng)可以在I/O口上提供可編程邏輯功能以集成板級(jí)膠合邏輯I/O功能,如與門、或門和異或門。圖3顯示了Smart I/O模塊的集成方式。Smart I/O模塊放在微控制器(MCU)的外設(shè)(如TCPWM、UART和 SPI)和I/O口之間的信號(hào)路徑上。I/O口的輸入信號(hào)可以先進(jìn)行邏輯操作,然后路由到MCU的外設(shè)和芯片的連接單元。同樣地,外設(shè)的輸出信號(hào)和芯片的內(nèi)部連接信號(hào)可以先進(jìn)行邏輯操作,然后路由到GPIO端口。Smart I/O模塊甚至可以在低功率模式下運(yùn)行,并在必要時(shí)使用端口中斷喚醒芯片。
圖?3.MCU中Smart I/O的示例
Smart I/O模塊元件
每個(gè)Smart I/O模塊與端口綁定,可以對該端口輸入輸出信號(hào)進(jìn)行操作。以賽普拉斯的PSoC 4為例,Smart I/O模塊由具有互聯(lián)矩陣的8個(gè)三輸入查找表(Look-Up Table, LUT)組成,如圖4所示。
圖4.Smart I/O查找表
Smart I/O可利用互聯(lián)矩陣靈活地進(jìn)行互聯(lián)。用戶無需編寫任何代碼即可配置Smart I/O模塊。MCU設(shè)計(jì)工具鏈(具體到本文情況是PSoC Creator)利用圖形用戶界面(GUI)簡化了Smart I/O模塊的配置。
查找表的輸入輸出信號(hào)可以在GUI的下拉列表中選擇來輕松配置。Smart I/O查找表的真值表可以通過限定輸出值為所有可能的輸入組合進(jìn)行配置,如圖5所示:
圖5. 在PSoC Creator中配置Smart I/O查找表
Smart I/O模塊的應(yīng)用
有許多應(yīng)用都可以利用Smart I/O減少物料成本、降低CPU負(fù)載和設(shè)備功耗。下面介紹其中兩個(gè)應(yīng)用:
利用Smart I/O實(shí)現(xiàn)邏輯功能-Smart I/O查找表可用作通用邏輯元件來構(gòu)建定制邏輯功能,比如邏輯門、4線-2線優(yōu)先編碼器、移位寄存器和脈沖干擾濾波器。
圖6 是通過將2個(gè)具有微小頻率差的PWM信號(hào)連接至異或門,實(shí)現(xiàn)一個(gè)呼吸燈。圖7是利用PSoC 4 MCU中的Smart I/O達(dá)到的呼吸燈效果。這里,通過配置查找表真值表在Smart I/O執(zhí)行異或操作,如圖8所示:
圖 6. 使用邏輯門實(shí)現(xiàn)呼吸燈
圖7. 利用PSOC 4 Smart I/O實(shí)現(xiàn)呼吸燈效果
圖8. 使用Smart I/O實(shí)現(xiàn)異或門
模式檢測 – Smart I/O可配置為檢測輸入信號(hào)具體模式(比如,檢測是否3路輸入信號(hào)都為低電平)的功能。電池供電嵌入系統(tǒng)將微控制器調(diào)成低功耗模式,當(dāng)指定事件觸發(fā)時(shí),產(chǎn)生中斷喚醒CPU來處理事件。
在一些應(yīng)用中,必須根據(jù)多個(gè)事件的具體組合來喚醒設(shè)備和處理事件。今天市場上的MCU要求CPU處于工作狀態(tài)以檢測模式和處理事件。這導(dǎo)致CPU在每次發(fā)生事件時(shí)都被喚醒以檢查事件的組合,從而增加功耗。
Smart I/O可工作在低功耗狀態(tài)中,根據(jù)多個(gè)事件的具體組合喚醒設(shè)備。在圖9的應(yīng)用中,根據(jù)多個(gè)事件的具體組合,MCU從深睡眠中被喚醒。在這種情況下,只有當(dāng)兩個(gè)輸入都處于高電平時(shí)(即處于黑暗且窗口打開),設(shè)備醒來,并將傳感器狀態(tài)發(fā)送至接收器或是啟動(dòng)警報(bào)通知用戶關(guān)閉窗口。
圖 9. 使用PSoC 4Smart I/O檢測具體模式
該系統(tǒng)的實(shí)現(xiàn)方案如圖10所示。兩個(gè)I/O管腳的輸入信號(hào)在Smart I/O模塊進(jìn)行與操作,然后發(fā)送給CPU喚醒中斷控制器,將設(shè)備從深睡眠中喚醒。只有當(dāng)兩個(gè)條件均為真才喚醒CPU,從而減少設(shè)備功耗,延遲電池壽命。
圖10. 檢測具體的輸入模式 – PSoC Creator的實(shí)現(xiàn)方案
圖10. 使用Smart I/O執(zhí)行與門
評論