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