基于嵌入式的校园网络管控系统设计与实现

2012-09-20 05:31倪业鹏帅千钧
关键词:内核串口交换机

倪业鹏,帅千钧

(中国传媒大学计算机与网络中心,北京100024)

1 介绍

网络中心承担着校园网维护、网络办公应用开发、校园网络数字化建设的重任,其中校园网络的维护是最基本也是最主要的责任。

网络维护主要是管理交换机,交换机是校园局域网中用来交换、传输数据信息的枢纽,其工作状态的好坏关系着校园网络的数据传输稳定性,因此对交换机进行良好的实时远程管理与控制将直接影响网络的稳定性、健壮性,并可能大大减少网络故障的时间,把由于网络瘫痪而引起的损失降到最小。

实现远程管控交换机的系统已很普遍,但大部分系统都是基于网络和交换机端口来进行带外管控,一旦出现网络问题或交换机故障系统就无法工作。针对这种情况,本系统在带内管理的基础上又融合了基于SNMP和RS232串口的带内管理模块,并开发了相关的交换机应急处理模块,使交换机在系统控制下可以无需人工干预,自动处理部分问题,从而降低了故障时间,提高了网络中心工作效率。

图1 系统设计图

2 系统设计

本系统从功能来分共有四个模块,分别是网络通信模块,SNMP管理模块,GPRS通信模块和串口通信模块。网络通信模块主要负责在连网的情况下通过网络监控交换机的工作情况;串口通信模块负责与交换机进行带外通信,它是系统实现自主管理交换机的基础;SNMP管理模块是基于SNMP协议的一个程序模块,该模块通过SNMP协议来获得交换机状态信息,判断其是否运行正常,若工作正常,则把交换机信息由网络通信模块回传至网络中心,如若发现故障,则利用串口通信模块操作交换机来解决相应故障,完成自我修复;在交换机发生故障且SNMP管理模块无法恢复交换机正常工作时,GPRS通信模块会把交换机故障信息发回网络中心,并从网络中心接受指令来人工调试交换机,实现远程带外管控。这四个模块中网络通信模块、GPRS通信模块和串口通信模块是系统与交换机之间,交换机与网络中心之间数据互通的基础,起到桥梁作用,而SNMP管理模块则是本系统的核心所在,它协调其他模块完成远程管理控制交换机的全部功能。

3 硬件设计与实现

虽然市场上有一些现成的开发板可以满足系统需求,但其板上资源不是过多就是偏少,所以笔者还是自己设计并实现了系统的硬件。系统的硬件结构图2所示:

图2 硬件结构图

3.1 核心处理器

现阶段嵌入式处理器内核按照体系结构可划分为:ARM处理器、MIPS处理器和Power PC处理器等。考虑本系统中核心处理器的主要任务和各处理器的特点,笔者选择具有ARM920T内核的S3C2440芯片作为核心处理器。这款芯片[1]具有价格低、功耗小和性能高的特点,读写速度可以达到400MHZ,具有丰富的外围接口,非常适合应用于网络通信和设备控制系统。

3.2 网络模块

网络模块是本系统重要的组成部分。不管是通过SNMP协议来获取交换机信息,还是系统与网络中心的数据交互,都需要网络的支持。系统是运行在校园网络的核心交换机之上,因此网络安全是首先要考虑的问题。为了防止非授权用户通过普通IP地址去访问核心交换机,笔者采取了双网卡的网络模块方案,其中一块网卡手动指定为内网网管IP地址,专门通过SNMP协议获取交换机信息;另一块网卡通过DHCP来获取外网普通IP地址,负责把交换机信息回传给网络中心,这样就把内部网管信息与外部用户信息隔离开来,实现了对核心交换机的安全访问。系统采用ASIX的AX88796作为以太网控制器与处理接口,该芯片[2]具有低功耗、高兴能、抗干扰能力强等特点,具有一个10/100Mbs的自适应PHY和8K 16bit的SRAM,可以减少CPU负担,提升系统稳定性,加快数据的传输与处理速度。

关于网络模块的硬件连接示意图3所示:

图3 网络模块硬件连接示意图

图中S3C2440的片选信号nGCS3与nGCS4分别连接两片AX88796,通过片选信号的高低电平变化决定要读取的芯片。AX88796共有16根数据线和5根地址线,分别通过共享S3C2440的数据总线与地址总线完成数据读取与寄存器读取。两片网络芯片的发送接收连线分别接两个RJ45接口完成对外的连接。

3.3 外围接口模块

