Microchip Technology公司 MCU8產(chǎn)品部亞太區(qū)業(yè)務(wù)拓展經(jīng)理 徐進(jìn)
?
Microchip全新8位MCU外設(shè)問(wèn)世,突破嵌入式設(shè)計(jì)壁壘
Microchip Technology公司 MCU8產(chǎn)品部亞太區(qū)業(yè)務(wù)拓展經(jīng)理徐進(jìn)
Microchip最新一代的8位單片機(jī)集成了所謂的“獨(dú)立于內(nèi)核的外設(shè)”,將設(shè)計(jì)的靈活性提升到了一個(gè)新的水平。從簡(jiǎn)單的數(shù)字定時(shí)器到復(fù)雜的AC/DC電源,這些可配置外設(shè)與MCU集成的智能模擬相配合,可實(shí)現(xiàn)均衡的可定制解決方案來(lái)應(yīng)對(duì)許多設(shè)計(jì)挑戰(zhàn)。此外,新一代8位MCU突破了傳統(tǒng)8位MCU的不足,進(jìn)一步拓寬了產(chǎn)品的應(yīng)用領(lǐng)域。
圖1 數(shù)控振蕩器應(yīng)用實(shí)例
從40多年前首款帶只讀存儲(chǔ)器(ROM)的MCU問(wèn)世以來(lái),單片機(jī)不斷發(fā)展,從簡(jiǎn)單的邏輯控制器到帶有模擬功能的完全集成式的智能IC,8位MCU的發(fā)展尤為突出。就傳統(tǒng)的8位MCU外設(shè)而言,每個(gè)模塊僅設(shè)計(jì)用于執(zhí)行單一功能。而最新一代的8位MCU在設(shè)計(jì)之初即旨在創(chuàng)建與傳統(tǒng)完全不同的產(chǎn)品,這一變化更需要采用全新的終端產(chǎn)品設(shè)計(jì)方法。這些新的8位MCU集成了若干個(gè)獨(dú)特的外設(shè),可以按需執(zhí)行多個(gè)功能和任務(wù)。同時(shí),設(shè)計(jì)人員可以通過(guò)配置和組合這些外設(shè)來(lái)創(chuàng)建新的功能,而這些新功能在其他類(lèi)型的單片機(jī)上是無(wú)法或難以實(shí)現(xiàn)的。這些新型外設(shè)大多無(wú)需內(nèi)核監(jiān)管即可獨(dú)立運(yùn)行,因而在執(zhí)行必要的任務(wù)時(shí)減少了對(duì)CPU的依賴(lài)。此外,這些外設(shè)多數(shù)也在休眠模式下使用,非常適合各類(lèi)功耗敏感型應(yīng)用。
新器件中最常用的外設(shè)之一就是可配置邏輯單元(CLC),它是一個(gè)非常簡(jiǎn)單但功能強(qiáng)大的模塊,可提供標(biāo)準(zhǔn)的邏輯功能,如AND、OR、XOR、SR鎖存器和J-K 觸發(fā)器,用戶(hù)可對(duì)這些功能進(jìn)行配置以創(chuàng)建用于信號(hào)調(diào)理的邏輯門(mén)。CLC模塊的輸入、輸出信號(hào)可以經(jīng)由內(nèi)部連接與任何一個(gè)I/O、外設(shè)或寄存器相連,它可以用作一個(gè)簡(jiǎn)單的信號(hào)路由器、粘合邏輯或控制喚醒的智能狀態(tài)機(jī)。傳統(tǒng)的單片機(jī)需要外部的可編程邏輯器件(PLD)或額外的編碼來(lái)實(shí)現(xiàn)所需的邏輯控制功能,然而即便是這樣的設(shè)置也并不能達(dá)到CLC那樣的靈活性。
另一個(gè)可配置模塊——數(shù)控振蕩器(NCO)可用作20位定時(shí)器或具有高分辨率、可變頻控制的PWM控制器,如圖1所示。這和傳統(tǒng)的PWM/定時(shí)器不同,彼此性能和特性幾乎完全相反。
NCO具有更高的分辨率和線性頻率控制功能,可通過(guò)對(duì)電路電流的高精度控制來(lái)簡(jiǎn)化廣泛應(yīng)用于許多電源應(yīng)用中的復(fù)雜控制算法,例如帶有調(diào)光功能的照明鎮(zhèn)流器控制應(yīng)用。由于NCO可提供變頻控制來(lái)輕松改變警報(bào)聲音的音高,它還可用于驅(qū)動(dòng)煙霧報(bào)警器的聲音警報(bào)。通過(guò)對(duì)所產(chǎn)生的頻率實(shí)施更精細(xì)的控制,NCO無(wú)需任何外部模擬組件即可對(duì)生成聲音的音調(diào)和音高進(jìn)行更好的調(diào)節(jié)。
這種集成外設(shè)可以單獨(dú)使用,但是把多個(gè)模塊組合在一起來(lái)創(chuàng)建不同的功能才是其真正的絕妙之處。例如,曼徹斯特編碼廣泛應(yīng)用于各種電信和數(shù)據(jù)存儲(chǔ)應(yīng)用。傳統(tǒng)的曼徹斯特算法需要大量的固件資源支持,并且要占用CPU資源來(lái)進(jìn)行任務(wù)管理,而通過(guò)串聯(lián)使用NCO和CLC模塊構(gòu)建出的曼徹斯特解碼器,可以完全在硬件環(huán)境中運(yùn)行,無(wú)需占用任何CPU資源。順便提一下,曼徹斯特編碼器的設(shè)計(jì)可以?xún)H由一個(gè)CLC模塊來(lái)實(shí)現(xiàn),而無(wú)需進(jìn)行任何固件位拆裂。
相比于CLC或NCO模塊,諸如角度定時(shí)器(AT)、信號(hào)測(cè)量定時(shí)器(SMT)和數(shù)學(xué)加速器(MathAcc)等其他外設(shè)則較為復(fù)雜。無(wú)論電機(jī)速度還是信號(hào)頻率,AT均可用于測(cè)量電機(jī)控制和AC電源應(yīng)用中任意一種周期信號(hào)——如光學(xué)編碼器、過(guò)零檢測(cè)器和霍爾傳感器。AT模塊可在純硬件環(huán)境中執(zhí)行時(shí)間/角度域瞬間轉(zhuǎn)換,且同樣沒(méi)有任何額外的CPU開(kāi)銷(xiāo)。而傳統(tǒng)單片機(jī)處理這一任務(wù)則往往需要多個(gè)定時(shí)器來(lái)計(jì)算和測(cè)量時(shí)間單位,然后借助數(shù)學(xué)計(jì)算(通過(guò)固件)將數(shù)值轉(zhuǎn)換成相角域;如果周期已知的話,則需要存儲(chǔ)在程序存儲(chǔ)器中的查找表。傳統(tǒng)方法需要進(jìn)行更多的固件設(shè)置和更多的CPU資源來(lái)進(jìn)行數(shù)學(xué)計(jì)算,還需要約束查找表的大小,這樣就限制了可用數(shù)值的數(shù)量,進(jìn)而導(dǎo)致近似值和差錯(cuò)。而AT模塊可以直接根據(jù)設(shè)計(jì)人員配置的相角值自動(dòng)生成中斷和事件,此外,AT模塊還有三個(gè)比較/捕捉/PWM(CCP)功能供用戶(hù)自行支配。
另一個(gè)通過(guò)組合多個(gè)外設(shè)以簡(jiǎn)化任務(wù)的實(shí)例便是廣泛應(yīng)用于小型內(nèi)燃機(jī)中的電容放電式點(diǎn)火(CDI)控制系統(tǒng),如圖2所示。
圖2 使用集成角度定時(shí)器外設(shè)的電容放電式點(diǎn)火系統(tǒng)
在數(shù)字控制CDI系統(tǒng)中,單片機(jī)有兩大主要任務(wù):
◆ 基于各個(gè)傳感器提供的信息,確定火花塞的點(diǎn)火提前角;
◆ 通過(guò)設(shè)置PWM信號(hào)占空比將觸發(fā)脈沖傳送至DC-DC 轉(zhuǎn)換器,以實(shí)現(xiàn)火花點(diǎn)火功能。
由于相關(guān)外設(shè)可有效管理RPM計(jì)算任務(wù)和控制發(fā)動(dòng)機(jī)火花塞的點(diǎn)火時(shí)間,而只需要極少的CPU干預(yù),設(shè)計(jì)人員無(wú)需掌握內(nèi)燃發(fā)動(dòng)機(jī)控制系統(tǒng)的所有設(shè)計(jì)細(xì)節(jié),即可將AT、CLC及諸如SMT和MathACC等其他一些外設(shè)組合起來(lái)實(shí)現(xiàn)基于PIC16F161x MCU的CDI,大幅提升整體性能。如果想對(duì)這一設(shè)計(jì)進(jìn)行更深入的分析,請(qǐng)參閱參考文獻(xiàn)中列出的應(yīng)用筆記AN1980。
表1就使用傳統(tǒng)方法與采用獨(dú)立于內(nèi)核的外設(shè)來(lái)設(shè)計(jì)CDI系統(tǒng)做了一個(gè)對(duì)比。
如表1所列,運(yùn)用AT方法,執(zhí)行時(shí)間和CPU使用率減少了50%以上,代碼空間也減少了40%,大大提升了系統(tǒng)性能。
有許多方式可以生成PWM信號(hào),或通過(guò)固件或通過(guò)硬件,然而涉及到測(cè)量和從PWM輸入信號(hào)中提取信息時(shí),選擇范圍就比較有限了。典型的方法是使用定時(shí)器和CCP,以及大量的CPU周期來(lái)確定脈沖、周期或占空比值。將CLC和NCO模塊組合起來(lái),并進(jìn)行一些額外的編碼工作,也有可能完成這些任務(wù)。
然而,前文例子中提及的SMT外設(shè)是一個(gè)帶有高級(jí)時(shí)鐘和門(mén)控邏輯功能的24位計(jì)數(shù)器/定時(shí)器,可支持不同的采集模式。這些模式包括自動(dòng)測(cè)量并存儲(chǔ)周期和占空比值,且無(wú)需內(nèi)核的監(jiān)管或任何額外的計(jì)算。SMT外設(shè)對(duì)任何一個(gè)需要測(cè)量PWM信號(hào)的設(shè)計(jì)而言都是非常有用的,比如電機(jī)控制應(yīng)用。
表1電容放電式點(diǎn)火系統(tǒng)實(shí)現(xiàn)方法對(duì)比
盡管這些高級(jí)外設(shè)具有更多的功能,設(shè)計(jì)人員的顧慮之一是:如何管理有限的I/O及可用的MCU資源以實(shí)現(xiàn)器件性能最優(yōu)化。模塊太多,引腳卻不夠,一直是限制傳統(tǒng)低引腳數(shù)8位MCU功能的短板之一。而如今在增添了外設(shè)引腳選擇(PPS)等功能以后,設(shè)計(jì)人員現(xiàn)在無(wú)需使用任何外部組件即可將任意的數(shù)字信號(hào)實(shí)時(shí)發(fā)送到任意一個(gè)I/O引腳。而需要多個(gè)UART的傳統(tǒng)設(shè)計(jì)則需要一個(gè)具備多個(gè)UART 模塊的高引腳數(shù)單片機(jī)來(lái)實(shí)現(xiàn)?,F(xiàn)在有了新一代的8位MCU,任何一款單片機(jī)只需擁有一個(gè)UART和PPS或CLC來(lái)輕松發(fā)送通信信號(hào)至多個(gè)引腳,便可完成這項(xiàng)任務(wù)。
總之,最新一代的8位MCU比傳統(tǒng)的8位MCU功能更多、更強(qiáng)大。與以軟件為中心的32位MCU相比,它們往往可以借助集成的、獨(dú)立于內(nèi)核的硬件執(zhí)行許多功能,在性能上提升至新的高度。此外,獨(dú)立于內(nèi)核的外設(shè)為設(shè)計(jì)人員提供了更大的靈活性,他們可以通過(guò)配置和組合若干外設(shè)來(lái)創(chuàng)建多種應(yīng)用功能而無(wú)需犧牲CPU性能或功耗。這些新型硬件外設(shè)消除了傳統(tǒng)設(shè)計(jì)對(duì)內(nèi)核的依賴(lài),同時(shí)增強(qiáng)了系統(tǒng)整體設(shè)計(jì)的決定性。
[1] 獨(dú)立于內(nèi)核的外設(shè)設(shè)計(jì)中心.
[2] DS41631B-Configurable Logic Cell Tips ‘n Tricks.
[3] AN1980-Capacitor Discharge Ignition Using the Angular Timer.
[4] AN1470-使用CLC和NCO實(shí)現(xiàn)曼徹斯特解碼器.
[5] AN1476-結(jié)合CLC和NCO實(shí)現(xiàn)高分辨率PWM.
[6] AN1779-Sensored Single-Phase BLDC Motor Driver using PIC16F1613.
[7] TB3129-PIC單片機(jī)的信號(hào)測(cè)量定時(shí)器.
[8] AN1473-多種計(jì)算脈沖與占空比的方法.
[9] Lucio Di Jasio. This is (not) rocket Science.
(責(zé)任編輯:楊迪娜2016-03-11)