- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于ARM的嵌入式监控系统设计与实现
图1中摄像机通过 RS-232 接口受外界控制, 控制命令为 图 1 中, 一系列的 ASCII 码,可以调整摄像头的焦距和控制云台的转 动. 可通过对它设置信源 ARM7 开发板也有一个 RS-232 接口, 式(PAL/NTSC), 编码亮度, 编码色度, 音频速率, 编码音量和编 编码板通过 码速率.编码板与网络服务器集成到一个机箱里, 接口向网络服务器输出数据.网络服务器有多个 RS-232 PCI 接口, 分别与摄像机和硬编码板上的 RS-232 接口相连. 播放设 备由嵌入式硬解码板和电视机组成. 解码板采用速率自适应方 式设计, 解码速率自动匹配远端编码器的编码速率.解码板和 网络服务器同样集成在一个机箱里. 该系统还实现了软解码方 式, 在这种方式中, 播放设备由一台安装了视频采集卡的 PC 机 构成, 其上运行解码软件和媒体播放器, 通过 PC 机的显示器和 音箱输出图像和声音.系统的记录设备由硬盘录像机构成, 用 来存储系统图像.控制台由一台运行 Windows XP 操作系统的 管理服务器也由一 PC 机实现, 机上运行客户端的控制软件. PC 台运行 Windows XP 操作系统的 PC 机实现, 机上运行系统 PC 管理软件.在简化的系统实现中, 管理服务器和控制台可以在 同一台 PC 机上实现, 在这种情况下, 管理软件和控制软件运行 在同一台主机上, 但仍然通过网络接口通信.
3 系统硬件设计
网络服务器是系统硬件的核心部件,它由运行嵌入式操作系统的嵌入式计算机构成,在嵌入式操作系统之上运行着系统的核心软件。网络服务器采用的是基于ARM7内核的CPU—STR710F-Z2T6 。该芯片是一款基于ARM 芯片。它一方面具有ARM处理器的:低功耗、高性能等优点;同时又具有丰富的片上资源,非常适合嵌入式产品的开发。
MPEG-4多媒体编码芯片则采用北京九为安泰科技有限公司的Mpeg4全D1 网络视频服务器(编码)EN4000,该芯片提供了丰富的外围硬件接口:支持CCIR601 建议的16Bit 视频解码器接口、32Bit数据、81MHz的SDRAM数据总线接口、I2C总线接口、I2C外部音频/PCM编码器/DSP 接口以及灵活的主机接口,可以支持多种类型的CPU。 图2简单介绍了MPEG-4硬件视频压缩处理的结构和网络接口。
图片2
图 2 MPEG-4 硬件视频压缩处理的结构和网络接口图 MPEG-4 视频采集压缩模块以 EN4000 芯片为核心,完成 对标准视频信号(PAL 或 NTSC 信号)的 A/D 转换, MPEG-4 压缩 图 以及与 S3C44B0X 之间的通信功能. 2 中视频解码 ADC 把从 摄像头输入的模拟视频信号转化为数字视频信号, 然后进行编 码预处理, 即把视频解码输出的 CCIR601 格式的信号转化为编 码器可以处理的 CIF 或 QCIF 格式,然后再进行 MPEG-4 压缩 编码.S3C44B0X 上的软件则通过总线接口单元来控制编码器 的参数设置和读取编码压缩后的码流数据.
视频数据处理模块包括以下功能单元: BT829 为核心的 以 以 视频 ADC 单元; EN4000 为核心的 M PEG-4 视频压缩单元; 以 S3C44B0X 为核心构成的控制逻辑和总线接口单元.总线接 口单元是视频数据处理模块与 S3C44B0X 进行交互的通道, 可 以和主机进行视频码流和控制数据的交换.控制逻辑是视频采 集压缩模块的核心, 它控制并协调各模块工作, 提供控制信号, 通过指令实现系统各模块所需要的选通, 缓冲, 读/写使能, 数据 总线和地址总线的切换等等.镜头云台控制是通过 S3C44B0X 上的 RS-232 口进行的, 允许用户根据自己的要求调节系统. 用 户可以通过调节镜头的景深,焦距以及光圈来调整图像质量, 还可以通过云台的上下左右调节来获取不同角度的图像.由监 控中心的客户机端软件通过 SOCKET 网络接口, 把调整信息发 送给服务器端, 服务器接收到控制指令后, 进行指令识别, 然后 完成调整任务. 向对应的 RS-232 口发送指令去控制云台, 技术创新
4 视频数据发送,指令控制模块的设计与实现
监控现场主机通过视频数据发送模块,将现场采集到的视 频流数据经过编码后, IP 组播的形式通过计算机网络发送出 以 去. 对于发送来的视频数据, 运行在监控中心主机端的视频数据 接收播放模块一方面可以将其保存起来,作为资料库便于以后 查询及回放; 另一方面还可以实时播放出来. 本系统的软件结构采用了客户机服务器结构,两端通过网络建立 TCP/IP 连接, 按 照自定义的数据通信协议交换数据,完成数据通信和系统控制 功能. 监控中心的客户端向服务器端申请建立连接, 服务器* 客户端向服务器 到连接请求之后, 和客户端建立 SOCKET 连接, 发送控制信号, 服务器端向客户端发送视频码流. 服务器端软件 软件设计的主要思想如下: 读取线程, 发送 运行 S3C44B0X 上, 线程和控制线程之间的同步, 防止有限资源的浪费.
为了充分利用 CPU 计算能力, 提高系统的整体性能, 在该 系统中采用多线程技术实现任务的调度.考虑到监控中心主机 要同时监控多个现场, 需要加入多个组播组的情况. 我们在设计 系统时要求监控中心端在接收视频数据前应向相应的监控现场 发送数据请求.为此, 我们要建立两个通讯通道: 一个是控制通 道, 一个为数据通道. 控制通道用来在发送端和接收端之间建立 会话, 包括发送一些数据请求和确认控制等信息. 接收端在接收 视频流数据前先向相应的发送端发送数据请求,发送端在接收 到数据请求后向接收端发回相应的 IP 组播地址和端口, 接收端 则加入该组接收视频流数据.为了保证这些控制信息准确无误 地到达对方,对于控制通道我们选择可靠性较高的 TCP 协议. 数据通道用于视频流数据的通信, 我们选用 VxWorks IP 组播组 来实现.这两个通讯通道互不相关, 各自执行自己的任务.
4.1 视频数据发送模块的设计
在视频传输中,服务器端要求码流读取和发送互不干扰, 在 避免读取和发送相互等待或者相互冲突的情况出现.同样, 客户端解码和接收也存在这个关系, 我们可以采用任务间的通 信功能来协调多个独立任务间的活动.VxWorks 提供了一套丰 信号量, 消息队列和管道 富的任务间通信机制, 包括共享内存, 任务间通信最直接, 最明显的方法是访问共享数据结构. 等等. 由于所有 VxWorks 任务共存单一的线性地址空间, 在多个任务 间共享数据结构是非常容易的, 任一程序中定义的各种类型的 全局变量, 都可以被所有任务直接访问.由于实时组播的视频 所以首先要从编码器中获得视频数 流来自于 MPEG-4 编码器, 本设计采 据, 这主要通过访问编码器所提供的 I/O 端口来完成. 用了一种基于环形缓冲区的多任务视频传输技术, 较好的解决 了码流读取和发送互不干扰的问题. 系统的环形缓冲区除了达 到数据分离互斥作用外, 还可以起到平滑码流的作用.读取任 务和发送任务是互斥的关系, 读取任务一次从编码模块中读入 使 4 K 的视频数据供发送任务处理.在读取时为了避免竞争, 用信号量对该环形缓冲区进行上锁,以保证访问的互斥进行. 发送任务的访问环形缓冲区的情况也类似. 通过利用环形缓冲 区和互斥锁完全可以解决这两个任务的同步问题.
4.2 指令控制模块的设计 系统定义了自己的指令系统和指令传输协议.指令可以分 为以下几类:
工作控制( 传输开始, 传输停止, 存储控制等); 镜头云台控 制(焦距, 光圈, 自动转动等); 系统设置(用户管理, 通信参数设置 等), 每条指令前面都有其唯一的识别标志, 服务器接收到后可 以用来和其它指令进行区分.
多路复用的输入/输出模型 Select 函数可以实现高效的管 理套接字.使用工作在无阻塞方式的套接字, 在一定程度上提 高了程序的效率( 与阻塞套接字相比).但是, 程序需要不断的 轮询各个套接字描述符的情况, 这浪费了大量的 CPU 时间.如 果进程不是主动地轮询套接字的情况, 而是将希望监视的套接字向系统进行登记, 而后采取被动的态度等待, 当套接字上发 生了某些事件后, 系统再以某种方式通知进程, 接着进程去检 测套接字的情况, 发现对应的事件并进行处理.在这种工作方 式下, 进程是在已经知道在套接字上发生了事件时, 才对套接 字进行检测, 而在没有事件的情况下, 进程将睡眠, 所以这种工 作方式节省了大量的 CPU 时间,对于资源本来就非常紧张的 系统, 可以大大提高系统的整体性能
5 结语
本文设计的基于 ARM7 的嵌入式 MPEG-4 网络监控系统, 该监控系统稳定性高,支持基于 Internet 的数据传输, 的结 C/S 构体系允许用户进行远端操纵系统的工作方式.系统的各个子 模块相对独立, 通过采用 MPEG-4 视频压缩技术, 图像高清晰, 画质接近 DVD 效果, 能够实现单画面轮流监看和 1~16 个画面 同屏监看.支持远程和本地云台控制, 支持多任务工作方式, 而 监看, 远程控制可同步进行, 监控距离随网络延伸 且图像存储, 而不断加长, 具有良好的发展应用前景.
作者创新点: 本文提出的矩阵系统的模块化设计便于将来 系统的升级和扩展,即使在将来扩展时,也不需要替换现有设备, 而只需软件升级或添加硬件,从而保证了系统的延续性. 符合模 调试更加容易,使用更方便. 块化的设计原则,设计, 调试更加容易,使用更方便。
通过采用 MPEG-4 视频压缩技术, 图像高清晰, 画质接近 能够实现单画面轮流监看和 1~16 个画面同屏监看. DVD 效果, 支持远程和本地云台控制,能够实现信号的可靠传输和 MPEG-4 视频流图像的平滑传输.
来源:维库开发网