龚跃玲 汪 毅 摘 要:网络视频监控广泛应用于工业生产、国家安防及日常生活中,其融合了计算机、多媒体、通讯及网络等多项技术,具有广泛的应用前景和研究价值。文章提出了一种基于嵌入式μC/OSⅡ的网络视频监控系统设计方案,解决了嵌入式操作系统移植困难的问题,着重论述了以视频编/解码芯片和嵌入式芯片为终端的硬件平台及以操作系统μC/OSⅡ为服务器的软件平台的关键技术和实现方法。目前,该系统已成功应用于学科实验室,实践证明,此网络视频监控设计方案合理,运行稳定,对类似设计具有一定的参考价值。
关键词:嵌入式 μC/OSⅡ 移植 视频监控系统 一、引言
随着市场经济的发展和人民物质生活水平的提高,银行、电力、交通、仓储以及军事设备等领域对安全防范和现场记录报警系统的需求越来越大,要求越来越高,视频监控系统以监控目标适时性强,适于远距离传输,便于管理人员控制等突出优点,成为人们研究的热点。传统的数字视频监控多采用数字芯片集成或者采用纯PC机监控,通信协议的多样化与专用性很难统一。
特别是数字芯片无智能化的智能化的操作系统而PC机同时处理多路数字视频信号的速度较低,因此导致了稳定性不够好,可靠性差[1]。嵌入式系统是实时多任务系统,采用全抢占调度方案,响应时间短。利用嵌入式的这些特点,可以很好的解决目前广泛采用的基于数字芯片和基于PC的远程监控系统的缺陷,是实时监控领域一个重要的尝试。
本文设计了一种过程简洁,运行可靠的嵌入式移植过程,并在此基础上提出了基于嵌入式操作系统的网络视频监控方案,详细说明了其软件平台和监控前端硬件平台的关键技术和实现方法。
二、系统组成方案
系统采用模块化结构,可扩展性强,安装维护方便。系统总体设计结构如右图1,主要由数字视频编/解码前端、嵌入式系统和通信网络组成。
嵌入式网络数字视频监控系统将先进的嵌入式技术、视频传输技术有效的结合在一起。在监控现场,利用嵌入式技术采用专用芯片和实时操作系统,把视频压缩和网络传输功能集成到一个体积很小的设备内,可以直接连入以太网,有效的提高系统的实时性和稳定性[2]。在监控终端,远程监控人员只需拥有一台安装了监控终端软件的PC机,无需安装特殊的硬件设备就可以在世界的任何一个地方对监控现场进行实时远程监控,大大降低了系统的成本,极大的方便了整个监控系统的操作和维护。
图 1 系统组成方案
三、视频终端硬件设计
本设计分中央处理单元、前端视频处理单元、通讯处理单元和外围单元。其中前端视频处理单元与中央处理单元为提高系统稳定性,采用32位33MHz的PCI总线,实现约132MB/s的数据传输率,高速数据流在PCI总线上通过DMA方式直接交换数据,这也是本设计的一大特色。嵌入式硬件原理框图如图2 所示。
1.中央处理单元
中央处理单元采用嵌入式控制芯片LPC2131,它支持的操作系统频率高达60MHz,是一个支持实时仿真和跟踪的16/32位ARM7TDMI-STM的CPU,同时具有极低的功耗。而且LPC2131还带有32kB嵌入的高速Flash存储器以及8K的RAM,超小LQFP64 封装, 具有ISP 、IAP编程功能,支持Thumb/ARM指令集。LPC2131集成了许多系统级功能,大大减小了外围元器件数目和PCB面积[3]。
图 2 视频终端硬件原理框图
2.前端视频处理单元
前端视频处理单元采用芯片VW2010。VW2010是VWEB公司开发的实时MPEG-1、-2、-4音视频系统解码芯片。视频编码部分接收未压缩的ITU-R.BT.656数字视频信号,并且将输入压缩的视频转换为MPEG-1、-2、-4或H.263、H.264格式。音频编码部分接收双通道分立的I2S数字音频格式数据,并且将每路音频转换为MPEG-1、MPEG-2、MP3、AAC格式。视频解码部分接收MPEG位流并输出ITU-R.BT.656数字视频,音频解码则接收MPEG-1、MPEG-2、MP3、AAC位流并输出I2S、S/P-DIF数据流[4]。
3.通讯处理单元和外围单元
本系统中,通讯处理单元分2个部分:一个是控制信号传输,另一个是视频数据传输。控制信号通道用来在发送端和接收端之间建立会话,传输一些系统参数、图像参数和数据请求等信息。视频数据通道用来在终端和客户端之间传送视频数据,此部分要求实时性高。
控制信号通道数据量不大,但要求数据准确度高,本设计中采用485通讯的方式与视频终端建立控制信号通道,控制芯片为SN75176。通道选用中断方式建立连接,巡检方式拆除连接、确认和超时重传。此部分硬件电路如图3。
图3 控制通道硬件电路图
视频数据通道采用网络通讯,网络接口芯片采用RTL8201BL,它是一块10/100Mbps自适应网卡芯片,价格便宜,兼容性好。
外围单元如ID电路,采用DS2401,便于多监控场合下不同编号监控端的辨认。外扩电路采用VT6212作为USB主机,便于系统升级,接入USB控制键盘、微型打印机、报警器等。
四、嵌入式软件平台设计
嵌入式软件平台设计包括嵌入式操作系统的移植、嵌入式驱动程序设计和软件设计开发。其中嵌入式系统移植部分是整个软件设计的基础,为驱动程序设计和软件设计提供了设计开发的平台。本部分将详细介绍此移植过程。
1.嵌入式μC/OSⅡ的移植
μC/OSⅡ是著名的源代码公开实时内核。图4示意了其结构以及与硬件设计的关系。
图4 μC/OSⅡ结构示意图
本方案抛开大量繁杂的文件配置,设计了一个过程简洁的移植过程。系统完全移植涉及的函数较多,因此在本方案中仅对与处理器相关的函数及用户代码做必要的修改,而对相对复杂的核心部分采取保留最小设置以减小调试的难度,提高系统的稳定性。
启动代码是芯片复位后进入C语言main()函数前执行的一段代码,主要是为运行C语言程序提供基本运行环境。由于每一种芯片的启动代码千差万别,因此,我们将μC/OSⅡ移植到LPC2131时需要编写自己的启动代码,包括异常向量表、堆栈初始化、中断服务程序和C程序的接口以及系统初始化和异常处理程序。完成启动代码后,如图4结构所示,需要对与处理器相关的OS_CPU.H、OS_CPU_A.ASM和OS_CPU_C.C文件进行设置。在移植.H文件时要注意中断的使用,系统为了保护临界段代码,使其不会被多任务或中断服务程序同时访问而造成共享数据的不一致,要求内核在访问操作系统的临界区之前必须关闭中断,访问之后再打开中断,本设计选用方式1处理中断,“#defineOS_STK_GROWTH1”,并使用宏OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()分别关中断和开中断。移植.ASM文件的关键部分是修改函数OSStartHighRdy(),因为μC/OSⅡ用来启动多任务环境的函数是OSStart(),而OSStart()则需要调用OSStartHighRdy()函数来运行多任务启动时优先级最高的任务。其余的函数可以参照范例[5],不必修改。移植.C时头文件采用Includes.h,这样项目中的每一个.c的文件都可以不用去考虑它实际需要哪些具体文件,大大减小了编程复杂度。此部分只需要修改OSTaskStkInit()函数,它在任务创建时被调用,负责初始化堆栈结构。其他函数都是Hook函数,即所谓的钩子函数,用来扩展系统功能,本设计将他们设为空函数。
2.驱动程序与软件设计
系统软件结构如下图所示:
图5 系统软件结构图
如上图所示,硬件驱动部分完成设备的初始化及检测硬件电路是否准备就绪。软件设计部分则完成对控制信号的通讯握手及视频数据的传输等功能。
硬件驱动部分负责完成硬件电路在嵌入式系统中的设备声明和设置,包括网络接口的设置、PCI芯片的设置和部分外围电路的设置。由于μC/OSⅡ中已经封装了文件存取函数,而且对外围设备接口也有一定要求,因此外围设置只要按函数要求提供入口地址和参数就可以正确使用了。软件设计包括现场总线通讯协议的设计和视频通讯协议的选择及设计。考虑到视频图像传输的数据量大且实时性要求很高,简单的无连接式的UDP协议不能保证传输时视频数据包的有序和无重复,也无法对接收到的信息重新排序,而顺序紊乱的视频数据包在接收端是不能重建原来图像的[6]。本设计中将取得的视频流采用实时传输协议RTP封装,然后再将封装好的数据流发送至缓冲区放入网络中以UDP进行传输,这样就保证了视频数据的有序和无重复。
五、结束语
随着当前嵌入式技术的广泛应用,由嵌入式网络视频监控系统代替目前普遍使用的基于数字芯片和基于PC的远程监控系统将是大势所趋。本文对视频监控系统的研究现状及发展趋势进行了讨论,研究设计了基于μC/OSⅡ的嵌入式网络视频监控系统。本系统有效地改善了基于数字芯片的和基于PC的远程视频监控系统的缺陷,很好地解决了其在应用中存在的问题,有利用实现图像实时存储和网络传输。特别是本文设计的嵌入式操作系统移植方式简易方便,减小了嵌入式系统的调试难度,同时提高了稳定性,为同类移植提供了一个范例。
参考文献
[1] 马昕.视频监控系统的现状和今后发展趋势[J].金卡工程.2005(3):71-73.
[2] S.C. Hui, F. Wang. Remote Video Monitoring Over the WWW[J]. Multimedia Tools and Applications, 21(2):173-195.
[3] 周立功等编著.深入浅出ARM7—LPC213X/214X(上)[M].广州:广州周立功单片机发展有限公司.2005.7,304-306.
[4] VW2010 IOCTL Programmer Reference manual [M].Wind River Systems, Inc.2003.
[5] 邵贝贝等译.嵌入式实时操作系统μC/OS-Ⅱ(第二版)[M].北京:北京航空航天大学出版社.2004.6,20-30.
[6] 刘宝林,胡博,范小安等.基于RTP协议的MPEG4视频传输系统的设计与实现[J].实验技术与管理.2004.21(5):39-42. 基于μC/OSⅡ的网络视频监控系统设计与实现
-----------------……---------------------------------------------------------------
龚跃玲 汪 毅
摘 要:网络视频监控广泛应用于工业生产、国家安防及日常生活中,其融合了计算机、多媒体、通讯及网络等多项技术,具有广泛的应用前景和研究价值。文章提出了一种基于嵌入式μC/OSⅡ的网络视频监控系统设计方案,解决了嵌入式操作系统移植困难的问题,着重论述了以视频编/解码芯片和嵌入式芯片为终端的硬件平台及以操作系统μC/OSⅡ为服务器的软件平台的关键技术和实现方法。目前,该系统已成功应用于学科实验室,实践证明,此网络视频监控设计方案合理,运行稳定,对类似设计具有一定的参考价值。
关键词:嵌入式 μC/OSⅡ 移植 视频监控系统 一、引言
随着市场经济的发展和人民物质生活水平的提高,银行、电力、交通、仓储以及军事设备等领域对安全防范和现场记录报警系统的需求越来越大,要求越来越高,视频监控系统以监控目标适时性强,适于远距离传输,便于管理人员控制等突出优点,成为人们研究的热点。传统的数字视频监控多采用数字芯片集成或者采用纯PC机监控,通信协议的多样化与专用性很难统一。特别是数字芯片无智能化的智能化的操作系统而PC机同时处理多路数字视频信号的速度较低,因此导致了稳定性不够好,可靠性差[1]。嵌入式系统是实时多任务系统,采用全抢占调度方案,响应时间短。利用嵌入式的这些特点,可以很好的解决目前广泛采用的基于数字芯片和基于PC的远程监控系统的缺陷,是实时监控领域一个重要的尝试。
本文设计了一种过程简洁,运行可靠的嵌入式移植过程,并在此基础上提出了基于嵌入式操作系统的网络视频监控方案,详细说明了其软件平台和监控前端硬件平台的关键技术和实现方法。
二、系统组成方案
系统采用模块化结构,可扩展性强,安装维护方便。系统总体设计结构如右图1,主要由数字视频编/解码前端、嵌入式系统和通信网络组成。
嵌入式网络数字视频监控系统将先进的嵌入式技术、视频传输技术有效的结合在一起。在监控现场,利用嵌入式技术采用专用芯片和实时操作系统,把视频压缩和网络传输功能集成到一个体积很小的设备内,可以直接连入以太网,有效的提高系统的实时性和稳定性[2]。在监控终端,远程监控人员只需拥有一台安装了监控终端软件的PC机,无需安装特殊的硬件设备就可以在世界的任何一个地方对监控现场进行实时远程监控,大大降低了系统的成本,极大的方便了整个监控系统的操作和维护。
图 1 系统组成方案
三、视频终端硬件设计
本设计分中央处理单元、前端视频处理单元、通讯处理单元和外围单元。其中前端视频处理单元与中央处理单元为提高系统稳定性,采用32位33MHz的PCI总线,实现约132MB/s的数据传输率,高速数据流在PCI总线上通过DMA方式直接交换数据,这也是本设计的一大特色。嵌入式硬件原理框图如图2 所示。
1.中央处理单元
中央处理单元采用嵌入式控制芯片LPC2131,它支持的操作系统频率高达60MHz,是一个支持实时仿真和跟踪的16/32位ARM7TDMI-STM的CPU,同时具有极低的功耗。而且LPC2131还带有32kB嵌入的高速Flash存储器以及8K的RAM,超小LQFP64 封装, 具有ISP 、IAP编程功能,支持Thumb/ARM指令集。LPC2131集成了许多系统级功能,大大减小了外围元器件数目和PCB面积[3]。
图 2 视频终端硬件原理框图
2.前端视频处理单元
前端视频处理单元采用芯片VW2010。VW2010是VWEB公司开发的实时MPEG-1、-2、-4音视频系统解码芯片。视频编码部分接收未压缩的ITU-R.BT.656数字视频信号,并且将输入压缩的视频转换为MPEG-1、-2、-4或H.263、H.264格式。音频编码部分接收双通道分立的I2S数字音频格式数据,并且将每路音频转换为MPEG-1、MPEG-2、MP3、AAC格式。视频解码部分接收MPEG位流并输出ITU-R.BT.656数字视频,音频解码则接收MPEG-1、MPEG-2、MP3、AAC位流并输出I2S、S/P-DIF数据流[4]。
3.通讯处理单元和外围单元
本系统中,通讯处理单元分2个部分:一个是控制信号传输,另一个是视频数据传输。控制信号通道用来在发送端和接收端之间建立会话,传输一些系统参数、图像参数和数据请求等信息。视频数据通道用来在终端和客户端之间传送视频数据,此部分要求实时性高。
控制信号通道数据量不大,但要求数据准确度高,本设计中采用485通讯的方式与视频终端建立控制信号通道,控制芯片为SN75176。通道选用中断方式建立连接,巡检方式拆除连接、确认和超时重传。此部分硬件电路如图3。
图3 控制通道硬件电路图
视频数据通道采用网络通讯,网络接口芯片采用RTL8201BL,它是一块10/100Mbps自适应网卡芯片,价格便宜,兼容性好。
外围单元如ID电路,采用DS2401,便于多监控场合下不同编号监控端的辨认。外扩电路采用VT6212作为USB主机,便于系统升级,接入USB控制键盘、微型打印机、报警器等。
四、嵌入式软件平台设计
嵌入式软件平台设计包括嵌入式操作系统的移植、嵌入式驱动程序设计和软件设计开发。其中嵌入式系统移植部分是整个软件设计的基础,为驱动程序设计和软件设计提供了设计开发的平台。本部分将详细介绍此移植过程。
1.嵌入式μC/OSⅡ的移植
μC/OSⅡ是著名的源代码公开实时内核。图4示意了其结构以及与硬件设计的关系。
图4 μC/OSⅡ结构示意图
本方案抛开大量繁杂的文件配置,设计了一个过程简洁的移植过程。系统完全移植涉及的函数较多,因此在本方案中仅对与处理器相关的函数及用户代码做必要的修改,而对相对复杂的核心部分采取保留最小设置以减小调试的难度,提高系统的稳定性。
启动代码是芯片复位后进入C语言main()函数前执行的一段代码,主要是为运行C语言程序提供基本运行环境。由于每一种芯片的启动代码千差万别,因此,我们将μC/OSⅡ移植到LPC2131时需要编写自己的启动代码,包括异常向量表、堆栈初始化、中断服务程序和C程序的接口以及系统初始化和异常处理程序。完成启动代码后,如图4结构所示,需要对与处理器相关的OS_CPU.H、OS_CPU_A.ASM和OS_CPU_C.C文件进行设置。在移植.H文件时要注意中断的使用,系统为了保护临界段代码,使其不会被多任务或中断服务程序同时访问而造成共享数据的不一致,要求内核在访问操作系统的临界区之前必须关闭中断,访问之后再打开中断,本设计选用方式1处理中断,“#defineOS_STK_GROWTH1”,并使用宏OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()分别关中断和开中断。移植.ASM文件的关键部分是修改函数OSStartHighRdy(),因为μC/OSⅡ用来启动多任务环境的函数是OSStart(),而OSStart()则需要调用OSStartHighRdy()函数来运行多任务启动时优先级最高的任务。其余的函数可以参照范例[5],不必修改。移植.C时头文件采用Includes.h,这样项目中的每一个.c的文件都可以不用去考虑它实际需要哪些具体文件,大大减小了编程复杂度。此部分只需要修改OSTaskStkInit()函数,它在任务创建时被调用,负责初始化堆栈结构。其他函数都是Hook函数,即所谓的钩子函数,用来扩展系统功能,本设计将他们设为空函数。
2.驱动程序与软件设计
系统软件结构如下图所示:
图5 系统软件结构图
如上图所示,硬件驱动部分完成设备的初始化及检测硬件电路是否准备就绪。软件设计部分则完成对控制信号的通讯握手及视频数据的传输等功能。
硬件驱动部分负责完成硬件电路在嵌入式系统中的设备声明和设置,包括网络接口的设置、PCI芯片的设置和部分外围电路的设置。由于μC/OSⅡ中已经封装了文件存取函数,而且对外围设备接口也有一定要求,因此外围设置只要按函数要求提供入口地址和参数就可以正确使用了。软件设计包括现场总线通讯协议的设计和视频通讯协议的选择及设计。考虑到视频图像传输的数据量大且实时性要求很高,简单的无连接式的UDP协议不能保证传输时视频数据包的有序和无重复,也无法对接收到的信息重新排序,而顺序紊乱的视频数据包在接收端是不能重建原来图像的[6]。本设计中将取得的视频流采用实时传输协议RTP封装,然后再将封装好的数据流发送至缓冲区放入网络中以UDP进行传输,这样就保证了视频数据的有序和无重复。
五、结束语
随着当前嵌入式技术的广泛应用,由嵌入式网络视频监控系统代替目前普遍使用的基于数字芯片和基于PC的远程监控系统将是大势所趋。本文对视频监控系统的研究现状及发展趋势进行了讨论,研究设计了基于μC/OSⅡ的嵌入式网络视频监控系统。本系统有效地改善了基于数字芯片的和基于PC的远程视频监控系统的缺陷,很好地解决了其在应用中存在的问题,有利用实现图像实时存储和网络传输。特别是本文设计的嵌入式操作系统移植方式简易方便,减小了嵌入式系统的调试难度,同时提高了稳定性,为同类移植提供了一个范例。
参考文献
[1] 马昕.视频监控系统的现状和今后发展趋势[J].金卡工程.2005(3):71-73.
[2] S.C. Hui, F. Wang. Remote Video Monitoring Over the WWW[J]. Multimedia Tools and Applications, 21(2):173-195.
[3] 周立功等编著.深入浅出ARM7—LPC213X/214X(上)[M].广州:广州周立功单片机发展有限公司.2005.7,304-306.
[4] VW2010 IOCTL Programmer Reference manual [M].Wind River Systems, Inc.2003.
[5] 邵贝贝等译.嵌入式实时操作系统μC/OS-Ⅱ(第二版)[M].北京:北京航空航天大学出版社.2004.6,20-30.
[6] 刘宝林,胡博,范小安等.基于RTP协议的MPEG4视频传输…… |