基于ST20P18的通用家電無線遙控設備的設計方案
以 433MHz為頻率的無線通用遙控設備,為短距離無線通信提供了非常簡單的解決方案,它是開發(fā)低成本、低功耗無線通信系統(tǒng)的理想方案。一般由單片機控制電路、LCD顯示電路、無線發(fā)碼電路等構成。按照節(jié)點的多少可以分為單節(jié)點和多節(jié)點模式。單節(jié)點也稱為點對點式,結構簡單、體積小,便于隨身攜帶,用于控制單個家電的通信;而多節(jié)點又稱為點對多式,它可以根據用戶的要求而設計不同的路數,也可以很方便地進行擴展,可以同時控制多個家電,功能齊全。本系統(tǒng)設計為16路,在接收部分可以根據接收到的信息控制多個家用電器。
系統(tǒng)硬件的結構原理和設計
1 系統(tǒng)簡介
通用型遙控設備主要由開/關鍵、液晶顯示屏、置位鍵、確認鍵、返回鍵、數字鍵盤等部分組成,其外形與手機相仿。它的操作也很簡單,以遙控電風扇為例,打開遙控器后,首先
顯示主菜單,是各種電器的名稱,用上下鍵選中所要操作的家用電器。例如選中“電風扇”,按確認鍵后就可進入其子菜單,再選擇所操作的項目,如風力擋位的大小、風扇的方向等,再按確認鍵進入下級子菜單,進行具體的操作,如調整風力和風向等,其余家用電器類似操作。
硬件電路是由1個4位的撥碼開關電路、無線發(fā)射電路、ST20P18單片機主控制電路、鍵盤掃描電路、液晶(LCD)顯示電路等組成。
2 無線發(fā)碼電路
其中單片機采用的是 ST20P18,它是由臺灣矽創(chuàng)公司生產的一種CMOS工藝制造的低功耗低價位的8位單片機,芯片內部帶有振蕩器、系統(tǒng)定時器、看門狗定時計數器、LCD 控制器和16Kb的ROM以及192B的RAM。ST20P18控制的發(fā)碼電路原理圖如圖1所示,其發(fā)碼的基本原理為:系統(tǒng)利用撥碼開關來控制地址位和數據位(二進制)信息的設置,再通過單片機運行發(fā)碼程序進行編碼并把地址位和數據位信息變換成一串脈沖信號,最后由無線發(fā)射電路發(fā)射出去。具體實現為:單片機PB0口為發(fā)碼電路的數據輸出口和控制口,當需要發(fā)碼的時候該口設置為輸出口,然后以脈沖的形式,按照相關的通信協(xié)議,輸出當前所要發(fā)出的正確數據。反之,PB0口可復用為其他功能。PB0口的脈沖數據經發(fā)碼電路調制并發(fā)射出433MHz的無線電波。
圖1 無線發(fā)碼電路
在無線發(fā)射電路中使用聲表面濾波器搭建的模擬發(fā)射模塊電路,其工作頻率是433MHz,采用聲表諧振器SAW穩(wěn)頻,頻率穩(wěn)定度極高,當環(huán)境溫度在 -25~+85℃之間變化時,頻漂僅為10-6/℃,特別適合一發(fā)多收無線遙控及數據傳輸系統(tǒng)。但因無線電信號傳輸時受到很多因素的影響,所以一般實用距離只有標準理想距離的一半甚至更少,這點在開發(fā)時需要注意,如果需要更遠一點的發(fā)射距離,可以在發(fā)射模塊的輸出端增加一級射頻功率放大器。
經過對電路的研究得到以下結論:
● 為了得到穩(wěn)定且正確的頻率,經過反復的調試得出無線電波頻率取決于R3,當R3=15kΩ時,發(fā)射的無線電頻率為433MHz。
● 由于該模塊是由模擬電路搭建,所以決定了其性能不如相關的其他類型的數字射頻芯片,但是其成本相當的低廉!考慮到尺寸和成本因素且射頻波長短,在設計中選用50Ω的1/4波長偶極子微帶印制板天線,即在接地層由電介質隔開的印制電導線。故在該電路中天線的形狀以及長短具有至關重要的作用。設計實踐表明:天線的形狀和長短如選取不滿足50Ω的1/4波長偶極子天線,該電路發(fā)射不穩(wěn)定,更嚴重直接導致該電路不能起振。
3 鍵盤掃描電路
由于ST20P18的I/O口有限,故在鍵盤電路中采用掃描的方式來實現。該電路的實現方式如圖2所示。其工作的基本原理是:單片機初始化后先設置 PA0至PA5、6個I/O口均為輸入方式。以K1為研究對象,先設置PA0口為高電平,設置PA5口為低電平,當K1按鍵按下后,PA0則由高電平跳變?yōu)榈碗娖?,并產生中斷。單片機響應該中斷,執(zhí)行中斷服務程序。同理,其他6個按鍵也是按照該方式工作的。單片機掃描原則是自上而下,自左而右的。
圖2 鍵盤掃描電路
4 LCD顯示電路
本設計采用的ST20P18單片機,其內核中自帶控制/驅動液晶模塊,該LCD(圖3)顯示模塊是8×40點陣,常用于遙控設備的液晶顯示。液晶顯示的主要控制引腳為COM0~COM7。本設計只用到COM0~COM3。
圖3 LCD顯示電路
該模塊的顯示RAM分為4塊,每塊5行,8列,所以共有4×5×8位。液晶屏幕上的每一個8點列對應顯示RAM中的一個列字節(jié)。當設置了塊地址和列地址后,就唯一確定了顯示RAM中的一個列字節(jié)。每個列字節(jié)中最上面一位為LSB,最下面一位為MSB。對顯示RAM的一個列字節(jié)賦值就是對液晶屏幕上對應像素點是否顯示進行控制。把不同字符的字模寫到不同位置的顯示RAM字節(jié)中,就能在屏幕上顯示相應的所要求的字符。
通用遙控器的軟件設計
開機后,先進行初始化,包括對單片機的初始化、LCD的初始化和其他模塊的初始化。出于省電的考慮在40s內若沒有鍵按下,讓單片機的LCD控制器進入空閑模式。用“for”循環(huán)來計時,并設計初值為零。隨后開始40s計時,若在此期間有鍵按下,則進入中斷服務程序,若40s內無鍵按下,則單片機的 LCD控制器進入空閑模式。若在空閑中有鍵被按下,單片機被喚醒,執(zhí)行中斷服務程序。由于單片機的LCD控制器被中斷喚醒執(zhí)行完中斷程序返回后,單片機會接著執(zhí)行把單片機的LCD控制器置為空閑模式的那條指令的下一條指令,因此在把單片機的LCD控制器置為空閑模式的指令后再有一個循環(huán)來計時,由于中斷返回前,重設計數初值為零,所以會重新開始5s的計時。在這40s內,若無鍵按下, 則單片機的LCD控制器又進入空閑模式。程序流程圖如圖4所示。
圖4 軟件設計流程
通信協(xié)議
1 編碼字的格式
能實現編碼功能的邏輯電路稱為編碼器。每一種遙控編碼芯片都有一種特定的編碼格式。我們把傳送一位二進制數0或者1的時間作為一個時間單位T,編碼信號的頻率為F=1/T。這里用的是種比較常用的編碼格式,每一幀由步碼、地址碼和數據碼組成,同步碼用在一幀的開始,是一幀的識別標志,寬度為8T;地址碼20(A0—A19),寬度為20T;數據碼4位(D0-D3),寬度為4T, 一幀占據的總時間是32T。
對應于每一種狀態(tài),編碼芯片內部能夠生成一種特殊的編碼,這種編碼也是由“1”和“0”組成,但并不是簡單的用高電平代表“1”,用低電平代表 “0”,而是用高電平與低電平寬度比例的不同來區(qū)分“1”和“0”,也就是所謂的占空比。為了提高此編碼傳輸串行信號的可靠性,故此編碼采用一個周期的占空比為1/4的脈沖表示0,占空比為3/4的脈沖表示1,同步信號用一個占空比為1/32的脈沖表示,如圖5所示。
圖5 信號占空比
2 協(xié)議設計
通常遙控信號的發(fā)射,就是將某個按鍵所對應的控制指令和信息碼(由0和1組成的序列),調制在32~56kHz范圍內的載波上,然后經放大、驅動無線發(fā)射電路將信號發(fā)射出去。
如表1所示,各部分碼的作用:引導碼用來通知接收器其后為遙控數據。地址碼用來區(qū)分是哪一機型的數據,接收端據此來判斷后續(xù)的數據是否為本機必須執(zhí)行的指令。信息碼用來區(qū)分是哪一個鍵被按下,接收端接受信息碼的數據并據此做出應該執(zhí)行什么動作的判斷。信息碼也包括在持續(xù)按鍵時發(fā)送的連續(xù)碼。它告知接收端,某鍵是在被連續(xù)地按著。結束碼用來通知接收器一幀數據發(fā)送完畢。
遙控數據傳輸系統(tǒng)的關鍵是數據傳輸的可靠性。為了提高編碼的可靠性,本協(xié)議規(guī)定地址碼后接著傳送一個反碼,供誤碼校驗使用。每一位的信息碼后接著傳送一個奇偶校驗位也是用來作為誤碼校驗使用。
結束語
本設計的創(chuàng)新在于提出了通用家電遙控設備的設計方案,根據實際的要求能夠控制多個家用電器,睡眠模式實現低功耗,且成本低于其他同類產品。經過實際運行測量,該無線傳輸系統(tǒng)工作穩(wěn)定,穿透能力強,功耗低(當在空閑模式下,電路中電流小于10μA)能夠很好的實現相應設計要求的功能。
評論