Profile - CN104


CN104

基于SOPC的汽车远程监控系统设计

同济大学
电子科学与技术


Finals


[print]


Project

Name of Project:基于SOPC的汽车远程监控系统设计

Contact Information

Name:凌毅
E-Mail:lingyi1018@163.com
Telephone:02169584692
Mobile Phone:13817207520
Mailing Address:上海市嘉定区曹安公路4800号同济大学17#15034

Contest Advisor

Name:王遵彤
E-Mail:wangzt@mail.tongji.edu.cn
Telephone:13816345112

Members

No.NameE-MailEnglish Name
1凌毅lingyi1018@163.comLingYi
2陈芸yunshangcao.yun@163.comChenYun
3曾珍虎zzhu2008@gmail.comZengZhenHu

Project Paper - view as Preliminary(2009/06/15), Final(2009/09/14), Draft, Latest

1. 设计概述 (Preliminary Paper)

1.设计意图

      随着汽车家庭化的程度日益扩大,汽车被盗事件屡屡发生,据不完全统计我国每年汽车被盗数目达十万之多。现有的很多汽车监控防盗系统存在缺点如下:噪声污染、误报率高、不稳定、功耗高等。开发新一代的汽车监控系统成为汽车电子发展的必然趋势。为了进一步提高监控系统的稳定性、降低误报率、增强防盗功能,设计一种基于GPRS无线网络的汽车实时远程监控系统。本系统采用高精度COMS摄像头采集被监控区域的视频图像通过VGA实时进行输出监控,同时对图像数据进行一系列处理,判断监控区域是否有异物闯入。当判断有异物闯入时拍摄下此时的图片,对此图片进行JPEG图像压缩,并通过GPRS彩信方式发送到客户端同时系统通过汽车传感器对汽车的加速、倾角、震动进行采集,处理器对这些信号进行实时精确的计算即可判断汽车当前的状态,当判断为异常状态时便通过GSM短信方式将数据发送到用户手机。

2.适用范围及用户群

       本设计主要适用于需要实时远程无线监控的汽车、汽车电子研究机构评估、需要将电子和无线监控技术柔和的交通部门、单位以及个人重要物品的监控防盗。同时由于该系统的可扩展性强,其远程图像监控功能可用于家庭、厂房、学校、公安司法部门用于无线监控。

3.采用ALTERA器件的原因

       1)利用ALTEAR器件设计SOPC系统,突破了传统的MCU+DSP芯片的数字信号处理的传统模式,很好的将微处理器和数字信号处理模块以及其他功能模块同时很好集成到一块FPGA芯片上,这使系统更加稳定、提高整体性能、降低了成本,同时由于ALTERA公司以及第三方公司提供了大量的IP核,使得设计周期大大减短。

      2NIOS II IDE开发环境提供集成可移植到NIOS II处理器的UC/OS II实时操作系统,使得设计多任务实时调度更加容易,同时保证监控系统的实时性。

      3)采用定制外设和自定义指令使得图像压缩处理算法用硬件实现,大大提高系统处理能力和运算速度,同时很容易的集成到Avalon总线上。

       4DE1开发板采用EP2C20芯片,片上资源丰富以及本身的性能优异使得完全可以满足该系统的性能要求,同时开发板上也提供了丰富的接口、存储资源和扩展口完全满足该设计的要求。

 

(Revision: 3 / 2009-09-14 23:17:30)

2. 功能描述 (Final Project Paper)

1.       对汽车X/Y方向加速度、倾角、震动能量进行测试计算

2.       视频图像的采集、存储

3.       Sobel算子边缘检测图像预处理

4.       VGA实时监控

5.       运动目标检测

6.       JPEG图像压缩

7.       GPRS无线信息发送

我们的系统通过汽车传感器采集板采集信号,用Nios II CPU计算出X/Y方向加速度、倾角、震动能量,当超过所设定阈值时通过GPRS无线模块发送信息给客户端。CMOS摄像头D5M完成视频图像的采集,将图像数据存储于SDRAM,做Sobel算子边缘检测图像预处理,通过VGA实时输出监控。对连续两帧的信号做帧差计算,实现运动目标检测,当检测到运动异物时以短信提示用户,同时拍摄下此时的照片,对照片进行JPEG图像压缩,进行GPRS彩信发送与客户端。系统设计实物图如下图所示。

