文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2015)06-0073-04
0 引言
無(wú)線控制系統(tǒng)由于構(gòu)建比較簡(jiǎn)單,且適應(yīng)于遠(yuǎn)、近距離的無(wú)線連接,在物聯(lián)網(wǎng)技術(shù)及自動(dòng)控制中得到越來(lái)越廣泛的應(yīng)用。本系統(tǒng)以普通單片機(jī)STC12C5A60S2和單片無(wú)線通信模塊WISMO228為基礎(chǔ),采用遠(yuǎn)程無(wú)線通信和近距離無(wú)線局域網(wǎng)相結(jié)合的方法,設(shè)計(jì)并實(shí)現(xiàn)遠(yuǎn)程無(wú)線控制系統(tǒng)。
1 設(shè)計(jì)思想
隨著無(wú)線通信技術(shù)的發(fā)展,無(wú)線網(wǎng)絡(luò)技術(shù)已滲透到人們生活的各個(gè)領(lǐng)域[1]。人們希望打破通信受地理環(huán)境、時(shí)空限制等因素的影響,能夠隨時(shí)隨地對(duì)多種物體進(jìn)行通信及監(jiān)控。因此,在很多應(yīng)用領(lǐng)域,無(wú)線通信逐漸取代了有線通信,無(wú)線控制取代了有線控制。無(wú)線控制要解決的首要問(wèn)題是信息的無(wú)線傳輸,包括遠(yuǎn)距離無(wú)線通信和監(jiān)控現(xiàn)場(chǎng)受控節(jié)點(diǎn)的無(wú)線連接。目前國(guó)內(nèi)有多種方案,但其遠(yuǎn)距離通信主要是基于微機(jī)、平板電腦、ARM,現(xiàn)場(chǎng)節(jié)點(diǎn)控制主要采用ZigBee、WiFi等,系統(tǒng)相對(duì)比較復(fù)雜,成本也較高,真正投入實(shí)際應(yīng)用不很方便[1]。
針對(duì)遠(yuǎn)程控制系統(tǒng)存在的不足,本系統(tǒng)的設(shè)計(jì)注重研究和解決了以下技術(shù)問(wèn)題:
(1)直接使用人們最廣泛使用的智能手機(jī)作為遠(yuǎn)程控制器,用Android系統(tǒng)開(kāi)發(fā)應(yīng)用軟件,與控制現(xiàn)場(chǎng)控制器進(jìn)行無(wú)線通信,實(shí)現(xiàn)遠(yuǎn)程控制。
(2)現(xiàn)場(chǎng)控制器以STC12C5A60S2和WISMO228為核心進(jìn)行設(shè)計(jì)。單片機(jī)實(shí)現(xiàn)遠(yuǎn)程通信控制、現(xiàn)場(chǎng)監(jiān)控節(jié)點(diǎn)控制以及人-機(jī)交互控制,是系統(tǒng)控制核心;WISMO228用來(lái)實(shí)現(xiàn)和手機(jī)之間的GSM/GPRS通信;控制器中設(shè)計(jì)了nRF24L01無(wú)線射頻收發(fā)模塊,作為現(xiàn)場(chǎng)控制網(wǎng)絡(luò)的主節(jié)點(diǎn),具有和現(xiàn)場(chǎng)控制各個(gè)從節(jié)點(diǎn)進(jìn)行無(wú)線信號(hào)傳輸?shù)墓δ堋?/p>
(3)設(shè)計(jì)“即插即用”方式的無(wú)線射頻控制節(jié)點(diǎn),又稱為無(wú)線控制插頭,作為現(xiàn)場(chǎng)控制從節(jié)點(diǎn)。為了使現(xiàn)場(chǎng)控制實(shí)用方便,避免重新布設(shè)有線控制連接的困難,該控制節(jié)點(diǎn)設(shè)計(jì)成比普通電源插頭稍大的“即插即用”式的插頭,代替受控設(shè)備或電器原有的插頭直接插入普通電源插座中,即可作為受控節(jié)點(diǎn)使用。在無(wú)線控制插頭中高度集成了89c2051、nRF24L01、電源轉(zhuǎn)換器和執(zhí)行部件。
2 系統(tǒng)硬件電路設(shè)計(jì)
系統(tǒng)的硬件設(shè)計(jì)主要有現(xiàn)場(chǎng)控制器設(shè)計(jì)和無(wú)線控制插頭設(shè)計(jì)。
2.1 主要器件簡(jiǎn)介
(1)STC12C5A60S2單片機(jī)是宏晶科技生產(chǎn)的CMOS高性能增強(qiáng)型8 bit 51系列單片機(jī),內(nèi)有60 KB的Flash和1 280 B的RAM,有36個(gè)I/O口,其驅(qū)動(dòng)電流高達(dá)20 mA左右,支持STC_ISP在線可編程,具有第二串口功能、2路PWM、8路10 bit高精度ADC。指令與MCS-51兼容,應(yīng)用廣泛。
(2)WISMO228無(wú)線通信模塊[2-3]是由AirPrime公司生產(chǎn)的集發(fā)射、接收于一體,信號(hào)靈敏度極高的GPRS/GSM模塊,內(nèi)嵌TCP/IP協(xié)議棧,工作可選GSM方式或4個(gè)頻段(850、900、1 800、1 900 MHz)的GPRS方式,傳輸速度支持GPRS Class 10級(jí)別標(biāo)準(zhǔn)。與微處理器連線簡(jiǎn)單,支持串口、SPI、SIM卡等多種接口,典型工作電壓為3.6 V。
圖1為模塊結(jié)構(gòu)框圖。模塊主要由RF電路和GSM基帶控制器兩部分構(gòu)成,可以連接控制SIM卡、進(jìn)行異步串行通信、PWM控制、工作狀態(tài)信號(hào)輸出、外接天線、可編程I/O、A/D轉(zhuǎn)換以及電源等。
(3)nRF24L01無(wú)線射頻收發(fā)器[4]是Nordic公司生產(chǎn)的集發(fā)射、接收于一體的短距離數(shù)據(jù)傳輸芯片,它工作于2.4 GHz頻段范圍內(nèi),標(biāo)準(zhǔn)供電為3.3 V,電流損耗較少。該芯片節(jié)點(diǎn)工作頻道多達(dá)125個(gè),頻道之間切換時(shí)間短,可實(shí)現(xiàn)點(diǎn)與點(diǎn)之間的一對(duì)一、一對(duì)多雙向無(wú)線數(shù)據(jù)通信。它支持3種傳輸速率,選擇低速率250 kb/s,能夠傳輸更遠(yuǎn)的距離。
nRF24L01模塊內(nèi)置ShockBurst電路,傳送數(shù)據(jù)中包括數(shù)據(jù)地址和CRC自動(dòng)檢驗(yàn)功能。芯片接收到數(shù)據(jù)能自動(dòng)發(fā)送應(yīng)答ACK信號(hào),發(fā)送失敗后能自動(dòng)重發(fā)數(shù)據(jù),為無(wú)線通信有效傳輸提供了有利條件。nRF24L01內(nèi)部集成LNA(低噪聲放大器)、PA(功率放大器)、Enhance ShockBurst電路、芯片工作模式選擇電路、時(shí)鐘振蕩器電路等。
(4)電源轉(zhuǎn)換芯片LNK304[5-6]:系統(tǒng)選用LNK304降壓轉(zhuǎn)換芯片完成非隔離電源開(kāi)關(guān)轉(zhuǎn)換,實(shí)現(xiàn)AC220 V轉(zhuǎn)DC5 V電路功能,其輸入交流電范圍為85 VAC~265 VAC,用來(lái)代換輸出電流不大于360 mA的所有線性及電容降壓式非隔離電源電路。具有性能好、集成度高、效率快等優(yōu)良特性。
LNK304集成1個(gè)700 V高壓功率MOSFET開(kāi)關(guān)電路和1個(gè)電源控制電路,只需簡(jiǎn)單的電路連接就可實(shí)現(xiàn)AC-DC轉(zhuǎn)換,用于“即插即用”式無(wú)線控制節(jié)點(diǎn)受控插頭的控制電路供電,實(shí)現(xiàn)對(duì)電器的控制。
2.2 現(xiàn)場(chǎng)控制器設(shè)計(jì)
現(xiàn)場(chǎng)控制器包括微控制器、WISMO228模塊及外圍電路、無(wú)線射頻nRF24L01模塊、人機(jī)交互電路、電源等,其框圖如圖2所示。WISMO228通過(guò)UART與STC12C5A60S2連接。nRF24L01通過(guò)SPI接口與微處理器相連,并與從節(jié)點(diǎn)控制器的nRF24L01模塊進(jìn)行無(wú)線通信,構(gòu)成節(jié)點(diǎn)網(wǎng)絡(luò)。人機(jī)交互模塊主要由液晶顯示、按鍵、LED指示燈組成。其中5110LCD液晶通過(guò)SPI接口連接微處理器,向用戶提供監(jiān)視界面,顯示電器設(shè)備的工作狀態(tài)。一組獨(dú)立式按鍵可自定義功能。LED顯示無(wú)線節(jié)點(diǎn)工作狀態(tài)。這里主要介紹WISMO228模塊和nRF24L01模塊。
(1)WISMO228模塊及其控制
WISMO228通過(guò)SMS外圍接口建立無(wú)線通信鏈路,接收和發(fā)送控制信息。此接口完全符合GSM11.11標(biāo)準(zhǔn)規(guī)范,作為用戶登錄GSM網(wǎng)絡(luò)的身份驗(yàn)證,系統(tǒng)使用6腳SIM卡,支持1.8 V電壓輸入。
WISMO228與單片機(jī)及外圍電路連接如圖3所示。SIM卡的VCC與VPP引腳直接與WISMO228模塊的SIM_VCC引腳相連。SIM卡的CLK、I/O、RST信號(hào)線直接與WISMO228模塊的對(duì)應(yīng)信號(hào)線相連接;WISMO228的ON/OFF引腳,與單片機(jī)的P1.1腳相連,通過(guò)單片機(jī)控制使該引腳在上電后保持低電平至少為685 ms;單片機(jī)的復(fù)位信號(hào)RESET通過(guò)T9實(shí)現(xiàn)信號(hào)的變換和隔離,實(shí)現(xiàn)低電平復(fù)位;RXD(接收)和TXD(發(fā)送)引腳分別連接單片機(jī)的RX和TX引腳,進(jìn)行串行通信,單片機(jī)通過(guò)串行通信傳送命令和數(shù)據(jù),控制WISMO228進(jìn)行遠(yuǎn)程信息傳輸;ANT引腳連接外部天線,天線阻抗值為50 ?贅,外接板焊天線外殼接地,以保證無(wú)線信號(hào)傳輸[2]。
為了反映WISMO228工作狀態(tài),利用其WISMO_READY引腳電平由高變低再變高,表明WISMO228正在進(jìn)行網(wǎng)絡(luò)登錄和完成初始化,引腳外接的LED3快速閃爍,最后點(diǎn)亮,表示模塊初始化和正常啟動(dòng);SIM_VCC引腳連接LED2,用來(lái)顯示SIM卡狀態(tài),若SIM卡連接正常,則LED2被點(diǎn)亮;TX_CTRL引腳連接LED1,用來(lái)顯示模塊通信控制狀態(tài),若有數(shù)據(jù)正在從模塊串口輸出,則LED2閃爍。
(2)nRF24L01模塊及其控制電路
STC12C5A60S2通過(guò)P2口模擬SPI接口,與nRF24L01連接,如圖4所示。其中P2.0控制CE,作為RX或TX模式選擇信號(hào);P2.1控制CSN,作為nRF24L01片選信號(hào);P2.2控制SCK,作為nRF24L01的時(shí)鐘;P2.3連接MOSI,作為串行數(shù)據(jù)輸入;P2.4連接MISO,作為串行數(shù)據(jù)輸出;P3.3(/INT1)連接IRQ,用作觸發(fā)中斷信號(hào)[4]。
2.3 無(wú)線控制插頭設(shè)計(jì)
無(wú)線控制插頭是作為系統(tǒng)控制現(xiàn)場(chǎng)的無(wú)線控制網(wǎng)絡(luò)節(jié)點(diǎn),總體框圖如圖5。電路主要由MCU(AT89C2051)模塊、無(wú)線節(jié)點(diǎn)模塊、電源轉(zhuǎn)換模塊、繼電器控制模塊組成。AT89C2051只需控制射頻模塊無(wú)線接收數(shù)據(jù)和繼電器工作。nRF24L01芯片與現(xiàn)場(chǎng)控制器中的無(wú)線節(jié)點(diǎn)模塊,組建近距離的無(wú)線網(wǎng)絡(luò)。電源轉(zhuǎn)換模塊包括交流220 V轉(zhuǎn)直流5 V電路,為單片機(jī)和其他外圍器件供電; 5 V轉(zhuǎn)3.3 V電路為nRF24L01供電。繼電器控制電器設(shè)備工作,為了避免普通繼電器觸點(diǎn)通斷時(shí)的電磁干擾和較大的線圈電流,本系統(tǒng)采用固態(tài)繼電器??刂撇孱^中的關(guān)鍵技術(shù)是nRF24L01模塊和交流220 V轉(zhuǎn)直流5 V的電源模塊。nRF24L01電路和現(xiàn)場(chǎng)控制器中的電路類似,在此不再介紹。
電源轉(zhuǎn)換模塊把電源插頭連接的通用交流電源插座的220 V電壓轉(zhuǎn)換為5 V直流,該模塊電路原理如圖6。其中:D為漏極引腳,LNK304啟動(dòng)和進(jìn)入穩(wěn)定工作狀態(tài)時(shí),提供內(nèi)部操作電流;BP為旁路引腳,用于給內(nèi)部提供5.8 V的電源,外接100 nF的電容;FB為反饋引腳,正常工作狀態(tài)下,控制功率場(chǎng)效應(yīng)開(kāi)關(guān),當(dāng)輸入此引腳的電流超過(guò)49 μA時(shí),場(chǎng)效應(yīng)開(kāi)關(guān)失效;S為源極引腳,構(gòu)成功率場(chǎng)效應(yīng)開(kāi)關(guān)的源極,同時(shí)也作為 BP和FB引腳的接地參考點(diǎn)。該電路能輸出5 V電壓和120 mA電流,對(duì)插頭內(nèi)無(wú)線控制電路供電,能滿足控制電路40 mA左右的供電需求。電源輸入部分由阻燃可熔的繞線電阻R30、二極管D7和D8、電容C30和C31以及電感L1構(gòu)成,交流220 V由R30接入,通過(guò)D7和D8全波整流,再通過(guò)C30、C31及L1濾波后接LNK304的漏極D引腳,其中R30不僅具有將二極管的浪涌電流值限制在允許范圍內(nèi)功能,而且若電路中出現(xiàn)短路或電流值過(guò)大時(shí)能起到熔斷保險(xiǎn)的作用;電路輸出部分由續(xù)流二極管D9、輸出電感L8及輸出電容C34構(gòu)成。由于LNK304使電源工作在極度不連續(xù)導(dǎo)通狀態(tài),因此選用D9為超快恢復(fù)二極管uF4005進(jìn)行反向時(shí)間的快速恢復(fù)。L8為1 mH、280 mA的工字型磁芯電感。C34是輸出濾波電容,其主要功能是限制輸出電壓紋波。電路的反饋及穩(wěn)壓部分由R1、R3、C33、D10構(gòu)成, D10為慢速恢復(fù)二極管IN4005GP,設(shè)其正向壓降與D9一樣,則可認(rèn)為電解電容C33兩端電壓跟隨輸出電壓變化,選取R1和R3的阻值,對(duì)C33的電壓進(jìn)行分壓,使得芯片反饋引腳FB電壓為1.65 V時(shí),輸出電壓為所要求的穩(wěn)壓值5 V。此外,為了防止在輕載或空載的情況下,輸出電壓5 V與C33電壓存在跟蹤誤差,因此在輸出端接1 kΩ的電阻R33作為假負(fù)載[7-8]。
3 單片機(jī)控制程序設(shè)計(jì)
主要包括現(xiàn)場(chǎng)控制器中的STC12C5A60S2控制軟件和無(wú)線控制插頭中的AT89C2051控制軟件。
3.1 現(xiàn)場(chǎng)控制器程序設(shè)計(jì)
圖7是現(xiàn)場(chǎng)控制器控制主流程,初始化包括液晶(5110LCD)、串行接口、WISMO228和nRF24L01的初始化。然后主要是接收手機(jī)等無(wú)線通信工具發(fā)送的遠(yuǎn)程控制指令,當(dāng)有新指令信息到達(dá)時(shí),WISMO228通過(guò)AT指令將控制信息內(nèi)容傳送給STC12C5A60S2。單片機(jī)根據(jù)控制命令的要求將信息通過(guò)無(wú)線節(jié)點(diǎn)網(wǎng)絡(luò)轉(zhuǎn)發(fā)到相應(yīng)的無(wú)線控制插頭節(jié)點(diǎn),并隨時(shí)接收現(xiàn)場(chǎng)節(jié)點(diǎn)反饋的狀態(tài)信號(hào),顯示控制狀態(tài),同時(shí)向手機(jī)發(fā)送狀態(tài)信息。
手機(jī)和現(xiàn)場(chǎng)控制器之間通過(guò)AT指令傳送命令和數(shù)據(jù),采用ASCII碼方式。系統(tǒng)定義對(duì)控制信號(hào)采用統(tǒng)一的編碼規(guī)則為10 bit字符,由左向右,字符1~4為系統(tǒng)控制密碼,暫用“####”表示;字符5為為命令碼,可以根據(jù)需要增減,目前只定義“T”(定時(shí))、“G”(定量)、“C”(關(guān)閉);字符6為受控節(jié)點(diǎn)號(hào)“1”~“8”;字符7~10為定時(shí)或定量數(shù)據(jù),定時(shí)以s表示,可以定時(shí)0~9 999 s;定量是指對(duì)固態(tài)繼電器控制導(dǎo)通電量的大小,以0~220對(duì)應(yīng)接通交流電壓的大小,以便對(duì)可調(diào)電壓的電器進(jìn)行控制[3]。
3.2 無(wú)線控制插頭程序設(shè)計(jì)
圖8是無(wú)線控制插頭中AT89C2051的控制主流程,對(duì)中斷系統(tǒng)和nRF24L01進(jìn)行初始化后,就處于待機(jī)狀態(tài)。當(dāng)nRF24L01接收到主節(jié)點(diǎn)發(fā)送的命令,就向單片機(jī)發(fā)中斷,單片機(jī)讀取命令并進(jìn)行判斷,若為本節(jié)點(diǎn)的指令,就處理和執(zhí)行指令。
控制現(xiàn)場(chǎng)的局域無(wú)線網(wǎng)絡(luò)是由1個(gè)現(xiàn)場(chǎng)控制器的nRF24L01主節(jié)點(diǎn)和若干個(gè)無(wú)線插頭的nRF24L01從節(jié)點(diǎn)構(gòu)成。nRF24L01設(shè)置為增強(qiáng)型ShockBurstTM 工作方式。在發(fā)送、接收程序設(shè)計(jì)中,主節(jié)點(diǎn)采用“發(fā)送→等待從機(jī)成功接收的應(yīng)答信號(hào)→發(fā)送下個(gè)數(shù)據(jù)”的控制過(guò)程,若規(guī)定時(shí)間內(nèi)未收到應(yīng)答信號(hào),主節(jié)點(diǎn)重發(fā)當(dāng)前的數(shù)據(jù),直至收到ACK應(yīng)答信號(hào)。從節(jié)點(diǎn)則對(duì)接收到的數(shù)據(jù)進(jìn)行校驗(yàn)、分析和處理,執(zhí)行相關(guān)操作命令,并向主節(jié)點(diǎn)發(fā)送應(yīng)答信號(hào)。
4 系統(tǒng)應(yīng)用及功能擴(kuò)展
系統(tǒng)以其在智能家居方面的實(shí)際應(yīng)用作為實(shí)例進(jìn)行了實(shí)驗(yàn),用1個(gè)現(xiàn)場(chǎng)控制器和5個(gè)無(wú)線控制插頭構(gòu)成一個(gè)家居環(huán)境中的局域無(wú)線網(wǎng)絡(luò),5個(gè)插頭分別作為空調(diào)機(jī)、電視機(jī)、換氣扇、照明燈、噴水器的電源插頭,以手機(jī)短信發(fā)送控制命令,實(shí)現(xiàn)了對(duì)家電的遠(yuǎn)程控制。例如:手機(jī)發(fā)送“####T31800”命令,可啟動(dòng)換氣扇開(kāi)機(jī)換氣30 min;發(fā)送“####G50100”,可啟動(dòng)家庭噴水器以適當(dāng)?shù)拈_(kāi)啟度澆花等等,并把現(xiàn)場(chǎng)工作狀態(tài)發(fā)送給手機(jī)。
系統(tǒng)采用現(xiàn)代無(wú)線通信技術(shù)和近距離無(wú)線網(wǎng)絡(luò)節(jié)點(diǎn)相結(jié)合的控制方法,較好地實(shí)現(xiàn)了遠(yuǎn)程控制的實(shí)用化,系統(tǒng)控制現(xiàn)場(chǎng)組網(wǎng)簡(jiǎn)潔,受控節(jié)點(diǎn)可多可少,控制對(duì)象連接方便。系統(tǒng)有較大的應(yīng)用擴(kuò)展空間,例如:可以利用多種遠(yuǎn)程無(wú)線通信工具作為控制器;可以在手機(jī)上開(kāi)發(fā)Android控制軟件,使之具有良好的遠(yuǎn)程人機(jī)交互界面;可以設(shè)計(jì)研制不同功能的無(wú)線控制插頭,滿足不同的遠(yuǎn)程操控需求。
參考文獻(xiàn)
[1] 曾國(guó)敬,宋躍,何志輝.一種智能家居遠(yuǎn)程控制系統(tǒng)的硬件設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2011,37(4).
[2] Wavecom Corp.Product technical specification & customer design Guidelines,WISMO228 wireless standard MOdem[M].France,2009.
[3] Wavecom Corp.TCP/IP AT command Manual,WISMO228 Wireless Standard MOdem[M].France,2009.
[4] 朱嶸濤,徐愛(ài)鈞,葉傳濤.STC15單片機(jī)和nRF2401的無(wú)線門(mén)禁系統(tǒng)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2014(6).
[5] 沙占友,葛家怡,許云峰.Link Switch-TN系列節(jié)能型單片開(kāi)關(guān)電源的電路設(shè)計(jì)[J].電源技術(shù)應(yīng)用,2004(11).
[6] LNK302/304-306 LinkSwitch-TN Family Lowest Component Count, Energy-Effi cient Off-Line Switcher IC[M].Power Integrations,2006.