Profile - CN540


CN540

基于无线通信的多媒体监控系统

复旦大学
微电子学系






Advisor

Name: 周学功
E-Mail: zhouxg@fudan.edu.cn
Telephone: 021-51355301-849

Members

No. Name English Name
1 王侃文 WangKanwen
2 张钒炯 ZhangFanjiong
3 刘沙 LiuSha

Project Paper

1. 设计概述 (Preliminary Paper)

一. 设计概述

1. 设计意图:
随着社会对于视频监控需要步伐的加快和高新技术的飞速发展,对于多媒体监控系统提出了更高的要求。通过无线多媒体监控系统,可以及时了解主要区域和重要场所(税务、电信、学校、企事业)的实时动态,消除安全隐患,实时监控现场情况,加强社会治安防范控制,提高管理快速反应能力,避免突发事件的发生,增强了工作的主动性和针对性。
近年来,光电信息、微电子、网络通信、数字视频、多媒体技术及传感技术的发展使得安防监控技术已由传统的模拟走向高度集成的数字化、网络化、智能化。由于数字信号具有抗干扰能力强、失真小、传输不受距离限制、存储查询便捷等优点,因此各种数字视频技术得到了迅速的发展。
本作品就是为了适应以上需求而提出的。通过CMOS摄像头可以轻松完成在线监控的功能,并及时把得到的图像信息交由CPU处理,CPU则根据图像的内容判别是否发生了异常情况,当有异常情况时通过GPRS网络及时发送到监控人的手机上。GPRS收发器用于实现无线通信,具有随时在线、不需拨号、价格便宜、覆盖范围广等特点,特别适合于需实时频繁传送数据的应用,如车辆调度/安全/导航,监控/监测等领域。
 
2. 适用范围以及针对用户群:
a) 家庭监控警报系统。
b) 机房监控和远程维护管理系统。
c) 移动车辆监控调度系统。
d) 城市公用事业实时监控维护系统。
 
3. 采用Altera器件进行设计的优势:
a) 灵活高效的SOC解决方案
SOPC(片上可编程系统)将Nios II处理器、存储器、I/O口等系统设计需要的功能模块集成到一个FPGA上,构件成一个可编程的片上系统。具有灵活的设计方式,支持设计人员开发定制外设,满足复杂的外设要求。
b) 方便使用的Nios II软核处理器
Nios II属于软核嵌入式开发,具有灵活、高性能、低成本、生命周期长等特点,并提供了大量的开发技术文档和实例。Nios II软核的性能是可以根据应用来进行裁减的,它具有丰富的IP核库,方便用户设计,有效的提高系统的运算能力。用户可以定义Nios II指令,提供了运算优化、加速的一个有效途径,易于实现算法的商用化。
c) μC/OS-II操作系统移植
Nios II IDE开发环境集成了已经移植到Nios II处理器的μC/OS-II RTOS操作系统,使用操作系统可以更方便地完成系统任务的调度以及功能扩展。
d) C2H对设计的有力支持。
Nios II提供的C2H编译器集成在Nios II IDE里,其主要功能就是自动转换软件程序到硬件实现,并实现Avalon接口,生成Avalon定制外设连接到Nios II系统中。这样分担了Nios II处理器的数据计算和存储器访问功能,使处理器能够更好的处理其他任务。Nios II C2H编译器可以帮助嵌入式系统开发人员提高效率,实现成功的设计。
(Draft / 2008-06-13 22:40:57)

2. 功能描述 (Final Project Paper)

二. 功能描述

1. 视频采集:
借助于TRDB_DC2板卡实现视频采集和图像截取,截取的图像经由DMA设备保存到SDRAM中。
2. 图像压缩:
由于截取的图像为BMP格式,数据量太大,不符合彩信发送的要求,必须经编码压缩转换为JPEG格式保存至SRAM中。
3. 异常图像的存取:
当发现当前图像与前一次取得的图像存在较大差异时,通过操作系统将该差异图像存放在Flash Memory中。
4. 异常图像的发送:
由CPU控制比较差异并发送异常图像,其中图像发送是通过集成彩信协议的GPRS Modem实现的,这样只要监控人的手机支持彩信协议接收,就可以及时发现该异常情况。

 

(Revision: 2 / 2008-09-14 09:42:19)

3. 性能参数 (Final Project Paper)