外围接口模块主要包括串口和USB接口。串口在本系统中用两个用处,一是与交换机的console口连接,使系统可以通过带外管理的方式进行重启交换机等操作,二是为GPRS模块提供接口,使系统能把交换机信息发回网络中心。USB接口用来连接各种USB设备,为系统的扩展升级提供接口。因为S3C2440本身就具有串行通信接口和USB接口,所以系统硬件按照规范进行连接即可,其中RS232接口需要用专用芯片进行一下电平转换。

3.4 GPRS通信模块

本系统中GPRS通信模块的主要作用是在校园网络瘫痪时,把交换机故障信息通过外部无线网络回传到网络中心,并通过这种方式进行远程人工调试。市面上有很多GPRS通信模块,笔者根据本课题的需求和过去的开发经验,选择了MC52i模块。该模块[3]是Cinterion公司(原西门子)最新推出的工业级 GPRS无线通信模块,MC52i是双波段(900MHZ/1800MHZ)的GPRS模块,内部带有TCP/IP协议栈,目前广泛运用于智能公交、无线数传(DTU)、远程无线抄表等系统应用中,可在-40℃到+80℃的环境下正常工作,功耗低、可靠性高、性价比高。MC52i包括了 MC35i、MC39i、TC35i的所有功能,引脚和指令完全兼容MC55/MC56,采用AT命令集实现协议解析和通信连接。MC52i模块支持以下Internet服务:

(1)Socket Client and Server for TCP,Client for UDP

(2)FTP Client

(3)HTTP Client

(4)SMTP Client

(5)POP3 Client.

图4 GPRS通信模块硬件连接示意图

关于MC52i模块的硬件连接笔者直接参照了其Datasheet,需要注意的有两点,一是电源部分最好使用LDO供电,另一点是当使用MC52i的网络服务时需要把7根串口线都连接在CPU上,使信号传输更稳定。

4 软件设计与实现

本课题研究的是一个典型的嵌入式系统,根据嵌入式常用的划分方法,笔者将系统软件划分为图5中所示的几个部分,由底层到高层分别是引导程序、内核、设备驱动、文件系统和应用程序,其中应用程序是本课题的研究重点。下面将依次介绍这几个部分,并主要阐述应用程序中的主程序、交换机监控程序和交换机自检程序。

图5 系统软件架构图

4.1 引导程序

引导程序就是在操作系统内核启动之前运行的一段小程序。运行这段小程序可以使硬件设备得到初始化、可以建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在基于ARM内核的嵌入式系统中[4],系统在上电或复位时通常都从地址0x00处开始执行,而在这个地址处安排的通常就是系统的引导程序。本系统的引导程序采用UBoot修改而成,其移植方法已有较多资料,笔者这里就不再赘述。

4.2 操作系统

在上一章节,笔者选择了ARM内核的S3C2440芯片作为系统CPU,支持该芯片的实时操作系统包括 WinCE、VxWorks、Linux、pSOS等。经过多方面考虑,笔者还是决定采用ARM+Linux的嵌入式解决方案。由于Linux的开源特性,使用它作为操作系统可以大大减少开发周期,减少开发量,而且可以保证驱动、文件系统等程序的稳定性和健壮性。为了减少硬件开支,笔者在Linux移植时对其内核进行了适当的剪裁,使内核映像保持在1M左右。

在移植内核后,为了实现系统功能,还需进行相应的设备驱动移植和建立根文件系统。

4.3 主程序

本系统的软件部分包括有主程序、交换机监控程序和自管程序。其中主程序主要负责初始化端口、计时中断和程序模块调度等。主程序在设备启动后自运行,首先初始化串口和网络,并开启GPRS模块,若网络连通,则运行交换机监控程序,若内外网络均不通,则需要重新初始化网络,当重试三次还失败的话就通过GPRS模块通知网络中心;交换机监控程序每隔10秒钟运行一次,直到发现交换机故障就运行交换机自管程序,若交换机恢复正常则继续监控其状态,若未恢复则通知网络中心,并把故障信息回传。故障信息当外网通信正常则通过外网传输,当外网也不通时则通过GPRS模块传输。主程序流程图如下所示:

4.4 交换机监控程序

图6 主程序流程图

简单网络管理协议(SNMP)是一种专门设计用于在IP网络管理网络节点的标准协议。它是一种应用层协议,主要应用于网络设备的监控管理和网络设备规划。支持SNMP协议的设备有很多,包括交换机、路由器、服务器、工作站和打印机等。一个标准的SNMP管理模型包括三个组件[5]:SNMP管理端,SNMP代理端和MIB库。

