PIC單片機(jī)在電話遠(yuǎn)程控制器中的低功耗設(shè)計
摘要:結(jié)合電話遠(yuǎn)程控制器的低功耗設(shè)計,探討PIC單片機(jī)低功耗的設(shè)計方法,并給出設(shè)計電路原理圖。
關(guān)鍵詞:PIC單片機(jī) 低功耗設(shè)計 電話遠(yuǎn)程控制器 待機(jī)
引言
20世紀(jì)90年代以來,隨著集成電路特征線寬的持續(xù)縮小以及芯片密度和工作頻率的相應(yīng)增加,降低功耗已經(jīng)成為亞微米和深亞微米超大規(guī)模集成電路設(shè)計中的一個主要考慮因素。功耗的增加會帶來一系列問題,例如電路參數(shù)漂移、可靠性下降、芯片封裝成本增加等。因此,系統(tǒng)的功耗在整個系統(tǒng)設(shè)計中,尤其是在采用電池供電的系統(tǒng)中顯得十分重要。
Microchip公司PIC系列的單片機(jī)為設(shè)計高性能、低功耗的單片機(jī)系統(tǒng)提供了很好的解決方案。下面從低功耗設(shè)計方法及具體例子來介紹PIC單片機(jī)低功耗應(yīng)用。
1 低功耗設(shè)計方法
為使系統(tǒng)工作在低功耗狀態(tài),必須正確設(shè)置單片機(jī)的配置及工作方式。下面結(jié)合最常用的PIC12、PIC16等單片機(jī)介紹低功耗系統(tǒng)的設(shè)計方法。
1.1 基本設(shè)計方法
有許多技術(shù)可以降低系統(tǒng)的功耗,最常用的是Sleep模式。程序執(zhí)行一條SLEEP指令,便進(jìn)入了休眠(Sleep)模式。要Sleep模式下,晶振停止振蕩,而此時單片機(jī)在3V電源條件下,只有1μA的電流。系統(tǒng)工作時,單片機(jī)可以采用看門狗或外部事件周期性地喚醒單片機(jī),利用電子開關(guān)為系統(tǒng)提供電源,以減少系統(tǒng)待機(jī)功耗,延長電池使用時間。
單片機(jī)的工作頻率和功耗的關(guān)系也很大,頻率越高,功耗越大。在采用32kHz晶振、3V工作電壓時,PIC12、PIC16等系列單片機(jī)的典型工作電流只有15μA;而采用4MHz晶振、5V工作電壓時,單片機(jī)的典型工作電流達(dá)到幾mA。在許多低功耗的場合,采用低速晶振實現(xiàn)低功耗非常有效。如果單片機(jī)采用RC振蕩,還可以通過I/O口的操作改變振蕩電阻,從而改變單片機(jī)工作頻率,達(dá)到節(jié)能的目的。如圖1所示,1個I/O引腳可以在等待狀態(tài)下將并聯(lián)電阻R1去掉,降低單片機(jī)工作頻率。當(dāng)單片機(jī)需要工作時,可將I/O引腳設(shè)置為輸出并輸出高電平,從而提高振蕩頻率。
1.2 振蕩電路設(shè)計
在單片機(jī)系統(tǒng)設(shè)計中,振蕩電路的設(shè)計是十分重要的一個環(huán)節(jié)。PIC系列單片機(jī)的典型振蕩電路如圖2所示。
一般情況下,設(shè)計人員按照廠家給出的參數(shù)表進(jìn)行選擇。如果系統(tǒng)能夠正常工作,也就不再進(jìn)行改進(jìn)了。其實,這是不合適的。因為Microchip的單片機(jī)根據(jù)型號和版本的不同,工作電壓在直流2.5~5.5V的范圍內(nèi),汽車級溫度可以在-40~-125℃范圍內(nèi),而參數(shù)表中只給出了有限的幾種情況,實際環(huán)境參數(shù)會對振蕩電路的性能產(chǎn)生很大的影響。如高溫、低電壓可減小振蕩環(huán)路增益,而從降低振蕩頻率或者難以啟動;低溫、高電壓可以使環(huán)路增益變大,從而使晶振過驅(qū)動,產(chǎn)生損壞的潛在危險或者振蕩電路工作的高次諧波頻率上升,加大系統(tǒng)功耗。因此,如何正確設(shè)計系統(tǒng)的振蕩電路十分必要。對于PIC系列單片機(jī),一般的設(shè)計步驟如下:
①選擇晶振。根據(jù)系統(tǒng)需要的振蕩頻率進(jìn)行晶振的選擇。此外,晶振的工作溫度和頻率穩(wěn)定度也是十分重要的指標(biāo)。
②選擇振蕩器類型。PIC系列單片機(jī)有RC、LP、XT、HS等振蕩模式。除RC模式外,振蕩模式的選擇實際上就是環(huán)路增益的選擇。低增益對應(yīng)低振蕩頻率,高增益對應(yīng)高振蕩頻率。一般根據(jù)實際需要的工作頻率可參考數(shù)據(jù)手冊來選擇。
③選擇C1、C2。理想的情況是,保證系統(tǒng)在高溫和最低工作電壓下能夠正常工作,使得電容在數(shù)據(jù)手冊推薦的范圍內(nèi)最小。同時選擇C2比C1大一些以加大相移,使其有利于振蕩電路的上電啟動。
?、苓x擇Rs。在以上參數(shù)都已經(jīng)選定后需要決定Rs的大小。簡單的辦法是讓系統(tǒng)工作在最低溫度和最大電壓情況下,此時得到的應(yīng)該是時鐘電路最大輸出幅度。用示波器觀察引腳OSC2的輸出波形(注意,示波器的探頭將給電路引入一個電容,一般為幾pF),如果發(fā)現(xiàn)正弦波的峰(接收Vdd處)和谷(接收Vss處)被削平或壓扁,說明驅(qū)動過載,需要在OSC2和C2間加入1個電阻Rs,一般1kΩ左右或小于1kΩ。Rs不宜過大,過大將使得輸入和輸出產(chǎn)生隔離,從而產(chǎn)生較大的噪聲。當(dāng)發(fā)現(xiàn)需要一個較大的Rs才能消除過驅(qū)動時,可以增加負(fù)載電容C2來補(bǔ)償。C2一般選擇在15~33pF之間。
系統(tǒng)振蕩電路的設(shè)計對系統(tǒng)的穩(wěn)定性、功耗等影響很大。一般情況下,系統(tǒng)從Sleep狀態(tài)下喚醒時,振蕩電路最難啟動(尤其系統(tǒng)工作在高溫、低壓、低頻的情況下)。此時,電阻Rs有利于振蕩電路的啟動,因為廉價的碳膜電阻容易產(chǎn)生白噪聲,從而幫助電路起振。此外,選擇C2稍大于C1以增大相移,也有利于電路起振。
2 具體應(yīng)用例子
2.1 系統(tǒng)組成及框圖
系統(tǒng)主要由PIC單片機(jī)、雙音頻解碼拔號電路、語音集成電路、接口電路、Vcc電源控制電路、射頻發(fā)射電路和EEPROM組成,可完成對家用電器的控制和對報警求援語音信息的自動傳送,如圖3所示。
2.2 控制器工作方式
*當(dāng)與控制器相串聞的電話機(jī)(以下稱為本地機(jī))處于摘機(jī)時,電話線輸入電壓發(fā)生變化,引起CD40106的2腳輸出電平變化,輸入到CPU的RB0端口產(chǎn)生中斷信號,喚醒CPU,控制器進(jìn)入工作狀態(tài)。通過本地機(jī)的拔號盤對控制器的各種功能進(jìn)行控制。如控制電視、音響、照明燈等電器電源的開關(guān)。
*當(dāng)控制器接收到振鈴信號時,CD40106的4腳輸出電平變化,輸入CPU的RB6端口產(chǎn)生中斷信號,喚醒CPU進(jìn)入工作狀態(tài),并對振鈴信號進(jìn)行計數(shù);達(dá)到設(shè)定鈴聲數(shù)后,使控制器進(jìn)入電話接收狀態(tài),開始接收遠(yuǎn)程傳輸DTMF信號,經(jīng)MT8880解調(diào)得到的信號通過IRQ向單片機(jī)發(fā)出中斷信號,將數(shù)據(jù)存入寄存器,經(jīng)CPU運行,對控制器的各種功能進(jìn)行控制。
*當(dāng)控制器作為報警器,并處于警備狀態(tài)時,報警探頭時刻檢測防范區(qū)域的情況;當(dāng)探頭向控制器發(fā)出警情信息,輸入CPU的RB5中斷產(chǎn)生信號,控制器進(jìn)入工作狀態(tài),從EEPROM芯片讀出預(yù)先設(shè)置的報警電話號碼,經(jīng)MT8880轉(zhuǎn)換為DTMF信號,自動撥號,以語音形式將信息傳送給用戶或直接報警。
2.3 應(yīng)用電路
(1)電話接口電路
電話機(jī)與控制器采用控制器在前,電話機(jī)在后的串聯(lián)方式,可實現(xiàn)電話機(jī)對控制器各種功能的控制。接口電路由過壓保護(hù)電路、極性轉(zhuǎn)換電路和中斷請求電路組成,如圖4所示。
?、龠^壓保護(hù)電路。在電話線回路上加入了一個壓敏電阻R,它的作用是當(dāng)它兩端的電壓大于其工作電壓時呈短路狀態(tài),從而保護(hù)后級電路免受高壓危害。當(dāng)加到它的兩端的電壓小于其工作電壓,壓敏電阻呈開路狀態(tài),對后級電路的工作沒有任何影響。在本設(shè)計中,壓敏電阻的工作電壓為220V。
②極性轉(zhuǎn)換電路。由于在電話線上傳輸?shù)氖墙涣餍盘?,為了使信號的極性固定,在電路中加入電橋,進(jìn)行全波整流。
?、壑袛嗾埱箅娐?。為延長電池工作時間,CPU在待機(jī)時處于休眠的省電狀態(tài),在實現(xiàn)遠(yuǎn)程電話機(jī)和本地機(jī)對控制器功能控制時,由中斷請求電路將CPU喚醒。
(2)語音電路
語音電路如圖5所示。它以ISD4000語音芯片為核心,主要是存儲報警語音,輸出經(jīng)功率放大后傳送到電話線上。
(3)MT8880與PIC單片機(jī)的接口電路
MT8880是Mitel公司的DTMF收發(fā)器,具有功能強(qiáng)、功耗低、工作穩(wěn)定、可靠等性高優(yōu)點,因此在DTMF信號調(diào)制的場合得到了廣泛的應(yīng)用。MT8880與PIC單片機(jī)的接口電路如圖6所示。
?、費T8880與單片機(jī)的接口電路。D0~D3為4根數(shù)據(jù)線,MT8880對經(jīng)過前置處理的DTMF信號進(jìn)行解調(diào),將解調(diào)得的信號存入片內(nèi)寄存器中,并通過IRQ向單片機(jī)發(fā)出中斷信號。單片機(jī)相應(yīng)中斷請求后,在R、W、RS0、RD的控制下,通過D0~D3讀出解調(diào)出的數(shù)據(jù)。
?、贒TMF信號放大電路。當(dāng)微處理器將要發(fā)送的DTMF數(shù)據(jù)寫入MT8880相應(yīng)的寄存器時,MT8880從TONE引腳發(fā)出DTMF信號,信號經(jīng)過放大電路放大后,送往變壓器進(jìn)行電壓變化。
3 程序設(shè)計
程序在運行時:①為電器控制器,若是遠(yuǎn)程電話機(jī)對控制器進(jìn)行操作,是根據(jù)電話的振鈴聲數(shù)來判斷;若本地電話機(jī)對控制器進(jìn)行操作,是根據(jù)本地電話機(jī)的摘機(jī)情況來判斷。②為報警器,報警探頭隨時檢測到警情并發(fā)出信號給控制器,而控制器則是根據(jù)用戶的設(shè)置情況,是處于警備與否來判斷是否拔出報警電話。圖7是程序流程圖。
下面主要介紹初始化程序、MT8880設(shè)置子程序和DTMF信號發(fā)送以及接收子程序。
;初始化寄存器
F0 EQU 0H
RTCC EQU 01H
PC EQU 02H
STATUS EQU 03H
FSR EQU 04H
RA EQU 05H
RB EQU 06H
RC EQU 07H
RD EQU 08H
RE EQU 09H
TRISA EQU 85H
TRISB EQU 86H
TRISC EQU 87H
TRISD EQU 88H
TRISE EQU 89H
DAIFS EQU 0X50;待發(fā)送的數(shù)據(jù)放在50開始的區(qū)域
RECE EQU 0X21
SEND EQU 0X22
DAIJS EQU 0X40 ;數(shù)據(jù)暫存在從40H開始的區(qū)域
;MT8880設(shè)置子程序
;置MT8880為DTMF接收狀態(tài)
R8880:MOVLW0X0D
MOVWF REVE ;寫控制寄存器A(接收模式)
MOVLW 0X00
MOVWF REVE ;寫控制寄存器B(突發(fā)模式)
REIURN
;置MT8880為DTMF接收狀態(tài)
T8880:MOVLW 0X0F
MOVWF SEND;寫控制寄存器A(發(fā)送模式)
MOVLW 0X00
MOVWF SEND;寫控制寄存器B(突發(fā)模式)
RETURN
;DTMF發(fā)送子程序
TELEPHON:CALL T8880 ;設(shè)置為發(fā)送模式
LOOP:MOVF DAIFS,0 ;拔號
MOVLW SEND
INCF DAIFS,1 ;檢查是否發(fā)送結(jié)束
LL1:BTFSS SEND,1
GOTO LL1 ;已經(jīng)發(fā)送完畢
CALL DELAY200 ;延時200ms
DECF DATALENGTH
GOTO LOOP ;發(fā)送完畢
RETURN
;DTMF接收子程序
RECEIVE:CALL R8880 ;設(shè)置為接收模式
RWT:MOVF DJIJS,0
MOVLW REVE
BTFSS REVE,2
GOTO RWT ;查詢是否收到數(shù)據(jù)
MOVLW REVE
ANDLW 0XOF
MOVF REVE
INCF DAIJS,1
DECE DATALENGTH
RETURN
結(jié)語
利用PIC單片機(jī)低功耗方式設(shè)計電話遠(yuǎn)程控制器,待機(jī)時由電池供電,工作時由電話網(wǎng)供電,系統(tǒng)用4節(jié)5號電池可供控制器工作一年,產(chǎn)品可實現(xiàn)對家用電器控制,又具有報警及緊急求助功能,可進(jìn)行遠(yuǎn)程控制和本地機(jī)的控制,且不影響電話正常使用。在電話遠(yuǎn)程控制器的原理基礎(chǔ)上,設(shè)計的有線防盜報警產(chǎn)品更具市場前景,成本更低,已批量投入市場,市場反映良好。
評論