掃描二維碼
隨時(shí)隨地手機(jī)看文章
1引言
隨著現(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ā)精簡(jiǎn)的 TCP/IP協(xié)議并結(jié)合 HTTP協(xié)議,實(shí)現(xiàn)嵌入式 Web服務(wù)器,從而使用戶通過任意的瀏覽器便可對(duì)家居中的設(shè)備和環(huán)境進(jìn)行控制和監(jiān)測(cè)。 2 以太網(wǎng)智能家居控制器的硬件設(shè)計(jì)
智能家居控制器采用 8位單片機(jī) W78E58B作為系統(tǒng)的核心處理單元,系統(tǒng)硬件框圖如圖 1所示。
500)this.style.width=500;" border="0" />
本地端以紅外通信技術(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ù)。
3 以太網(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)。
3.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ā)送程序。
3.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)志位。
3.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所示。
500)this.style.width=500;" border="0" />
3.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ù)中采用精簡(jiǎn) TCP/IP協(xié)議。要實(shí)現(xiàn)交互功能,就要在精簡(jiǎn) TCP/IP協(xié)議的基礎(chǔ)上實(shí)現(xiàn) HTTP協(xié)議,構(gòu)建嵌入式 Web服務(wù)器。本設(shè)計(jì)中的精簡(jiǎn) 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)求,檢測(cè)網(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í)器。為簡(jiǎn)單起見,程序里每次只發(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ā)
在下述的內(nèi)容中,小編將會(huì)對(duì)交換機(jī)的相關(guān)消息予以報(bào)道,如果交換機(jī)是您想要了解的焦點(diǎn)之一,不妨和小編共同閱讀這篇文章哦。
關(guān)鍵字: 交換機(jī) 工業(yè)交換機(jī) 以太網(wǎng)W5500 芯片是一款集成全硬件 TCP/IP 協(xié)議棧的嵌入式以太網(wǎng)控制器,為單片機(jī)提供了更加簡(jiǎn)單、快速、穩(wěn)定、安全的以太網(wǎng)接入方案。采用標(biāo)準(zhǔn)4線SPI接口,理論速率上可以達(dá)到 80MHz。
關(guān)鍵字: 嵌入式以太網(wǎng)控制器 以太網(wǎng)(全球TMT2022年9月9日訊)2022年9月5日,中國(guó)上海工業(yè)通信及工業(yè)聯(lián)網(wǎng)領(lǐng)導(dǎo)廠商Moxa在2022臺(tái)北國(guó)際自動(dòng)化工業(yè)大展上揭曉時(shí)間敏感網(wǎng)絡(luò) (TSN) 解決方案最新研發(fā)成果,并展出 TSN 生態(tài)系統(tǒng)在促成統(tǒng)一網(wǎng)...
關(guān)鍵字: 自動(dòng)化 生態(tài)系統(tǒng) IEEE 以太網(wǎng)在這篇文章中,小編將對(duì)網(wǎng)絡(luò)交換機(jī)的相關(guān)內(nèi)容和情況加以介紹以幫助大家增進(jìn)對(duì)網(wǎng)絡(luò)交換機(jī)的了解程度,和小編一起來閱讀以下內(nèi)容吧。
關(guān)鍵字: 網(wǎng)絡(luò)交換機(jī) 交換機(jī) 以太網(wǎng)近日,紫光股份旗下新華三集團(tuán)的首款800G數(shù)據(jù)中心交換機(jī)正式面世,并攜手以太網(wǎng)測(cè)試和測(cè)量行業(yè)領(lǐng)導(dǎo)者思博倫,完成業(yè)界首次針對(duì)800G接口的互聯(lián)測(cè)試。本次項(xiàng)目采用思博倫Spirent TestCenter 800G測(cè)試解決方...
關(guān)鍵字: 新華三 數(shù)據(jù)中心 以太網(wǎng)全新技術(shù)為實(shí)現(xiàn)以太網(wǎng)太比特(Terabit)級(jí)速率鋪平道路!
關(guān)鍵字: 光纖 以太網(wǎng) 數(shù)據(jù)中心2022年7月1日 – 專注于引入新品的全球半導(dǎo)體和電子元器件授權(quán)分銷商貿(mào)澤電子 (Mouser Electronics) 即日起備貨Analog Devices (ADI) 的ADIN2111雙端口以太網(wǎng)交換機(jī)。Ana...
關(guān)鍵字: 貿(mào)澤電子 以太網(wǎng) 工業(yè)自動(dòng)化