基于GPRS的无线图像监控系统软件设计.docx
《基于GPRS的无线图像监控系统软件设计.docx》由会员分享,可在线阅读,更多相关《基于GPRS的无线图像监控系统软件设计.docx(18页珍藏版)》请在冰豆网上搜索。
![基于GPRS的无线图像监控系统软件设计.docx](https://file1.bdocx.com/fileroot1/2023-2/25/14ea23c2-38b9-4bdf-890f-5c814c97e581/14ea23c2-38b9-4bdf-890f-5c814c97e5811.gif)
基于GPRS的无线图像监控系统软件设计
内蒙古科技大学
本科毕业论文
论文题目:
基于GPRS的无线图像监控系统软件设计
院系:
物理科学与技术学院
专业:
应用物理
班级:
08应用物理
姓名:
xxx
学号:
0809810016
指导教师:
xxx
二零一二年三月
摘要
当代随着科技的发展,图像监控以其直观、方便、信息内容丰富而被广泛应用于许多重要场合,成为安全监控的主要手段;再加上通信行业的不断完善,无线监控系统也随之发展起来。
本课题主要研究的就是基于GPRS的无线远程监控系统,简单讲就是图像的采集、存储和发送的过程,在这个系统中硬件选用到了C328-7640数字摄像头、ATmega16单片机和GPRS通信模块,其中ATmega16单片机是其它两个模块之间的桥梁。
该系统是利用ATmega16单片机控制C328-7640数字摄像头采集图片,同时将采集到的图片暂存于ATmega16单片机内部,然后再通过GPRS通信模块把存储器中的图片发送出去。
本系统所用的软件开发环境是在EW23环境下进行编程,C语言,连接,在C—SPY环境下进行调试,下载是在连接之后,调试之前,通过计算机的串口下载的。
关键字:
GPRSC328-7640数字摄像头ATmega16单片机
Abstract
Contemporarywiththedevelopmentofscienceandtechnology,imagemonitoringwithitsintuitive,convenient,theinformationcontentisrichandhasbeenwidelyusedinmanyimportantoccasions,asthemainmeansofsafetymonitoring;coupledwiththecommunicationsindustry,andconstantlyimprove,wirelessmonitoringsystemisalsodeveloping.
ThemainresearchtopicisthewirelessremotemonitorsystembasedonGPRS,simplyspeakingistheimageacquisition,storageandtransmissionprocess,inthissystemhardwareselectiontotheC328-7640digitalcamera,ATmega16SCMandGPRScommunicationmodule,whereinATmega16SCMistheothertwomodulestobridgethegapbetween.ThesystemistouseATmega16SCMcontrolC328-7640digitalcamerapicturecollection,atthesametimethecollectedimagestoredinaATmega16chip,andthenthroughtheGPRScommunicationmoduletosendoutthepicturememory.ThesystemusedinthesoftwaredevelopmentenvironmentistheenvironmentinEW23programming,Clanguage,connected,inC-SPYenvironmentfordebugging,downloadisinconnectionwith,beforecommissioning,throughthecomputerserialporttodownload.
Keyword:
GPRSC328-7640ATmega16single-chipdigitalcamera.
目录
绪论1
1.主要技术和设备简介2
1.1GPRS技术简介2
1.2ATmega16单片机的介绍2
1.3C328-7640摄像头简介4
2.系统介绍4
3.软件开发平台5
3.1图像的采集5
3.1.1系统初始化5
3.1.2ATmega16单片机对摄像头的控制工作6
3.2图像的处理:
9
3.2.1图像处理内容及步骤9
3.3图像的发送:
10
3.3.1系统初始化10
3.3.2ATmega16单片机对GPRS模块的控制工作11
4.系统调试13
4.1调试环境13
4.2调试步骤14
结论15
参考资料及文献17
绪论
随着人们安全意识的提高,各种监控被广泛用于日常生活,工业生产,公共场合中,图像监控以其直观,方便,信息丰富等优势受到越来越多人的欢迎!
在很多的监控场合有线网络可能到达不了,或者成本太高,或者由于环境的恶劣不方便采用有线网络,对于这些场合,最好的选择就是通过无线网络来达到监控的目的,而利用分布广泛的GPRS网络,可以很容易的实现无线远程监控,采用GPRS技术来实现无线图像监控,成本十分低廉,必将收到用户的青睐。
本文研究的是图像的采集、存储以及图像的发送过程,其中通过GPRS模块的图像发送过程是该课题研究的重点。
作者主要承担前端软件的实现过程。
1.主要技术和设备简介
1.1GPRS技术简介
GPRS是通用分组无线服务技术的简称,它是在模拟技术和全球移动技术CSM基础上发展起来的,GPRS可说是GSM的延续。
GPRS与现有的CSM语音系统最根本的区别是,CSM是一种电路交换系统,而GPRS是一种分组交换系统,因此,GPRS特别适用于间断的,突发性的或频繁的,少量的数据传输,也适用于偶尔的大数据量的传输,这一特点正适用于大多数移动互联网的应用。
GPRS具有以下优点。
永远在线:
只要激活GPRS应用后,将永远在线,不会掉线,类似于一种无线的专线网络。
按流量计费:
虽然保持永远在线,但不必担心费用问题,因为只有产生通信流量是才计费,它是一种面向使用的计费,计费方式更科学合理。
快速登录:
全新的分组服务,无需以往长时间的拨号建立连接过程。
自如切换:
话音和数据业务可以切换使用,电话上网两不误。
高速传输:
GPRS最高理论传输速度为171.2kbit/s目前使用GPRS可以支持40kbit/s左右的传输速率。
1.2ATmega16单片机的介绍
ATmega16AVR内核具有丰富的指令集和32个通用工作寄存器。
所有的寄存器都直接与算逻单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。
这种结构大大提高了代码效率,并且具有比普通的CISC微控制器最高至10倍的数据吞吐率。
ATmega16有如下特点:
16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512字节EEPROM,1K字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP封装)的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及六个可以通过软件进行选择的省电模式。
工作于空闲模式时CPU停止工作,而USART、两线接口、A/D转换器、SRAM、T/C、SPI端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态;ADC噪声抑制模式时终止CPU和除了异步定时器与ADC以外所有I/O模块的工作,以降低ADC转换时的开关噪声;Standby模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby模式下则允许振荡器和异步定时器继续工作。
ATmega16引脚名称及引脚功能简介
VCC电源正,
GND电源地
端口A做为A/D转换器的模拟输入端。
端口B为8位双向I/O口,具有可编程的内部上拉电阻。
端口C为8位双向I/O口,具有可编程的内部上拉电阻
端口D为8位双向I/O口,具有可编程的内部上拉电阻
RESET复位输入引脚。
持续时间超过最小门限时间的低电平将引起系统复位。
XTAL1反向振荡放大器与片内时钟操作电路的输入端。
XTAL2反向振荡放大器的输出端。
AVCCAVCC是端口A与A/D转换器的电源。
不使用ADC时,该引脚应直接与VCC连接。
使用ADC时应通过一个低通滤波器与VCC连接。
AREFA/D的模拟基准输入引脚。
本芯片是以Atmel高密度非易失性存储器技术生产的。
片内ISPFlash允许程序存储器通过ISP串行接口,或者通用编程器进行编程,也可以通过运行于AVR内核之中的引导程序进行编程。
引导程序可以使用任意接口将应用程序下载到应用Flash存储区(ApplicationFlashMemory)。
在更新应用Flash存储区时引导Flash区(BootFlashMemory)的程序继续运行,实现了RWW操作。
通过将8位RISCCPU与系统内可编程的Flash集成在一个芯片内,ATmega16成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。
ATmega16具有一整套的编程与系统开发工具,包括:
C语言编译器、宏汇编、程序调试器/软件仿真器、仿真器及评估板.
1.3C328-7640摄像头简介
C328可以被用来与无线设备或是PDA主机连接,完成视频捕捉及JPEG格式的图像压缩功能。
用户只需要从主机发出视频捕捉命令就可以得到一幅完整的被捕捉图像的信息在帧,然后JPEG引擎将这幅图片压缩并传送给主机。
特性如下
(1)是一种小型化,低成本,低功耗的应用在高分辨率串行总线安全系统或是PAD附件中的摄像模块。
(2)提供EEPROM,存储外部主机经由RS232总线写入的命令。
(3)异步串行接口,提供静态图片115.2Kbps的传输速度,提供160x128大小影像每秒0.75帧的传输速度。
(4)在有全景象OV740/8VGA色彩传感器。
(5)内置JPEG多媒体数字信号编解码器,针对不同的图像分辨率的要求。
(6)内置了一些特定的电路,使之具有VGA,CIF,SIF,QCIF,的图像分辨率。
(7)内置色彩转换电路,可以形成2灰度,4灰度,8灰度,12位RGB或是标准JPEG格式的图像。
(8)不需要外部DRAM的支持。
UART
UART0特点:
1)UART0是一个异步、全双工串口;2)UART0具有增强的波特率发生器电路,波特率由定时器1工作在8位自动重载方式产生;
功能:
使用串口UART0接收上位机发送的数据,当接收到8个连续数据后,取反LED控制,并将数据原封不动地发送回上位机
UART1:
通用异步收发器.UART是用于控制计算机与串行设备的芯片。
1就是指1号芯片。
2.系统介绍
整个系统选用了比较流行的单片机ATmega16、数字化摄像头C328-7640和GPRS通信模块。
整个系统由图像的采集、图像的处理和图像的发送三个过程组成。
图像的采集过程是通过ATmega16单片机控制数字化摄像头C328-7640完成的,C328-7640自身已经封装好了一定的工作命令,当ATmega16单片机通过通信接口给C328-7640成功发送命令,且C328-7640也顺利接收到了该命令,那么C328-7640便会依据该命的指示进行工作了。
实现图像的采集,要通过好几条的命令字符才能实现。
当摄像头采集到图片后,ATmega16单片机会继续控制摄像头将将采集到的图片数据压缩分包然后再传给单片机,单片机便会把这些数据信息存储FLASH存储器中。
ATmega16单片机与GPRS网络模块相连是为了实现图片的发送过程,MSP430单片机是通过AT命令控制GPRS通信模块工作的,GPRS通信模块只要顺利接收到ATmega16单片机发来的AT命令,GPRS通信模块就会通过GPRS网络将图片发送出去。
3.软件开发平台
3.1图像的采集
图像的采集过程,是采用ATmega16单片机和数字化摄像头C328-7640这两个模块实现的。
数字摄像头C328-7640自身已经封装好了一定的工作命令,当单片机通过串行接口给C328-7640成功发送命令,且C328-7640也顺利接收到该命令时,那么C328-7640便会依照该命的指示进行工作了。
在实现图片采集时,单片机是通过UART0口和数字摄像头C328-7640连接,采用异步传输通信,来完成整个图片的采集过程。
3.1.1系统初始化
系统初始化子函数的程序:
main()//主函数
{
WDTCTL=WDTPW+WDTHOLD;//关闭看门狗
BCSCTL1&=~XT2OFF;//open8M
do//判断晶振失效
{
FG1&=~OFIFG;
for(i=0xff;i>0;i--);
}
while((IFG1&OFIFG)!
=0);
BCSCTL2|=SELM1+SELS;//MCLK=ACLk=8M,ACLK=32.768k
Delay_4us(100);//延时437us,以便晶振启动。
可以自己任选时长
UXD0();//串口主函数
_EINT();//通用中断允许
}
UART0串口寄存器的初始化程序
voidUXD0(void)//串口调用子函数
{
UCTL0&=~SWRST//SWRST复位,USART允许
UCTL0=0x10//8位数据位1位停止位,无校验
UTCTL0=SSEL1;//UCLK=SMCLK=8M
UBR00=0x2B;//8Mhz/14400-0x22B-------波特率是14400;低八位UBR10=0x02;//高八位
UMCTL0=0xAA;//位调整,小数部分
ME1|=URXE0+UTXE0;//使能接收数据使能发送数据IE1|=URXIE0;
P3SEL|=0x30;//选用的是UXD0口,而不是UXD1口
P3DIR|=0x10;
}
3.1.2ATmega16单片机对摄像头的控制工作
(1)ATmega16单片机要控制摄像头工作,首先要与其建立同步,下图便是摄像头与主机建立同步的程序流程图和相应的程序:
注意:
“主机给摄像头建立同步”该命令系统最多只允许发送60次
图3.3建立同步
a.主机与摄像头建立同步
执行命令:
Sync[6]={0xAA,0x0D,0x00,0x00,0x00,0x00};
回复:
Ack[6]={0xAA,0x0E,0x00,0x00,0x00,0x00};
该部分最多只允许循环60次,如果循环60次之后还未成功,那么就跳出程序,重新开始。
b.摄像头与主机建立同步
执行命令:
Sync[6]={0xAA,0x0D,0x00,0x00,0x00,0x00};
回复:
Ack[6]={0xAA,0x0E,0x00,0x00,0x00,0x00};
(2)ATmega16单片机控制摄像头拍摄照片,并将拍摄到的照片转存到MSP430单片机内。
其程序流程如下图所示:
图3.4拍摄图片
a.设置图像为JPEG格式,分辨率为640×480
执行命令:
Initial[6]={0xAA,0x01,0x00,0x07,0x07,0x07};
回复:
Ack[6]={0xAA,0x0E,0x00,0x00,0x00,0x00};
b.设置数据包大小为512字节
执行命令:
Set_pack[6]={0xAA,0x06,0x08,0x00,0x02,0x00};
回复:
Ack[6]={0xAA,0x0E,0x00,0x00,0x00,0x00};
c.抓取一帧图像并保存在缓存中,图像压缩
执行命令:
Snapshot[6]={0xAA,0x05,0x00,0x00,0x00,0x00};
回复:
Ack[6]={0xAA,0x0E,0x00,0x00,0x00,0x00};
3)从摄像头获取图像
执行命令:
Get_pic[6]={0xAA,0x04,0x01,0x00,0x00,0x00};
回复:
Ack[6]={0xAA,0x0E,0x00,0x00,0x00,0x00};
4)接收快照数据
执行命令:
Data[6]={0xAA,0x0A,0x01,0x00,0x00,0x00};
回复:
AckID[6]={0xAA,0x0E,0x00,0x00,0x00,0x00};
5)接收数据
图像数据将会以包的形式发送给单片机,每接收到一个数据包,便会返回一个ACKID,一直到接收完整个图像数据为止。
3.2图像的处理:
3.2.1图像处理内容及步骤:
1、图象几何变换:
实现图像的平移、旋转操作,编写实现图像平移的函数。
(1)、用imread命令读取一幅灰度图;
(2)、将原图转变成256x256大小的灰度图;
(3)、调用平移函数,将256×256灰度图平移100行200列,并显示平移后的图像。
(4)、分别用最近邻插值法、双线性插值法实现图像顺势针旋转50°、90°并显示变换后的图象。
2、图象增强:
(1)、将原图中0~60灰度级压缩到0~30范围内,压缩比1/2;60~180的灰度级扩大到30~240,比率为190/120;将180~255灰度级压缩到240~255范围内,压缩比为15/75,显示结果图。
(2)、熟悉命令histeq,对原图做直方图均衡和直方图均衡处理,比较图像增强的效果,并用命令histem绘制增强后图像的直方图。
3、图象滤波:
将原图先通过高斯低通滤波器,观察并显示其结果图象,然后将该图通过高斯高通滤波器,观察并显示其由模糊变回清晰的结果图象。
4、图象边缘检测:
对实验图像用roberts算子、sobel算子、prewitt算子和log算子对原图进行边缘检测,显示结果图,观察其区别。
下面是所用到的知识结构:
3.3图像的发送:
要将采集到的图片通过无线网络发送出去,该系统选用的是GPRS通信模块,通过ATmega16单片机对该模块的控制,完成图像的发送环节,ATmega16单片机与GPRS通信模块式通过UART1口连接的。
3.3.1系统初始化
系统子函数初始化函数程序:
main()//主函数
{
WDTCTL=WDTPW+WDTHOLD;//关闭看门狗
BCSCTL1&=~XT2OFF;//open8M
do//判断晶振失效
{
IFG1&=~OFIFG;
for(i=0xff;i>0;i--);
}
while((IFG1&OFIFG)!
=0);
BCSCTL2|=SELM1+SELS;//MCLK=AC=32.768k
Delay_4us(100);//延时437us,以便晶振启动。
可以自己任选时长
UXD1();//串口主函数
_EINT();//通用中断允许
}
UART1串口寄存器初始化函数程序
voidUXD1(void)//串口调用子函数
{
UCTL1&=~SWRST;//SWRST复位,USART允许
UCTL1=0x30;//8位数据位,2位停止位,无效验
UTCTL1=SSEL1;//UCLK=SMCLK=8M
UBR01=0x41;//8Mhz/9600-0x341-------波特率是9600,低八位UBR11=0x03;//高八位
UMCTL1=0x91;//位调整
ME2|=0x30;//使能接收数据使能发送数据
P3SEL|=0xC0;//选用的是UXD1口,而不是UXD0口
P3DIR|=0x40;//P3.6为输出
}
3.3.2ATmega16单片机对GPRS模块的控制工作
ATmega16单片机控制GPRS模块工作,其主要目的是控制GPRS通信模块将单片机内存储的图片数据发送出去,GPRS模块在启动后要经历如下几个阶段,如下图所示:
1)附着到GPRS网络
执行命令:
AT+CGATT=l
返回:
OK
为了使用GPRS服务,SIM100必须连到GPRS网络。
从那时起,PLMN(公用陆地移动网)知道SIM100是GPRS模块。
这就是说,SIM100可以启动GPRS的数据集以及移动应用操作程序。
2)用户发起PDP上下文激活请求
执行命令:
AT+CGDCONT=l,“IP”,“CMNET”
返回:
OK
这里指定通讯格式,IP地址类型和网络接入点APN(负责与因特网或者其它兼容网络的交互)。
“CMNET”是中国移动为Internet服务的APN。
3)进行PDP上下文激活
执行命令:
AT十CGACT=1,1
返回:
OK
在数据传输前先激活。
如果GPRS还没连接它将由AT指令自动连接。
其中第二个1标示特定的PDP上下文,这个参数只用于单片机与SIM100之间进行标示。
4)建立GPRS网络连接
执行命令:
AT+CIPSTART=“TCP”,“SERVERIPADDRESS”,“SERVERPORT”
返回:
OK
此AT命令是设置GPRS发送数据的配置参数,在传输数据之前必需被配置。
目前支持“UDP”和“TCP”数据传输,可以选择,要事先给定server的ip地址和server的port端口号,即可以与server相互连接。
5)发送图像数据
执行命令:
AT+CIPSEND=“所发数据”
返回:
OK
使用该命令,可以将采集到的图片数据通过GPRS模块发送出去,发送时是以512字节的数据包发送的。
4.系统调试
4.1调试环境
在调试串口时,我们用到的串口调试工具如下图所示:
图5.1串口调试环境
在使用前要将程序下载到单片机里。
先打开如上图所示的“串口调试工具”,在“初始化”一栏中确定好相应的参数后,接着点击“打开串口”,完成这些步骤后,就可以进行调试了。
其“发送区”显示的是PC机给单片机所发送的内容,“接收区”显示的是PC机接收到单片机所发的内容。
4.2调试步骤
在整个程序的调试中,要经过以下的几个步骤:
(1)PC机与单片机连接,调试串口通信程序。
(2)PC机与摄像头连接,发送字符串命令,测试摄像头是否可以正常工作。
(3)利用EmbeddedWorkbench将采集图片的程序下载到MSP430单片机内部,接着把单片机与摄像头相连,调试采集图片的程序。
(4)PC机与GPRS模块相连,调试GPRS模块在A