<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于嵌入式Web服務(wù)器的智能家居主控制系統(tǒng)

          基于嵌入式Web服務(wù)器的智能家居主控制系統(tǒng)

          作者: 時間:2009-07-30 來源:網(wǎng)絡(luò) 收藏

          引言
          隨著信息技術(shù)的發(fā)展,以PC為代表的計算機網(wǎng)絡(luò)技術(shù)發(fā)展到一個更高階段,以智能設(shè)備為核心的后PC時代已經(jīng)來臨。ARM處理器以其性能高、成本低和功耗低的特點,廣泛應(yīng)用于控制、消費,教育類多媒體、DSP和移動式應(yīng)用等領(lǐng)域。隨著生活質(zhì)量的提高,人們對家庭智能化的需求越來越高。智能化正體現(xiàn)在人們生活的各個方面。其中家居的智能化正成為人們生活中追求的熱點,而這里提出的系統(tǒng)正好滿足這一需求。

          本文引用地址:http://www.ex-cimer.com/article/152404.htm


          2 硬件設(shè)計
          系統(tǒng)設(shè)計需求是PC機遵循802.3和HPPTD等網(wǎng)絡(luò)協(xié)議,通過網(wǎng)絡(luò)訪問主控制器的,登錄主控制器,通過電力線構(gòu)成的家庭小型局域網(wǎng)絡(luò)或串口,發(fā)送指令給從控制器進而控制家電,同時利用監(jiān)控家電的傳感器將家電狀態(tài)返回至PC,如圖1所示。該系統(tǒng)設(shè)計要求主控制器功耗低,占用空間小,可進行可視化操作。

          2.1 控制器選擇
          DSP數(shù)學(xué)信號處理器具有強大數(shù)據(jù)處理能力和高運行速度,但在音頻、USB、SD卡等接口功能擴展較弱。而單片機系列的ARM920T具有5級指令流水線.處理速度為1.1 MHz,內(nèi)置MMU(Memory Management Unit)、獨立的16 KB數(shù)據(jù)Cache、16 KB指令Cache和高速AMBA(Advanced Microcon-troller Bus Architecture)總線接口等功能。DSP和一般8位單片機相比,它具有更全面的通用功能,具有60個中斷控制器,支持實時時鐘(RTC)、LCD控制器接口、串口接口、網(wǎng)卡接口等功能,還具有16/32位RISC體系結(jié)構(gòu)和ARM指令集。因此該系統(tǒng)采用ARM公司的ARM920T作為主控制器。
          從控制器選用MSP430單片機,與89S51單片機相比,它具有RISC(精簡指令集),功耗低,支持16位內(nèi)部總線,引入Flash型存儲器和JTAG技術(shù),編程開發(fā)非常方便。這里主要講述主
          2.2 網(wǎng)卡接口設(shè)計
          該系統(tǒng)需要通過互聯(lián)網(wǎng)或電力線進行網(wǎng)絡(luò)通信,而設(shè)計也必須通過網(wǎng)絡(luò)收發(fā)數(shù)據(jù),要求數(shù)據(jù)處理速度快。根據(jù)這些要求,該系統(tǒng)采用DAVICOM公司的DM9000AEP作為網(wǎng)卡的設(shè)計器件。該器件具有10 Mbit/s和100 Mbit/s的自動切換功能,支持802.3x全雙工控制流標(biāo)準(zhǔn),具有16 K字節(jié)的雙字SRAM,可以減輕CPU的負(fù)擔(dān),因此使系統(tǒng)更穩(wěn)定,處理和傳輸數(shù)據(jù)速度更快。
          RJ-45采用HanRun公司的可對信號濾波的HR911105A接口,這樣可節(jié)約印刷板,并有效地減小電磁干擾。ARM920T與網(wǎng)卡DM9000AEP接口設(shè)計如圖2所示。圖中16根數(shù)據(jù)線相連;命令選擇引腳CMD,為高電平時,選擇數(shù)據(jù)端口,CMD為低電平時,選擇地址通道;IOR#為讀信號引腳;IOW#為寫信號引腳;CS#片選信號與ARM920T的片選信號線nGCS3相連。

          2.3 串口接口設(shè)計
          系統(tǒng)需要串口控制家電信息,并進行相應(yīng)通信,而且調(diào)試系統(tǒng)同樣需要串口。為滿足要求,該系統(tǒng)采用Sipex的窄體SP3232串行通信器件。該器件支持滿載120 Kb/s的最小傳輸速率,可在中斷或DMA兩種模式下工作,每個通道包含64 K字節(jié)的發(fā)送FIFO和接收FIFO。該器件最大特點就是采用電荷泵技術(shù):由4只外接電容組成,采用4相電壓轉(zhuǎn)換技術(shù),保持輸出對稱的5.5 V電壓。即使輸入電壓VCC在3.0~5.5 V范圍內(nèi),電荷泵仍可提供5.5 V穩(wěn)定電壓,這樣可以保證系統(tǒng)穩(wěn)定工作。有益于智能家居系統(tǒng)整體的良好運行。串口接口設(shè)計如圖3所示。圖3中TXD表示接收數(shù)據(jù),RXD表示發(fā)送數(shù)據(jù),RTS表示請求發(fā)送,CTS表示清除發(fā)送。當(dāng)RTS請求發(fā)送數(shù)據(jù)時,需經(jīng)CTS信號檢測,只有CTS信號允許才能發(fā)送數(shù)據(jù)。

          2.4 存儲器設(shè)計
          完整操作系統(tǒng)的啟動離不開引導(dǎo)程序。采用SAMSUNG公司64 MB的K9F1208作為NAND Flash,具有4 KB的內(nèi)部緩沖區(qū)可作為引導(dǎo)肩動,系統(tǒng)啟動后NAND Flash仍可作為外部存儲器繼續(xù)使用。Windows CE5.O引導(dǎo)加載程序(BootLoader)由NANDFlash的地址0x00000000處開始執(zhí)行。完成硬件初始化,建立系統(tǒng)的內(nèi)存空間映射圖,最終BootLoader把操作系統(tǒng)內(nèi)核映像加載到RAM中;采用HY公司的兩片HY57V561620CTP作為SDRAM,通過nGCS6連接到ARM920T引腳,起始地址為0x30038000.同時SDRAM還支持自動更新和掉電模式,保證系統(tǒng)穩(wěn)定工作。
          2.5 智能家居系統(tǒng)結(jié)構(gòu)
          主控制器還包括觸摸屏接口。觸摸屏采用帶有驅(qū)動電路的日立7寸屏,用于用戶可視化操作。
          傳感器信號線與ARM920T的中斷引腳EINT8相連。當(dāng)傳感器信號到來時,通過中斷引腳向ARM920T申請中斷服務(wù)程序,并通過網(wǎng)絡(luò)向用戶報警。系統(tǒng)框圖如圖4所示。

          3 軟件設(shè)計
          3.1 內(nèi)核創(chuàng)建及裁剪
          Windows CE是一個開放的、可裁減的、32位的實時嵌入式窗口操作系統(tǒng)。因此要實現(xiàn)Web Server功能必須對內(nèi)核裁剪。除了實現(xiàn)基本的WINCE 5.0功能外,還需要在定制內(nèi)核時在Platform內(nèi)添加DM9000網(wǎng)卡驅(qū)動,串口驅(qū)動,USB驅(qū)動,MFC,SDK(標(biāo)準(zhǔn)工具集)、HTFPD和SOAP協(xié)議等系統(tǒng)必備驅(qū)動和協(xié)議。Windows CE上Web Server的通信協(xié)議是HTTP協(xié)議,HTTP的消息機制是請求一應(yīng)答模式。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();