基于GPRS的图像数据无线传输系统研究

2017-11-15 11:15余金遥孙先松
电脑知识与技术 2017年28期

余金遥+孙先松

摘要:为了实现图像数据的远距离无线传输,满足在无人干预的情况下仍然能实时获取各种图像信息,该文针对当前无线传输的多样性,进行了基于GPRS的无线图片传输的研究。该研究采用STM32F103作为主芯片、以SIM900A作为无线传输模块、OV7670进行图片信息的采集,详细论述其工作原理以及图片数据传输的实现。

关键词:SIM900A;无线图像传输;STM32F103;OV7670

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2017)28-0201-03

当代电子行业和通讯技术飞速发展,无线通讯技术已经和我们的日常生活密不可分。日常常见的主要有WIFI、ZigBee、bluetooth等无线通信技术,这些技术都是以短距离传输为主,对于工作环境也有较高要求。而GPRS支持远距离无线传输,在很多环境恶劣、工作节点较为分散、工作距离远的场合被广泛使用。

多媒体技术也是当今社会发展的一大热点,科学技术的飞速发展也加快了二者的融合,为人们的生活带来了更大的便捷。人们也不再仅仅只满足之前的文字和语音信息,对图片甚至是视频的需求也愈发的强烈。所以,针对该课题的研究有着较高的实用价值,对实际应用有着十分重要的意義。

1 总体设计方案

在平常生活当中,我们身边对于这种装置的需求很小,平常所使用的都是WIFI、Bluetooth等无线技术,但是在某些场合,比如,农田、高速公路等相对偏远的工作环境时,该远距离无线传输技术能起到更到的作用,在农田里面可以用来给专家进行远距离的现场指导,防止灾害蔓延,高速公路上可以随时传回发生交通事故地段的实时图像,以便随时监管。

在总体设计中,所有工作节点均挂有摄像头和GPRS无线传输模块,节点可以有规律的间隔一定时间进行现场拍摄,也可以接受命令,受控制的进行图片拍摄,然后将所拍摄的图片由无线模块经过GPRS网络传输至上位机终端,这里的上位机终端,可以是手机,也可以是电脑端的上位机软件等,此处,采用电脑端的上位机软件作为终端。

该方案主要是利用STM32芯片控制摄像头对现场进行拍摄,然后通过GPRS模块发送至上位机终端,以便用户获取信息。

2 硬件设计

根据需求,采用STM32F103C8T6作为主芯片,该芯片具有高速,抗干扰能力强等优点,也能够添加其他外设,以便提供更多功能。摄像头选用带FIFO的OV7670模块,在获取图片数据时,直接对模块的数据FIFO存储器进行读操作。GPRS模块选用SIM900A。SIM900A具有标准的AT命令接口,通过串口与芯片连接,二者可以很好进行通信。

本次设计的原理框图如图1所示。该系统由四大模块组成:电源供电模块、芯片最小系统、GPRS模块以及摄像头模块。芯片最小系统作为该系统的核心模块,主控芯片扮演着大脑的角色,控制其他模块的协调运行以及图片数据流的传输;电源供电系统通过转换芯片得到对应的电压给各个模块供电工作;整个系统由摄像头模块采集图片数据,SIM900A模块发送图片数据至服务器端。各个模块具体分析如下:

1) 电源供电模块:对于一个运行系统来说,电源是一个系统的灵魂,电源不稳定,或者是交流分量过大等都会严重影响电路运行的稳定性。通过查阅器件的用户手册可知各器件之间的工作电压不一致,所以器件的供电得分开得到,再考虑到由于使用了开关电源供电,因为开关电源文波较大,首先使用DC-DC模块TPS5430得到文波较小的5V电源,如图2所示。再将5V电源分别通过MIC29302WU和AMS1117得到4.1V和3.3V电源,分别给芯片和GPRS模块供电,这里摄像头和主控芯片电源一样,都为3.3V。由于AMS1117的外围电路较为简单,所以在此不做赘述。

GPRS模块的电源为4.1V,由芯片MIC29302WU接上外围器件得到,其电路图如图3所示,其电压计算公式如式(1)所示。

2) 芯片最小系统:最小系统由STM32F103作为核心芯片,另外加上晶振电路和复位电路。在此不过多赘述。

