以太網智能家居控制器的設計
1引言
隨著現代 4C技術(計算機技術、控制技術、通信技術和圖形顯示技術)的迅速發展以及人們生活水平的不斷提高,智能家居已經成為智能建筑的一個重要分支。本文旨在設計一種成本低廉、面向普通家庭的、集本地控制和遠程控制于一體的智能家居控制器,用于控制室內家電的運行狀態和環境參數的采集。設計中本地控制采用紅外技術,遠程控制通過開發精簡的 TCP/IP協議并結合 HTTP協議,實現嵌入式 Web服務器,從而使用戶通過任意的瀏覽器便可對家居中的設備和環境進行控制和監測。 2 以太網智能家居控制器的硬件設計
智能家居控制器采用 8位單片機 W78E58B作為系統的核心處理單元,系統硬件框圖如圖 1所示。
本地端以紅外通信技術為基礎,發射端采用 NB9148紅外編碼模塊,接收端采用 SJ1838進行接收解調,并將控制信號傳送給 W78E58B。外部擴展 RAM 62256以提高單片機的數據傳輸速度和復雜的 TCP/IP協議的處理。 RS232串口通訊主要用于程序的下載和調試,以及通訊轉換接口。GAL器件 ATF16V8B用于片選,以節約系統空間資源。
DS18B20用于環境溫度采集。
遠程控制的硬件平臺由 W78E58B和以太網控制器 RTL8019AS等器件組成。RTL8019AS是針對 ISA總線設計的,用于實現網絡的物理層協議的專用以太網控制芯片。RTL8019AS內置了 10BASE-T收發器,使用跳線方式,通過可提高網絡通信的抗干擾能力的網絡濾波器 20F-01,再與 RJ-45相連。 E2PROM AT24C512用于實現嵌入式 Web服務器訪問的網頁文件存儲,同時也用于存儲用戶的一些設置,如 IP地址、網關以及網卡芯片 MAC地址等參數。
3 以太網智能家居控制器的軟件設計
以太網智能家居控制器的軟件實現是在單片機上完成的,主要包括虛擬 I2C總線讀寫程序、紅外接收和控制程序、溫度采集程序、網卡芯片 RTL8019AS驅動程序、嵌入式 Web服務器的實現以及其他處理程序。本文中只討論網卡芯片的驅動程序和嵌入式 Web服務器的實現。
3.1 以太網控制器 RTL8019AS的驅動程序
RTL8019AS的驅動程序是 TCP/IP協議與底層物理設備的程序接口,它屏蔽了底層硬件處理的細節,并向上層軟件提供與硬件無關的接口。 TCP/IP協議只要調用以太網驅動程序即可完成以太網數據的接收和發送。網卡芯片 RTL8019AS的驅動程序包括 RTL8019AS初始化程序、數據包接收程序和數據包發送程序。
3.1.1 RTL8019AS初始化
RTL8019AS通過 RSTDRV管腳進行復位操作。復位后,先對 RTL8019AS初始化。初始化操作包含設置 PSTART=0x4c,PSTOP=0x80,使 0x40~0x4b為網卡的發送緩沖區,0x4c~ 0x7f為網卡的接收緩沖區;設置 RCR=0xcc,僅接收目標物理地址和設置物理地址一致的數據包、廣播地址數據包和多點播送地址包;設置 TCR=0xe0,工作在正常模式;設置 DCR=0xc8,使用 FIFO緩存及 8位數據 DMA;設置 IMR=0x00,屏蔽所有中斷;組播地址寄存器 MAR0~MAR7,均設置為 0x00;設置網卡物理地址寄存器 PAR0~PAR5;設置 CR=0x22,選擇頁 0的寄存器,進入正常工作狀態;設置 ISR=0xff,清除所有中斷標志位。
3.1.2 RTL8019AS數據發送
首先將待發送的數據按以太網數據幀格式封裝后,再置 CR寄存器為 12H,啟動遠程寫 DMA,RTL8019AS會自動將這幀數據送至 RTL8019AS的數據發送緩沖區,并將結果寫入狀態寄存器。最后將 CR置為 3EH,啟動本地寫 DMA后將數據送入 FIFO寄存器,并發送到以太網上。程序流程圖見圖 2所示。
tcp/ip相關文章:tcp/ip是什么
評論