基于SOPC的远程视频图像监控系统的设计.pdf
http:/-1-基于基于 SOPC 的远程视频图像监控系统的设计的远程视频图像监控系统的设计 李晋,李绍荣 电子科技大学光电信息学院,成都(610054)E-mail: 摘摘 要:要:提出一种基于 SOPC 技术的远程视频图像监控系统的设计方案。通过将 NiosII 软核处理器、用户自定义逻辑模块、存储器、I/O 等集成到单块低成本的 FPGA 上,组成一个 SOPC(片上可编程系统),实现远程视频图像监控系统。与传统的实现方案相比,该方案降低了系统的成本,复杂性和功耗。关键词:关键词:远程视频监控,SOPC,NiosII 中图分类号:中图分类号:TP334.22 1.引言引言 近几年来,在国民经济快速发展,人民生活质量普遍提高的背景下,在计算机、网络以及图像处理、视频图像压缩等技术不断进步的基础上,视频图像应用系统己经越来越厂泛的出现于政府,学校,银行,军队和家庭等各种场合中,并且呈现多样化的发展走势,越来越多的具有数字化、网络化、实时性等特性1。SOPC 是 Altera 公司提出来的一种灵活、高效的 SOC 解决方案。它将处理器、存储器、I/O 口、LVDS、CDR 等系统设计需要的功能模块集成到一个 PLD 器件上,构建成一个可编程的片上系统。它具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。由于它可编程的灵活性和 IP(Intellectual Property)功能模块的可重用性,易于保证产品的差异性和缩短面市时间,它无需库存费用,也无需一次性投片费用,降低了投资风险。因此本设计采用了 Altera 公司的基于 NiosII 的 SOPC 系统平台。NiosII 是一种可放入PLD 的 CPU 软核,它是一种采用流水线技术、单指令流的 RISC 处理器,专门针对 Altera 的PLD 及 SOPC 系统的设计思想作了优化,只占芯片内部很少一部分逻辑单元,成本很低2。2.系统功能与结构系统功能与结构 远程视频图像监控系统的基本原理是:视频图像信号经过镜头输入后。由图像传感器转化为电信号,A/D 转换器将模拟电信号转换为数字电信号,再经过编解码器按一定的编解码标准进行编解码后在 CPU 的控制下,按一定的网络协议送上局域网或 INTERNET,CPU 还可以接收报警信号及向外发送报警信号,且按要求发出控制信号。根据系统的功能和要求,可分成四个模块:CCD/CMOS 摄像头、图像获取处理模块、控制监控模块和网络处理模块,如图 1 所示。图 1 系统功能结构图 CCD/CMOS摄像头 图像获取 处理模块 网络处理 模块 控制监控模块 Internet http:/-2-3.系统硬件部分设计系统硬件部分设计 系统的硬件设计原理框图如图 2 所示。图 2 系统硬件原理框图 图 2 中,Avalon 数据总线将 NIOSII 微处理器、SDRAM 控制器、Flash 接口模块、DMA控制器、网络接口模块、视频输入模块等连在一起构成片上可编程系统(SOPC)。Nios II 处理器实际上是 ALTERA 公司提供的一个软核,通过下载到 FPGA 上就可以实现一个 32 位 RISC CPU。DMA 控制器用来控制两个地址空间之间的 DMA 传输。SDRAM是系统运行的主存。FLASH 用来存储程序,上电后加载到 SDRAM。I2C 接口用来完成对ADV7181 的初始化工作。控制信号接口主要作为各种报警、指示及其它输入输出信号的控制接口。3.1 模拟视频信号解码模块模拟视频信号解码模块 从摄像头输入的模拟视频信号转化成数字信号需要专门的视频解码芯片来完成,本系统采用 ADV7181 视频解码芯片完成对模拟摄像头的视频数据进行解码的任务,将 NTSC 制的CVBS 等模拟信号转化成符合 ITU-R656 标准的 YCbCr 信号。3.2 视频输入模块视频输入模块 模块的子模块结构示意图如图3所示:经过解码的4:2:2YCrCb 格式视频信号在27 M Hz 像素时钟控制下输入 FIFO 缓冲器。彩条测试信号模块在系统测试时,给出一个非常简单的测试模块,可以模拟为信号源,以方便系统的调试。色度转换模块将 YCrCb 格式转换为 RGB格式,并把它们的值写到 FIFO 缓冲器中。Avalon DMA 把图像数据写到系统存储器(SDRAM)中,当完成一帧写操作时,给 NiosII 处理器一个中断信号。NIOS II 微处理器 Avalon 交换总线 SDRAM 接口 SDRAM FLASH接口 FLASH网络接口 模块 控制信号接口模块 I2C 接口 视频输入模块 DMA 控制器摄像头 模拟视频信号解码模块 报警、指示等信号网络 控制器 FPGA http:/-3-图 3 视频输入模块结构示意图 YCrCb 到 RGB 的转换公式如下:R=1.164(Y-16)+1.596(Cr-128)G=1.164(Y-16)-0.813(Cr-128)-0.392(Cb-128)B=1.164(Y-16)+2.017(Cb-128)3.3 网络接口模块网络接口模块 本模块主要完成 NiosII 处理器与 DM9000 网络控制器的接口连接。输入输出端口分为两部分,一部分是模块与 Avalon 总线的连接信号,另一部分是模块与 FPGA 外部的 DM9000连接的信号。DM9000 是 DAVICOM 公司的一款是一款低功耗高性能的网络控制器,内部包括一个 10/100M PHY 和 4K 双字节 SRAM。DM9000 提供 8 位、16 位、32 位不同的微控制器接口,因此可以方便的与 Nios II 处理器连接。3.4 SOPC 系统模块生成系统模块生成 用 SOPC Builder 可以进行系统模块硬件设计和底层软件生成。进行硬件模块设计时,SOPC Builder 提供图形化配置界面,备有一些常用外设的 IP 模块,如 SRAM、Flash RAM、UART、Ethernet Interface、Interval timer、Parallel I/O 等。用户还可以加入自己的外设设计文件。对于本设计来说,就是将在前面提到的视频输入模块和网络接口模块以用户自定义接口的方式添加进来,SOPC Builder 可以进行系统配置以及生成,系统配置除了对外设设置外还包括启动程序、中断向量表、系统启动地址等的设置。具体如图 4 所示。图 4 构建完成的 Nios II 系统模块 视频输入和FIFO缓冲器 彩条测试 信号模块 YCrCb 转换成RGB模块FIFO 缓冲 Avalon 寄存器从总线 Avalon DMA 27MHz 象素时钟和 YCrCb 信号 http:/-4-4.系统软件部分设计系统软件部分设计 SOPC 系统的软件开发是在 NiosII IDE(集成开发环境)中进行的。NiosII IDE 基于开放式的、可扩展的 Eclipse IDE 工程以及 Eclipse C/C+开发工具工程。目前 NiosII 的软件开发都是在 HAL(hardware abstraction layer)的基础上进行的。图 5给出了基于 HAL 系统的结构示意图。HAL 系统库是一个轻量级的运行环境,提供了简单的和硬件通讯的设备驱动程序3。应用程序C标准库设备驱动设备驱动设备驱动HAL APINIOS微处理器 图 5 基于 HAL 系统的结构示意图 软件设计包括嵌入式操作系统的移植、网络协议栈设计、应用级代码编写等部分。4.1 uC/OS-II操作系统移植操作系统移植 uc/OS-II 操作系统是美国人 Jean Labrosse 于 1992 年开始编写的,它是一种适合于小型、微控制器的可剥夺实时操作系统。uc/OS 的内核除了没有网络协议栈之外,也没有文件系统,但是本设计中并不需要对视频图像数据按文件方式保存,因而使用 uc/OS-II 可以满足需要4。uc/OS-II 在设计时就充分考虑到在不同平台上移植的需求,将同平台相关的部分局限在一个很小的范围内,对于不同的平台只需对下面一些函数和宏进行重写。OS_ENTER_CRITICAL 和 OS_EXIT_CRITICAL:这是两个宏,用来进行临界段保护。在本设计中使用汇编代码开关中断来实现。OS_TASK_SW:这是一个用于进行任务切换的宏。本设计中利用 C P U 的软件中断方式实现。也就是说调用此宏产生软件中断,然后由相应的中断处理程序来具体实现任务上下文保护和任务切换。OSIntCtxSw:实现中断级任务切换,用纯汇编实现。OSCtxSw:实现用户级上下文切换,用纯汇编实现。OSTickISR:为系统定时器中断的处理函数,用纯汇编实现。OSTaskStkInit:用来在创建任务时,对任务堆栈进行初始化。OS_CFG.H 用来配置内核,用户根据需要对内核进行定制,设置系统的基本情况;INCLUDES.H 为系统头文件,包括了整个实时系统所需要的内核以及用户的头文件。uC/OS-II 编程模型如图 6 所示,基本原则就是创建一系列任务,然后运行它们。http:/-5-图 6 uC/OS-II 编程模型 4.2网络协议栈设计网络协议栈设计 本系统选择 LwIP 作为系统的网络协议栈。LwIP(light weight IP)是瑞士计算机科学院(Swedish Institute of Computer Science)的Adam Dunkels 等开发的一套用于嵌入式系统的开放源代码 TCP/IP 协议栈。LwIP 既可以移植到操作系统上,又可以在无操作系统的情况下独立运行。LwIP实现的重点是在保持TCP/IP协议主要功能的基础上减少对 RAM 的占用,一般它只需要几十 K 的 RAM 和 40K 左右的ROM 就可以运行,这使 LwIP 适合在低端嵌入式系统中使用5。LwIP 的特性如下:(1)支持多网络接口下的 IP 转发;(2)支持 ICMP 协议;(3)包括实验性扩展的的 UDP(用户数据报协议);(4)包括阻塞控制,RTT 估算和快速恢复和快速转发的 TCP 协议(传输控制协议);(5)提供专门的内部回调接口(Raw API)用于提高应用程序性能;(6)可选择的 Berkeley 接口 API(多线程情况下);(7)在最新的版本中支持 PPP;(8)新版本中增加了的 IP fragment 的支持;(9)支持 DHCP 协议,动态分配 IP 地址。4.3 应用级代码应用级代码 应用级软件的编写过程跟随信号的流动方向,如图 7 所示,系统首先进行视频数据的采集,这部分内容主要针对 ADV7181 进行初始化操作,采集视频图像信号并将其转换为编码器可用的图像数据存入缓冲区。视频处理负责将缓冲区内的视频图像数据处理成为要求的格式码流。视频图像传输阶段需要对 LwIP 协议栈进行操作,并初始化以太网芯片,将处理得到的码流通过 UDP 协议传递给 PC 机。主函数 Main()任务 OS 初始化:OSInit()创建资源:OSSemCreate(),OSMboxCreate()创建任务:OSTashCreate()运行任务:OSStart()变量定义 等待资源 任务代码 释放资源 系统延时删除任务 http:/-6-图 7 系统软件流程图 系统采用 uC/OS-II 的多线程模式编写应用程序,任务列表如表 1 所示。初始化的优先级较高,任务和任务之间的消息传递使用信号量,因为信号量难以表示,所以没表中陈列。按照各个任务的数据量不同分配不同的堆栈空间,尽可能减少系统内存的占用。表 1 系统任务列表 任务 优先级 堆栈(字节)初始化任务 2 512 ADV7181 初始化 3 1024 网络协议栈初始化 4 1024 以太网接收 5 1024 读取同步中断 6 32 同步传输 7 32 图像处理 8 1024 UDP 传输 9 1024 5.结论结论 本文提出了一种基于 SOPC 技术来实现远程视频图像监控系统的详细设计方案,该方案可以极大的缩短将元件集成到相关系统中所耗费的时间。相对于采用传统的基于 DSP 或者 ASIC+ARM 的设计方法,成本更低,功耗更低。由于背板走线简单,在处理高速信号时系统更稳定。还可以根据需要来调整该系统的特性和成本,快速的将产品推向市场,扩展产品的生命周期,并可以避免由于处理器的更新换代带来的损失。初始化ADV7181 同步读取 摄像头数据 存取一帧图像到缓冲区 从缓冲区读取一帧图像 图像分析与处理 存储码流与缓冲区 初始化 协议栈 初始化 网络接口 发送缓冲区码流 UDP 传输 视频采集 视频处理视频传输 http:/-7-参考文献参考文献 1 刘富强.数字视频监控系统开发与应用.北京:机械工业出版社.2003.2 徐光辉,程东旭等.基于 FPGA 的嵌入式开发与应用.电子工业出版社,2006.3 Altera Corporation.Nios II Software DevelopersHandbook.Altera.2006.4 Jean J.Labrosse 著.邵贝贝译.嵌入式实时操作系统 uC/OS(第二版).北京航空航天大学出版社.2003.5 AdamDunkels.Design and Implementation of the lwIP TCP/IP Stack.Swedish Institute of Computer Science.2001 Design of Remote Video and Image Monitoring System Based on SOPC Li Jin,Li Shaorong School of Opto-Electronic Information,UESTC,Chengdu(610054)Abstract This paper provides a design of remote video and image monitoring system base on sopc.In this scheme,a SOPC(system on programmable chip)can be constructed by integrating NiosII,custom logic,memory and I/O into a chip of low-cost FPGA to realize the function of the Remote Video and Image Monitoring System.Compared with other schemes using sets of chip and software,this scheme can reduce the system cost,complexity and power consumption.Keywords:Remote Monitor,Nios II,SOPC 作者简介:李晋,男,1982 年 3 月生,硕士研究生,主要研究方向是嵌入式系统与视频图像处理。