1. 设计环境
硬件平台:Altera DE2开发板+TRDB_DC2 130万像素CCD摄像头+GPRS Modem。
软件平台:Quartus II 7.2+SOPC Builder 7.2+Nios II 7.2 IDE。
2. 资源利用
整个设计的资源利用情况如下:

 

系统资源利用

 

 

(Revision: 2 / 2008-09-14 09:48:52)

4. 设计结构 (Preliminary Paper)

. 设计结构

 

 

硬件结构:硬件平台采用Altera公司的SOPC Builder工具将Nios II软核、存储器、功能IP和I/O口等集成在一块FPGA芯片上。连接到Avalon总线上的主设备有CPU和DMA,从设备有定时器、UART、自定义的CCD控制器、三态桥、EPCS控制器、SRAM以及SDRAM控制器,而外围扩展设备包括130万像素的CMOS摄像头(TRDB_DC2板卡)、GPRS Modem、SDRAM、Flash等。利用NiosII的C2H功能对图像处理进行硬件加速,用于实现图像的比较、预处理、编码的工作。
    彩信的发送是通过DE2板自带的RS232接口,和外购的支持彩信功能的无线模块相连接。无线模块选用的是北京嘉复欣公司生产的工业级别的产品,该产品除了处理普通GSM/GPRS 模块的功能外,还集成了MMS发送和接收的AT命令,从而使我们在DE2板上软件的开发相对灵活,对DE2板上软件配置要求也不是很高,软件的可靠性也容易得到保障。

  

基于无线通信的多媒体监控系统硬件结构图

 

软件层结构:在Nios II IDE开发环境下,系统设计以HAL层的驱动方式编写,包括RS232串口控制器、SDRAM闪存控制器、自定义CCD控制器,DMA等IP的驱动程序。在多任务的情况下,我们采用μC/OS-II操作系统进行系统调度,μC/OS-II是一种可移植、可裁减、抢占式、实时的多任务内核,具有极高的稳定性和安全性。μC/OS-II向Nios II的移植建立在HAL库上,使得程序对底层硬件变化不敏感,同时可调用HAL的API函数。在无线通信方面,GPRS Modem用来负责与无线终端(手机)之间的通讯,用无线模块支持的AT命令来传输数据和命令。在操作系统下,我们的应用程序包括了操作系统下的多任务调度、CCD参数配置、CCD摄像配置、图像编码、图像比较及GPRS通信。

   

软件层结构

(Revision: 25 / 2008-09-14 09:50:44)

5. 设计方法 (Final Project Paper)

1. 系统硬件设计
         系统硬件设计的SOPC Builder设置如下图:

 

 SOPC Builder设置

2. 系统软件设计
        根据SOPC Builder产生的硬件结构文件,在Nios IDE对系统库设置如下:

Nios II系统库设置       

程序存储单元和堆栈都保存在SDRAM中,另外去除了默认的C++语言支持以及使用精简的设备库设置,并在编译时加入了优化参数,保证了最后的程序尽可能的小。编译结果显示在加入μC/OS-II操作系统和μC/FS文件系统的情况下最终Release版本的elf程序大小仅为432KB,软件系统的结构如下图所示:

 

 

软件系统结构图

3. 操作系统调度
         由μC/OS-II操作系统提供的接口函数OSTaskCreateExt用于创建新任务。
根据系统特点一共设计了四个任务,任务间的通信使用了全局变量、信号量和队列。各个任务的定义及调度关系如下(按照优先级从高到低):
Task1:配置CCD参数和拍摄照片。
Task2:JPEG编码。
Task3:串口数据的接收。
Task4:串口数据的处理。
 

操作系统任务调度 

4. CCD数据采集
         为了实现高效可控的图像数据采集,我们设计了自定义外设,CCD图像采集模块,来实现图像采集。该模块主要分两个部分:
(1) DMA部分:如下图所示,DMA有三种工作方式,分别是从外设到内存,从内存到外设,从内存到内存。在本设计中采用第一种工作方式:当系统启动CCD拍摄进程时,首先DMA建立接收信道等待数据的到来;当摄像头传来的数据不断传输到FIFO中时,DMA一旦检测到FIFO的内容非空则自动将数据写到SDRAM中;当规定数量的像素传输完后则自动关闭接收信道。DMA传输的使用,正适应了CCD传输数据吞吐量大的特点,同时DMA传输将CPU从繁重的CCD数据采集任务中解放出来,大大提高了整个系统的性能与效率。


 