3) GPRS模块:该部分实现数据的无线传输,部分电路图如图4所示,它通过串口UART(PA9与PA10)与主控芯片相连进行通信,硬件上还包含卡座、天线等其他外围电路。硬件电路主要注意GPRS模块的供电电源为4.1V,需要经过转换芯片得到相应的匹配电源才能给模块供电。主控芯片通过串口发送对应的AT指令,控制GPRS模块工作、休眠、连接网络以及发送数据等功能,通过GPRS网络将采集的图片发送至服务器端并显示出来。

4) 摄像头模块:摄像头模块OV7670兼容IIC接口,通过IIC与芯片连接,主控芯片STM32F103C8T6通过IIC接口控制OV7670进行图像数据的采集。该摄像头模块引出18个引脚,包括电源、数据、时钟等引脚,在硬件电路连接上主要注意以下两点:

(1) 摄像头模块对时钟的要求较高,最好是通过芯片输出一个8M的时钟提供给模块;

(2) IIC的data引脚一定要接上拉电阻,也可在芯片引脚配置时,设置成上拉输入,否则数据传输会失败。

3 软件设计

3.1 系统软件设计

在本系统中,SIM900A和OV7670均为模块化,接下来就只用再做一系列的初始化以及调用相应模块的函数方法即可。如图5为软件实现流程图。

该系统主要工作模式如下:在连接网络的情况下,服务器端下发拍照命令,GPRS模块接收命令,然后通过串口传递命令到主控芯片,触发中断,然后芯片控制摄像头拍摄照片,通过IIC采集图片数据,再由SIM900A将图片发送至服务器端并将图片显示出来。

软件的核心部分主要包括OV7670的图片数据采集以及SIM900A无线数据的传输,该两部分均采用模块化处理,封装出相应的函数接口,在使用的时候调用对应的接口即可。endprint

3.2 服务器端软件设计

服务器端软件可以对外提供网络接口,SIM900A模块可以通过GPRS网络拨号与服务器连接,并通过SIM900A模块自带的TCP/IP网络协议栈完成与服务器之间的图片数据交互。基于以上要求,设计了通信软件。终端设备连接至服务器,一个服务器可与多个终端设备连接,监控多个终端数据。服务器采用普通Internet上的主机方式,作为TCP服务器端,可从外部访问,其上运行TCP端口监听程序,接收来自移动台的TCP数据包,并向移动台发送回应数据[4]。

3.3 SIM900A上线流程设计

SIM900A模块对外提供串口接口,通过3线或者9线串口都能与之通信。微处理器可通过发送AT指令询问模块状态以及控制模块做出相应操作。软件编程上,使用状态机编程的方式实现SIM900A的上线流程,由于编写的程序过长,在此只说明其上线流程,大致分为以下几个步骤:(1)进行网络注册前的准备工作,包括检查模块以及SIM卡是否正常,和查询SIM卡的信号值,以便进行网络注册;(2)进行网络注册和设置GPRS业务;(3)设置APN接入点;(4)设置要连接的服务器类型和端口号,进行IP拨号;(5)待连接到远端服务器成功,并进入透传模式后,可随意发送数据。

3.4 OV7670使用设计方法

摄像头模块OV7670对外提供了SCCB接口,STM32F103通过该接口与之连接,通过SCCB控制模块,输出各种影像数据。本次采用QVGA的图片数据格式作为输出格式,即图片的分辨率为320*240。

根据该摄像头的使用手册,其工作的像素时钟可以高达24Mhz,如果用单片机的IO口直接对数据进行操作,数据会很容易遗漏。然而该模块提供了数据FIFO,单片机获取图片数据,可以通过操作该FIFO数据队列,即可稳定的对数据进行读写,获取图片数据便更加方便,这样一来即需要单片机的IO口需要很高的读写速率,也不会占用太多CPU资源。可以说,带FIFO的OV7670模块大大提高了微处理对图像数据的收集。此次所使用的摄像头模块所带有的FIFO队列的容量是 384K 字节,足够存储 2 帧 QVGA 的图像数据。