系统实物图

(Draft / 2009-09-14 23:25:37)

3. 性能参数 (Final Project Paper)

1.系统的性能参数

汽车传感器测试频率范围:10-200Hz

VGA显示大小:640×480

彩信发送大小:128×96

             格式:JPG

运动目标检测距离:<10m

2.硬件资源使用情况

3.SOPC系统组件图

 

(Draft / 2009-09-14 23:30:01)

4. 设计结构 (Preliminary Paper)

 1.系统框图

我们的设计系统框图如图4-1所示,整个系统基于ALTERA DE1开发平台,检测传感器组包括:震动传感器、加速度倾角传感器,完成对汽车监控系统中的加速度、倾角、震动能量参数的测量。COMS图像传感器完图像的采集工作,经FPGA图像预处理后于VGA口监控。射频模块完成GPRS通信,将图像数据以及监控信息通过GPRS网络发送到监控中心和用户手机。而DE1开发板以其强大的硬件资源完成各模块的协调控制工作。

             

图4-1系统框图

2.硬件框图

         系统主要包括:双Nios II 软核CPUMailbox 核、CCD图像传感器控制器(COMS传感器数据采集、I2C传感器配置模块等)、JPEG编码器模块、VGA控制器、UART控制器、DMATimer组、SDRAMSRAMFlash等。其硬件框图如图4-2所示。      

                 

图4-2  硬件框图

3.软件层             

        

 系统的驱动程序都是基于HAL层的方式编写,包括:GPRS通信模块的驱动、检测传感器驱动、DMA驱动、JPEG编码器驱动、CCD控制器驱动。主核NIOS II Core1上运行UC/OS II完成多任务的调度,LWIP协议栈完成网络传输功能。所有应用程序在操作系统的管理下工作,包括:对检测传感器信号的采集应用程序、GPRS通信功能、图像传感器配置与采集、图像数据处理分析存储等。其软件层图如图4-3所示。

图4-3 软件层

 

(Revision: 5 / 2009-09-14 23:36:23)

5. 设计方法 (Final Project Paper)

1.       汽车传感器信号采集板

 

    我们设计制作了汽车传感器信号采集板,采用AD公司的加速度传感器ADXL202AQC,用于对汽车的X/Y方向加速度、震动值进行测量。传感器采集系统框图如图5-1所示。

5-1 传感器采集系统框图

     ADXL202AQC采集双轴加速度值,通过XoutYout输出数字量,以和加速度值对应的不同占空比方波输出,将这两路数字信号通过PIO口采集入SOPC系统,通过Timer_X,Timer_Y定时器计算出精确的加速度值,Nios II Core 1对两个加速度值和重力加速度值确定三维空间的加速度倾角值。

     同时通过XfiltYfilt输出加速度的模拟信号量,通过带通滤波器将信号范围控制在10~200HZ,微小的震动量可以通过,经放大、ADC转换通过PIO口采集如SOPC系统,处理器对这些值进行计算,可以得到震动幅值。系统采集板的PCB版图如图5-2所示。

5-2 采集板PCB

     ADXL202AQC的温度变化系数为2mg/,这样由于温度的变化可能会产生误报,我们用软件微分器进行信号处理,当变化率达到100mg/min,认为有警情。同时我们利用软件积分器对微小的震动进行积分得到震动能量,以较小系统的误报率。计算结果如图5-3所示。

                       图5-3 汽车传感器测试量输出结果

 

