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