在MCU中,有些功能與設(shè)計(jì)并非是必須的,即便沒有這些功能MCU也依然可以正常工作,但有了這些特點(diǎn)并加以運(yùn)用后,MCU可以獲得更完美的表現(xiàn)。事實(shí)上,主運(yùn)作之外的功能才是近年來MCU的重點(diǎn)強(qiáng)調(diào),因?yàn)镸CU技術(shù)門坎較低,半導(dǎo)體業(yè)者不易在效能、資源等核心層面擁有大幅領(lǐng)先的優(yōu)勢,加上中性、基礎(chǔ)性的外圍功效也都逐漸齊備,使得MCU必須從更廣多的層面來強(qiáng)化其價(jià)值。以下是一些常見的MCU附加功能:
看門狗定時(shí)器(WDT)
看門狗定時(shí)器(Watchdog Timer)大概是最早被選入MCU中的附屬功能,原因是有些應(yīng)用是不允許臨時(shí)停擺的(如生產(chǎn)在線的輸送帶),MCU必須盡可能地保持正常運(yùn)作,即便故障停擺也必須在極短時(shí)間內(nèi)自行恢復(fù)正常,或者M(jìn)CU所處的控制環(huán)境相當(dāng)惡劣或多變,MCU容易因外在因素(如噪聲干擾、例外事件等)而頻繁停擺,這時(shí)都可以使用WDT來補(bǔ)強(qiáng)。
欠壓復(fù)位(BOR)
欠壓復(fù)位(Brown-Out detection/Reset)指檢測到電壓過低時(shí),自動(dòng)重新開機(jī)。如果說WDT是避免MCU因程序落入預(yù)期外的死循環(huán)而導(dǎo)致誤動(dòng)作、停擺,那么BOR則是為了避免、降低供應(yīng)給MCU的運(yùn)作電壓過度不穩(wěn)時(shí)所造成的控制影響,一旦MCU的運(yùn)作電壓低至某個(gè)程度,BOR電路就會(huì)自動(dòng)將MCU進(jìn)行重置。
送電后重置(POR)
BOR是電壓過低時(shí)對MCU發(fā)出重置,相反的POR(Power-On Reset)是在電壓高于設(shè)定的電平時(shí)才對MCU發(fā)出重置,一般而言,控制系統(tǒng)剛送電啟動(dòng)時(shí),供電電壓會(huì)逐步提升,這時(shí)POR就會(huì)發(fā)生作用。老實(shí)說,POR比BOR更早出現(xiàn),且?guī)缀跏荕CU就會(huì)用到POR,過去多是在MCU外部再行設(shè)計(jì)POR電路(如使用555振蕩器IC),如今則是直接內(nèi)建,內(nèi)建可節(jié)省控制應(yīng)用的BOM元件數(shù)、電路板面積等制造成本。
送電后定時(shí)器(PWRT)
WDT、BOR、POR都會(huì)對MCU產(chǎn)生重置,進(jìn)一步的還要確保重置的“質(zhì)量”,而質(zhì)量要求主要有二點(diǎn),一是重置的邏輯電平必須能保持一段時(shí)間,不能太快消失或在短瞬間內(nèi)反復(fù)出現(xiàn),另一是MCU的運(yùn)作頻率穩(wěn)定度,因?yàn)檫\(yùn)作頻率與運(yùn)作電壓兩者只要有一者表現(xiàn)失常,就會(huì)對MCU的控制運(yùn)作造成影響。為了確保重置信號(hào)的電平維持夠久,所以MCU內(nèi)可以增設(shè)一個(gè)PWRT,PWRT會(huì)監(jiān)測重置信號(hào)的電壓,只要持續(xù)在允許的電壓位準(zhǔn)內(nèi),PWRT就會(huì)持續(xù)地計(jì)時(shí),且計(jì)時(shí)過程中電壓沒有偏離過,最后計(jì)時(shí)就會(huì)溢滿(超時(shí)),反之若過程中有偏離,則PWRT會(huì)重新計(jì)時(shí),若未計(jì)時(shí)到溢滿,MCU都無法脫離重置階段,也就無法正式初始及運(yùn)作。
振蕩器初始定時(shí)器(OST)
PWRT計(jì)滿后理應(yīng)進(jìn)入初始及正式工作,但是PWRT只能確保運(yùn)作電壓已達(dá)一定的可工作水平,但不能確保運(yùn)作頻率也達(dá)相同水平,為此也必須舍棄送電后的最初瞬時(shí)、不穩(wěn)的頻率信號(hào),待頻率信號(hào)穩(wěn)定后,才讓MCU進(jìn)入正式工作。因此,多數(shù)MCU業(yè)者也為頻率穩(wěn)定提供確保性設(shè)計(jì),同樣是運(yùn)用定時(shí)器延遲的概念,舍棄振蕩器初始時(shí)的不穩(wěn)頻率不用,讓MCU一起頭就使用穩(wěn)當(dāng)?shù)念l率,作法上是讓最初的頻率信號(hào)只用來遞增定時(shí)器,待計(jì)滿一定的時(shí)間后才將頻率導(dǎo)引到MCU的全部電路上,而這個(gè)緩沖定時(shí)器就稱為振蕩器初始定時(shí)器(Oscillator Start-up Timer;OST)。
內(nèi)部振蕩器(IntOSC)
過去任何MCU在封裝上都至少要保留2個(gè)腳位以便連接外部振蕩電路,一般而言是用一個(gè)石英振蕩器(Crystal Oscillator)及2個(gè)電容所構(gòu)成,部分也用陶瓷振蕩器或來自其它芯片的輸出頻率。之后又有業(yè)者提出更低廉的方案,即是用RC振蕩電路,外部只需要一個(gè)電阻、一個(gè)電容即可構(gòu)成,然缺點(diǎn)是容易受外界環(huán)境(如溫度)的影響而使振蕩時(shí)基偏移,因此不適合用在需要精密時(shí)間控制的場合。不過,近年來又有了更理想的作法,直接將振蕩器內(nèi)建至MCU內(nèi),如內(nèi)建RC振蕩器、石英振蕩器等,如此就可略省外部振蕩器及振蕩電路等成本,且業(yè)者也較能保證內(nèi)部振蕩器的時(shí)序精度,如±2.5%、±2%、±1%等。因此除了節(jié)省成本外,內(nèi)部型振蕩器(Internal Oscillator;IntOSC)也有助于MCU穩(wěn)定運(yùn)作。內(nèi)部型振蕩器的好處不單在于精省與精準(zhǔn),有時(shí)也能用于其它層面,例如MCU平時(shí)可用外部的高頻振蕩器來運(yùn)作,但在進(jìn)入省電模式(或講究省電型的控制應(yīng)用)改切換成使用內(nèi)部振蕩器運(yùn)作,或作為MCU休眠狀態(tài)時(shí)的持續(xù)運(yùn)作頻率,持續(xù)供應(yīng)頻率給省電模態(tài)下的工作定時(shí)器,甚或部分的外圍電路,以便定時(shí)器計(jì)滿后能喚醒MCU。
在線燒錄(ICP)
MCU業(yè)者只要有提供可重復(fù)燒寫程序的Flash型MCU,幾乎就會(huì)連帶提供在線燒錄(In-Circuit Programming;ICP)機(jī)制,或稱為ISP(In-System Programming)機(jī)制,有此機(jī)制后,便可在控制應(yīng)用系統(tǒng)出貨后仍可在應(yīng)用現(xiàn)場為MCU換新控制程序,甚至是運(yùn)用遠(yuǎn)程操控技術(shù),直接將新程序通過網(wǎng)絡(luò)傳遞至現(xiàn)場進(jìn)行更新燒錄。雖然各MCU業(yè)者多會(huì)提供ICP/ISP,但各家的作法不盡相同,包括燒錄時(shí)所使用的腳位、電壓、時(shí)序等都各有其異,有的業(yè)者甚至認(rèn)為自家的現(xiàn)場燒錄技術(shù)較他家更為先進(jìn)優(yōu)異,因此還為自有技術(shù)另訂稱呼,如Microchip的ICSP(In-Circuit Serial Programming)技術(shù)。
而ICP/ISP其實(shí)是就近式的燒錄更新,另有一種是通過網(wǎng)絡(luò)傳輸?shù)倪h(yuǎn)程式燒錄更新,此稱為IAP(In-Application Programming),作法上是先在MCU另設(shè)一塊獨(dú)立的程序內(nèi)存,該內(nèi)存內(nèi)放置著MCU的開機(jī)初始程序(一般稱為Boot Loader)、網(wǎng)絡(luò)傳輸程序、燒錄操作程序。
之后,MCU不再從原有的程序內(nèi)存進(jìn)行開機(jī)初始,而是改從上述的獨(dú)立程序區(qū)來初始,初始完成后也由此區(qū)的網(wǎng)絡(luò)傳輸程序來操控MCU的網(wǎng)絡(luò)接口(一般為MCU內(nèi)建的串行傳輸接口,如UART、I2C等),開始自MCU外接收入新的控制程序,然后將新程序燒錄到MCU原有的正規(guī)程序內(nèi)存,最后將MCU的主控權(quán)交還給正規(guī)程序內(nèi)存的新版控制程序。主控權(quán)交還后,獨(dú)立程序區(qū)也就退至幕后,如同無形、隱形一般,直到下一次又有程序燒錄需求時(shí)才會(huì)再次現(xiàn)身并再次運(yùn)用。
在線糾錯(cuò)(JTAG、ICD)
由于芯片腳位愈來愈多,配置排列上也愈來愈密,過去用外部探針對接腳進(jìn)行量測檢驗(yàn)的方法逐漸難行,因此,有了在芯片內(nèi)建立量測線路,并用少數(shù)接腳及串行通訊方式來取代探針檢測,此種邊界掃描(Boundary Scan)架構(gòu)及測試存取埠等標(biāo)準(zhǔn)稱為JTAG(Joint Test Action Group),國際電子電機(jī)標(biāo)準(zhǔn)則為IEEE 1149.1,于1990年首次頒布。因此,接腳數(shù)較多的MCU也于芯片內(nèi)布設(shè)好邊界掃描,并對外提供JTAG標(biāo)準(zhǔn)測試埠以供測試存取、操作,如此MCU正式焊上控制系統(tǒng)后,便可通過JTAG來了解各腳位是否確實(shí)導(dǎo)通,邏輯是否正確等,讓生產(chǎn)良率的檢測更加方便快速。JTAG主要是改善生產(chǎn)測試,另外有的MCU也內(nèi)建在線除錯(cuò)器(In-Circuit Debugger;ICD)及執(zhí)行斷點(diǎn)(Breakpoint),可與外部開發(fā)工具程序相搭配,以進(jìn)行開發(fā)上的測試除錯(cuò),或現(xiàn)場維修時(shí)的檢測。