1 引言 家庭網絡是指融合控制網絡和多媒體信息網絡于一體的家庭信息化平臺,是在家庭范圍內。實現各種電子設備互聯和管理的系統。一個典型的家庭網絡結構如圖1所示.一般由一個家庭網關(home gateway或resident gateway)和若干個網絡用具(network apphanees)組.成。組網的方式可以是有線的,也可以是無線的,可采用TCP/IP、以太網方案、xlO電力線方案、Zigbee、超寬帶(Ultra Wide Band,簡稱uwB)通信、近場通信(Near Field Communication,NFC)、藍牙等方式。 圖1家庭網絡結構圖 家庭網關是網絡的管理控制核心,負責把家庭中彼此孤立分散的子網系統或網絡用具終端設備互聯起來,實現信息的交互和共享,同時作為家庭內網和外部網連接的樞紐,以滿足內網和外網的信息交互。網絡用具,又稱網絡家電、信息家電,在IETF草案中按功能把它分成胖網絡用具(fat IPA)和瘦網絡用具(Thin IPA)兩種。功能比較復雜的胖網絡用具定義為:IPA= [network interface][apphcation control][I/O control]。即具備網絡接口和控制本地系統的I/O端口,并具有嵌入式應用程序的設備。家用電器如冰箱、空調等需要實現復雜控制功能,一般需要有網絡接口和I/O端口控制功能,同時需要開發m控制應用程序,就成為了胖網絡用具;家用電器如燈、門等實現簡單控制功能,只要具備網絡接口和I/O端口控制功能,它們就是瘦網絡用具。 可見網絡用具實際上是指包含一個網絡處理器并具備特定功能的消費設備,郎在傳統家用電器中加入網絡接口使之成為具有遠程遙控、信息訪問、獲取、存儲以及聯網等功能的信息家電,如此—來,我們不僅可以在本地對家電進行控制,還可以通過Internet網絡遠程控制家電,家電也可以把自身的狀態信息上報到家庭網關中。可以簡單地認為,普通的家用電子設備增加一個網絡接口,就可以成為網絡用具。因此,網絡用具的網絡接口是家用電子設備網絡化的關鍵部件。 本文提出—種網絡用具網絡接1:3的。方案,在本方案中.組網力式基于以太網的TCP/IP,硬件采用ATMEL公司的AVR單片機和RTL8019以太網芯片。該方案成本低,便于組網,易于實現。 2 網絡用具接口的硬件設計 2.1系統結構 網絡用具接口硬件結構如圖2,可以看到網絡用具通過10口與AVR單片機通訊,單片機中內嵌TCP/IP協議棧,會話層、傳輸層在單片機中實現,RTL8019AS實現數據鏈路層和物理的功能。 圖2網絡用具接口硬件結構圖 當家庭網關控制網絡用具時,數據通過帶隔離變壓器的RJ45接口.進入RTL8019AS的緩沖區,經RTL8019AS處理后被單片機讀入到單片機的RAM暫存,暫存的數據通過IO口或RS-232串口傳送到剛絡用具,在向家庭嘲關發送數據時,網絡用具經IO口或RS-232串口發送數據包至單片機的數據緩沖區,把數據打包,然后通過遠程DMA操作將組幀后的數據寫入到RTL8019AS的內部SRAM,再經RJ45接口發送給家庭網關。如此,就實現了家庭網關與家電的雙向通訊,以及家電設備連接到Internet。 2.2硬件電路設計 硬件連接圖如下: 圖3 MCU與RTL8019AS硬件連接圖 這里選用的控制芯片是AVR單片機。本項目所用的單片機ATMEGA32L是一款高性能低功耗AVR8位單片機。這款芯片有32K的FLASH,足夠燒寫TCP/IP協議棧。 RTL8019AS是REALTEAK公司的一款10M以太網芯片,內部嵌入16KB的SRAM,它用于實現網絡的物理層協議,主要實現網卡和網絡電纜的物理連接.介質訪問控制(MAC),數據幀的開拆,數據幀的發送和接收,錯誤校驗、數據信號的編,解碼以及數據的串/并變換。 RTL8019AS片內有16K的SRAM,地址0X40000-0X7FFF,這16KRAM被初始化成2個部分:①接收以太網數據緩沖②發送以太網數據緩沖,具體2個緩沖大小可編程設定。 電路連接如圖3,RTL8019AS電源采用直流5V.它的SDOSD7數據總線,通過一個74HC573鎖存器與單片機連接,單片機用LE使能控制鎖存器。RTL$019AS采用8位總線,SA地址總線只使用SA0-SA4與單片機連接,其它SA5-SAl9都接地。這里基址為0。INTO為RTL8019AS8個中斷之一,與單片機的外部中斷連接,在接收數據時使用。RSTDRV為復位線,高電平有效,要求復位時間長于800ms。IOR/10W為讀寫控制線。AEN為地址使能,低電平有效。 芯片與網線接口RJ45通過TPIN+、TPIN-、TPOUT+、TPOUT-連接。TPIN+/TPIN-為雙絞線接收,TPOUT+、TPOUT-為雙絞線的發送腳。但是不能直接連接,要經過網絡隔離變壓器隔離,本設計采用20F—Ol。它起的作用主要有兩個,一是傳輸數據,把PHY送出來的差分信號用差模耦合的線圈耦合濾波以增強信號,并且通過電磁場的轉換耦合到不同電平的連接網線的另外一端;二是隔離網線連接的不同網絡設備問的不同電平,以防止不同電壓通過網線傳輸損壞設備。 3 RTL8019驅動程序 RLS019AS包含大量的片內寄存器單元,在工作的過程中需要實現數據包的接收和發送,必須正確的對相關的寄存器進行設置。對RTLSOl9AS的驅動程序主要包括3個部分:RTL80l 9AS初始化部分,數據包接收部分,數據包發送部分。 3.1初始化 初始化主要是對寄存器的初始化,主要包括初始化復位寄存器,初始化RTLS019AS的配置寄存器:CONFIG0-CONFIG3,初始化接收和發送緩沖區,初始化RTL9019AS的中斷,初始化接收配置,發送配置等,設置以太網物理地址等。 3.2數據接收 數據的接收可以用查詢方式,芯片不斷向網絡中查詢是否有信息到達本節點;也可以用中斷方式,這里選擇中斷方式。RTL8019AS的INTO接ATMEGA32的INT0,當有中斷發生。AVR進入中斷服務,先通過讀取ISR,對中斷類型進行判斷,看是否正確接收。根據先前工程定義好的網卡接收緩存區地址,用CURR指針將接收到的數據讀取到內存中。當CURR指針同BURY指針地址相同時說明接收數據結束。所以要先判斷是否接收結束,再調用取包函數WY_GETPACK()。 取包函數主要包括停止8019的工作,復位中斷,判斷是否邊界寄存器是否越界,啟動DMA操作,讀取DMA,計算數據包長度.移動接收地址然后再讀。接收流程圖如圖4所示。 圖4數據接收流程圖 3.3數據發送 發送過程分為3個步驟:封裝數據包;將數據送至發送緩沖區;發送數據。發送緩沖區空問為3k,可以保存2個完整的數據幀。可以把緩沖區分為兩部分,一部分用來發送,另一部分用來封裝數據包,達到提高效率的目的。如果發送的數據少于60字節,則將數據填充至60個字節再發送出去。若數據大于1514個字節就要將數據分割到小于1514個字節后再發送。所以—個數據包的數據字節數必須控制在60—1514字節.這是以太網8023協議規定的。如果發送失敗則重發。發送流程如下圖5所示。 圖5數據發送流程圖 4 結束語 網絡用具義稱網絡家電、信息家電,是未來家用電器的主要發展方向。在未來家庭中。多臺網絡用具設備協調工作,并組成一個互動的網絡環境,以方便用戶的使用,這個網絡環境被稱為數字家庭網絡,簡稱家庭網絡。家庭網絡是信息技術發展創新的必然趨勢。 本文創新點在于,設計了基于AVR的網絡用具接口方案,簡單易用,成本低,符合了信息家電的要求,更可以應用于遠程工業控制,遠程儀表抄表等領域。目前開發的開發板,使用單片機直接通過RTLSOl9AS芯片,用網線與PC機通訊,工作正常。 作者:蔡韜,陸以勤 來源:《微計算機信息》(嵌入式與SOC)2009年第6-2期 |