超碰在线91,国产第1页,国产精品99,最近中文字幕av

<video id="z2k50"><ins id="z2k50"></ins></video><small id="z2k50"><pre id="z2k50"><samp id="z2k50"></samp></pre></small>

    1. <video id="z2k50"><ins id="z2k50"></ins></video>

        以太網(wǎng)智能家居控制器的軟硬件設(shè)計(jì)

        發(fā)布時(shí)間:2024-05-29
        隨著現(xiàn)代 4c技術(shù)(計(jì)算機(jī)技術(shù)、控制技術(shù)、通信技術(shù)和圖形顯示技術(shù))的迅速發(fā)展以及人們生活水平的不斷提高,智能家居已經(jīng)成為智能建筑的一個(gè)重要分支。本文旨在設(shè)計(jì)一種成本低廉、面向普通家庭的、集本地控制和遠(yuǎn)程控制于一體的智能家居控制器,用于控制室內(nèi)家電的運(yùn)行狀態(tài)和環(huán)境參數(shù)的采集。設(shè)計(jì)中本地控制采用紅外技術(shù),遠(yuǎn)程控制通過開發(fā)精簡的 tcp/ip協(xié)議并結(jié)合 http協(xié)議,實(shí)現(xiàn)嵌入式 web服務(wù)器,從而使用戶通過任意的瀏覽器便可對(duì)家居中的設(shè)備和環(huán)境進(jìn)行控制和監(jiān)測。
        1、以太網(wǎng)智能家居控制器的硬件設(shè)計(jì)
        智能家居控制器采用 8位單片機(jī) w78e58b作為系統(tǒng)的核心處理單元,系統(tǒng)硬件框圖如圖 1所示。
        本地端以紅外通信技術(shù)為基礎(chǔ),發(fā)射端采用 nb9148紅外編碼模塊,接收端采用 sj1838進(jìn)行接收解調(diào),并將控制信號(hào)傳送給 w78e58b。外部擴(kuò)展 ram 62256以提高單片機(jī)的數(shù)據(jù)傳輸速度和復(fù)雜的 tcp/ip協(xié)議的處理。 rs232串口通訊主要用于程序的下載和調(diào)試,以及通訊轉(zhuǎn)換接口。gal器件 atf16v8b用于片選,以節(jié)約系統(tǒng)空間資源。
        ds18b20用于環(huán)境溫度采集。
        遠(yuǎn)程控制的硬件平臺(tái)由 w78e58b和以太網(wǎng)控制器 rtl8019as等器件組成。rtl8019as是針對(duì) isa總線設(shè)計(jì)的,用于實(shí)現(xiàn)網(wǎng)絡(luò)的物理層協(xié)議的專用以太網(wǎng)控制芯片。rtl8019as內(nèi)置了 10base-t收發(fā)器,使用跳線方式,通過可提高網(wǎng)絡(luò)通信的抗干擾能力的網(wǎng)絡(luò)濾波器 20f-01,再與 rj-45相連。 e2prom at24c512用于實(shí)現(xiàn)嵌入式 web服務(wù)器訪問的網(wǎng)頁文件存儲(chǔ),同時(shí)也用于存儲(chǔ)用戶的一些設(shè)置,如 ip地址、網(wǎng)關(guān)以及網(wǎng)卡芯片 mac地址等參數(shù)。
          2、以太網(wǎng)智能家居控制器的軟件設(shè)計(jì)
        以太網(wǎng)智能家居控制器的軟件實(shí)現(xiàn)是在單片機(jī)上完成的,主要包括虛擬 i2c總線讀寫程序、紅外接收和控制程序、溫度采集程序、網(wǎng)卡芯片 rtl8019as驅(qū)動(dòng)程序、嵌入式 web服務(wù)器的實(shí)現(xiàn)以及其他處理程序。本文中只討論網(wǎng)卡芯片的驅(qū)動(dòng)程序和嵌入式 web服務(wù)器的實(shí)現(xiàn)。
        2.1 以太網(wǎng)控制器 rtl8019as的驅(qū)動(dòng)程序
        rtl8019as的驅(qū)動(dòng)程序是 tcp/ip協(xié)議與底層物理設(shè)備的程序接口,它屏蔽了底層硬件處理的細(xì)節(jié),并向上層軟件提供與硬件無關(guān)的接口。 tcp/ip協(xié)議只要調(diào)用以太網(wǎng)驅(qū)動(dòng)程序即可完成以太網(wǎng)數(shù)據(jù)的接收和發(fā)送。網(wǎng)卡芯片 rtl8019as的驅(qū)動(dòng)程序包括 rtl8019as初始化程序、數(shù)據(jù)包接收程序和數(shù)據(jù)包發(fā)送程序。
        2.1.1 rtl8019as初始化
        rtl8019as通過 rstdrv管腳進(jìn)行復(fù)位操作。復(fù)位后,先對(duì) rtl8019as初始化。初始化操作包含設(shè)置 pstart=0x4c,pstop=0x80,使 0x40~0x4b為網(wǎng)卡的發(fā)送緩沖區(qū),0x4c~ 0x7f為網(wǎng)卡的接收緩沖區(qū);設(shè)置 rcr=0xcc,僅接收目標(biāo)物理地址和設(shè)置物理地址一致的數(shù)據(jù)包、廣播地址數(shù)據(jù)包和多點(diǎn)播送地址包;設(shè)置 tcr=0xe0,工作在正常模式;設(shè)置 dcr=0xc8,使用 fifo緩存及 8位數(shù)據(jù) dma;設(shè)置 imr=0x00,屏蔽所有中斷;組播地址寄存器 mar0~mar7,均設(shè)置為 0x00;設(shè)置網(wǎng)卡物理地址寄存器 par0~par5;設(shè)置 cr=0x22,選擇頁 0的寄存器,進(jìn)入正常工作狀態(tài);設(shè)置 isr=0xff,清除所有中斷標(biāo)志位。
        2.1.2 rtl8019as數(shù)據(jù)發(fā)送
        首先將待發(fā)送的數(shù)據(jù)按以太網(wǎng)數(shù)據(jù)幀格式封裝后,再置 cr寄存器為 12h,啟動(dòng)遠(yuǎn)程寫 dma,rtl8019as會(huì)自動(dòng)將這幀數(shù)據(jù)送至 rtl8019as的數(shù)據(jù)發(fā)送緩沖區(qū),并將結(jié)果寫入狀態(tài)寄存器。最后將 cr置為 3eh,啟動(dòng)本地寫 dma后將數(shù)據(jù)送入 fifo寄存器,并發(fā)送到以太網(wǎng)上。程序流程圖見圖 2所示。
        接收數(shù)據(jù)時(shí),接收緩沖區(qū)構(gòu)成一個(gè)循環(huán) fifo隊(duì)列。 pstart、pstop兩個(gè)寄存器限定了循環(huán)隊(duì)列的開始和結(jié)束頁;curr為寫入指針,受芯片控制; bnry為讀出指針,由主機(jī)程序控制。程序通過查詢 curr和 bnry兩個(gè)寄存器的值來判斷是否收到一幀數(shù)據(jù)。程序流程見圖 3所示。
        2.2 嵌入式 web服務(wù)器的實(shí)現(xiàn)
        設(shè)計(jì)中采用的是 w78e58b型 8位單片機(jī),由于單片機(jī)存儲(chǔ)空間有限、處理速度相對(duì)較慢,且在整個(gè)遠(yuǎn)程控制中不需要實(shí)現(xiàn)完整的 tcp/ip協(xié)議。因此,可以在遠(yuǎn)程控制的網(wǎng)絡(luò)連接和訪問技術(shù)中采用精簡 tcp/ip協(xié)議。要實(shí)現(xiàn)交互功能,就要在精簡 tcp/ip協(xié)議的基礎(chǔ)上實(shí)現(xiàn) http協(xié)議,構(gòu)建嵌入式 web服務(wù)器。本設(shè)計(jì)中的精簡 tcp/ip協(xié)議具有同 tcp/ip協(xié)議一樣的四層結(jié)構(gòu),各層實(shí)現(xiàn)的功能如下:
        ① 鏈路層。設(shè)計(jì)中通過以太網(wǎng)接入到 internet,因此物理層和數(shù)據(jù)鏈路層要符合以太網(wǎng)的 ieee802.3標(biāo)準(zhǔn)。然而,以太網(wǎng)控制器 rtl8019as的硬件組成部分已經(jīng)實(shí)現(xiàn)了 csma/cd控制機(jī)制,屏蔽了底層硬件處理的細(xì)節(jié),并向上層軟件提供與硬件無關(guān)的接口,最終完成了數(shù)據(jù)在以太網(wǎng)中的接收和發(fā)送。因此,設(shè)計(jì)中物理層與數(shù)據(jù)鏈路層的設(shè)計(jì)是通過 rtl8019as硬件和驅(qū)動(dòng)程序共同實(shí)現(xiàn)的。
        ②網(wǎng)絡(luò)層實(shí)現(xiàn)了 arp協(xié)議、icmp協(xié)議和 ip協(xié)議。arp是地址解析協(xié)議,具體處理過程是當(dāng)接收到 arp數(shù)據(jù)包,處理器就查看 ip地址是請(qǐng)求還是響應(yīng)。如果是響應(yīng),則將響應(yīng)中的網(wǎng)卡地址存到 arp高速緩存表中;如果是請(qǐng)求,處理器將返回自己的網(wǎng)卡物理地址給對(duì)方。icmp是調(diào)試響應(yīng) ping的請(qǐng)求,檢測網(wǎng)路是否通順。依照系統(tǒng)實(shí)際應(yīng)用的要求, ip協(xié)議只需實(shí)現(xiàn)對(duì)數(shù)據(jù)報(bào)傳送和接收,無須實(shí)現(xiàn)路由選擇算法和差錯(cuò)控制,同時(shí)也不需支持 ip數(shù)據(jù)報(bào)的分片和重組。
        ③傳輸層實(shí)現(xiàn) tcp協(xié)議。 tcp協(xié)議是面向連接的、端對(duì)端的可靠通信協(xié)議。設(shè)計(jì)中采取了 tcp連接的建立與關(guān)閉機(jī)制、超時(shí)重傳機(jī)制、數(shù)據(jù)包確認(rèn)機(jī)制、流量控制機(jī)制來保證它的可靠性。在超時(shí)重傳機(jī)制中,如果超時(shí)重傳定時(shí)器溢出后還沒有收到確認(rèn),則重傳該數(shù)據(jù)包,并復(fù)位重傳定時(shí)器。為簡單起見,程序里每次只發(fā)送一個(gè) tcp數(shù)據(jù)包,然后等待它的確認(rèn),只有收到確認(rèn)后才會(huì)繼續(xù)發(fā)送下面的 tcp數(shù)據(jù)包。在本設(shè)計(jì),程序重傳的間隔時(shí)間是固定的,沒有采用 tcp協(xié)議中的標(biāo)準(zhǔn)算法,當(dāng)達(dá)到一定的次數(shù)后,發(fā)送方還沒有收到確認(rèn),則會(huì)放棄該包的發(fā)送并關(guān)閉 tcp連接。tcp的流量控制是為了協(xié)調(diào)通信雙方的收發(fā)速率不均衡而設(shè)計(jì)的。設(shè)計(jì)中考慮到系統(tǒng)在使用 tcp協(xié)議時(shí),只設(shè)置了一個(gè)中等 ip包大小接收緩存,因此接收窗口恒定設(shè)為 1024。這樣遠(yuǎn)端主機(jī)就會(huì)以較慢的傳輸速率與本端的 web服務(wù)器進(jìn)行通信,不會(huì)導(dǎo)致死機(jī)。
        ④應(yīng)用層實(shí)現(xiàn)了 http協(xié)議。http是在 web服務(wù)器和瀏覽器之間通信的協(xié)議。為了簡化,設(shè)計(jì)中采用固定的 http報(bào)文頭封裝 http應(yīng)答數(shù)據(jù)報(bào)文。格式如下:
        char code html_header[ ] //客戶端訪問主頁時(shí)候服務(wù)器的響應(yīng)頭部
        = {http/1.1 200 ok\n //響應(yīng)行( respond line),狀態(tài)為 ok,表示文件可以讀取
        cache-control: no-cache\n //沒有高速緩存控制
        connection: keep-alive\n //http/1.1的可持續(xù)鏈接
        content-length: tag:len1\n //文件長度
        content-type: text/html\r\n\r\n };//客戶端 get請(qǐng)求的文件格式
        在響應(yīng) http請(qǐng)求時(shí),由于以太網(wǎng)數(shù)據(jù)包的數(shù)據(jù)部分不能超過 1500字節(jié),因此當(dāng)發(fā)送數(shù)據(jù)超過 1500字節(jié),需要分組發(fā)送。
        2.3 以太網(wǎng)智能家居控制器遠(yuǎn)程控制運(yùn)行結(jié)果
        智能家居控制器接入以太網(wǎng)后,用戶只需在瀏覽器中輸入控制器的 ip地址,便可登錄遠(yuǎn)程控制界面。當(dāng)正確輸入用戶名和密碼后,便進(jìn)入控制頁面,用戶可以訪問并控制各子系統(tǒng)。
        圖 4為智能家電的控制頁面,系統(tǒng)使用 gif格式圖片表示智能家電開關(guān)的狀態(tài)。當(dāng)單擊控制頁面中相應(yīng)的開關(guān)后,智能家居 web服務(wù)器收到 http請(qǐng)求,執(zhí)行 cgi程序,將相反狀態(tài)的圖片嵌入到網(wǎng)頁相應(yīng)的位置中。與此同時(shí),單片機(jī)會(huì)在相應(yīng)家電的控制端口,輸出一個(gè)與之前狀態(tài)相反的電平,此時(shí)繼電器動(dòng)作,家電運(yùn)行狀態(tài)改變。最后智能家居 web服務(wù)器將新的 html頁面回送給用戶端,瀏覽器更新頁面,并顯示改變后的家電狀態(tài)。
        智能家居 web服務(wù)器的軟件系統(tǒng)還啟用了定時(shí)機(jī)制,當(dāng)用戶在規(guī)定的時(shí)間內(nèi)未執(zhí)行任何操作,系統(tǒng)將退出控制頁面,返回到登錄頁面。用戶必須重新輸入驗(yàn)證信息,并登錄后才可再次進(jìn)入控制頁面執(zhí)行操作,大大提高了整個(gè)智能家居控制系統(tǒng)的安全性。
          3、本地智能家電開關(guān)控制
        在本地端使用紅外技術(shù)和單片機(jī)技術(shù)控制家電運(yùn)行。發(fā)射端采用 nb9148作為紅外遙控系統(tǒng)中的紅外編碼芯片,該芯片具有 18個(gè)控制功能,發(fā)射指令可多達(dá) 75個(gè)。當(dāng)用戶發(fā)出控制信號(hào)后,紅外接收器 sj1838先接收紅外信號(hào),再將該編碼信號(hào)傳送給單片機(jī),單片機(jī)執(zhí)行外部中斷,進(jìn)而控制家電運(yùn)行狀態(tài)。
        家電開關(guān)的本地控制是利用單片機(jī)系統(tǒng)的 i/o口輸出高低電平,控制與家電相連的固態(tài)繼電器的狀態(tài)。由于單片機(jī)的輸出電壓較低,不能直接驅(qū)動(dòng)繼電
        上一個(gè):如何解決網(wǎng)站安全證書有問題?
        下一個(gè):調(diào)節(jié)閥堵塞或卡頓的處理方法

        實(shí)驗(yàn)室通風(fēng)柜廠家向大家介紹實(shí)驗(yàn)室通風(fēng)柜的功能
        液相色譜儀流動(dòng)相的選擇原則
        新手建設(shè)網(wǎng)站哪些技巧能派上用場
        常熟500kg防爆電子臺(tái)秤銷售技巧
        華為榮耀6怎么看版本,求助 怎么查看 自己的榮耀6的系統(tǒng)版本
        美國Global water WE570風(fēng)向傳感器功能和應(yīng)用
        廣告雕刻機(jī)和木工雕刻機(jī)的速度哪個(gè)更快?
        新標(biāo)準(zhǔn)砌墻磚試模如何使用
        數(shù)控刀塔車床的定位精度真不是一般的準(zhǔn)確
        消防物聯(lián)網(wǎng)帶來的好處是什么——樂鳥