2.       CCD Controller 外设IP模块

 

     系统中CMOS摄像头采用Terasic公司的TRDB-D5M,我们用Verilog设计了CCD Controller IP,挂接Avalon总线,使系统通过软件程序对摄像头进行初始化和控制,能够对曝光时间、亮度增益因子、时钟频率、输出模式等进行初始化配置和对CCD的复位、图像拍等进行控制。同时CCD Controller IP 能够读入SDRAM中缓存的两帧连续图像的信号,和VGA Controller发送来的图像协调信号,使得Nios II Core 2能够实时采集处理图像数据进行运动目标检测。

     D5M的配置通过I2C总线接口,其串行总线的时序参数如图5-4所示,我们对Terasic公司提供的I2C配置模块进行修改,使其能通过我们设计的CCD Controller 进行配置。

                           图5-4 D5M串行总线的时序参数图

 

3.       RGB-YCbCr转换

 

CCD将光信号转换成RGB三路信号,用于图像处理算法和VGA输出,但在无线传输时会加宽视频带宽,我们将RGB信号转换成亮度信号Y和两个色差信号CbCr,形成YCbCr分量信号。利用人眼对亮度细节分辨率高而对色度细节分辨率低的特点对CbCr信号带宽进行压缩,同时为便于JPEG的统一处理,我们采用有符运算。由于在转换过程中有大量的浮点运算,采用CPU计算将非常耗时,我们采用Verilog设计转换模块以硬件实现,设计中采用3级流水线加快速度提高资源利用率。Matlab的计算结果和Quartus II时序仿真结果比较如图5-5所示。可以看出3级流水线结构,计算结果一致。

                 图5-5 RGB2YCbCrMatlab计算结果和Quartus II仿真结果比较

 

4.       修改VGA Controller IP

 

我们将CMOS摄像头采集的数据用于VGA口实时监控,同时我们也要将预处理过的图像数据传送到NIOS II Core 2进行计算,为了使软硬件能够互相协调,我们对VGA Controller IP核进行了修改,使VGA在输出图像像素的同时能够计算当前像素的坐标值,这个坐标值在进行帧差法计算时用于判断范围,给其相应的权值。同时产生NIOS II Core 2中断信号和图像清零信号便与CPU和硬件部分协调。

调试过程中用到SignalTap II嵌入式逻辑分析仪对修改的VGA Controller实际输出信号进行采集,其结果如图5-6所示。

                                   5-6  SingalTap II对修改的VGA Controller 测试

 

5.       Sobel算子边缘检测模块

 

     在设计中我们将COMS摄像头采集的图像信号进行预处理,我们用Verilog设计了Sobel算子边缘检测模块,将边缘检测结果送VGA监控,同时图像数据交Nios II Core 2进行计算。我们采用灰度图像数据进行处理,由于需要3*3的像素块,对输入像素进行3行缓冲,这里用到了Altera公司的Megafuncation库:ALTSHIFT_TABS移位寄存器。然后将各条缓冲线送入ALTMULT_ADD乘加运算。Sobel算子边缘检测结果如图5-8所示。

     

                          图5-8 边缘检测结果

 

6.       JPEG图像压缩DSP协处理器模块

 

为了便于GPRS的图像传输,需要对图像进行压缩,我们采用JPEG压缩标准对图像进行压缩,用Verilog设计JPEG图像压缩DSP协处理器,并挂接于Avalon总线。JPEG标准中压缩算法的步骤包括二维DCT、量化、熵编码等。其编码过程框图如图5-9所示。

    

5-9 JPEG编码过程框图

     在设计编码器时我们先对图像进行分块,对RGB信号进行YCbCr转换,YCbCr信号进行2D-DCT转换并同时进行ZigZag扫描将二维数据转换为系数连续相关的一维数据,根据JPEG组织提供的量化表对数据进行量化压缩,最后对量化结果进行VLC编码和Haffman编码得到压缩结果。其中核心的部分是2D-DCT转换,这里介绍其设计过程:离散余弦变换是一种正交变换,2D-DCT的变换公式如下:

    1