DMA的传输方式 

(2) 数据采集前端:CCD_Avalon数据采集前端主要任务是完成对摄像头的配置、转换Bayer Color Pattern的像素数据为320 X 240分辨率的30-bit RGB数据,以及完成图像坐标转换等功能。由于需要操作系统能控制、调度数据采集进程,我们为该模块设计了两个Avalon总线从端口。其中Slave_Config端口定义了控制寄存器,用于接收CPU向CCD_Avalon发送的指令,从而使CPU可以方便地控制设备工作状态,例如可以设置摄像头曝光率,R、G、B色彩增益等;Slave_DMA用于将CCD摄像头采集的数据通过DMA传输到片外SDRAM中。由于CCD数据采集与Avalon总线工作在不同的时钟域当中,同时为保证DMA数据传输的稳定性,我们使用了FIFO作为缓存以同步具有不同工作频率的电路。值得一提的是,Altera公司提供了的各种Megafunction,使我们快速实现硬件设计同时,更加高效地利用了FPGA内部的可编程逻辑资源实现硬件。
 

CCD内部结构

 5. JPEG编码
        JPEG编码作为当今主流的静态图像编码标准之一,在多媒体处理和无线通信中获得了广泛的应用。在我们的多媒体监控系统中,也采用了JPEG图像编码,为实现拍摄图像的彩信发送和存储提供了方便。
        我们的系统中采用的是标准的Baseline JPEG编码器,其编码流程与算法如下:

JPEG编码流程图

         JPEG编码对CPU的数据运算与处理能力的要求比较高,所以我们在SOPC Builder中为Nios II 处理器定制了浮点运算单元与硬件乘法器,以提高JPEG编码的速度。

6. 图像比较与识别
        图像的比较与识别模块是监控系统的核心部件,体现在两个方面:图像比较既要满足准确性、安全性的要求,又要满足实时性。由于图像比较总是不断地进行,简单高效的图像差分比较法被我们所采用,同时为了反映拍摄时摄像头的一些不确定因素,我们在图像比较之前先对图像作与处理与修正。这里我们对图像的亮度与色度分量采用了不同的处理,并且对图像曝光度和亮度作了一些修正,使拍摄时的其它因素对图像监控的影响减到最小。同时,由于下一帧图像拍摄之前,必须将当前帧图像处理完毕,对实时性提出了很高的要求。图像比较与识别的主要流程如下:
(1) 亮度的调整:
由于自然光线的明暗变化会对拍摄的图像有影响,我们运用算法对图像亮度进行修正,使图像的亮度分量控制在一个特定的范围之内,从而减少拍摄亮度误差对结果判定的影响。

 (2) 图像边缘的提取:
我们使用Sobel算子对图像的边界进行提取。

(3) 对图像逐个像素作差求出差值:
作差法是图像比较最基本的算法,我们将经过处理后的图像进行作差比较,以判定是否有其他的物体或者人进入被监控区域。实验结果证实,我们的算法具有良好的比较结果与性能。
 

7. 图像比较单元硬件加速
        根据Amdahl定理,S=1/(f+(1-f)/N),系统加速比取决于对使用频率最高的部分进行加速。相比于JPEG编码、无线图像传输和图像存储等一般情况下不工作的模块,图像比较模块一直在工作,并且有相当大的数据处理量,成为了系统性能的瓶颈。在我们的系统实现中,使用了Altera提供的C2H Compiler将整个图像比较模块的C源代码转换成由Verilog编写的硬件加速器,使系统的整体性能大大提高,提高对Cyclone II FPGA芯片内部逻辑资源的利用率,并且节省了大量硬件设计与仿真的时间。我们对lumin_adjust,rgb2yuv,CompareBMData这三个函数进行了C2H前后性能的比较,使用了Nios II自带的Profiling工具观察后发现这三个函数的运行总时间减少了42%,但是逻辑资源利用率从原来的45%骤增为86%,如此看来在使用C2H时还是要小心为好,避免因资源不够而无法fit到FPGA中。
 

8. 彩信的发送与接收
        彩信的发送基本上分两大部分,一部分是JPEG图像数据的传输,无线模块采用被广泛使用的XMODEM通讯协议。XMODEM协议能使两端分立的处理模块能可靠的传输数据。另外一部分是无线模块自定义的AT命令,通过这些命令,DE2能设置彩信的标题、收件人号码、正文和图片数据并启动发送。
