引 言
在工业控制、信息家电等应用领域,存在大量的嵌入式设备,而这些设备很多只有串口、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的扩展堆栈空间,具有支持高级语言开发的物理基础。TINI SDK正是在这个基础上,提供了Java运行环境,从而可以开发多线程应用程序。以开发串口设备到以太网服务器的数据流传输程序为例,其中包含主线程和发送、接收线程。程序结构如图3和图4所示。
3 结论
该系统不仅可以拓展嵌入式设备的通信能力,将RS-232、CAN等轻量级网络和以太网相连,比如实现串口设备和以太网服务器的数据流传输,通过以太网服务器对串口设备进行监控;也可以取代原有控制设备,直接来控制现场设备,可利用该系统实现网络传感器、远程控制设备运行、远程数据采集等。系统还具有较大的扩展余地,可以根据应用需要进行扩展,如改变存储器的容量等。系统实现时,要根据具体需要选择合适容量和存取时间的存储器,采用合适的寻址模式;选取合适的接口电路并确保正确的连接和配置。另一方面,该芯片的集成功能较多,系统出现问题时,定位比较困难。但该方案不依赖PC或高档单片机,实现8位机直接接入Internet;所需外围器件少,系统成本低;开发周期较短,开发成本相对较低,具有实际应用价值。