由(1)式可得,二维DCT可以分解成两个一维的DCT变换:

   2

   (3

因此我们采用矩阵乘法、查找系数表和矩阵转置的方法实现2D-DCT。在设计过程中多次用到Altera提供的Megafuncation库:ALTMULT_ADD乘加运算、LPM_ADD_SUB交替加减运算、ALTSHIFT_TABS移位寄存器等加速设计。

我们以《Image and Video Compression Standard》中给出的测试矩阵RAW作为输入,MATLAB的计算结果和Modelsim的时序仿真结果如图5-10所示,结果表明误差在1左右。

             图5-10  2D-DCT_ZMATLAB计算结果和Modelsim时序仿真结果比较

 

7.       GPRS无线通信模块

 

我们的设计中通过GPRS无线通信模块发送中文短信和彩信,采用SIMCOM公司的SIM300Z芯片,通过UART口与SOPC系统进行通信。彩信的发送通过DMA IP将图像数据从Flash直接与UART建立连接发送。当系统检测的加速度倾角或震动能量超过所设定的阈值时,将计算值以短信发送给用户。当系统检测到运动目标时,先发送短信提示,随后将压缩的JPG图片以彩信发送到客户端。模块实物如图5-11所示。

      

                                          5-11   GPRS模块实物图

 

8.       Nios II双核系统

 

在设计中,由于有大量的实时图像数据运算,一块CPU的计算速度无法满足要求,甚至出现错误结果,我们采用两块NIOS II构成双核系统,同时设计硬件DSP处理IP作为双核系统的协处理器,共同完成任务。

Nios II Core 1作为主控核,运行UCOS II 操作系统,管理所有任务的调度工作,完成汽车传感器的采集、加速度倾角震动的计算、短信彩信的发送等。Nios II Core 2作为辅助核,完成采集连续两帧的视频图像,并进行实时运动目标检测算法。双核之间的通信通过Mailbox IP核共享On Chip Memory实现。同时设计Sobel算子边界检测硬件图像预处理模块和JPEG图像压缩IP作为双核系统的协处理器,构成异构多核的嵌入式系统。结构框图如图5-12所示,由于SDRAM作为视频图像的缓存,这里将Core 1运行于SRAMCore 2运行于Flash,读写数据和堆栈存储于SRAM中。

        

                           图5-12 异构多核体系结构图

 

9.       运动目标检测算法

 

视频图像是三维图像的二维投影,当三维图像发生变化时二维图像也会发生相应的变化,我们通过对连续帧间的变化进行实时计算,当有运动目标时会引起帧差。我们的系统中采用10级帧差法,可以根据对检测灵敏度的要求设置报警级别,同时对监控区的不同范围采用不同的权值(各范围的权值如图5-13所示),以提高运动目标的判断准确度。由于实行帧差算法要求很高的实时性,对连续采集的大量图像信号要即使处理,否则影响测试结果,我们用了处理器NIOS II Core2单独完成这份工作。

                                

5-13 帧差法权值图

我们用SDRAM作为摄像头采集的图像信号缓存,这里采用Teraisc公司提供的4 Ports SDRAM Controller IP核,将CMOS摄像头采集经转换的RGB信号以16位存储于SDRAM中。因为DE1VGA输出都是4位数据,这里RedBlue信号都以4位存储,而我们的系统在做图像处理时会大量用到Green信号故用8位存储以提高精度。在SDRAM中存储连续的两帧图像信号,通过4 Ports SDRAM Controller IP的两个输出Port同时传输给NIOS II Core2处理。其中的一个输出Port再接VGA口。如图5-14所示。

                                图5-14 图像存储关系

经过我们多次反复对系统进行测试,可以很好的检测运动目标,在10范围内有人或异物闯入时能准确的检测,并发送提示信息于手机。

 

10.       UCOS II 操作系统多任务调度

 

     我们在Nios II Core 1上运行UCOS II实时操作系统,使方便的管理系统多任务运行。我们设计7个任务和两个中断,任务以及中断间的通信通过信号量、邮箱、全局变量等实现。任务及中断间关系如图5-15所示。

Task1XY方向加速度、倾角计算以及判断

Task2:震动能量的计算及判断

Task3:运动目标检测结果采集

Task4XY方向加速度、倾角提示短信发送

Task5:震动能量提示短信发送

Task6:运动目标检测结果短信发送

Task7JPG彩信发送

ISR1:  Nios II Core 2 发送来检测到运动目标消息

ISR2JPEG编码完成

5-15 操作系统任务及中断间关系图

 

11.       中文短信和彩信的发送

 

     设计中通过AT指令有效的对GPRS模块进行操作,其中,短信的发送完全通过AT指令实现,而彩信的发送通过AT指令和嵌于项目系统中的PPP协议栈实现。

我们采用了PDU方式发送中文短信提示,这里简单介绍中文短信发送步骤:

(1)       AT+CMGF=0;          //设置短信发送模式为PDU模式。

(2)       AT+CMGS=LENGTH    // LENGTH为(3)中PDU码的长度,含接收端手机号码

(3)       中文短信的UNICODE    //每个中文对应4位的UNICODE

(4)       CTR-Z                    //短信结束符发送

    彩信的发送比短信要复杂,需要PPP协议栈实现彩信数据的无线网络通讯,实现彩信的发送。其主要过程为:

1)根据PPP协议组装一个MMS 

