基于MC9S08QG8低端微控制器的無線控制器設計
無線通信是人們現(xiàn)代日常生活的一部分,在辦公室、學?;蚣彝サ葓鏊?,都在接觸無線通信設備,如筆記本電腦、打印機、攝像機、手持設備、照明控制器和家電設備等。這些設備的復雜程度與它們執(zhí)行的任務類型有關,其中許多家庭自動化的無線應用采用小型微控制器和少量代碼執(zhí)行簡單的任務,更加追求低成本、單一性和微型化。在目前眾多的無線網(wǎng)絡技術中,ZigBee技術作為一種新興的無線網(wǎng)絡技術,近兩年在工業(yè)控制、消費電子等領域以及科研開發(fā)中得到了眾多的關注和使用,而且越來越顯示出它的強勁應用勢頭。ZigBee是一種低功耗、短距離和低速的無線網(wǎng)絡技術,工作在2.4 GHz國際免執(zhí)照的頻段,在IEEE標準上它和無線局域網(wǎng)、藍牙同屬802家族中的無線個人區(qū)域網(wǎng)絡。
通常的ZigBee無線控制器節(jié)點是以一個高端微控制器為核心,再配合無線收發(fā)器構成的。本文將設計一個新型的、低成本的、使用ZigBee無線技術的精簡型無線控制器,比如用于空調遙控,整個目標應用板上的元器件極少,走線極少,體積極小。該設計只采用三個電子芯片:一個低端微控制器(MC9S08QG8)、一個RF收發(fā)器(MC13192)和一個16×2的LCD,其他需要的元器件為電阻和按鍵之類的無源器件。
1 器件選擇
為了實現(xiàn)工業(yè)或家電無線控制應用低成本的目標,首要任務是選擇合適的微控制器(MCU)和無線收發(fā)器。Freescale半導體公司(飛思卡爾,前身為Mo-torola半導體部)的各檔微控制器在國內嵌入式控制領域獲得了越來越多的應用。它最新推出的MC9S08QG低端微控制器系列,其處理內核、片上外圍設備、節(jié)電功能和開發(fā)工具等,構成了成本、能源、效率敏感的控制應用的理想解決方案。采用MC9S08QGx微控制器系列,不僅開發(fā)的費用可明顯減少,最終生產階段的成本也可大幅下降。在開發(fā)階段,一些高級調試功能,包括CodeWarrior全功能工具鏈和ProcessorExpert工具包等都是免費贈送的。在生產階段,內部時鐘源模塊、模擬電路和E2PROM模擬則減少了對諸如晶振或諧振器、模擬比較器、串行E2PROM等外部器件的需求,否則這些外部器件都是印制電路板上必不可少的。
本無線控制器設計的核心器件即選擇Freescale該系列中的僅有16引腳的MC9S08QG8,它是采用高性能、低功耗的HCS08內核的飛思卡爾8位微控制器系列中具有很高的集成度的器件,內置8 KB FLASH存儲器,512 B RAM,SCI/SPI/IIC接口,8位模/數(shù)定時器模塊,A/D模塊等。MC9S08QG8 MCU集成了通常只有較大、較昂貴的元器件才具有的性能,包括背景調試系統(tǒng)以及可進行實時總線捕捉的內置在線仿真(ICE)功能,具有單線的調試及仿真接口(BDM),還包括一個可編程的16位定時器/脈沖寬度調制(PWM)模塊(TPM),是同類產品中最靈活、又最經濟的模塊之一。
另一個主要芯片為無線收發(fā)器,同樣選擇Frees-cale半導體公司的MCl3192,它是Freescale公司推出的符合ZigBee標準的新型射頻芯片。其工作頻率是2.405~2.480 GHz,該頻帶劃分為16個信道,每個信道占用5 MHz的帶寬;采用直接序列擴頻的通信技術,數(shù)據(jù)傳輸速率為250 Kb/s。MCl3192具有一個優(yōu)化的數(shù)字核心,有助于降低MCU處理功率,縮短執(zhí)行周期。為了適應低功耗的要求,芯片除了接收、發(fā)送和空閑三種工作狀態(tài)外,還有三種低功耗運行模式:
掉電模式 此模式下芯片電流小于1μA;
睡眠模式 此模式下電流在3μA左右;
休眠模式 此模式下電流約為35μA。
芯片采用可編程功率輸出模式,發(fā)送功率為O~4 dBm,接收靈敏度可以達到-92 dBm,傳輸距離為30~70 m。由于MC13192的低功耗特性以及SPI通信接口,它與MC9S08QG8微處理器配合用于解決電池供電設備的低電壓、低功耗應用以及通信控制等,是十分適合的。
至于其他外圍器件則可選用通用的,比如液晶顯示器使用16×2的字符型LCD,按鍵按最終的工藝要求配用,這部分的電路應用是成熟技術。
2 無線控制器的總體構建
基于前述主要器件的選擇考慮,本文實現(xiàn)的無線控制器原理框圖如圖1所示。
用來在收發(fā)器和微控制器之間交換數(shù)據(jù)的接口主要為串行外設接口(SPI)。微控制器MC9S08QG8通過SPI接口(4線)對MCl3192的內部寄存器進行讀寫操作,從而完成對MCl3192的控制和數(shù)據(jù)通信。該接口可以讀寫收發(fā)器的配置、狀態(tài)和控制寄存器。SPI接口還可以讀寫位于收發(fā)器內部的RAM,用于通過RF發(fā)送和接收數(shù)據(jù)。另一個用于收發(fā)器和微控制器間通信的信號是中斷請求(IRQ)信號。IRQ腳由收發(fā)器進行處理。當收發(fā)器的狀態(tài)寄存器發(fā)生變化時,IRQ腳會產生下降沿跳變。IRQ產生后,微控制器要做的第一件事就是讀取狀態(tài)寄存器,確定產生中斷的特定事件。
微控制器MC9S08QG8通過通用I/O接口GPIO完成與液晶顯示器和按鍵的連接,其中LCD數(shù)據(jù)線和按鍵輸入線設計成多路分時復用的(共4線),LCD的控制線由MCU單獨提供(共3線)。
BDM程序下載和在線調試僅占用MCU的單線1線,在設計之初是必須的,但當調試下載完成后,該引線也可當做普通I/O使用或備用。
3 硬件電路的具體設計
根據(jù)前面器件選擇和總體構建的考慮,本文完成的無線控制器具體設計電路如圖2所示。其中MC9S08QG8微控制器(MCU)的大部分管腳具有多重功能,電路設計中,即以MC9S08QG8為核心,實現(xiàn)各種控制。
圖2無線控制器應用原理圖分為三部分:MC9S08QG8 MCU所需的基本連接;MCl 3192無線收發(fā)器的連接;16×2 LCD和4個按鍵的連接。
各部分的供電電源為低電壓3 V,可用兩節(jié)7號電池供電。MCU的時鐘電路無需外接晶振,直接使用MCU內部自帶的時鐘;MCU的RST和BKGD引腳用于BDM接口的連接,完成程序下載后可另作它用,比如MCl3192的中斷信號IRO就接至PTA3/RST/IRQ復用;圖2中MCl3192收發(fā)器其他外圍電路使用數(shù)據(jù)手冊提供的工作所需的最低硬件要求。MCU與MCl3192的連接按照標準SPI方式連接,MCU為主機,MCl3192為從機,通過MOSI,MISO,SPSCK信號線可以配置收發(fā)器,并發(fā)送和接收數(shù)據(jù)。同時也可以通過SPI配置收發(fā)器提供的定時器和GPIO引腳,將其用于其他的目的。收發(fā)器的片選CE信號由MCU的通用I/O口PTB5進行選通。收發(fā)器要切換運行模式(接收、發(fā)送、半休眠、休眠或空閑)還需要另外一個信號,該信號稱為RXTXEN,由MCU的通用I/O口PTB7進行處理。MCU與MCl3192之間的數(shù)據(jù)傳輸模式可采用流模式,每次收發(fā)一個字(16 b),都通過中斷由MCU控制處理,這樣可以最大限度地保證了數(shù)據(jù)傳輸?shù)膶崟r性。
16×2 LCD的RS,R/W,E信號由MCU通用I/O口PTB的三個引腳進行控制,實際上可以將R/W直接接低電平,或者軟件控制使始終為低點平,因為應用時只需對LCD做命令、數(shù)據(jù)寫入;數(shù)據(jù)線采用LCD的4線訪問形式,即只用DB4~DB7,由MCU的PTA0~PTA3提供;背光電源BKL+,BKL-不接,以減少功耗。4個按鍵也接在MCU的PTA0~PTA3,與LCD數(shù)據(jù)線復用,按鍵的上拉電阻使用MCU內部配置的,無需外接上拉以減省元件。同時當?shù)却幚戆存I時,MCU將按鍵輸入直接配置成按鍵輸入中斷,也減少了硬件連接和軟件復雜度,按鍵發(fā)生時MCU自動轉去讀取按鍵輸入及按鍵處理,當要進行LCD顯示時,MCU又將復用線臨時配置成數(shù)據(jù)輸出,配合LCD控制信號完成LCD的內容顯示。
MCU的8 KB FLASH和512 B的存儲器資源對于一般的無線控制是足夠的,另外,設計中還會用到MCU的定時器資源,通過定時比較器生成一般無線控制應用中都需要的定時時間,通過軟件編程可以方便地實現(xiàn)。
4 無線控制功能示例
以上設計方案適用于多種無線控制應用,如空調、智能風扇等的無線控制。在此方案基礎上還可以擴展出更復雜的無線控制應用,因為MCU還有少量口線(比如再增加一個設備開關按鍵)、MCl3192還有很多接口如它自帶的GPIO、定時器等都是可利用資源;同時此方案其實仍然可以精簡,比如不需要顯示的無線控制應用,就可省去LCD顯示器。
以空調的無線控制應用為例,按本文硬件設計原理,使用LCD來顯示不同的功能菜單,如當前溫度、定時設置、溫度設置和工作狀態(tài)報告等。4個按鍵可以分別安排為:
SW1為功能菜單或狀態(tài)報告;SW2為增加數(shù)值或功能切換;SW3為減少數(shù)值或功能切換;SW4為確認或接受,兼用開關設備。
當應用開始時,空調總是處于關閉狀態(tài)。必須先按SW4按鍵才能打開空調。當強制關閉空調時,SW1+SW4按鍵起作用??照{打開后,LCD上會顯示當前溫度和上次設定溫度,一旦空調打開,可以分別使用SW2鍵和SW3鍵來降低或增加溫度。這時如果要設置空調的各種工作模式如制冷、制熱、除濕、自動、風向、風速、定時時間及溫度等,可以按動SW1切換功能并配合SW2鍵、SW3進行操作,每次用按鍵修改了工作模式、溫度、定時時間等設置后,系統(tǒng)會采用一個簡單的協(xié)議將控制命令通過MCl3192無限收發(fā)器發(fā)送到加熱/制冷系統(tǒng)。此時可按SW4鍵確認以使LCD恢復到狀態(tài)報告及新的設定指示。
如果沒有設置定時時間,空調永遠不會自動關閉,需要人工強制關閉。設置定時時間能自動關閉空調,安排定時時間在5~300 min之間。如果設置希望的定時時間,步驟如下:
(1)打開空調,如果空調處于關閉狀態(tài),則不能設置定時時間;
(2)按SW1鍵。調整菜單到定時功能,使在LCD上顯示定時設置菜單;
(3)按SW2鍵或SW3鍵來減少或增加希望的定時時間;
(4)按SW4來接受新的定時時間;
(5)一旦接受新的定時時間后,LCD上會再次顯示工作模式、當前溫度、定時時間、剩余時間等相關信息。
對應于設備定時關閉,空調的自動開啟功能則需要在本文電路基礎上增加專門的時鐘芯片來獲得日期、時間信息基準來實現(xiàn),具體本文不做討論。
5 結 語
本文僅使用了一個Freescale MC9S08QG8低端微控制器,再加上很少的一些連接線和硬件資源,已經具有無線通信能力和人機交互功能。這說明ZigBee無線應用并不一定總是需要高性能的微控制器,低端微控制器也能夠完成無線網(wǎng)絡要求的一些基本任務,從而降低了整個解決方案的成本。同時,本文實現(xiàn)的無線控制器具有功耗低、元器件少、成本低、性能高而功能全的特點,是嵌入式無線控制應用的一種精簡解決方案。