您当前的位置:五五电子网电子知识单片机-工控设备ARM单片机基于ARM 的远程无线监控系统的设计与实现 正文
基于ARM 的远程无线监控系统的设计与实现

基于ARM 的远程无线监控系统的设计与实现

点击数:7465 次   录入时间:03-04 12:00:56   整理:http://www.55dianzi.com   ARM单片机

  随着计算机、网络、通信技术的发展,以及多媒体视频技术的不断完善,基于网络的第三代远程网络视频监控系统取得了长足的发展。新一代的监控系统以网络为依托,以数字视频的压缩、传输、存储和播放为核心。系统采用嵌入式多任务操作系统、高效的视频压缩芯片和功能强大的嵌入式处理器,将视频压缩和传输处理工作全部内置到芯片上,前端摄像机送来的视频信号数字化后经过压缩、打包等过程变成基本网络协议的视频流,通过网络的传输,视频流发送到接收端。视频接收端可利用软件进行解码,在PC上进行显示和处理。

  系统硬件平台本系统是以PXA270为微处理器的ARM开发平台组成。PXA270是一个32位处理器,可在312MHz、416MHz、520MHz和624MHz这4种不同的时钟频率下运行。用在高性能、低功耗、便携、手持式的设备中。它加入了Intel Xscale技术,具有调节动态电压和频率以及完善的电源管理功能,提供了工业界领先的MIPS/mw性能。外接网卡接口与处理器直接连接,实现以太网通信,可利用TFTP协议对内核和根文件系统的映像进行快速下载。有3个UART分别是标准、蓝牙和全功能的UART,可以通过全功能UART与GPRS DTU相连接进行信号传输。3个USB接口,可以与USB摄像头相连接进行图像采集。USB摄像头采用的是以OV511为芯片的网眼V2000摄像头。

  GPRS DTU是一款基于GPRS 网络的无线数据传输终端设备,提供全透明数据通道,网络覆盖范围广能使用移动电话的地方就可以使用支持数据透明传输与协议转换,支持备用数据中心,点对点互连功能,支持永远在线、空闲下线和空闲掉电3种工作方式,具有短信和电话唤醒功能,支持断线自动重连功能。

  系统总体设计整个监控系统主要是由ARM、GPRS DTU、USB摄像头和PC组成。ARM开发板以Linux操作系统编写驱动,通过指令调度利用USB摄像头进行图像采集,将采集好的图像通过GPRS DTU进行无线传输,PC与因特网相连接,接收到GPRS DTU传输过来的图像,通过VC++编写上位机,可以看到监控点传输的图像。操作人员可以通过短信或电话对监控端进行控制,可以使监控端随时处于工作或关闭状态,这样一来不仅可以随意对监控端进行控制还可以节省流量,经济实惠,特别适用于一些对动态图像要求不高的环境,系统结构框图如图1所示。

图1 系统结构框图

                       
  系统软件设计

    本系统采用Linux为操作系统,它是一个多用户、多任务操作系统;具有良好的开放性,遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。具有完善的内置网络。Linux在通信和网络功能方面均优于其他操作系统。为用户提供了强大完善的网络功能。根据程序开发的需要对Linux操作系统进行裁减与编译,将制作好的Linux操作系统通过JTAG下载到ARM开发板里,就可以使用arm-linux对ARM开发板进行控制。


      图像的采集是通过ARM-Linux调度Video4Linux和影像设备驱动程序来进行视频捕获。Video4Linux是Linux影像系统与嵌人式影像的基础,是Linux 内核里支持影像设备的一组API,Linux在多媒体上的应用是目前非常热门的研究领域,其中最关键的技术则是Linux的Video4Linux。在Linux内核中对Video4Linux进行配置,如图2所示。配置好以后通过bootloader下载到ARM-Linux里。USB摄像头使用的是OV511芯片的网眼V2000摄像头。在Linux操作系统里配置好OV511芯片的驱动,如图3所示。

图2 配置Video for Linux

