飛思卡爾半導(dǎo)體推出的MC9S08QG4的具有高集成度、高性能,低功耗,高性價(jià)比和優(yōu)異的可靠性,非常適合用于煙霧傳感器的設(shè)計(jì)。 MC9S08QG4是采用高性能、低功耗的HCS08內(nèi)核的飛思卡爾8位微控制器系列中具有很高的集成度的器件。MC9S08QG MCU集成了那些通常只有較大、較昂貴的元器件才具有的性能,包括背景調(diào)試系統(tǒng)以及可進(jìn)行實(shí)時(shí)總線捕捉的內(nèi)置在線仿真(ICE)功能,具有單線的調(diào)試及仿真接口。該產(chǎn)品的特色還包括一個(gè)可編程的16位定時(shí)器/脈沖寬度調(diào)制(PWM)模塊(TPM)。 MC9S08QG4提供了豐富的外設(shè)與HCS08內(nèi)核的多功能組合,包括更長(zhǎng)的電池壽命(即使工作電壓低至1·8V,也能發(fā)揮最大效能)、領(lǐng)先的FLASH技術(shù)以及創(chuàng)新的開(kāi)發(fā)支持。對(duì)于諸如無(wú)線通訊、手持式設(shè)備、小家電、基于簡(jiǎn)化型媒體訪問(wèn)控制器(SMAC)的應(yīng)用,以及玩具等對(duì)功耗和尺寸要求較高的應(yīng)用,MC9S08QG4是出色的解決方案。 塊狀圖 火警安全系統(tǒng)全系統(tǒng)塊狀圖如圖1中所示: 控制器聯(lián)網(wǎng)(CAN)總線 環(huán)行板 帶有24V 電源的探測(cè)器總線 中央處理器 煙霧探測(cè)器 執(zhí)行模塊 告警按鈕 24V DC電源 液晶顯示器 鍵盤(pán) 報(bào)警器 不間斷電源 ·中央處理器 中央處理器控制整個(gè)系統(tǒng),定時(shí)詢問(wèn)每個(gè)煙霧探測(cè)器和告警按鈕的狀態(tài),并通過(guò)環(huán)路板向每個(gè)執(zhí)行模塊發(fā)送命令。而且,它還提供帶有TFT液晶顯示器和鍵盤(pán)的操作員接口,如果出現(xiàn)火情,就顯示位置并報(bào)警。 ·環(huán)路板 通常在火警安全系統(tǒng)中有10個(gè)或更多的環(huán)路板。環(huán)路板與中央處理器連接。RS485以前是環(huán)路板和中央處理器之間最常用的連接方法,但是控制器聯(lián)網(wǎng)總線目前成為最現(xiàn)代的新型設(shè)計(jì)解決方案。 每個(gè)環(huán)路板都提供一個(gè)帶有模塊數(shù)據(jù)的探測(cè)器總線,并在兩條線上提供24V直流電源。根據(jù)不同生產(chǎn)商的產(chǎn)品不同,最多可以有240個(gè)煙霧探測(cè)器、告警按鈕和執(zhí)行模塊連接在一個(gè)環(huán)路上。 ·執(zhí)行模塊和告警按鈕 執(zhí)行模塊是執(zhí)行設(shè)備,如遇到火災(zāi)時(shí)根據(jù)探測(cè)器總線傳來(lái)的的命令打開(kāi)灑水器。一般來(lái)說(shuō),這些模塊包括一個(gè)或多個(gè)由MCU多點(diǎn)控制單元的GPIO通用輸入/輸出接口控制的中繼。通常情況下,執(zhí)行模塊使用與煙霧探測(cè)器相同種類的MCU多點(diǎn)控制單元。 告警按鈕安裝在走廊上,一旦遇到火災(zāi)或緊急事件,人們可以打破蓋板,按下按鈕進(jìn)行報(bào)警。有時(shí)為了降低成本,使用更簡(jiǎn)單的MCU。 執(zhí)行模塊和煙霧探測(cè)器的數(shù)量比是1:2或更少,系統(tǒng)中的告警按鈕數(shù)量比執(zhí)行模塊數(shù)量少。 ·電源 整個(gè)火災(zāi)控制系統(tǒng)的電源是由UPS(不間斷電源)提供的。24V直流電提供給中央處理器和每個(gè)環(huán)路板,然后環(huán)路板通過(guò)探測(cè)器總線將24V的直流電源提供給所有煙霧探測(cè)器、執(zhí)行模塊和告警按鈕。通信數(shù)據(jù)可以在每根總線上調(diào)制。 ·探測(cè)器的總線 探測(cè)器總線是一種裝有兩條線的特殊控制總線,帶有24V直流電源和調(diào)制數(shù)據(jù)。圖2顯示了探測(cè)器總線上的常見(jiàn)波形,但沒(méi)有更具體的波形,因?yàn)椴煌纳a(chǎn)商定義不同的通信協(xié)議。 時(shí)鐘 托管數(shù)據(jù) 主機(jī)數(shù)據(jù) 設(shè)備電流 代碼1 代碼0 OPEN 調(diào)時(shí)決定了總線MCU頻率的要求。 雖然它是個(gè)三態(tài)代碼,但是只使用兩種狀態(tài)來(lái)傳輸總線數(shù)據(jù),1和0(24V和0V)。第三種狀態(tài)OPEN用來(lái)表示主機(jī)等待某一設(shè)備響應(yīng)的狀態(tài)。在這種狀態(tài)下,總線被設(shè)置為一個(gè)恒定的中間電壓,例如12V,然后設(shè)備可從總線獲得電流,總線此狀態(tài)下作為一個(gè)電流回路。通過(guò)改變總線電流來(lái)代表邏輯1和0進(jìn)行通信。 ·煙霧探測(cè)器 圖3顯示常用煙霧探測(cè)器的塊狀圖 環(huán)路中的每個(gè)煙霧探測(cè)器都有獨(dú)特的地址代碼。詢問(wèn)命令定時(shí)通過(guò)總線發(fā)射(例如:每三秒鐘)這種詢問(wèn)命令是一個(gè)廣播,可以由所有的煙霧探測(cè)器接收的。如果一個(gè)探測(cè)器檢測(cè)到火情,它會(huì)將信息發(fā)送給控制器進(jìn)行報(bào)告。 MCU所需的資源和功能 以下是煙霧探測(cè)器應(yīng)用所需的要求: ·非常低的功耗,對(duì)整個(gè)電路板所需的功率不超過(guò)400 uA ·一個(gè)信道模擬數(shù)字轉(zhuǎn)換器(ADC) ·7個(gè)GPIO通用輸入/輸出接口 ·一個(gè)用于定時(shí)功能的8位計(jì)時(shí)器 ·監(jiān)控器、計(jì)時(shí)器和低電壓檢測(cè),用于保證系統(tǒng)安全 ·16位的EEPROM電可擦寫(xiě)可編程只讀存儲(chǔ)器用于存儲(chǔ)配置數(shù)據(jù)如地址和配置 ·2K的閃存,80字節(jié)的內(nèi)存 停止模式 QG4有四種操作模式,激活、等待、停止3、停止2和停止1。 激活背景模式用于代碼開(kāi)發(fā) ·等待模式: 。CPU停止操作來(lái)節(jié)約功率 。系統(tǒng)時(shí)鐘運(yùn)行 。保持全電壓調(diào)節(jié) ·停止模式:CPU和總線時(shí)鐘停止 。停止1:內(nèi)部電路完全停止,以最大限度地節(jié)約功率。 。停止2:內(nèi)部電路功率部分停止,保持內(nèi)存內(nèi)容。 。停止3:所有內(nèi)部電路可以快速恢復(fù),保持內(nèi)存和注冊(cè)器中的內(nèi)容。 重啟后,操作的正常模式是運(yùn)行模式,并且在此模式中CPU被激活并且外圍設(shè)備可使用。通過(guò)執(zhí)行一個(gè)等待命令,MCU進(jìn)入等待模式。在等待模式中所需功率減小,因?yàn)镃PU沒(méi)有計(jì)時(shí)。為了進(jìn)一步減少功率消耗,可以使用停止模式。當(dāng)執(zhí)行停止命令時(shí),就輸入三個(gè)停止模式中的一個(gè)。停止1、停止2和停止3,每一種都具有不同級(jí)別的操作可減少功率的損耗。表1A描述了停止模式的行為。一般來(lái)說(shuō),停止模式的電源供應(yīng)(3V供應(yīng))如下: ·停止1模式供應(yīng)電流, 475 nA ·停止2模式供應(yīng)電流, 600 nA ·停止3模式供應(yīng)電流, 750 nA ·RTI加法器在停止1、停止2或停止3模式下,300 nA ·LVI加法器在停止3模式下 (LVDE = LVDSE = 1),70 uA ·振蕩器加法器在停止3模式下,5 uA *ATD停止模式或功率的減少都根據(jù)ATDPU的狀態(tài)決定 **晶體振蕩器可配置運(yùn)行停止3。請(qǐng)見(jiàn)ICG注冊(cè)器。 表1B描述了如何通過(guò)配置不同注冊(cè)器的字節(jié)以及每個(gè)停止模式的結(jié)束條件來(lái)選擇停止模式。 當(dāng)使用停止2時(shí)要考慮以下幾個(gè)因素來(lái)確保正確操作。 IRQ PIN中斷請(qǐng)求腳必須激活或從外部拉起 LVD低壓差動(dòng)傳輸模式必須在停止模式中禁用(LVDSE = 0) 如果使用RTI,只有內(nèi)部時(shí)鐘源在停止2模式下生效。 OSCSTEN字節(jié)在停止2模式中無(wú)效,此時(shí)鐘參考將總是消耗電源 只有RAM保持功率,所有其它的I/O注冊(cè)器將在喚醒狀態(tài)下重新設(shè)置 在I/O 針腳從停止2模式進(jìn)入狀態(tài)被修改前,PPDF標(biāo)記必須被清除。 從停止模式恢復(fù)需要時(shí)間。在3V電壓時(shí),停止1和停止2的停止恢復(fù)時(shí)間大約為50 us,停止3的恢復(fù)時(shí)間根據(jù)時(shí)鐘定義的不同而變化。如果使用內(nèi)部參考時(shí)鐘,啟動(dòng)時(shí)間大約為100 us,而如果使用外部 32KHz水晶,如果振蕩器在停止模式下激活(設(shè)置為OSCSTEN),則是2·4ms。如果振蕩器在停止模式下禁用(OSCSTEN被清除),則是180 ms到300 ms。 不幸的是,雖然使用停止模式可以大量節(jié)約功率,但是許多煙霧探測(cè)器的設(shè)計(jì)師都不能接受停止模式,因?yàn)樗枰恢北3諱CU工作,以從總線獲得響應(yīng)。從停止模式恢復(fù)的時(shí)間使其很困難或甚至不可能。 低功耗設(shè)計(jì)的ICS網(wǎng)絡(luò)聯(lián)機(jī)共享配置和操作模式 ·建議使用ICS配置和操作模式由一般總線調(diào)時(shí)確定,至少需要100KHZ總線頻率。 根據(jù)不同的ICS配置,QG4有六種操作模式:FEI、FEE、FBI、FBILP、FBE和FBELP。因?yàn)镕BE模式有最低的功耗和最準(zhǔn)確的時(shí)鐘,所以建議用于煙霧探測(cè)器的應(yīng)用。遺憾的是,由于生產(chǎn)商使用不同的總線計(jì)時(shí),所以有時(shí)可能無(wú)效。例如:有些總線計(jì)時(shí)需要1MHz的總線頻率,QG4需要一個(gè)外部2MHz晶體振蕩器用于FBE模式,許多客戶不愿意支持額外的2個(gè)MHz晶體振蕩器成本,有些總線需要很低的總線頻率(如16Hz),然后可以選擇FBI模式。 QG4的內(nèi)部32kHz時(shí)鐘具有典型的的0·2%的準(zhǔn)確性和在整個(gè)操作溫度范圍有2%的誤差。 非常普遍而且低成本、低功率的配置是使用一個(gè)455KHz震蕩電路,用于FBELP模式。總線頻率是227·5KHz(可以分開(kāi)為113·75KHz)。如果供應(yīng)電壓是3V,227·5KHz頻率下的(BDIV = 0)的QG4的電流供應(yīng)就是240μA,而113·75 KHz(BDIV=1)的電流供應(yīng)是200 μA,28·4 KHz(BDIV=4)的電流供應(yīng)是170UA。 表2顯示所有適合煙霧探測(cè)器應(yīng)用的操作模式,考慮到功率損耗和成本問(wèn)題。而且考慮以下因素用于計(jì)算不同模式的總線頻率。 ·FEI:Fbus= Firc * 512 / (2 * 總線分配器) ·FBI:Fbus = Firc / (2 *總線分配器) ·FBE:Fbus = Ferc / (2 *總線分配器) ·與外部455kHz震蕩電路共同使用 當(dāng)MCU與外部455KHz振蕩電路共同使用,獲得功率損耗、系統(tǒng)成本、時(shí)鐘準(zhǔn)確度和總線頻率的最佳平衡時(shí),必須考慮振蕩電路組件的選擇以使其可靠。 圖4顯示典型的455KHz振蕩器電路。 C1,C2是指生產(chǎn)商的建議值,通常80到100 pF 在QG4的數(shù)據(jù)表上,規(guī)定了兩種特點(diǎn),低范圍是32到38·4KHz,高范圍超過(guò)1MHz。但是QG4可以與455KHz震蕩電路共同使用;雖然在電路特點(diǎn)中沒(méi)有具體說(shuō)明。通過(guò)此配置, ICSC2 注冊(cè)器5位的范圍應(yīng)該設(shè)置為ICS的高范圍模式。 ·高電流應(yīng)該于POR G4進(jìn)行重新設(shè)置時(shí)的電源,ICS的默認(rèn)模式總是FEI,在此模式中總線頻率是4Hz,大約從電源消耗2mA的電流,不適用于煙霧探測(cè)器應(yīng)用。建議在POR之后立即設(shè)置ICS到FBI模式。雖然高電流狀態(tài)一直存在于POR,但是用戶可以通過(guò)此方法縮短幾個(gè)說(shuō)明周期的時(shí)間。在Tcsth之后,晶體振蕩器啟動(dòng)時(shí)間(5 ms用于高范圍,低的振蕩器功率模式),用戶可以將ICS轉(zhuǎn)換到最終工作模式,對(duì)FBE進(jìn)行正確操作。在Tcsth的過(guò)程中,用戶可以完成對(duì)系統(tǒng)初始工作,這對(duì)計(jì)時(shí)并不重要。 ·使用內(nèi)部模塊的電流供應(yīng) 每個(gè)內(nèi)部模式在工作時(shí)都從電源獲得電流,可以禁止某些未使用的模塊以節(jié)約電源,但是已使用的模塊的電流供應(yīng)必須考慮系統(tǒng)的電源損耗,以下是QG4內(nèi)部模塊的電流供應(yīng)列表。 ·RTI: 300 nA ·LVD: 70 uA ·ACMP: 20 uA ·ADC: 120 uA(取樣時(shí)間長(zhǎng),低電流模式) ·OSC: 5 uA(范圍低、低電源模式) ·IRG: 100 uA ·FLL: 210 uA " 300 uA(根據(jù)頻率和電壓的供應(yīng)決定) ·FLL: 210 uA " 300 uA(根據(jù)頻率和電壓的供應(yīng)決定) MCU的I/O 針腳必須正確設(shè)置來(lái)節(jié)約電源。所有未使用的I/O必須通過(guò)掛起或下拉的輸入來(lái)設(shè)置,或 簡(jiǎn)單的輸出模式可輸出禁止外部電路的狀態(tài)。 帶有閃存的EEPROM仿真 煙霧探測(cè)器使用EEPROM存儲(chǔ)數(shù)據(jù),如地址和系統(tǒng)配置。16位對(duì)于這些數(shù)據(jù)足夠了。QG4的閃存可輕松用于模擬EEPROM。通過(guò)內(nèi)部Vpp充電泵,無(wú)需外部Vpp。QG4的閃存可擦寫(xiě)/編程10000次,是HC08 Flash MCU的10倍還多。而且建議采用一些解決方案來(lái)延長(zhǎng)閃存的生命周期。 ·閃存擦寫(xiě)/編程代碼樣本 如何消除/編程閃存的樣本代碼可在CW5·x的樣本目錄中找到。 在Vpp狀態(tài)時(shí),CPU使用不安全,那些閃存擦寫(xiě)/編程代碼必須在RAM上執(zhí)行,而不是在閃存上執(zhí)行,為此用戶可以限定一個(gè)陣列,包含上述 C語(yǔ)言源代碼所編輯的二位代碼,并且稱RAM中的這個(gè)陣列為子程序。 PGM[21]總是閃存操作命令。以下macros操作可以被定義以使RAM中的這些代碼更容易做為子程序而被調(diào)用。 以下實(shí)例顯示如何調(diào)用函數(shù)。 在閃存可以正確擦寫(xiě)或編程前,F(xiàn)CLK必須設(shè)置在150KHz到200 KHz之間的正確值。 ·在227·5 KHz FCLK 下正確操作。 QG4的Ffclk特性是在150KHz到200 KHz之間。FCDIV的注冊(cè)器必須被寫(xiě)入正確的值以設(shè)置正確的Ffclk。如果是PRDIV8,此寄存器的六位必須被清除。 ·fFCLK = fBus / (DIV + 1) 通過(guò)外部455 KHz FBE模式,在此模式中總線頻率是227·5KHz。Ffclk只能被設(shè)置為227·5 KHz(不分開(kāi))或113·75 KHz(兩分),它最接近特定的Ffclk。 對(duì)于可靠的操作來(lái)說(shuō),建議采用帶有113·75 KHz Ffclk的突發(fā)編程模式閃存。請(qǐng)注意突發(fā)編程與byte編程略有不同,所以源代碼應(yīng)該為突發(fā)模式重寫(xiě)。 另一方面,當(dāng)閃存編程/擦寫(xiě)時(shí)電源消耗更大,F(xiàn)LL加法器的供應(yīng)電流可以被忽略,所以另一個(gè)建議是使FLL獲得更高的總線頻率,然后在完成閃存操作后回到正常的設(shè)置。 ·模擬EEPROM的生命周期延長(zhǎng) 閃存只能被擦除為頁(yè)。QG4閃存的頁(yè)面大小是512個(gè)字節(jié),由于只有少量字節(jié)用于煙霧探測(cè)器,所以可采用一些解決方案來(lái)延長(zhǎng)模擬EEPROM的生命周期。解決方案之一就是存儲(chǔ)記錄數(shù)據(jù)在整個(gè)EEPROM上(參考圖5)。每個(gè)記錄有n個(gè)字節(jié)數(shù)據(jù)和1個(gè)字節(jié)標(biāo)記組成,這個(gè)標(biāo)記字節(jié)說(shuō)明這n+1個(gè)字節(jié)地址是否被使用。如果沒(méi)被使用,用戶代碼可將新的數(shù)據(jù)寫(xiě)入此位置;如果已被使用,那么將數(shù)據(jù)寫(xiě)入下一個(gè)位置。當(dāng)閱讀虛擬EEPROM時(shí),用戶代碼應(yīng)該首先檢測(cè)這個(gè)標(biāo)記,然后從最后一個(gè)已使用位置上讀取數(shù)據(jù),它包含最新的數(shù)據(jù)。當(dāng)所有的地址(頁(yè)面尺寸/記錄尺寸)被使用時(shí),下一個(gè)寫(xiě)操作應(yīng)該從頁(yè)面的第一個(gè)地址重新開(kāi)始,結(jié)果閃存這一頁(yè)的生命周期就被(頁(yè)面尺寸/記錄尺寸)成倍延長(zhǎng)了。 如果15個(gè)字節(jié)被要求存儲(chǔ)地址代碼和配置數(shù)據(jù),那么要使用額外的一個(gè)字節(jié)作為標(biāo)記,所以記錄的尺寸是16個(gè)字節(jié),一頁(yè)可被使用512/16=32次,其生命周期可延長(zhǎng)至32*100,000=3,200,000循環(huán)。 ·當(dāng)閃存擦寫(xiě)/重新編程時(shí)的電流 當(dāng)刪除/編程閃存時(shí)要考慮提供電流。當(dāng)Vdd = 3·2V, Ffclk = 227·5 kHz,擦除頁(yè)使用5·78 mA,并且花費(fèi)4000Tfcyc,也就是17·58 ms。 ·閃存塊保護(hù) 由于Flash編程/刪除代碼包括在用戶代碼中,所以閃存必須被塊保護(hù)以避免由于程序運(yùn)行錯(cuò)誤所導(dǎo)致的意外內(nèi)存操作。要塊保護(hù)閃存,用最后一個(gè)未被保護(hù)內(nèi)存的地址來(lái)設(shè)置NVPROT寄存器。例如,要通過(guò)0xFFFF保護(hù)0xFA00,0xF9FF是最后一個(gè)未保護(hù)地址,所以0xF8必須向NVPROT寫(xiě)為15位到9位的內(nèi)存地址(8位到0位都是邏輯1)。 如果支持塊保護(hù),確保向量是否被重新導(dǎo)向。如果向量被清除NVOPT寄存器內(nèi)的FNORED位進(jìn)行重新導(dǎo)向,用戶代碼必須改變,以從新的向量位置分配和接入向量。如果引導(dǎo)裝入程序被在系統(tǒng)內(nèi)編程或更新使用,它就是塊保護(hù),向量必須重新導(dǎo)向,或者引導(dǎo)裝入不能編輯默認(rèn)的向量位置,因?yàn)槿绻恢С謮K保護(hù),這些也被保護(hù)。 正常情況下,中斷服務(wù)的方式如下: 3號(hào)或4號(hào)說(shuō)明ISR函數(shù)的絕對(duì)向量數(shù)量,例如,QG4的向量3是低電壓檢測(cè)中斷,向量位置是0xFFF8:0xFFF9。 但是如果支持向量的重新導(dǎo)向,這種情況就不生效——在被重新導(dǎo)向后,模擬比較器向量就轉(zhuǎn)向地址0xFDF8:0xFDF9。仍舊從0xFFF8:0xFFF9輸入中斷服務(wù)將導(dǎo)致致命錯(cuò)誤,然后中斷服務(wù)的方法如下: 宣布中斷服務(wù)的另一種方法是在向量表起始的位置定義一個(gè)函數(shù)陣列。 一旦向量被重新導(dǎo)向,就可以將函數(shù)陣列地址改變到新的位置。 在任何情況下,重設(shè)向量都不被重新導(dǎo)向,它總是0xFFFE:0xFFFF。所以,啟動(dòng)函數(shù)地址不能改變。單獨(dú)在PRM文件中的定義它的函數(shù)地址。 模數(shù)轉(zhuǎn)換器(ADC)的配置 ·模數(shù)轉(zhuǎn)換器(ADC)時(shí)鐘選擇模數(shù)轉(zhuǎn)換器(ADC)能夠使用多點(diǎn)控制單元MCU總線時(shí)鐘、一個(gè)總線時(shí)鐘脈沖分為兩次或在模塊內(nèi)的本地異步時(shí)鐘進(jìn)行轉(zhuǎn)換操作。如果總線頻率低于fADCK的頻率,當(dāng)支持短信號(hào)時(shí),連續(xù)轉(zhuǎn)化的準(zhǔn)確信號(hào)時(shí)間就不能保證。如果總線頻率低于fADCK頻率的1/11,當(dāng)支持長(zhǎng)信號(hào)時(shí),連續(xù)轉(zhuǎn)化的準(zhǔn)確信號(hào)時(shí)間就不能保證。 當(dāng)455kHz振蕩電路被使用,并且總線頻率是227·5kHz時(shí),異步時(shí)鐘(ADACK)應(yīng)該被選為模數(shù)轉(zhuǎn)換器(ADC)的時(shí)鐘源。 比較 表4列出煙霧探測(cè)儀應(yīng)用最常使用的MCU。 *這是為Vdd=3V、Fbus=1 MHz、FBE模式(帶有外部2 MHz晶振)提供的電流。FLL使用大約220310uA,ICR一般使用100uA,對(duì)于FEI模式,一般490+250+100=840uA;同時(shí)OSC在LP模式下使用5uA,帶有32kHz外部表晶體振蕩器的FEE模式大概是490+250+5=745uA。 **這是為Vdd=3V、Fcpu=1 MHz,帶有外部4 MHz RC振蕩器提供的電流。 ***這是為Vdd=3V、Fmclk=1 MHz,帶有32768表晶體振蕩器提供的電流。因此包括DCO和振蕩器的供應(yīng)電流。 ^FBE模式,F(xiàn)bus=455(2*2)=113·75kHz。 ^^Fmclk=455/4=113·75kHz。 |