系统架构
该系统主要由FH8735和SMP8655构成,FH8735和SMP8655之间通过PCI总线进行数据,状态和命令的交互。在功能分工方面,FH8735完成视频的输入,针对安防应用的前处理(运动检测,区域屏蔽等),H.264编码和预览显示数据的输出。
SMP8655作为主控CPU,主要完成8路标清视频的解码,视音频的预览,视频输出,音频输出等媒体流处理功能;SMP8655的MIPS32内核作为通用处理器主要完成系统的引导,图形化的用户接口、用户操作管理、文件系统、文件存储管理、视音频参数设置、系统参数设置、用户权限管理、日志管理、云镜控制、报警输入输出控制、网络协议栈、网络管理等应用层功能。FH8735和SMP8655之间通过共享内存,以及硬件信号量进行通讯。
SMP8655内置两个SATA接口,更多的SATA接口可以通过33MHz的PCI总线进行扩展。
方案系统示意图如下:
[nextpage]
软件架构
FH8735软件架构
Firmware:运行于FH8735内部的CPU之上,完成FH8735硬件模块的配置和控制,主机命令的接收和处理;当前状态的报告;码流和预览数据的传输等。
PCI驱动:提供SMP8655和FH8735之间的数据,命令和控制的传输通道。
SDK:SDK提供了FH35视频编码芯片的所有控制接口,应用程序(APP)可通过调用此SDK来实现多路视音频信号的实时编码和录像、水印、中文OSD 叠加、时间戳叠加、Logo 叠加、Mosaic 遮蔽、单帧捕获、强制关键帧输出、动态改变压缩帧率参数、动态调节视频参数、动态改变帧结构、动态检测、双码流等功能
SMP8655软件架构
SMP8655运行在Linux平台,实现嵌入DVR上各种外设的设备驱动,利用FrameBuffer作为显示控制,然后在此基础上实现嵌入DVR的应用程序。
Linux驱动:Linux的设备驱动程序在Linux系统中以内核模块的形式出现,在系统需要时加载和调用;直接控制硬件平台,向内核提供标准的接口函数,为应用程序提供统一的硬件抽象层。
应用程序 :主要由显示控制、系统管理、存储管理、输入输出控制、网络控制等五个子系统组成。
显示控制负责视频信息的输出,包括:菜单显示、预览显示、回放显示等模块。显示控制是系统的主要功能模块,富瀚提供API实现这些功能。包括:
预览功能。完成通过PCI通道获取YUV预览数据,预览数据的显示和多画面合成拼接。
多路解码和显示;
GUI实现。实现标准Framebuffer的驱动。
系统管理负责整个系统的管理控制,包括:录像控制、参数设置、视频遮盖、报警设置、移动侦测、用户管理、网络设置等模块。富瀚提供PCI驱动程序和API,实现对FH8735的参数配置。预览参数设置,编码参数设置,码流获取;录像控制、参数设置、视频遮盖、报警设置、移动侦测;
存储管理模块实现各种数据的存储、查询功能,包括:磁盘管理、文件存储、日志管理、参数存储、检索备份等模块。
输入输出控制负责响应外部输入设备(按键、485键盘、遥控器、鼠标、报警输入)的控制命令,同时控制外部输出设备(报警输出、云台),包括:按键面板、遥控器、485键盘、云台控制、鼠标接口等模块。
网络控制为客户端和集中监控软件提供接口,使得可以通过网络对DVR主机进行远程操作。
(本文作者黄为、张克非就职于上海富瀚微电子有限公司)