图3 配置USB OV511摄像头


      通过过bootloader下载到ARM-Linux里,这样就可以通过USB摄像头进行图像采集,图像采集流程如图4所示。

      采集到的图像为BMP格式,图像太大不利于网络传输,需要进行JPEG压缩,JPEG压缩技术十分先进,它用有损压缩方式去除冗余的图像数据,在获得较高的压缩率的同时能展现十分丰富生动的图像,非常适合于视频网络传输。基本的JPEG算法由以下步骤完成:(1)通过离散余弦变换(DCT)消除数据冗余;(2)使用量化系数矩阵对离散余弦变化系数进行量化;(3)对量化后的系数进行编码,使其熵最小,熵编码通常采用hufFMan可变字长编码。产生有损图像压缩的原因主要发生在第2步。JPEG标准是在变换编码的基础上,综合应用了DCT和哈夫曼编码2种手段,达到了很好的图像压缩效果。基于离散余弦变换DCT的编码方法,是JPEG算法的核心内容[5]。在图像采集的时候需要用到JPEG库,所以需要先安装JPEG库。

图4 图像采集流程图



www.55dianzi.com

在/usr/LOCal/man/manl目录下会生成cjpeg.l、djpeg.l、jpegtran.l、rdjpgcom.l、wrjpgcom.l、snapscreenshop.l六个文件,在/usr/local/arm/3.4.3/arm-linux/lib目录下会生成libjpeg.a、libjpeg.la、libjpeg.so、 libjpeg.SO.62、libjpeg.so.0.0五个函数库,libjpeg.so.62、libjpeg.so.0.0就是我们需要的库,将它拷贝到arm-linux里,这样ARM就支持JPEG压缩格式的图像。图像压缩的一些重要函数如下:


char *filename = "first.jpeg";//指定压缩后的图像所存放的目标文件
struct jpeg_compress_struct cinfo;//申请并初始化JPEG压缩对象
struct jpeg_error_mgr jerr; // 声明错误处理器
JSAMPROW row_pointer[1];  // 一行位图
int  row_stride;          // 每一行的字节数
int line; //每一列的字节数
jpeg_create_compress(&cinfo);
cinfo.image_width = width;      // 图像的宽、高和深度
cinfo.image_height = height;
cinfo.input_components = depth;         
cinfo.in_color_sPACe=JCS_RGB;// 彩色图像
jpeg_set_quality(&cinfo, JPEG_QUALITY, TRUE ); // 设定压缩质量
cinfo.dct_method=JDCT_FASTEST;  // DCT离散余弦变换
    jpeg_start_compress(&cinfo, TRUE); //开始进行JPEG图像压缩
    while (cinfo.next_sCANline < cinfo.image_height)//对每一行进行压缩
jpeg_destroy_compress(&cinfo); //释放压缩工作过程中所申请的资源
采集到的图像如图5所示。如果要进行连续帧的采集由grab_fd.frams来确定需要采集的帧数,最多支持一次采集32帧。        

        图5 采集的图像

             
GPRS DTU通过全功能串口与ARM开发板相连接,在arm-linux的指令调度下将ARM采集到的图像通过串口通信传输到GPRS DTU。arm-linux是通过设备文件访问串口的,在访问具体的串行端口时,只需打开相应的设备文件即可。串行端口Port1和Port2对应的设备文件分别为/dev/ttyS0和/dev/ttyS1。若要使用串口进行通信必须在通信两端设置好串口的属性,包括数据传输的波特率、传输的数据格式、是否有奇偶校验位、流控方式等。在Linux下进行串口设置,涉及一个重要的数据结构struct termios,设置串口波特率struct termios Opt,设置串口数据位
struct termios Opt;
    Opt.c_cflag &= ~CSIZE; //屏蔽字符大小位
    Opt.c_cflag |= ~CS8;    //选择8位数据位
设置串口校验位与此相关的宏定义有:
#define PARENB  0000400  //PARENB控制是否使能奇偶校验
#define PARODD  0001000  //PARODD控制使用奇校验还是偶校验
设置串口停止位与停止位相关的宏定义只有CSTOPB,设置termios结构的.c_cflag成员即可。
 #define CSTOPB 0000100
  Opt.c_cflag &= ~CSTOPB; //1位停止位
 Opt.c_cflag |= ~CSTOPB; //2位停止位
设置串口波特率:
串口使用open函数执行打开操作,open( )函数带有两个参数,其中参数1为要打开的设备文件名,参数2为打开方式。它们的含义如下。


O_RDWR:既可读也可写。


O_NOCTTY:告诉嵌入式Linux,该程序不想成为此端口的“控制终端”。如果应用程序不强调这一点,那么任何输入都会影响程序的执行。

[1] [2]  下一页


本文关键字:无线监控  ARM单片机单片机-工控设备 - ARM单片机