在工業控制、信息家電等應用領域,存在大量的嵌入式設備,而這些設備很多只有串口、CAN總線等簡單的網絡接口,通信能力有限,有的甚至處于孤立運行狀態。如何讓這些以單片機為核心的嵌入式系統接入以太網,并通過網絡對它們進行遠程監控,是當前電子世界中的研究熱點。TCP/IP在Intemet和大多數局域網中的成功應用,已經證明了其強大的功能。如果實現TCP/IP協議和嵌入式系統的結合,嵌入式系統聯網問題就能得到有效解決。目前,嵌入式系統聯網主要有如下幾種方案:①EMIT,以PC或其它高檔計算機為網關,將CAN、RS-232等設備接入重量級網絡;②采用32位MCU+實時操作系統,高檔MCU功能強大,可以實現復雜操作,但需要有RTOS支持,這種方案的成本和對開發人員的要求較高;③采用Scenix的8位MCU,加上虛擬軟件包,實現多任務操作系統,運行TCP/IP協議棧。 本文提出的基于網絡單片機的嵌入式遠程監控系統方案,可以實現串口、CAN總線等輕量級網絡和以太網的互連。該方案具有體積小,性價比高的特點。 1 系統的組成 基于網絡單片機的嵌入式遠程監控系統由主控制器、以太網接入模塊、CAN網絡接入模塊、1-Wire網絡、串口網絡、存儲器電路、實時時鐘、電源模塊和監控電路等功能模塊組成。其原理框圖如圖1所示。 (1)主控制器 采用原Dallas公司的高性能51內核的網絡單片機Ds80C400,內部集成了1個10/100M以太網控制器(MAC),3個通用全雙工串口,1個CAN2.0B控制器,1個1.Wire控制器。MCU內部64KB的ROM程序中包含完整的TCP/P V4/6協議棧;可訪問16MB存儲空間;具有專門的低位地址口;4個數據指針;有2x/4x時鐘加倍器,最高工作頻率可達75MHz。 (2)以太網接入模塊 利用集成的MAC,通過物理層器件PHY和以太網相連;MAC具有標準的媒體無關接口MII。設計中PHY采用具有自動協商功能的DP83846A,外接網絡變壓器20F001N。在工作過程中,可以通過MII管理總線設置工作模式。PHY和以太網控制器的連接如圖2所示。 MAC具有專門的接收發送緩沖區,可以通過MOVX進行訪問;MAC還具有緩沖區控制單元BCU、命令/狀態寄存器CSR、地址檢測模塊、電源管理單元等組成,主要由BCU負責以太網的收發活動,減少了CPU的參與,保證了以太網收發的效率。 (3)CAN網絡接入模塊 通過集成的CAN2.0B控制器,外接CAN收發器和CAN網絡相連。設計中使用的是TI的SN65HVD230,它具有低成本、低功耗的特點。 (4)1-Wire網絡 通過1一Wire總線控制器和1-Wire只讀存儲器DS2502-E48相連,給以太網控制器提供物理地址(MAC地址)。 (5)串口網絡 通過單片機內部集成的全雙工串口,可以和串口設備相連。為了和外部的RS-232電平相匹配,外接收發器MAX560CAI(也可以采用MAX232、MAX3233等),它具有4個輸入、5個輸出。單片機的串口0用來和開發機相連,串口2作為DTE,具有完整的流控制線,用來和串口設備相連。 (6)電 源 電路中各種器件的工作電壓有3.3V、1.8V和5V等,采用MAX832、MAX682和MAXl792,分別提供3.3V、5V和1.8V電壓。 (7)監控電路 選用MAX825T(門限電壓3.08V)來監測主控制器的3.3V電源電壓,當電壓低于3.08V時,產生可靠復位。 (8)實時時鐘 給系統提供準確的時間,便于了解系統狀態,比如獲取數據采集的時間等。 (9)存儲器單元 Ds80C400具有專門的低位地址線P7口和專門的工程序存儲器片選信號(CEO~CE7)和數據存儲器片選信號(PCEO"PCE3),可尋址16M的程序空間和4M的數據空間。選用AM29F040B一70(Flash,2片)作為程序存儲器,HM6285 12LFP-7(SRAM,2片)作為數據存儲器。將SRAM和Flash分別接在面、面、面、面。內部64KB的R0M在系統啟動時,對SFR進行初始化,從而SRAM、Flash分別映射到表i所示的空間。DS80C400內部和各種控制器相關的存儲區及ROM的地址映射如表2。這些緩沖區在芯片內部,具有豐富的訪問和操作指令,系統具有較高的集成度和吞吐量。 2 程序設計方法 DS80C400中集成了64KB的ROM,具有工業標準的TCP/IP v4/v6協議棧、占先式的調度程序和網絡引導程序、串口引導裝載程序。網絡引導程序和串口引導裝載程序可以裝載應用程序。在應用中通過外部引腳的配置,選擇內部ROM的執行流程。系統啟動時,ROM對單片機的串口0進行初始化,MCU通過串口0和開發主機通信,向F1ash寫入程序。 網絡引導程序利用內部的TCP/IP協議棧和任務調度程序,可以通過以太網進行應用程序下載,實現程序在線更新。應用程序使用Java來開發,借助Dallas公司提供的軟件開發工具包TINI SDK,大部分工作在開發主機上完成;可以使用免費的Java SDK工具或集成開發環境,提高編程效率。TINI SDK將DS80C400中的硬件部分虛擬為Java的類,從而將對實際硬件的操作,轉變為對對象方法的調用,使用Java不要求開發者深入了解系統的硬件構成。TINI SDK提供了Java程序的運行環境,在主機上開發Java應用程序經過轉換,即可在目標系統上運行。在運行環境的支持下,可以開發功能完善的嵌入式Web服務器,從而實現設備運行狀態的遠程監測和控制。DS80C400中具有1KB的擴展堆?臻g,具有支持高級語言開發的物理基礎。TINI SDK正是在這個基礎上,提供了Java運行環境,從而可以開發多線程應用程序。以開發串口設備到以太網服務器的數據流傳輸程序為例,其中包含主線程和發送、接收線程。程序結構如圖3和圖4所示。 3 結論 該系統不僅可以拓展嵌入式設備的通信能力,將RS-232、CAN等輕量級網絡和以太網相連,比如實現串口設備和以太網服務器的數據流傳輸,通過以太網服務器對串口設備進行監控;也可以取代原有控制設備,直接來控制現場設備,可利用該系統實現網絡傳感器、遠程控制設備運行、遠程數據采集等。系統還具有較大的擴展余地,可以根據應用需要進行擴展,如改變存儲器的容量等。系統實現時,要根據具體需要選擇合適容量和存取時間的存儲器,采用合適的尋址模式;選取合適的接口電路并確保正確的連接和配置。另一方面,該芯片的集成功能較多,系統出現問題時,定位比較困難。但該方案不依賴PC或高檔單片機,實現8位機直接接入Internet;所需外圍器件少,系統成本低;開發周期較短,開發成本相對較低,具有實際應用價值。 |