软件编程方面,带FIFO的OV7670模块的图片数据处理如下所示:在进行图片数据采集之前,先对SCCB接口进行时序的配置;然后再对摄像头模块相关寄存器进行配置,比如模块始终、输出格式等,在配置寄存器时,最好将配置过的寄存器的值通过串口打印出来,确保寄存器配置的正确性;接着根据模块使用手册里面的模块数据读取时序,获取模块数据即可。此时获取的模块数据,显示出来有可能不清楚,所以还需要重新配置摄像头焦距、分辨率等,调整设置各项参数从而得到清晰的图片。对于图片的拍摄流程,处理方式为时间片轮询和中断拍照方式,一方面设置定时器时间,时间轮询到则拍照并将数据上传至服务器;另一方面,由按键控制外部中断进行拍照。

3.5 图片数据的处理方式

图片数据的数据量较大,若在传输过程中丢掉数据,会影响整个图片的显示。为保证数据传输的可靠性,必须进行流控制。在处理图像数据的传输的时候采用了两种控制方法。1)数据分包法。顾名思义就是将一包数据分开成几包甚至是十几包发送。分开的每一包分别加上协议头与协议尾,再给到串口,写入GPRS模块缓冲器,由模块通过网络发送。服务器端接收数据包,再将数据整合还原成一整包數据。数据分包法保证了每一分包数据安全不遗漏的传输至目的地,虽然花费的时间比较多,但是能更好地保证数据的安全传输,能更好地适用于数据量大的数据传输。2) 硬件握手法。该方法采用两个硬件信号RTS/CTS作流控制。当系统工作时,通过控制串口中RTS和CTS两个硬件信号控制数据流的发送与停止。此次采用数据分包法进行数据的传输,硬件握手法在此不作过多赘述。该系统将从摄像头模块的FIFO中获取的数据进行分包,分若干次传输给SIM900A,将数据分包传输给服务器。

4 结束语

本文主要研究了一种基于GPRS网络的无线图片传输技术,该图像无线传输系统以ST公司的STM32F103C8T6为硬件平台,控制摄像头模块OV7670进行现场拍照,并控制模块SIM900A通过GPRS网络将收集的图片数据传输到用户终端。该系统能够满足人为远距离控制并准确的得到相关实时图片信息的要求,成本低, 维护方便,具有广阔的应用前景。

参考文献:

[1] 崔波亮, 王耀南, 等. 基于 GPRS 无线传输的图像监控终端实现[J]. 计算机测量与控制, 2008(12):1865-1867.

[2] 赵杰, 盖志刚, 等. 用于海洋水文数据无线传输的 GPRS 模块设[J]. 气象水文海洋仪器, 2011(4):49-52.

[3] 潘琢金,李冰,罗振,杨华. 基于 STM32 的 UART - WIFI 模块的设计与实现[J]. 制造业自动化,2015(07):1270130.

[4] 王祖林,汪文婷. GPRS传输静态图像系统的设计与实现[J]. 电子应用技术, 2006(4):37-44.

[5] 王娃女. 基于嵌入式Linux的GPRS远程监控系统研究[D]. 青岛:青岛大学,2011.

[6] 彭胜民, 周修理, 等. 基于 ARM 的土壤含水率无线传输系统设计[J]. 农业机械学报, 2009, 40(S1):241-243.

[7] 王建, 梁振涛,郑文斌, 刘志军. STM32 和 OV2640 的嵌入式图像采集系统设计[J]. 单片机与嵌入式系统应用,2014(09):46-8.

[8] 汤安宁, 吴才聪, 等. 农业移动终端无线数据传输技术[J]. 农业机械学报, 2009, 40(增刊):244-247.

[9] SIM900A_AT 命 令 手 册 _V1.03[EB/OL]. http://www.docin.com/p- 233740459.html.

[10] 孙作雷,童可浚,曾连荪.基于视觉传感模块0V7670的颜色导航智能车设计[J].电子测试,2013(5):102-104.

[11] 刘良, 赖万昌, 等. 基于 ARM9 的 GPRS 图像传输系统的设计与实现[J]. 计算机工程与设计, 2010, 31(7):1477-1480.

[12] 甘志伟,闫凯.基于SIM900A的无线数据采集卡设计与实现[J]. 通信技术,2013(1):55-58.

[13] 带FIFO的OV7670模块使用手册_图文_百度文库[EB/OL]. https://wenku.baidu.com/view./e42aaf663968011ca3009175.html.

[14] 刘婵媛. 基于物联网的智能家居系统研究与实现[D]. 北京:北京邮电大学. 2012.endprint