【正文】
圖35為使用UDP發(fā)送數(shù)據(jù)的連接圖以及相應(yīng)的程序。圖35為使用UDP發(fā)送數(shù)據(jù)的連接圖以及相應(yīng)的程序由圖35可分析出發(fā)送和接收UDP數(shù)據(jù)包的主要步驟,如下:1.創(chuàng)建UDP對象并初始化obj1 = instrfind(39。Type39。, 39。udp39。, 39。RemoteHost39。, 39。39。, 39。RemotePort39。,8000, 39。Tag39。, 39。39。);obj1 = udp(39。39。, 8000);這個函數(shù)的主要目的是創(chuàng)建一個連接對象obj1。其中主要的屬性有:Type(對象類型),RemoteHost(遠程主機名/IP),RemotePort(端口號,這里是8000),Tag(標志位)等。2.打開設(shè)備對象fopen(obj1)。3.數(shù)據(jù)報的發(fā)送和接收fprintf(obj1, 39。number39。);%number為要寫的ASCAII字符fscanf(obj1,’number’)。 %number為要讀的ASCAII字符4.關(guān)閉并清除設(shè)備對象close(obj1);clear(obj1)。 網(wǎng)絡(luò)通信調(diào)試連接實驗設(shè)備,設(shè)置Code Composer (Emulator)方式下運行,要使板上的USB接口與PC機上的USB接口相連。要進行socket通信,則連接板上的網(wǎng)絡(luò)接口與PC機上的網(wǎng)絡(luò)接口。連接220V供電電源。打開驗箱上的開關(guān),給實驗箱供電。上電正常時,ICETEKDM642AVM評估板上的上電指示燈常亮,復(fù)位指示燈熄滅。撥動仿真選擇開關(guān),選擇DM642仿真方式。打開液晶顯示屏電源開關(guān),此時液晶顯示屏上應(yīng)顯示條狀彩條。如果沒有彩條顯示,可按下復(fù)位鍵S1,再次觀察液晶顯示屏是否有彩條輸出。打開服務(wù)器端的工程,進行編譯、連接。按下試驗箱上的復(fù)位鍵,下載并運行程序。下載好服務(wù)器端程序后,運行客戶端的GUI界面,可以在MATLAB環(huán)境下運行,也可以獨立運行已生成的可執(zhí)行文件。先按下連接按鈕,進行UDP設(shè)備對象的創(chuàng)建。連接成功后,就可以選擇燈具的不同運行模式發(fā)送給服務(wù)器端。如圖36(1)所示,客戶端發(fā)送了打開客廳吊燈的請求給服務(wù)器端,該命令的編碼為1。若服務(wù)器端與客戶端的通信鏈路正常,CCS中“sdout”就會顯示收到的數(shù)據(jù),如圖36(2)所示,最近一次接收的數(shù)據(jù)1。相應(yīng)地,ICETEKDM642AVM評估板上的用戶指示燈會以8421編碼的形式亮服務(wù)器端接收到的數(shù)據(jù),即“sdout”顯示最近一次接收到的數(shù)據(jù)。如圖36(3)所示。DDDD9是評估板上的四個用戶指示燈。8位寄存器0x90080010控制指示燈的亮、滅,只有低四位有效。寄存器從低(第0位)到高(第3位)分別對應(yīng)“D6”到“D9”四個指示燈。如果需要點亮指示燈,該指示燈的寄存器控制位上要置高電平(1),關(guān)閉時置低電平(0)。36(1) GUI界面控制圖 36 (2) CCS調(diào)試圖36(3) 評估板顯示圖第4章 總結(jié)和展望 課題總結(jié)本文針對智能家居系統(tǒng)中的燈光控制系統(tǒng)進行了設(shè)計。智能燈光控制對于節(jié)約能源,創(chuàng)造舒適、便利的生活、工作環(huán)境有非常重要的意義。本文首先介紹了設(shè)計中所使用的軟硬件環(huán)境。MATLAB、DSP的軟件仿真環(huán)境CCS及ICETEKDM642AVM評估板。在設(shè)計中使用MATLAB來創(chuàng)建客戶端控制界面以及客戶端UDP數(shù)據(jù)報的發(fā)送和接收。使用DSP的軟件仿真環(huán)境CCS實現(xiàn)服務(wù)器端的socket編程, ICETEKDM642AVM評估板與客戶端進行通信,接收客戶端請求,執(zhí)行任務(wù),體現(xiàn)在實驗板上就是四個用戶指示燈模擬燈具的運行模式,采用8421顯示接收到的數(shù)據(jù)。其次詳細介紹了利用GUIDE進行客戶端界面的設(shè)計的過程以及將GUI程序生成可執(zhí)行文件的方法。再次通過UDP協(xié)議設(shè)計網(wǎng)絡(luò)通信流程。分別從服務(wù)器端和客戶端的角度出發(fā),服務(wù)器端采用socket編程,客戶端利用MATLAB工具箱中的UDP工具實現(xiàn)了接收和發(fā)送數(shù)據(jù)。根據(jù)設(shè)計要求,本文完成的工作有:(1) 詳細設(shè)計了燈光控制系統(tǒng)客戶端的圖形用戶界面,使得對燈光系統(tǒng)的控制可視化。(2) 考慮到燈光控制系統(tǒng)只是智能家居系統(tǒng)的一個子系統(tǒng),設(shè)計了一個智能家居系統(tǒng)圖形用戶界面,集成了八個子系統(tǒng)。通過點擊不同按鈕可調(diào)用不同子系統(tǒng)的圖形用戶界面。(3) 通過UDP協(xié)議實現(xiàn)了客戶端和服務(wù)器端的通信。實驗結(jié)果是在客戶端用戶界面上選擇燈具的運行狀態(tài),服務(wù)器端接收到客戶端發(fā)出的請求后,在ICETEKDM642AVM評估板上模擬對應(yīng)燈具的運行模式。 課題展望下一步工作應(yīng)該從以下幾個方面改進。(1) 智能家居系統(tǒng)包括八個子系統(tǒng),即燈光控制系統(tǒng)、遠程監(jiān)控系統(tǒng)、可視對講系統(tǒng)、安防報警系統(tǒng)、家電控制系統(tǒng)、窗簾控制系統(tǒng)、背景音樂系統(tǒng)和小區(qū)服務(wù)系統(tǒng)。下一步工作要具體分析并設(shè)計各個子系統(tǒng)的功能,在一個智能家居系統(tǒng)界面上實現(xiàn)對每個子系統(tǒng)的控制,使該系統(tǒng)功能更加全面。(2) 網(wǎng)絡(luò)通信部分采用UDP協(xié)議,控制命令通過UDP數(shù)據(jù)報直接發(fā)送,沒有進行加密措施,在實際應(yīng)用中就會存在很大的安全隱患,系統(tǒng)容易受到威脅。下一步工作應(yīng)該在系統(tǒng)中加入密碼保護措施,使系統(tǒng)更加安全。(3) 本設(shè)計還只是處在模擬家用電器的運行模式的階段,沒有實際控制家用電器。若要把系統(tǒng)應(yīng)用于實際中,還有很多工作要做。最主要的就是要詳細了解各種家用電器的運行模式和性能,對其加以正確的控制。實現(xiàn)一個真正的安全、方便、智能的家居系統(tǒng)。致謝大學四年的時光已接近尾聲,我想借此機會表達對母校,我的父母、親人,老師和同學由衷的謝意。首先我要感謝我的指導(dǎo)老師姚志強老師。姚老師嚴謹?shù)闹螌W精神,實事求是的研究作風給我留下了深刻的印象,這必將是我以后學習的榜樣?!笆谌艘贼~不如授之以漁”,我做畢業(yè)設(shè)計的每個階段,從選題的確定到查閱資料,尤其在設(shè)計任務(wù)完成的過程中,姚老師努力教導(dǎo)我培養(yǎng)分析問題和解決問題的能力。在將近三個月的時間里,我查閱分析資料的能力有了很大的提高,能夠從眾多資料中提煉對自己有用的信息。姚老師總能夠引導(dǎo)并鼓勵我去學習并應(yīng)用一些知識,這在很大程度上鍛煉了我的自學能力,并讓我更加相信沒有做不到的事,只有不愿去實干的人,只要肯做,就一定能夠做到。所有這些這將會使我受益終生。同時我要感謝道堅丁九和白云海學長,在本次設(shè)計工作中,他們給予我了很多專業(yè)性的幫助。不僅如此,他們在學習過程中堅定的毅力以及不怕困難,勇于挑戰(zhàn)的精神都是我應(yīng)該努力的方向。感謝李幸富和聶鵬鵬同學,他們也給予我很多真誠的幫助。感謝我的家人對我一如既往的關(guān)懷和鼓勵。他們教了我很多做人的道理以及踏實實干的精神。在精神和物質(zhì)上都給予了我最大的支持,使我能夠更加積極地面對學習和生活中的困難,勇于進取。同時感謝我的同班同學和朋友,在困難時他們幫助我,在犯錯時他們教導(dǎo)我,在灰心時他們鼓勵我。他們的支持就是我前進的動力。參考文獻[1] 汪安民,程昱,徐保根編著. DSP嵌入式系統(tǒng)開發(fā)典型案例[M]. 北京: 人民郵電出版社, 2007.[2] 張雄偉著. DSP芯片的原理與開發(fā)應(yīng)用[M]. 北京: 電子工業(yè)出版社, 2000.[3] 陳垚光. 精通MATLAB GUI設(shè)計[M].北京: 電子工業(yè)出版社, 2008.[4] 董振海. 精通MATLAB7編程與數(shù)據(jù)庫應(yīng)用[M]. 北京: 電子工業(yè)出版社,2007.[5] 李宗. 智能家居中燈光控制系統(tǒng)的研究[D]. 碩士論文. 上海:上海交通大學,2008.[6] 李真芳,蘇濤,——MATLAB調(diào)試及直接目標代碼生成[M].西安:西安電子科技大學出版社,2003.[7] 王巧花. 基于MATLAB的圖形用戶界面(GUI)設(shè)計[J]. 煤礦機械, 2005,(03):60~62.[8] [M].北京: 北京瑞泰創(chuàng)新科技有限責任公司.[9] 王軍寧, 何迪譯. TI DSP/BIOS用戶手冊與驅(qū)動開發(fā)[M]. 北京: 清華大學出版社,2007.[10] [M].北京: 電子工業(yè)出版社,.[11] 王瑋,張衛(wèi)寧等. 基于TMS320DM642的網(wǎng)絡(luò)功能開發(fā)的研究與實現(xiàn)[J].計算機應(yīng)用,2006,26(12):299~302.[12] TMS320C6000 TCP/IP Network Developer’s Kit (NDK) User’s Guide (SPRU523A)[Z]. TI, 2001.[13] TI C6000DSP上TCP/IP協(xié)議棧的實現(xiàn)[J]. 網(wǎng)絡(luò)通訊與安全,2007,(03):688~689.[14] [M].廣東: 華南農(nóng)業(yè)大學,.[15] 王軍宇等著. 數(shù)字信號處理技術(shù)原理與開發(fā)應(yīng)用[M]. 北京: 高等教育出版社, .[16] 汪安民, 張松燦著. TMS320C6000 DSP實用技術(shù)與開發(fā)案例[M]. 北京: 人民郵電出版社,2008. [17] 葉敏著. 數(shù)字信號處理與交換網(wǎng)[M].北京: 北京郵電大學.[18] 江思敏, 劉暢著. TMS320C6000 DSP應(yīng)用程序開發(fā)教程[M]. 北京: 機械工業(yè)出版社, 2005.附錄一:智能家居系統(tǒng)界面的程序代碼function varargout = smartsystem(varargin)% SMARTSYSTEM Mfile for % SMARTSYSTEM, by itself, creates a new SMARTSYSTEM or raises the existing% singleton*.%% H = SMARTSYSTEM returns the handle to a new SMARTSYSTEM or the handle to% the existing singleton*.%% SMARTSYSTEM(39。CALLBACK39。,hObject,eventData,handles,...) calls the local% function named CALLBACK in with the given input arguments.%% SMARTSYSTEM(39。Property39。,39。Value39。,...) creates a new SMARTSYSTEM or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before smartsystem_OpeningF gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to smartsystem_OpeningF via varargin.%% *See GUI Options on GUIDE39。s Tools menu. Choose GUI allows only one% instance to run (singleton).%% See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help smartsystem % Last Modified by GUIDE 16May2010 11:08:39 % Begin initialization code DO NOT EDITglobal handles。gui_Singleton = 1。gui_State = struct(39。gui_Name39。, mfilename, ... 39。gui_Singleton39。, gui_Singleton, ... 39。gui_OpeningF39。, @smartsystem_OpeningF, ... 39。gui_OutputF39。, @smartsystem_OutputF, ... 39。gui_LayoutF39。, [] , ... 39。gui_Callback39。, [])。if nargin amp。amp。 ischar(varargin{1}) = str2func(varargin{1})。end if nargout [varargout{1:nargout}] = gui_mainf(gui_State, varargin{:})。else gui_mainf(gui_State, varargin{:})。end% End initialization code DO NOT EDIT % Executes just before smartsystem is made visible.function smartsystem_OpeningF(hObject, eventdata, handles, varargin)% This function has no output args, see OutputF.% hObject handle to figure% eventdata reserved