几个主要的AT命令列在下面,还有很多其他的AT命令,可以在文档中查到。
(1)  AT$FDEL=“文件名”            从模块中删除某个文件
(2)  AT$FUPL=“文件名”            将PC机里的某个文件复制到模块中
(3)  At$mmsw=0                     重新设定所有的彩信组成参数来编辑新的彩信
(4)  AT$MMSW=1,1                  设置目的号码或者邮件地址
(5)  AT$MMSW=4,[]           设置彩信主题
(6)  AT$MMSW=5,[ ],[]   设置彩信的内容
(7)  AT$MMSW=6,[ ],[< filename >]设置彩信的附件
(8)  AT$MMSSEND                    发送彩信
        根据上面的原理,在DE2上我们实现的软件方案如下:
(1) 采用μC/OS-II操作系统的多任务系统,创建两个Tasks,一个是处理来自串口的数据,另外一个task是保存数据到缓冲,并根据当前的命令和状态来处理数据。
(2) 采用生产者――消费者处理模型来保持Task之间的数据同步,并采用了μC/OS-II的消息通讯机制来保证两者之间的通讯。从而使两者能稳定协调地工作,对CPU的资源占用也比较小。
 

接收和发送任务之间的关系

        具体的软件实现过程如下:
(1) 任务的创建
        我们分别创建了Task3和Task4用于串口数据的接收和串口的数据处理。
(2) 串口的操作
软件的最基本的工作是操作RS232的串口。通过Quartus II配置了串口后,就可以通过标准函数fopen来打开串口,fclose来关闭串口。串口数据的读可以由函数fread和getc来完成。fread可以一次读取多字节,getc用来一次读一个字节就返回。在Task3中调用getc函数来得到串口的数据,每得到一个字节的数据,Task3将通过μC/OS-II的消息队列通讯机制将得到的数据传输给Task4。Task4在得到数据后,将该字符保存到系统的缓冲区。并对缓冲区里面的数据做分析判断。如果数据是Task4关心的数据,则Task4将根据当前的状态来向串口写入相应的数据或者命令。串口写是通过fwrite函数来完成的。
(3) 彩信发送的实现
        触发彩信发送需要的条件是:JPEG数据完全准备好。为此,我们定义了三个变量:lFileLen,
jpeg_is_ready和charSendData。lFileLen用于记录JPEG文件数据的长度,charSendData用于指向准备好的JPEG数据的首地址。jpeg_is_ready表明JPEG数据是否已经准备好了。当jpeg_is_ready为0的时候,数据处理任务将处于空闲等待状态。当jpeg_is_ready为1的时候,将进入发送处理的过程。整个发送彩信的处理流程图如下:

彩信发送流程

        上面的是简要的处理流程,针对每个命令的处理细节并没有再细分。另外由于在本系统中还包括其他的任务,和其他任务之间的关系在整个任务调度的中已有说明。

9. 文件系统移植
        μC/OS-II操作系统可以使用户方便地在自己的软件工程里进行任务调度,为了更好地管理存储器上的文件,我们为μC/OS-II操作系统加挂了文件系统。μC/FS是美国Micrium公司研发的一个专门针对嵌入式应用的文件系统,支持FAT12,FAT16 和FAT32,可以用于大部分常见的存储器件。最重要的是它和μC/OS-II有着很好的兼容性,在性能上也得到了大众的好评。经过几天的奋战我们终于成功移植了μC/FS 1.34到DE2平台上,为开发板上的Flash器件架起了文件系统。我们的工作就是在DEVICE目录下修改并完善相应的驱动程序,使之在底层适应Flash的读写操作,并且修改CONFIG目录下的配置文件fs_port.h为Nios II编译器支持的数据类型,进而适用于我们自己的系统。在文件系统中,低层的设备驱动直接调用下面这个结构体内的函数,我们的FLASH驱动就在这四个函数中实现
const FS__device_type FS__flashdevice_driver = {
"Flash device",
_FS_Flash_DevStatus,
_FS_Flash_DevRead,
_FS_Flash_DevWrite,
_FS_Flash_DevIoCtl
};
        通过这样的移植工作就可以轻松使用API目录下fs_api.h文件中的对外接口函数,如FS_Init函数启动文件系统,FS_Exit退出文件系统,FS_FOpen函数打开文件,FS_FWrite函数写文件,FS_FRead函数读文件,FS_FClose函数关闭文件。对目录的操作可以相应的FS_OpenDir,FS_ReadDir和FS_CloseDir等函数。
 

