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