交换机出现异常或死机主要是由CPU利用率过高、内存利用率过高和端口错误等情况引起的。因此,本程序就需要监控交换机的CPU利用率、内存利用率和端口状态等,并根据监控得到的数据来判断交换机的工作状态。监控程序通过SNMP协议与交换机SNMP代理通信,根据相应的节点OID值从交换机MIB库中得到CPU利用率、内存利用率和端口状态等数据。

以思科4506系列交换机为例,本嵌入式系统所需MIB[6]节点OID值如表1所示:

表1 系统使用的MIB节点

当系统发生计时器中断时,交换机监控程序开始运行。首先,程序将执行中断保护,然后,为了得到交换机运行状态信息,程序会初始化一个SNMP-GET消息并建立一个SOCKET连接。在连接建立后,程序发送SNMP-GET消息,如果消息发送失败,则关闭SOCKET并再次尝试建立连接;如果连续三次尝试都失败了,将会跳转到交换机自管程序。当成功发送SNMP-GET消息并收到交换机SNMP代理发回的消息后,程序将通过读取消息来获得交换机的CPU利用率、内存利用率等于其工作状态相关的数据,由此来判断交换机的运行状态。如果交换机运行良好,程序将从计时中断中返回主程序等待下一次计时中断;如果交换机运行故障,程序将跳转到交换机自管程序。交换机监控程序流程图如图7所示。

4.5 交换机自管程序

通常,交换机远程控制室由人工通过带内网络来实现的,但是这样做有两个问题,一个是交换机在出问题后可能不会即时恢复,因为网络中心人员不可能一直监控交换机,如果交换机死机时网络中心没有值班人员,那么这个故障就不会马上得以解决;二是在交换机故障后,网络中心工作人员就没有办法远程控制和获知交换机状态了。

为了解决这一问题,本系统选择了带外控制交换机并利用GPRS模块来给网络中心回传信息。带外控制就是指系统与目标机器之间利用数据通道以外的方式进行通信,本课题中带外控制室系统通过RS232串口与交换机进行通信。

当交换机出现异常或死机时,系统将调用交换机自管程序。程序首先测试串口的联通性,如果串口不通,则初始化串口,当初始化三次串口仍然不通时,则通过GPRS模块通知网络中心。如果串口通信正常,则根据交换机状态发送重启命令或其他命令,接着,程序将跳转至交换机监控程序继续监控交换机状态。

图7 交换机监控程序流程图

图8 交换机自管程序流程图

5 结论

本嵌入式系统实现了对交换机的远程实时管控与故障自主恢复,图9为监控系统的工作截图:

图9 监控系统运行截图

表2为同一配线间的交换机在发生相同故障次数时的对比表格:

表2 交换机故障比较表

如表2所示,在相同的故障次数下,当安装了本嵌入式系统后,交换机的总故障时间减少了90%,人工手动控制的次数减少到了两次。

本嵌入式系统实现了远程实时监控交换机和自动恢复交换机死机或端口故障的功能,大大减少了交换机故障持续时间,减轻了网络中心管理人员的负担。对本系统进行扩展,一是进一步开发系统的自我管理程序,增强交换机的智能化,提高其自我修复能力;二是扩展系统的外围接口,配合温度、湿度传感器和摄像头,使系统实现对配线间环境的监控。

[1]S3C2440A 32-Bit CMOS Microcontroller User’s Manual Rev1[OL].http://www.Samsungsemi.com,July,2004.

[2]ASIX Electronics.AX88796 datasheet V1.7[OL].ASIX Electronics Corporation,August,2007.

[3]SIEMENS.MC52i Hardware USER’S MANUAL[OL].August,2008.

[4]Master Lei.U-Boot’s analysis of the S3C2440 and transplantation[J].Computer Systems & Applications,2010,19(4),204-207.

[5]Liu Mingbo,Deng Zhongji.Research of ARM-based Embedded Operate System Transplantation[J].Application Computer System,11,2006,87-88.

[6]SNMP object Navigator[DB].http://tools.cisco.com/Support/SNMP/do/BrowseOID.do

猜你喜欢
内核串口交换机
多内核操作系统综述①
面向未来网络的白盒交换机体系综述
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
强化『高新』内核 打造农业『硅谷』
活化非遗文化 承启设计内核
浅谈AB PLC串口跟RFID传感器的通讯应用
局域网交换机管理IP的规划与配置方案的探讨
基于EM9000工控板高性能双串口通信模型设计与实现
更换汇聚交换机遇到的问题
微软发布新Edge浏览器预览版下载换装Chrome内核