10. SignalTap II在线调试
        我们使用SignalTap II Logic Analyzer对SOPC中的硬件部件与各个引脚信号进行监控,找出自定义外设设计中的错误。SignalTap II为我们的硬件设计带来了极大的方便,大大加速了我们的硬件调试进度。

SignalTap II 调试器窗口

(Revision: 6 / 2008-09-14 10:20:27)

6. 设计特点 (Preliminary Paper)

 . 设计特点

 1. 作品构思:目前安全监控系统正逐步进入普通家庭的生活,但是真正具有多媒体无线通信和实时警报的成熟监控系统并不常见。我们采用Altera提供的Quartus开发环境和Nios II软核系统实现了一个无线多媒体监控系统的解决方案,用户操作简单易行,并且使系统的灵活性大大提升。并且由于Altera开发平台的高性价比,系统具有低成本和高效率的特点。

2. 作品功能对于指定区域的实时图像监控、实现图像数据的大容量存储、编码与无线传输以及友好的用户图形界面使得本作品在同类产品中更具竞争力。同时,专用硬件处理模块的引入和图像处理方面的软硬件协同设计为系统提供了较高的图像信息处理能力。同时,系统软硬件结构上的灵活性也同样说明Nios II系统的方便与高效。

 

3. 硬件设计:采用SOPC Builder设计工具使硬件架构更加简单明了,每一个模块都能够单独开发完成。Nios II CPU主要实现系统各模块之间的调度。所有的IP都采用Avalon总线架构,并采用统一的同步时钟。

 

4. 专用图像处理模块与软硬件协同:我们在系统中引入了专用的图像处理硬件模块,从而在提高图像处理的同时,大大减轻了CPU的负担。同时,软硬件协同的设计方法使系统效率与灵活性并重,性能方面优于以往的系统。

 

5. 实时监控:由于具备了实时监控与GPRS无线通信能力,使得本系统的安全性与实时性大大提高,用户可以在突发情况时不仅收到警报信息,同时可以收到具体的图像来甄别。

 

 

 

 

 

 

(Revision: 5 / 2008-06-13 22:48:56)

7. 总结 (Final Project Paper)

        我们本次大赛的设计作品“基于无线通信的多媒体监控系统”按照预定计划基本完成了设计的任务,实现了系统的功能,在一些细节上我们还需要努力改进。大赛过程中我们学到了很多新的有关Nios II处理器的支持,尝试了图像算法在Nios II嵌入式处理器实现方式,体验了Nios II处理器强大处理功能和可靠的运行特性。积累了在Nios II上使用μC/OS-II、自定义设备和硬件加速的开发经验。当然在调试过程中遇到了的很多问题,有时为了解决一个小bug甚至要花上几天的时间。在团队合作的力量下,这些问题都被我们一一克服,这其中的兴奋心情在平时是无法体会到的。对于我们学生来说,SOPC的设计理念有利于激发我们的创作热情。
        Nios II作为Altera公司推出的开放RISC软核处理器,与固定的处理器相比具有很强的优势。在本次大赛的系统设计、调试过程中体现了其强大的功能。同时SOPC Builder以及Nios II IDE编程环境为系统的软件开发提供完整的解决方案。本设计充分发挥了FPGA高速度、高集成度的优点,真正在单芯片上实现了一个完整的无线监控系统解决方案。
       彩信作为一种逐渐被普及的信息,在越来越多的嵌入设备上被使用,除了文字信息,彩信还可以包含图片、音频和视频信息等。其信息的内容是丰富多彩的。在我们设计的系统中,将监控现场的图像通过JPEG图片以彩信的形式发送给手机等设备。其特点是充分利用了现有的无线网络,使图片能比较实时地发送给相关的监控人员。同时系统具有很强的可扩展性。基于无线网络的特点,我们可以对系统的软件做一些修改,能实现更多的功能。
        感谢Altera公司为我们提供了非常好的理论与实现相结合的时间机会,通过这次大赛,验证了我们设计的硬件实现可行性,对于提高我们的动手能力有极大的促进作用!最后特别感谢我们的指导老师周学功,以及王伶俐教授和刘华章工程师。没有你们的帮助和讨论,我们不可能这么顺利地完成这个作品。

(Draft / 2008-09-14 09:52:05)