摘 要:本文介紹了采用凌陽科技的SPCE061A芯片作為控制器核心的語音電冰箱。它能控制電冰箱的工作過程,并能用語音將電冰箱的工作狀態(tài)、應(yīng)用常識(shí)播報(bào)給用戶,使控制過程更人性化。
關(guān)鍵詞:語音 控制
1 引言
隨著家用電冰箱的普及,人們對(duì)電冰箱的控制功能要求越來越高,這對(duì)電冰箱控制器提出了更高的要求,多功能、智能化是其發(fā)展方向之一,傳統(tǒng)的機(jī)械控制、簡單的電子控制已經(jīng)難以滿足發(fā)展的要求。本文介紹了采用凌陽科技公司的新秀——SPCE061A作為控制器核心,對(duì)電冰箱的工作過程進(jìn)行控制,并用語音將電冰箱的一些工作狀態(tài)、使用常識(shí)播報(bào)出來,使控制過程更人性化。
2 芯片特性簡介
SPCE061A 是凌陽科技開發(fā)的采用μ’nSP™內(nèi)核的16位結(jié)構(gòu)的微控制器,SPCE061A里內(nèi)嵌32K字的閃存FLASH ROM。較高的處理速度使μ’nSP™能夠非常容易地、快速地處理復(fù)雜的數(shù)字信號(hào)。因此,以μ’nSP™為核心的SPCE061A微控制器也適用在數(shù)字語音識(shí)別應(yīng)用領(lǐng)域。
SPCE061A在2.6V~3.6V工作電壓范圍內(nèi)的工作速度范圍為0.32MHz~49.152MHz,較高的工作速度使其應(yīng)用領(lǐng)域更加拓寬。2K字SRAM和32K字閃存ROM僅占一頁存儲(chǔ)空間,32位可編程的多功能I/O端口;兩個(gè)16位定時(shí)器/計(jì)數(shù)器;32768Hz實(shí)時(shí)時(shí)鐘;低電壓復(fù)位/監(jiān)測功能;8通道10位模-數(shù)轉(zhuǎn)換輸入功能并具有內(nèi)置自動(dòng)增益控制功能的麥克風(fēng)輸入方式;雙通道10位DAC方式的音頻輸出功能……。SPCE061A是數(shù)字聲音和語音識(shí)別產(chǎn)品的一種最經(jīng)濟(jì)的應(yīng)用。
特性:
·16位μ’nSP™微處理器;
·工作電壓:內(nèi)核工作電壓VDD為2.6~3.6V(CPU),IO口工作電壓VDDH為VDD~5.5V(I/O);
·CPU時(shí)鐘:0.32MHz~49.152MHz ;
·內(nèi)置2K字SRAM;
·內(nèi)置32K閃存ROM;
·可編程音頻處理;
·晶體振蕩器;
·系統(tǒng)處于備用狀態(tài)下(時(shí)鐘處于停止?fàn)顟B(tài)),耗電小于2μA@3.6V;
·2個(gè)16位可編程定時(shí)器/計(jì)數(shù)器(可自動(dòng)預(yù)置初始計(jì)數(shù)值);
·2個(gè)10位DAC(數(shù)-模轉(zhuǎn)換)輸出通道;
·32位通用可編程輸入/輸出端口;
·14個(gè)中斷源可來自定時(shí)器A / B,時(shí)基,2個(gè)外部時(shí)鐘源輸入,鍵喚醒;
·具備觸鍵喚醒的功能;
·使用凌陽音頻編碼SACM_S240方式(2.4K位/秒),能容納210秒的語音數(shù)據(jù);
·鎖相環(huán)PLL振蕩器提供系統(tǒng)時(shí)鐘信號(hào);
·32768Hz實(shí)時(shí)時(shí)鐘;
·7通道10位電壓模-數(shù)轉(zhuǎn)換器(ADC)和單通道聲音模-數(shù)轉(zhuǎn)換器
·聲音模-數(shù)轉(zhuǎn)換器輸入通道內(nèi)置麥克風(fēng)放大器和自動(dòng)增益控制(AGC)功能;
·具備串行設(shè)備接口;
·低電壓復(fù)位(LVR)功能和低電壓監(jiān)測(LVD)功能;
·內(nèi)置在線仿真板(ICE,In- Circuit Emulator)接口。
3 系統(tǒng)組成
液體由液態(tài)變?yōu)闅鈶B(tài)時(shí),會(huì)吸收很多熱量,簡稱為“液體汽化吸熱”,電冰箱就是利用了液體汽化的過程中需要吸熱的原理來制冷的。
圖3.1為蒸氣壓縮式電冰箱制冷系統(tǒng)原理圖。它由壓縮機(jī)、冷凝器、干燥過濾器、毛細(xì)管、蒸發(fā)器等部件組成,其動(dòng)力均來自壓縮機(jī),干燥過濾器用來過濾贓物和干燥水分,毛細(xì)管用來節(jié)流降壓,熱交換器為冷凝器和蒸發(fā)器。
圖 3.1
制冷壓縮機(jī)吸入來自蒸發(fā)器的低溫低壓的氣體制冷劑,經(jīng)壓縮后成為高溫高壓的過熱蒸氣,排入冷凝器中向周圍的空氣散熱成高壓過冷液體。高壓過冷液體經(jīng)干燥過濾器流入毛細(xì)管節(jié)流降壓,成為低溫低壓的液體,進(jìn)入蒸發(fā)器中汽化,吸收周圍被冷卻物品的熱量,使溫度降低到所需值,汽化后的氣體制冷劑又被壓縮機(jī)吸入,至此,完成一個(gè)循環(huán)。壓縮機(jī)冷循環(huán)周而復(fù)始的運(yùn)行,保證了制冷過程的連續(xù)性。
系統(tǒng)組成如圖3.2,主要由電源板、 單片機(jī)、傳感器組、壓縮機(jī)控制電路、電磁閥控制電路、顯示電路、化霜控制電路、電加熱絲控制電路、語音輸出電路、風(fēng)機(jī)控制電路等部分組成。
圖3.2系統(tǒng)組成
4 系統(tǒng)硬件設(shè)計(jì)
我們知道,電冰箱一般設(shè)有冷凍室和冷藏室。冷凍室用于速凍食品,在冷凍室中的食品可以存放較長的時(shí)間,食品中的水分會(huì)凝結(jié)成霜,到一定程度還要除霜,其溫度可為-16℃ ~~~ -26℃之間。冷藏室以不凍傷食品又有保鮮作用為準(zhǔn),其溫度可為2℃ ~~~ 10℃之間。
具體的說,電冰箱控制器的主要任務(wù)就是控制壓縮機(jī)、電磁閥、化霜加熱絲、風(fēng)扇等的運(yùn)行,來保持箱內(nèi)食品的最佳溫度,達(dá)到食品保鮮的目的,即保證所儲(chǔ)存的食品在經(jīng)過冷凍或冷藏之后,保持色、味、水分、營養(yǎng)基本不變。LED將設(shè)定的溫度或?qū)嶋H溫度顯示出來,當(dāng)冷凍室溫度過高或開門時(shí)間過長還會(huì)用語音提示。
5 硬件組成
整個(gè)系統(tǒng)工作于3.3V電壓下,由電源板提供5V電壓,經(jīng)過LF33穩(wěn)壓到3.3V為系統(tǒng)供電。三個(gè)按鍵分別設(shè)置冷凍室溫度、冷藏室溫度和人工智能工作方式。溫度傳感器主要由冷凍室、冷藏室、冷凍室蒸發(fā)器盤管、冷藏室蒸發(fā)器盤管速凍室、環(huán)境溫度檢測等溫度傳感器組成。主控器不斷采集冷凍室、冷藏室及環(huán)境的溫度,并根據(jù)設(shè)定的值及采集值控制各部件的運(yùn)行。
5.1 鍵盤掃描、鍵碼分析
按鍵包括人工智慧鍵、冷凍調(diào)節(jié)鍵、冷藏調(diào)節(jié)鍵。鍵盤輸入電路如圖5.1。當(dāng)有鍵按下時(shí),對(duì)應(yīng)的IO口為拉到高電平。
圖5.1
5.2 傳感器輸入電路
電冰箱通過采集冷凍室和冷藏室的溫度,并根據(jù)實(shí)際溫度與設(shè)置溫度相比較來控制壓縮機(jī)、電磁閥、風(fēng)扇及化霜加熱絲等部件,使各室溫度保持在相應(yīng)設(shè)置值。SPCE061A單片機(jī)具有7信道10位逐次逼近式AD轉(zhuǎn)換器,本方案選用其中的5個(gè)信道來采集冷藏室、冷凍室、冷藏室盤管、冷凍室盤管和環(huán)境溫度,即傳感器主要由冷凍室、冷藏室、冷凍室蒸發(fā)器盤管、冷藏室蒸發(fā)器盤管速凍室、環(huán)境溫度檢測等溫度傳感器組成。其余2個(gè)信道用于功能的擴(kuò)展。溫度傳感器采用負(fù)溫度系數(shù)的熱敏電阻。其控制原理如圖5.2。
SPCE061A的AD輸入管腳和IOA共用,通過程序進(jìn)行AD轉(zhuǎn)換功能的控制。為防止電源電壓對(duì)AD的影響,SPCE061A為AD提供了專門的電源VDDIOAL、VSSIOAL。將5個(gè)熱敏電阻分別與固定電阻R41-R45串聯(lián)接于電源VDDIOAL、VSSIOAL,當(dāng)溫度改變時(shí),熱敏電阻阻值隨之改變,測量其分壓值大小則可計(jì)算出溫度值的大小。
圖5.2傳感器控制原理
5.3 顯示電路
顯示電路由四位8段數(shù)碼管組成,用來顯示冰箱內(nèi)的實(shí)際溫度、設(shè)置溫度或故障。接口電路如圖5.3,采用動(dòng)態(tài)顯示方式驅(qū)動(dòng)。
圖5.3 顯示電路
5.4 壓縮機(jī)、化霜電加熱絲、風(fēng)機(jī)、電磁閥控制電路
壓縮機(jī)控制電路比較簡單,如圖5.4。由IO口輸出信號(hào),通過8050反相驅(qū)動(dòng)電路來控制繼電器,再由繼電器控制壓縮機(jī)的開停。當(dāng)IO口輸出高電平時(shí),Q11飽和導(dǎo)通,繼電器線圈流過電流,其觸點(diǎn)吸合;當(dāng)IO口輸出低電平時(shí),Q11截止,繼電器線圈無電流,其觸點(diǎn)斷開。壓縮機(jī)的開關(guān)由相關(guān)室的溫度決定,每次開機(jī)之前必須檢測延時(shí)保護(hù)條件是否滿足,才能作出開機(jī)決策。
圖5.4 控制電路
化霜電加熱絲控制電路、風(fēng)機(jī)控制電路、電磁閥控制電路的結(jié)構(gòu)相似,只是器件參數(shù)有所不同,故在一起介紹。
5.5 斷電記憶功能
系統(tǒng)擴(kuò)展1塊AT24C01A來記憶斷電前的工作狀態(tài),這樣,來電后仍按斷電前的設(shè)定工作。AT24C01A為I2C總線,利用SPCE061A的IOB0、IOB1作為SCL、SDA信號(hào),如圖5.5,其中R23、R24為上拉電阻,I2C總線的讀寫時(shí)序由軟件控制。
圖5.5 AT24C01A
5.6 語音提示、報(bào)警電路
SPCE061A有兩信道電流輸出型DAC,每個(gè)信道的輸出能力可編程為2mA或3mA,只需外加一個(gè)負(fù)載電阻即可轉(zhuǎn)化成電壓信號(hào),經(jīng)三極管放大推動(dòng)喇叭,見圖5.6。
每次通電開機(jī)、改變工作模式、冷凍室超溫報(bào)警等,都會(huì)以甜美的聲音提示您,以保證操作正確,開機(jī)的提示語音還會(huì)向您普及一些使用電冰箱的常識(shí)。報(bào)警電路主要用于冷凍室溫度過高時(shí),冷凍溫度會(huì)以一定的頻率顯示,并用語音提示“冷凍室超溫”。此時(shí)應(yīng)檢查冰箱門是否關(guān)好(請將冰箱門關(guān)好)?是否一次性放入大量較熱的食品?冰箱工作一段時(shí)間后,冷凍室溫度降低,冷凍溫度顯示燈停止閃爍,超溫報(bào)警自動(dòng)消除。
圖5.6
6 軟件設(shè)計(jì)
本系統(tǒng)軟件主要由主流程、功能子程序、中斷服務(wù)程序組成。
子程序主要由鍵盤掃描、鍵碼分析、溫度采集、傳感器檢測、人工智慧、冷藏室溫度采集與控制、冷凍室溫度采集與控制、壓縮機(jī)保護(hù)及控制、驅(qū)動(dòng)、顯示數(shù)據(jù)計(jì)算、運(yùn)行參數(shù)存儲(chǔ)等模塊組成,LED的顯示在256Hz的中斷程序中完成,用SPCE061A播放語音的程序在《SPCE061A單片機(jī)》一書及凌陽大學(xué)計(jì)劃網(wǎng)站上有詳細(xì)的講解,這里不再做分析。主流程如圖6.1。
圖6.1主程序流程
6.1 初始化子程序
初始化模塊主要完成初始化I/O口、中斷、內(nèi)存單元,并讀出AT24C01A相應(yīng)單元的值進(jìn)行控制,程序流程如圖6.2。
圖6.2 初始化子程序
AT24C01A的0x02單元為標(biāo)志位:當(dāng)讀出的值為0xFF時(shí),表示初次使用,則自動(dòng)進(jìn)入人工智慧控制模式。為0x55時(shí),表明斷過電,讀出斷電前的工作狀態(tài)。AT24C01A單元分配:
表6.1
地址 | 工作狀態(tài) | 地址 | 工作狀態(tài) |
0x02 | 標(biāo)志位 | 0x08、0x 09 | 冷凍室設(shè)置溫度 |
0x04、0x 05 | 運(yùn)行標(biāo)志 | 0x0A、0x 0B | 冷藏室設(shè)置溫度 |
0x06、0x 07 | 驅(qū)動(dòng)標(biāo)志 | 0x11—0x1D | 相關(guān)時(shí)間單元 |
每次存儲(chǔ)時(shí),將各參數(shù)存儲(chǔ)在3個(gè)不同的單元中(同一參數(shù)存儲(chǔ)3次),每次上電復(fù)位后,將3個(gè)單元的數(shù)據(jù)讀出且進(jìn)行比較,采取三中取二的決策方式,如果3次都不同,則進(jìn)入最安全的方式運(yùn)行。
6.2 鍵盤掃描、鍵碼分析
當(dāng)有鍵按下時(shí),對(duì)應(yīng)的IO口為拉到高電平,CPU掃描到按鍵動(dòng)作,則根據(jù)當(dāng)前運(yùn)行狀態(tài)和按鍵來改變運(yùn)行標(biāo)志位,并開始計(jì)時(shí),如果連續(xù)5秒無按鍵,則將有效設(shè)定送入相應(yīng)控制單元。
6.3 人工智慧模塊
人工智慧模塊通過檢測環(huán)境溫度的高低,自動(dòng)確定冷凍室和冷藏室的設(shè)定溫度。如果環(huán)境溫度高,則相應(yīng)地將冷藏室、冷凍室的溫度設(shè)置高一些;如果環(huán)境溫度低,則相應(yīng)地將冷藏室、冷凍室的溫度設(shè)置低一些,以免壓縮機(jī)長時(shí)間運(yùn)行或不運(yùn)行。
6.4 冷凍室(冷藏室)溫度采集與控制
通過冷凍室(冷藏室)溫度傳感器,采集冷凍室(冷藏室)溫度,將數(shù)據(jù)致入顯示緩沖區(qū),并將實(shí)測溫度與冷凍室(冷藏室)的設(shè)置溫度比較,如果實(shí)測溫度高于設(shè)置溫度,則置冷凍室(冷藏室)高標(biāo)志,否則返回。
熱敏電阻靈敏度高,為了防止開冰箱門時(shí)溫度傳感器采集到的溫度變化太快,引起控制部件的頻繁動(dòng)作,溫度采集采用滑動(dòng)平均值濾波方法,程序中數(shù)組R_tempR[15] 為冷藏室溫度采集存儲(chǔ)隊(duì)列單元(程序初始化時(shí)連續(xù)采集了15次溫度,存儲(chǔ)在數(shù)組的15個(gè)元素中),程序每循環(huán)一次,采集一次冷藏室溫度,數(shù)組元素值依次向高位移位一次,R_tempR[14]元素的值丟失,并將溫度存入R_tempR[0],這樣在數(shù)組中始終有15個(gè)“最新”的數(shù)據(jù),求出數(shù)組的算術(shù)平均值作為本次測量結(jié)果。R_tempKJ[15]、R_tempF[15]、R_tempHS[15]、R_tempHW[15]分別為冷藏室蒸發(fā)器盤管、冷凍室溫度傳感器、冷凍室蒸發(fā)器盤管和環(huán)境溫度傳感器溫度采集存儲(chǔ)單元,計(jì)算方法同上。溫度采集流程見圖6.3。
圖6.3
6.5 壓縮機(jī)保護(hù)及控制模塊
本模塊包括三部分:壓縮機(jī)保護(hù)子程序、壓縮機(jī)控制子程序、壓縮機(jī)啟動(dòng)/停止子程序。
壓縮機(jī)保護(hù)子程序主要用于啟動(dòng)壓縮機(jī),壓縮機(jī)每次啟動(dòng)前,先檢查停機(jī)時(shí)間是否已經(jīng)延時(shí)5分鐘。若已經(jīng)延時(shí)5分鐘,壓縮機(jī)可以立即啟動(dòng);若未到5分鐘,則繼續(xù)延時(shí)到5分鐘后,壓縮機(jī)才可以啟動(dòng)。見圖6.4。
圖6.4 壓縮機(jī)保護(hù)
壓縮機(jī)控制子程序主要根據(jù)冷凍室和冷藏室的溫度檢測標(biāo)志、化霜(結(jié)束)標(biāo)志、壓縮機(jī)允許開機(jī)標(biāo)志來決定壓縮機(jī)的啟動(dòng)、停機(jī),并置啟動(dòng)/停機(jī)命令標(biāo)志。
壓縮機(jī)啟動(dòng)/停止子程序根據(jù)壓縮機(jī)當(dāng)前的運(yùn)行狀態(tài)和啟動(dòng)/停機(jī)命令標(biāo)志來控制壓縮機(jī)的運(yùn)行。
表6.2
壓縮機(jī)運(yùn)行狀態(tài) | 啟動(dòng)/停機(jī)命令標(biāo)志 | 動(dòng)作 |
1 | 1 | 返回 |
0 | 關(guān)壓縮機(jī);置關(guān)機(jī)標(biāo)志;計(jì)時(shí)單元1清0;計(jì)時(shí)單元2停止計(jì)時(shí)。 |
0 | 1 | 啟動(dòng)壓縮機(jī);置開機(jī)標(biāo)志;計(jì)時(shí)單元2開始計(jì)時(shí) |
0 | 返回 |
注: 1)計(jì)時(shí)單元1為壓縮機(jī)關(guān)機(jī)延時(shí)5分鐘計(jì)時(shí)單元;計(jì)時(shí)單元2為壓縮機(jī)累計(jì)運(yùn)行時(shí)間計(jì)時(shí)單元,用于自動(dòng)化霜計(jì)時(shí)。 2)壓縮機(jī)運(yùn)行狀態(tài): 1-----運(yùn)行 0---停機(jī) 啟動(dòng)/停機(jī)命令標(biāo)志: 1-----啟動(dòng)命令 0---停機(jī)命令 |
6.6 驅(qū)動(dòng)模塊
驅(qū)動(dòng)模塊包括壓縮機(jī)、電磁閥、風(fēng)扇和化霜加熱絲,程序根據(jù)當(dāng)前運(yùn)行狀態(tài)和驅(qū)動(dòng)標(biāo)志位來確定其運(yùn)行狀態(tài)。
圖6.5
6.7 語音輸出模塊
凌陽科技提供了SACM-A2000、SACM-S480等語音壓縮算法,隨SPCE061A的開發(fā)環(huán)境一起提供給用戶。在用戶程序方面,開發(fā)環(huán)境提供了C語言和匯編語言的API(應(yīng)用程序接口),使用非常方便。
語音播放程序包括播放初始化程序、播放程序和中斷服務(wù)程序。播放初始化完成初始化A/D、定時(shí)器TimerA和音量,播放程序從ROM里取出預(yù)先壓縮好的語音數(shù)據(jù),解壓縮后存放到播放隊(duì)列里。中斷服務(wù)程序定時(shí)地從播放序列中讀數(shù)據(jù),送到D/A轉(zhuǎn)換驅(qū)動(dòng)喇叭發(fā)音。
用SACM-S480算法播放程序:
SACM_S480_Initial(1); //初始化A/D、TimerA
SACM_S480_Volume(15); //初始化音量
SACM_S480_Play(result,3,3); //播放一條語音
while((SACM_S480_Status()&0x0001)==1)//播放狀態(tài)
{
SACM_S480_ServiceLoop();//播放服務(wù)函數(shù)
}
SACM_S480_Stop(); //停止播放
主播放函數(shù)SACM_S480_Play(int Index,Int Channel,Int Ramp_Set)有三個(gè)參數(shù),
Index:播放索引號(hào)。
Channel:播放通道。1-通過DAC1通道播放,2-通過DAC2通道播放,3-通過DAC1和DAC2通道播放。
Ramp_Set:消除開始放音時(shí)的“!甭。
中斷服務(wù)程序:
_FIQ:
push R1,R4 to [SP] //寄存器入棧
R1 = [P_INT_Ctrl] //讀中斷標(biāo)志位
R1 &= 0x2000
jz FIQ_ret //不是TimerA FIQ中斷
call F_FIQ_Service_SACM_S480; //放音服務(wù)函數(shù)
FIQ_ret:
R1 = 0xa800;
[P_INT_Clear] = R1; //清中斷標(biāo)志
pop R1,R4 from [SP];//寄存器出棧
reti;
7 結(jié)語
應(yīng)用SPCE061A的家用電冰箱控制器具有多種優(yōu)點(diǎn):
1. 設(shè)計(jì)新穎、功能強(qiáng)大。SPCE061A是凌陽科技公司最新的16位單片機(jī),特點(diǎn)是高速、低功耗、強(qiáng)大的I/O口功能,以上的設(shè)計(jì)方案只占用SPCE061A的一部分資源,可以在此基礎(chǔ)上開發(fā)出功能更強(qiáng)的產(chǎn)品,縮短了開發(fā)周期。
2. 成本低、性價(jià)比高、運(yùn)行可靠。SPCE061A有豐富的I/O口資源,外圍電路相對(duì)簡單。價(jià)格低,性能高,以上的控制方案已經(jīng)通過EMC測試。
8 參考文獻(xiàn)
[1] 劉勝利等,新型無氟冰箱及冷藏柜原理及維修技術(shù)[M] 北京:電子工業(yè)出版社
[2] 方貴銀,新型電冰箱維修技術(shù)與實(shí)例[M] 北京:人民郵電出版社