2)配置无线模块参数,进行一系列初始化,建立GPRS连接 

3)建立WAP连接 

4)把这个MMS发通过建立的GPRS连接,在PPP协议下完成彩信数据的发送。

MMS的发送协议格式如下表所示:

 

MMS的发送过程和SMS/MMS的程序流程如图5-16所示

     

                      图5-16 MMS的发送过程和SMS/MMS的程序流程

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(Draft / 2009-09-15 00:01:57)

6. 设计特点 (Preliminary Paper)

       

1.使用软件积分、软件微分使系统对汽车传感器的采集信号进行处理,提高系统的准确度,减小系统误报率。

       2.图像预处理采用硬件实现,能够提高处理速度,相比于软件实现提高了帧率,使输出流畅。

3.使用FPGA硬件实现JPEG编码器,可以根据不同的需求修改参数,使用硬件的方式实现压缩算法又便于修改算法,具有软件实现的柔韧性,同时提高了压缩速度。

4.系统可以通过VGA口直接输出视频图像,便于实时监控。

5.异构多核体系使系统的运算能力加强,各处理器负责相应的任务处理,大幅度提高了系统处理多任务速度的同时提高了系统的稳定性。

6.采用RTOS UC/OS II,使得系统的实时性得到保证。

7. 采用GPRS无线通信方式,传输快、永远在线,提高了系统的安全性,汽车在报警的同时让用户和监控中心即时收到监控信息。

8. 采用SOPC设计方法,将处理器、数字信号处理模块、其他功能模块集成到一块FPGA上,提高了系统的稳定性,适应于各种工作环境。 

 

(Revision: 2 / 2009-09-15 00:02:49)

7. 总结 (Final Project Paper)

    我们本次设计利用SOPC较好的完成了系统的设计任务,实现了对汽车的远程监控功能,在一些细节上我们还需努力改进。通过本次大赛,我们体验了SOPC的软硬件协同设计设计流程。设计中,我们感受到异构多核体系结构在嵌入式应用中大大提高了系统的处理能力和速度。

我们的SOPC系统中:自制了汽车传感器采集板,保证了要测试信号的采集。设计CCD Controller IP,使系统可以通过软件灵活控制摄像头,同时读取图像数据。修改VGA Controller 使图像信号在输出的同时协调处理器对2帧图像的采集。对图像做Sobel算子边界检测预处理,通过Nios II Core 2实现运动目标检测。使用了双Nios II处理器作为核心,通过Mailbox核进行通信,同时在Core 1上运行UC/OS II操作系统,实时管理所有任务的运行调度。设计硬件的JPEG编码器,提高了编码速度。通过GPRS模块发送短信和彩信与客户端。较好的完成了整个SOPC软硬件设计。

此次设计中,熟悉了Altera公司的开发环境,SOPC Builder的高度集成,大量的IP 核加快了系统的开发。SignalTap II给软硬件协同调试带来了方便。

最后,感谢Altera公司给我们小组提供了这样一次机会,使我们体验了SOPC的设计方法。很高心能让我们的想法变成最终的实现。

 

(Draft / 2009-09-15 00:03:18)