基于uClinux的实时网络监控服务器开发与应用
摘要:介绍了一种基于uClinux的实时网络监控服务器开发方法,该服务器能对实时对远程网络终端、监控摄像头等进行控制管理和数据访问。将其应用到大型网络监控系统中,用户可访问由多台服务器组成的分布式网络监控服务器集群,实时读取数据然后将其存写到大容量存储设备中,增加并发式连接的用户数量,提高远程实时网络监控系统稳定性和可靠性。
关键词:uClinux;实时;网络监控;分布式;并发
网络监控服务器在网络监控系统中负责数据的采集、压缩及发送,是系统中不可或缺的后台设备。常用的工作模式是将监控服务器作为独立设备,直接与终端用户交互,用户通过播放器直接从监控服务器获取数据及修改配置参数,每个服务器所能承的用户数较少,不能满足多用户并发控制服务。而在大型网络监控系统应用中,多个监控服务器简单叠加而成的服务器组,并将它们组成分布式网络服务器集群,增加可以同时服务的用户数,提高远程实时网络监控系统稳定性和可靠性,并对用户的访问权限进行管理与控制。本用户可以通过分布式网络监控系统管理被监控对象。获取权限访问网络监控服务器读取数据,并将其存写到大容量存储设设备或系统中。
1 总体设计
网络监控服务器采用Motorola ColdFire5272作为核心微处理器,它具有66 MHz的时钟速度,内部集成了2个串口控制器和一个以太网控制器。快速以太网媒体存取控制(MA C),支持100Mbps MII,10Mbps MII和10Mbps7线实际接口符合USB1.1标准,可操作内外收发器的设备控制器(devicecontroller)。时分多工(TDM)控制器,可使产品以物理级水平与外部编码、ISDN收发器以及其它使用GCI(General Circuit Interface)或IDLI(Inter Chip Digital Link)串行接口协议的外围设备连接。多信道HDLC软件模块QSPI模块,提供带有序列传输性能的串行外围接口用于控制应用的脉冲宽度调制(PWM) 单元。同时还提供许多嵌入式应用产品所共有的外围产品,如SDRAM控制器、DMA、计时器、UART、芯片选择、通用I/0、片上存储以及 ColdFire除错模块,所有这些都采取高效节省的方式,减少系统成本、加速系统设计。Linux是一个免费开源、微内核的操作系统,支持数十种MPU 及其硬件平台,对TCP/IP协议支持最完备,可提供稳定可靠的数据处理与网络通信服务。uCLinux是一种优秀的嵌入式Linux版本,它专门针对微控制领域而设计,广泛应用于服务器领域。本项目设计的多媒体服务器在嵌入式Linux操作系统上开发与运行,设计出来的程序代码具有良好的可复用性。与其他操作系统平台上的同类设备相比,在以后二次开发及成本价格上都极具竞争力。多媒体服务器的功能模块结构,如图1所示。
2 功能实现
网络监控服务器根据用户的配置以Pull和Push两种方式发布数据。用户在数据发送过程中修改参数,需要和配置服务通信来获取参数修改的标志。网络监控服务器与客户端每次建立多个会话连接。为了增加程序的可读性、可移植性,根据数据的流向将整个软件分为3层,分别是驱动层、数据封装层和网络发送层。
2. 1 驱动层
驱动层负责管理压缩电路,配置压缩参数,启停压缩,包括用户层和底层硬件的通信。驱动层的数据管理使用循环队列,重复使用相同的空间,队列的长度是可以改变的,初始读写指针都指在0位置,当队列长度改变时,放弃所有未用数据,指针重新指向0。当读指针遇上写指针时,说明队列空,此时,挂起读进程,直到有数据时再在中断的低半层唤醒它。内核数据和用户数据之间的传送通过mmap系统调用,由用户层申请内存空间映射到内核中。驱动层主要有4个重要的子模块:初始模块,命令处理模块,中断响应模块,数据传输模块。
1)初始模块注册字符设备;映射IME6400地址空间,设置相应的片选寄存器的数值,时序;注册中断响应函数;初始化数据结构。
2)命令处理模块置位IME6400设备,在程序第一次使用设备的时候使用,或者需要更新firmware的时候先置位一下。实现以下主要命令:
3)中断响应模块从IME6400的FIFO寄存器中读取1024字节的流数据。依次填入循环缓冲队列,移动写指针;管理缓冲队列,如果有足够的数据,唤醒读进程。
4)数据传输模块如果有足够的数据则读取数据,移动读指针。否则读进程挂起,等待唤醒。
为了增加驱动程序的可用性,在底层驱动的基础上增加一个用户驱动层,把对驱动程序的调用封装成一个个独立的函数,这样可以增加程序的可读性和独立性。用户层驱动还有一个重要的功能就是管理用户数据缓存区,从内存出来的数据经过处理按帧为单位形成一个数据帧队列,每个通道一个队列。数据帧队
- 多线程技术在数据实时采集分析中的应用(06-28)
- 陶瓷驱动器电压实时监测系统设计(02-04)
- Maxim DS3231实时时钟应用笔记、使用指南、FAQ全集(02-14)
- 半导体行业中十款主流实时时钟(06-29)
- 基于SoC的实时信号处理系统中存储系统的容错设计(04-20)
- 实时时钟电路设计(05-20)