周平,呂勇,易愷迪,陳飛挺
(北京信息科技大學儀器科學與光電工程學院,北京 100192)
基于PC的智能家電無線紅外遙控系統(tǒng)
周平,呂勇,易愷迪,陳飛挺
(北京信息科技大學儀器科學與光電工程學院,北京 100192)
基于PC的智能家電遙控系統(tǒng)是以單片機CC2530為核心驅動、以YS-IR01F為紅外學習核心模塊的控制系統(tǒng),該系統(tǒng)包括三部分,分別為用戶控制界面、網關模塊以及底層紅外驅動模塊,該系統(tǒng)可以通過對家用紅外遙控數據的學習進而實現利用PC用戶界面控制包括電視、投影儀等普通家電,初步實現家電智能化。滿足一般家庭對智能家居的要求,方便人們的生活。
PC;無線紅外;智能家電控制;紅外學習
隨著科技的不斷發(fā)展,智能化產品設備日新月異,層出不窮,同時越來越多的多媒體設備進入了人們的生活、學習中,例如,在多媒體教室中,我們經常用到的數字投影儀,在家庭設備中我們每家必備的電視機、空調等,這些設備中大部分都采用紅外遙控設備來實現對相應的設備遠距離控制,由于智能化家電的控制是相對獨立的,不受其他的遙控設備數據的影響,因此我們要想同時控制多個設備時就會給我們帶來不便,如果我們僅僅通過每個家庭普遍存在的PC來實現對整個遙控網絡的控制,這無疑會給我們的生活帶來很大的便利?,F在越來越要求電器設備具有智能處理功能,但就目前而言暫時還無法讓人們大量體驗這種智能設備,主要是存在這樣幾個問題,首先這樣的智能成本相對較高,設備價格不菲,普通家庭承受不了這樣的費用;其次無法在短時間內完成對那些不具備智能功能設備的替換,即使完成替換也將造成大量浪費。如果操作者可以將不同網絡編號的底層紅外驅動設備放在設備的前端,這樣,操作者不需要拿著遙控器對著設備的紅外感應頭進行遙控,也不需要來回在某個空間范圍內來回走動。如果可以通過改造這些設備來達到基本的智能功能,這無疑是一次非常具有實用性的創(chuàng)新和探索。
本文要介紹的基于PC的智能家電遙控系統(tǒng)是一種將家用遙控器上的紅外數據學習后再控制設備的一套系統(tǒng),在紅外控制家用設備之初,它需要對不同的紅外數據進行數據學習,具體流程為通過上位機將紅外學習命令通過USB串口下發(fā)到網關設備,網關設備再通過單片機CC2530的物理層將上位機發(fā)來的數據組合成數據包并通過無線的方式轉發(fā)給底層紅外驅動設備,底層紅外設備接收到網關發(fā)來的無線數據后判斷接收到的是否為有效數據,如果為有效數據則驅動設備反饋給上位機,并且紅外學習芯片YS-IR01F處于學習狀態(tài),等待紅外數據學習;當上位機發(fā)出控制命令時,則芯片YS-IR01F將會調用之前相應學習的紅外數據實現對家用電器的控制。
目前暫時先研究通過PC來控制這些設備,隨著研究的深入可以嘗試通過手機來控制,更進一步則是可以將電器設備與各種類型的傳感器形成系統(tǒng)結合起來,以此完成設備的智能自動化操作。
該系統(tǒng)是一個便于操作和控制家用電器的遙控系統(tǒng),它不僅在操作層面上使得人們控制家用電器簡單方便,同時它還能夠將許多紅外遙控設備組成一個星形網絡,從而通過電腦客戶端來實現對整個紅外遙控設備的遙控。整個系統(tǒng)的結構如圖1所示。
圖1 系統(tǒng)整體結構
從上圖1中我們可以看到,本系統(tǒng)主要有三部分構成:基于PC的上位機用戶界面設計部分、底層驅動軟件部分以及硬件設計部分。
設計思路:上位機主要負責實現對整個系統(tǒng)的控制,它通過發(fā)送數據給紅外學習模塊來實現對紅外的學習及發(fā)射紅外控制命令。首先,上位機通過無線串口將學習命令數據通過無線發(fā)送給紅外學習模塊,然后紅外學習模塊就可以開始對紅外遙控設備進行學習,學習完后,紅外模塊開始保存學習到的紅外數據并回饋給上位機,上位機便可以對紅外學習模塊下達控制命令,從而實現對家庭紅外系統(tǒng)的控制。系統(tǒng)簡單流程圖如圖2所示。
圖2 系統(tǒng)流程圖
上位機用戶界面采MFC編寫,它主要是通過串口傳遞數據。傳遞時,需要先確定串口號、波特率、奇偶校驗位,停止位等,成功設置后即可打開串口,進行數據傳輸。程序主要通過創(chuàng)建線程來接收數據,通過按鈕來發(fā)送數據。程序分為控制模式和學習模式,控制模式是控制下位機對家電進行控制,學習模式是控制下位機學習家電的紅外數據。用戶界面圖形如圖3所示。
圖3 上位機界面圖
從圖3中我們可以看到:該上位機主要由三部分組成:串口基本參數設定、數據的發(fā)送與接收、網絡設置及上位機的學習與控制。
串口基本的參數設定:該部分主要是對設定網關與上位機的準確鏈接,其主要包括端口號的設定及波特率的大小,端口號使得上位機與網關之間能夠相互之間傳送數據,而波特率則決定了發(fā)送和接收數據的準確定位。
數據的發(fā)送與接收:該部分主要是用來在上位機與網關之間的數據聯(lián)系,也就是通過這些數據來達到控制底層紅外學習模塊的學習與控制作用。
網絡設置:該部分說明了網關與在網絡中所在的哪個設備進行通信,并決定了紅外學習命令還是紅外控制命令。由于設備就有兩個,一個是網關設備的網絡編號,一個是紅外遙控模塊的網絡編號,此部分的功能只用到了一部分,其他地方還可以擴展。
上位機的學習與控制:該部分主要是對相應設備的規(guī)定,其中包括紅外學習與紅外控制命令,而從整體上看,該部分主要控制的是空調和電視,但是由于本設備室采用先學習控制數據再進行控制的方式,所以,在實現紅外控制方面,本設備還可以通過該部分控制其他紅外遙控設備,例如投影儀、遙控風扇等。
通過該操作界面,我們可以在電腦上很容易地實現對家電實時控制,初步實現家居的智能化,并且該用戶界面操作簡單、實用方便,能夠讓操作者在短時間內掌握操作的步驟。
3.1 底層協(xié)議
本設計的底層驅動直接采用CC2530的物理層(底層協(xié)議)進行無線數據的發(fā)送與接收,并制定出了收發(fā)的私有協(xié)議,這樣設計不僅設計簡單,而且開發(fā)的速度快,能夠滿足設計要求,實現對家電的控制功能。該協(xié)議幀格式如表1所示:
表1 通信幀格式
3.2 命令定義
在對設備進行無線遙控時,上位機要通過網關對無線設備進行下發(fā)命令,通知無線紅外控制設備進行相應的操作處理,其命令如下表所示:
表2 命令定義
3.3 網關驅動軟件設計
網關是在網絡層以上實現網絡互聯(lián);是一種充當轉換重任的計算機的系統(tǒng)或設備,簡單地說就是在不同的通信協(xié)議、數據格式語言,甚至兩個體系結構完全不同的系統(tǒng)之間,充當翻譯器。
本設計的網關是通過USB串口實現無線發(fā)射/接收設備與PC之間的連接通信,從而實現了底層控制設備與PC之間的聯(lián)系與傳遞信息。
具體驅動實現方法:
在網關與PC握手后,網關開始檢測上位機是否下達命令或者底層紅外控制設備是否發(fā)來數據,當檢測到上位機發(fā)送數據到網關后,網關便把發(fā)來的命令數據通過無線發(fā)送到底層紅外設備,而當網關檢測到底層紅外控制設備發(fā)來數據時,它便把這些數據送到串口緩沖區(qū),在串口顯示,因而我們可以直觀地看到底層數據反映來的情況。
3.4 底層驅動軟件設計
總流程設計:
圖4 底層驅動流程
底層驅動就是接收上位機發(fā)送的命令,并對收到的命令進行判斷識別,如果發(fā)送來的數據命令符合規(guī)定的協(xié)議,則底層驅動便對上位機發(fā)送的命令進行響應并發(fā)送確認幀通知上位機已經收到數據,例如上位機發(fā)送來的數據是一個學習幀,那么底層驅動則進入到紅外學習程序中等待外面數據的存儲,等下次上位機發(fā)送控制命令來控制紅外設備時,底層驅動則調用上次學習到的數據發(fā)射出去,從而控制相關的紅外設備。
圖5 USB轉串口電路圖
上位機在傳達命令數據給網關模塊時,它是以串口的形式向網關模塊發(fā)送數據,因此在上位機與網關之前需要一個串口來實現兩者的聯(lián)系,本文采用以USB轉串口的設計來實現連接功能。其設計電路圖如圖5所示。
從電路圖中我們可以看出,USB轉串口是通過FT232RL芯片來實現的,FT232RL為接口轉換芯片,可以實現USB到串行UART接口的轉換,其工作電壓范圍為3.3V~5.25V,一共有28個管腳,其中15管腳USBDP為USB信號加,連接內部串聯(lián)電阻和上拉電阻到3.3V。此管腳在與USB連接時連接USB的D+接口。16管腳USBDM為USB信號減,連接內部串聯(lián)電阻。此管腳在與USB連接時連接USB的D-接口。
而1管腳TXD為發(fā)送異步數據輸出,5管腳RXD為接收異步數據輸入,兩者分別連接CC2530串口0位置2的P1_4和P1_5管腳用來接收和傳輸數據。
本模塊是一個收發(fā)一體的萬能紅外學習模塊,采用I2C總線協(xié)議來實現相應的功能,該模塊兼容市面上的機頂盒、電視機、電風扇、MP3播放器、音響設備等99%的紅外學習,但不支持空調。從電路上和實物上來看,此紅外學習模塊結構具有相對簡單、接口少、體積小等優(yōu)點,并且工作電壓在3.3V,普通的干電池或USB供電即能滿足要求,因而此設計采用此模塊進行紅外設備的學習和控制。
●I2C總線協(xié)議:
I2C總線協(xié)議是PHILIPS公司開發(fā)的兩線式串行總線,一條是數據線(SDA),一條是時鐘總線(SCL),用于連接微控制器及其外圍設備,其最大的優(yōu)點就是簡單性和有效性,由于組件直接連接到兩條主線接口上,因此I2C總線所占的空間很小,減少了接口的數量以及電路板的空間,進而也降低了成本。
圖6 紅外模塊
●總線信號類型:
I2C總線協(xié)議有三種信號類型,它們分別是起始信號、結束信號和應答信號。
●起始信號:
SCL為高電平的時候,SDA由高電平向低電平跳變。
●結束信號:
SCL為高電平的時候,SDA由低電平向高電平跳變。
●應答信號:
接收數據的設備在接收到8位數據后向發(fā)送數據的設備發(fā)送一個低電平脈沖,CPU單元在向受控單元發(fā)送數據后,等待受控單元返回應答信號,CPU根據受控單元發(fā)送的應答信號決定是否向受控單元發(fā)送數據,如果CPU單元未接收到受控單元發(fā)送過來的應答信號,則判斷受控信號出現故障。
注意:在SCL為高電平期間,SDA上的數據要求必須穩(wěn)定,不允許發(fā)生跳變。
●數據的傳輸:
數據的傳輸分為讀操作和寫操作。在I2C協(xié)議中,數據傳送是以每8位數據進行傳遞,加上受控單元的應答信號,一個信息的傳送一共9位,在這8位有效的數據當中,前四位一般是廠家出廠時設定的,下面三位是主控單元發(fā)送數據的目標位置,也就是受控單元的地址,最后一位是讀寫操作位,“0”為寫操作,“1”為讀操作。
本文研制了基于PC的智能家電無線紅外遙控系統(tǒng),設計了一個能夠通過電腦客戶端實現對家庭中的無線紅外遙控設備控制系統(tǒng),組成一個以PC為中心的星形網絡系統(tǒng),通過對PC客戶端的簡單操作便可以實現對家用電器的控制,實現家電設備的初步智能化。系統(tǒng)的實物圖如圖7所示。該系統(tǒng)從整體來說有創(chuàng)新點為:
(1)通過電腦控制電視或空調等可紅外遙控的家電;
(2)使用射頻無線傳輸,提高應用的便利性;
(3)可實現普通家電的初步智能化。
圖7 系統(tǒng)實物圖
該系統(tǒng)在測試中對99%的設備能夠進行遙控,由于空調的控制相對比較復雜,因此對于空調則不能進行控制。
[1] 李志方,鐘洪聲.IEEE802.15.4的CC2530無線數據收發(fā)設計[J].單片機與嵌入式系統(tǒng)應用,2011(7):43~45
[2] 馬忠梅,王美剛,孫娟.單片機的C語言應用程序設計[M].第五版.北京:北京航空航天大學出版社,2013:287~313
[3] 馬磊.基于CC2530無線數據遠距離通信模塊的設計[D],2013
[4] 石宗義.I2C總線時序分析及其模擬[J].太原理工大學學報.2004(1):53~55
[5] 朱珍,王忠峰.PC串口通信的幾種實現方式[J].現代計算機,2012(12):49~52
[6] 王凱明.智能家居系統(tǒng)的研究[D].西安科技大學,2005
Wireless Infrared Control System of Intelligent Appliances Based on PC
ZHOU Ping,LV Yong,YI Kai-di,CHEN Fei-ting
(School of Instrumentation Science and Opto-electronics Engineering,Beijing Information Science&Technology University,Beijing 100192)
Intelligent home appliances remote control system based on PC uses MCU CC2530 as core driving.The control system of infrared learning module with YS-IR01F as the core,the system consists of three parts which are the user interface,gateway module and underlying infrared driver module.Further realizes the system by the PC user interface control including TV,projector,etc,realizes the intelligent home appliances.To meet the requirements of general family intelligent home furnishing,convenience to people's life.
PC;Wireless Infrared;Intelligent Home Appliances Control;Infrared Based Learning
1007-1423(2015)01-0036-06
10.3969/j.issn.1007-1423.2015.01.009
周平(1990-),男,河南人,北京信息科技大學光信息科學與技術專業(yè)本科生
呂勇(1971-),男,安徽合肥人,碩士,副教授,從事領域為光電檢測技術研究工作
2014-11-28
2014-12-08
北京信息科技大學本科生培養(yǎng)-大學生科研訓練項目資助(No.PXM2014_014224_000079)、專業(yè)建設-光信息科學與技術項目資助(No.PXM2014_014224_000066)
易愷迪(1987-),男,北京人,本科,工程師,研究方向為無線通信技術
陳飛挺(1992-),男,福建人,本科,研究方向為光電檢測