摘要:本文介绍了基于MPC5200的嵌入式音视频采集系统的实现。在硬件方面重点介绍了以MPC5200为主处理器的基本特点和系统的硬件结构,在软件方面重点介绍了驱动程序和应用程序的设计。
引言
视频监控系统是安全防范系统的重要组成部分。在国内外市场上,主要应用的是数字信号控制的模拟和数字视频监控系统。前者技术经历了基于微处理器的视频切换控制加PC的多媒体管理类型和基于PC实现对矩阵主机的切换、控制和对系统的多媒体管理两个阶段;后者技术经历数字监控录像系统和嵌入式视频Web服务器方式两个阶段。目前,视频监控系统正处在数控模拟系统与数字系统混合应用,并将逐渐向数字系统过渡的阶段。今后,视频监控发展的两个特点就是数字化和网络化。
[b]基于MPC5200的音视频采集系统硬件设计
[/b]
MPC5200简介
MPC5200集成了高性能的 603e G2_LE核和带有DMA单元的输入/输出子系统,因此,MPC5200可以独立于603e G2_LE 核响应外部中断,并且提供底层外设管理、协议处理、外部数据移动的功能。
MPC5200支持双外围总线结构,包括:SDRAM 总线;多功能LocalPlus总线。
嵌入式603e G2_LE核: 该内核是PowerPC 超标量体系结构,MPC5200有16KB的指令缓存、16KB的数据缓存、浮点单元、数据缓冲内存管理单元、指令缓冲内存管理单元、Critical中断、MMU额外带有16个寄存器和1KB的页面管理。
Bestcomm 输入/输出子系统:包括可编程串行控制器、10/100M以太网控制器、通用串行总线、I2C 接口、串行外围接口、MSCAN接口。
系统接口单元 (SIU) :集成了最常见的系统接口和信号,即片选信号、中断控制器、计数器、常用输入/输出口、实时时钟。
SDRAM 控制器和LocalPlus总线:MPC5200有一个高速的SDRAM控制器,该控制器支持单数据速率、双数据速率的SDRAM器件, 工作频率最大可到132MHz,32位数据线。LocalPlus总线用来连接BOOT ROM、SRAM、Flash、外围器件、ATA和PCI设备,有两种操作模式:非复用数据接入模式和复用数据接入模式。
总体设计
基于MPC5200的音视频采集处理系统实现了4路音频和视频的采集复合、MPEG-4压缩、硬盘的本地存储、网络传输等功能。系统主要包括音视频采集复合压缩、MPC5200的基本系统、硬盘存储和网络接口。系统通过音视频采集复合压缩模块完成4路音频和视频的MPEG-4压缩,压缩后的MPEG-4数据通过系统提供的ATA接口完成本地硬盘存储,利用系统提供的以太网接口实现数据的网络传输。
基于MPC5200的音视频采集处理系统的硬件结构如图1所示。除MPC5200外,各模块设计说明如下:
图1 基于MPC5200的音视频采集处理系统的硬件结构
5V变换逻辑并为USB和以太网分配引脚: 由于本设计中ATA、CAN接口是5V,MPC5200是3.3V,所以需要在连接的时候加入5V转换器件74LVXC3245。在USB和以太网的引脚分配上,考虑到系统功能的可扩展性,外接SN74CBTLV3384开关芯片,使这些引脚可以作为普通的输入/输出口。
音视频采集复合压缩:4路SAA7114完成视频采集,每路视频为8位数据,通过2片MC4558和1片IDT821024完成4路音频采集。4路视频、4路音频通过1片型号为XC2S200-PQ208的FPGA转化为IME6400所需要的1路16位视频数据、1路音频数据。IME6400是一款支持MPEG-4标准的芯片。FPGA和IME6400都需要和32MB的SDRAM(型号为K4S643232C)相接,完成音视频数据的缓冲和保存。IME6400和MPC5200之间的连接采用同步突发模式一,IME6400作为MPC5200的外部设备被统一编址。本设计将A[1:5]连接到IME6400的地址线Ha[0:4],用74LVXC3245将A[6:21]转化为IME6400的数据线Hd[0:15]。
硬盘存储和网络接口 :MPC5200自身带有ATA控制器,本设计的ATA接口是5V的,LocalPlus总线的CS4、CS5分别对应ATA的CS0、CS1,采用74LVXC3245把A[0:15]转化为ATA的数据信号线ATA_5V_DD[0:15],把A[16:18]转化为ATA的地址信号线ATA_5V_DA[0:2]。MPC5200自身带有以太网控制器,通过连接LXT971,提供RJ45以太网接口。
MPC5200的基本系统是由24位地址/8位数据的8MB AM29LV0652D Flash(利用74LVT04、74LVT32产生的片选和读写逻辑可以将Flash扩展成16MB、13位地址/32位数据的64MB MT48LC16M16A2、PSC1口通过MAX3233E实现RS-232功能。
扩展丰富的接口:MPC5200带有PCI控制器,提供33MHz、32位、3.3V的PCI 连接器,这样就可以在系统中连接成熟的、基于PCI接口的3.3V或者3.3V/5V兼容的视频采集卡。MPC5200带有USB控制器,通过外接电源管理芯片MIC2025和USB收发芯片ISP1107DH扩展USB接口,这样可以方便用户提取和保存监控系统中的重要数据。 MPC5200带有CAN控制器,通过外接TJA1050T可以提供CAN接口,这样可以方便地把系统连入基于CAN总线的系统中,MPC5200系统的PSC3可以作为普通的输入/输出口,这样可以方便地接入外部开关量,本系统包括两个开关输入量和两个开关输出量;MPC5200通过I2C接口连接256B的E2PROM(PCF8582C),在E2PROM中保存串口波特率、IP地址、MAC地址等信息。
图2 软件总体框图
本系统中音频采集时钟是2.048MHz、视频采集时钟是24.576MHz、FPGA和IME6400的时钟是27MHz、MPC5200的时钟是33MHz ,内核频率264MHz ,RTC的时钟是32.768KHz、以太网LXT971的时钟是25MHz。
[b]基于MPC5200的音视频采集系统软件设计
[/b] 系统软件的框图如图2所示。包括PPCBoot、内核初始化、系统调用函数和捕捉函数、设备驱动和文件系统。
驱动程序设计
系统调用:当一个系统调用发生时,将参数放在堆栈上,然后调用一个陷阱处理程序。操作系统也会从堆栈上取得参数,并调用陷阱处理程序,然后根据所带的参数完成相关工作。
外围设备硬件处理函数的调用:用于外围设备的程序被放在设备驱动模块中。对内核而言,对设备驱动模块的调用只能通过一些接口函数进行。在实际应用中,就是要建立用户程序和这些程序之间的通信。
Linux操作系统中采用文件系统来完成设备驱动模块和用户应用程序之间的通信。设备驱动看起来更象一个普通的文件,用户可以对它进行打开、关闭、读取和写入操作。操作系统就会分析这类操作的对象,并将它们映射到相关的设备驱动代码中。|
文件的操作
super_block{
super_operations;/*指针结构*/
inode_operations;/*文件节点操作*/
file_operations;/*文件操作*/
}
自己编写的驱动程序在VFS中注册自己的file_operations结构。
硬件驱动程序分为字符设备模块、块设备模块和网络接口模块。
下面以IME6400为例说明驱动程序的设计:IME6400驱动程序是被作为字符设备模块对待的。使用方法如下:
Insmod IME6400.o
Fd=open(“/dev/IME6400”, O_RDWR);
….;/*利用IME6400*/
close(fd)
rmmod IME6400
IME6400的驱动程序提供下面一些功能: IME6400_open、IME6400_read、IME6400_ioctl、IME6400_release、IME6400_init、IME6400_exit、IME6400_interrupt、IME6400_reset、IME6400_download、IME6400_boot、queue_init、queue_empty、get_queue_len、update_queue、queue_to_user、Write32、Read32。每个功能都有相关的函数对应解析实现。
应用程序设计
首先通过Dserver进程从IME6400中读取媒体数据,并在数据满一帧的时候,把数据放在队列上,然后执行Dsend进程,通过Cserver进程接收和处理来自PC viewer的请求,确定是否完成硬盘存储或网络传输。具体流程参见图3。
图3 应用程序执行流程
系统应用
系统产生的图像采用标准的TCP/IP协议进行传输,这使它特别适合跨网段、有路由器的远程视频监控环境使用。通过客户端软件实现对远程现场的实时监控和观看,并对摄像头和云台进行远程控制。这也可以通过Internet Explorer下载专用插件来实现,增强了系统的通用性。系统采用MPEG-4编码极大地提高了编码效率,使在相同的硬盘容量条件下,保存更长的记录时间。通过该软件可灵活方便地对历史录像进行检索回放和多画面轮巡操作。软件还提供了其它一些灵活的管理和配置功能。
结语
本文介绍了基于MPC5200的嵌入式音视频采集系统的实现,从硬件和软件两方面进行了介绍,在硬件方面重点介绍了系统的硬件结构和MPC5200作为主处理器的基本特点,在软件方面重点介绍了驱动程序和应用程序的设计。