基于单片机的图像处理采集系统.docx
- 文档编号:25500745
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:40
- 大小:995.88KB
基于单片机的图像处理采集系统.docx
《基于单片机的图像处理采集系统.docx》由会员分享,可在线阅读,更多相关《基于单片机的图像处理采集系统.docx(40页珍藏版)》请在冰豆网上搜索。
基于单片机的图像处理采集系统
基于单片机的图像处理采集系统
摘要
传统的工业级图像处理采集系统大多是由CCD摄像头、图像采集卡和PC机组成,虽已得到了广泛的应用,但是它具有结构复杂,成本高,体积大,功耗大等缺点。
随着单片机的迅速发展,开发一种智能控制及智能处理功能的微型图像处理采集系统成为可能,并且也克服了传统图像处理采集系统的诸多缺点。
本设计提出了基于单片机的图像采集系统,该系统主要由四大模块组成:
第一个是单片机控制模块,对摄像头进行控制;第二个是摄像头模块,即进行图像拍摄和取图;第三个是Zigbee无线传输模块,功能是将图像传送到上位机;最后是上位机,实现图像显示功能。
其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高,使用环境广泛及成本低等。
利用Proteus和Keil进行仿真调试,可以看到设计内容的运行结果,验证系统运的行正确及稳定性,并且实现了图像处理采集功能,所以具有一定的实用和参考价值。
关键词:
单片机;Proteus;图像采集
Abstract
ThetraditionalindustrialimageprocessingcollectionsystembyCCDcamera,mostlyimagecollectioncardandPCunitinto,althoughalreadyawiderangeofapplications,butithasthestructureiscomplex,highcost,bigvolumeandshortcomings,suchasbigpowerconsumption.Withtherapiddevelopmentofthesinglechipmicrocomputer,thedevelopmentofakindofintelligentcontrolandintelligentprocessingfunctionofmicroimageprocessingcollectionsystempossible,andalsoovercometraditionalimageprocessingcollectionsystemofmanyofthefaults.
ThisdesignisputforwardbasedonSCMimageacquisitionsystem,thesystemconsistsoffourmodules:
thefirstoneisthesinglechipmicrocomputercontrolmodule,thecameratocontrol;Thesecondisacameramodule,theimageshootandtakediagram;ThethirdisZigbeewirelesstransmissionmodule,thefunctioniswillimagestoPC;FinallythePC,realizeimagedisplayfunction.Itsadvantageishardwarecircuitissimple,softwareperfectfunction,controlsystemandreliable,highcostperformance,useextensiveandenvironmentcostlowstatus.UseProteusandKeilsimulationcommissioning,canseetheoperationofthedesigncontent,asdemonstratedthecorrectanddothesystemstability,andrealizetheimageprocessingcollectionfunction,sohascertainpracticalandreferencevalue.
Keywords:
Single-ChipMicrocomputer;Proteus;ImageCapture
第一章绪论
1.1课题研究现状
随着现代电子信息技术的迅速发展,使得信息处理技术越来越重要,而图像处理采集技术在信息处理技术当中有着异常重要的位置。
图像处理采集技术涉及诸多领域,如:
工业检测,医疗设备,军事设施,电子产品等等[1]。
在智能车、道路损害检测、航天及遥感、实时图像采集煤矿安全生产监控及电子眼中都用到了图像处理技术。
现在基于DSP、matlab、OpenCV、FPGA、ARM及嵌入式等技术的图像处理采集系统是非常多见的。
特别是matlab技术,它含有图形处理系统,可以很方便的图形化显示向量和矩阵,而且能对图形添加标注和打印。
它包括强大的二维三维图形函数、图像处理和动画显示等函数。
1.2课题研究目的意义
基于DSP、ARM、嵌入式等技术的图像处理采集系统虽然非常多见,但是它成本高,功耗大,且因为其体积较大,在某些特定的场合或环境下无法正常工作,所以设计一个成本低,体积小,功耗低,性能强的图像处理采集系统是非常有必要的。
单片机依靠它体积小、功耗低、功能强、可靠性高以及灵活的应用性被人们所认识,并且已经融入到了现代人们的生活中。
单片机具有强大的控制功能和灵活的编程实现特性,而且有着很丰富的调试软件,给设计带来很多的益处。
所以开发一种由单片机为控制核心的图像处理采集系统,具有很高的研究意义。
1.3本课题研究的主要内容
本设计采用Intel公司的80C51单片机,以80C51为控制核心,结合摄像头、Zigbee无线传输模块及上位机构成一个图像处理采集系统。
主要内容:
(1)研究80C51单片机结构,各引脚功能及工作原理。
(2)研究摄像头TJ传输协议及摄像头相关命令代码。
(3)利用Proteus软件,设计图像处理采集系统硬件电路并进行软件仿真。
(4)利用Keil软件和C编程,并对其程序进行编译。
(5)熟练掌握Keil和Proteus的联机调试。
第二章硬件设计
2.1系统设计方案
为了获得成本低,性价比高的设计方案,在满足其性能指标的前提下,设计应尽量简单,不宜太过于复杂。
本设计系统主要由四大模块组成,即单片机控制模块、摄像头拍摄模块、Zigbee无线传输模块和上位机显示模块。
80C51单片机对摄像头发送一系列有效指令,但在发送指令前必须设置单片机的波特率,使单片机与摄像头的波特率相一致,这样才能让单片机与摄像头得到的数据同步。
摄像头收到单片机发送的有效指令后进行拍图、取图以及上传等作业,摄像头再把拍摄的JPEG图像发送到Zigbee无线通信模块,利用Zigbee的特性,在短距离内无线传输到上位机上,再由上位机显示出所拍摄的图像,来实现图像的采集处理。
下图2-1为图像处理采集系统设计框图:
图2-1图像处理采集系统框图
2.2硬件简介
2.2.180C51简介
80C51单片机属于美国Intel公司的MCS-51系列产品中的一个型号,它采用CHMOS工艺,功耗低,性能优良,其结构是8048单片机的延伸,改进了8048的缺点,增加了减(SUBB)、乘(MUL)、除(DIV)、比较(PUSH)、布尔代数运算等指令以及串行通信和5个中断源,采用40引脚双列直插式DIP。
采用CHMOS工艺具有高速度、低功耗及高密度的特点,而且它的传输延时时间小于2ns。
它内部集成了功能强大的中央处理器,包含了硬件乘除法器、21个专用控制寄存器、4kB的程序存储器、128字节的数据存储器、4组8位的并行口、两个16位的可编程定时/计数器、一个全双工的串行口以及布尔处理器。
80C51单片机内部有时钟电路,但需要石英晶体和微调电容外接[2]。
以下为80C51单片机引脚图如图2-2所示。
图2-280C51单片机引脚图
MCS-51具有比较大的寻址空间,地址线宽达16条,即外部数据存储器和程序存储器的寻址范围达216=64kB,这作为单片机控制来说已是比较大的,这同时具备对I/O口的访问能力。
此外,MCS-51采用模块化结构,可方便地增删一个模块就可做出引脚和指令兼容的新产品,从而容易使产品形成系列化。
MCS-51把微型计算机的主要部件都集成在一块心片上,使得数据传送距离大大缩短,可靠性更高,运行速度更块。
由于属于芯片化的微型计算机,各功能部件在芯片中的布局和结构达最优化,抗干扰能力加强,工作亦相对稳定。
MCS-51单片机的工作频率为2-12MHz,当振荡频率为12MHz时,一个机器周期为1us,这个速度应该说是比较快的。
80C51中集成了完善的各种中断源,用户可十分方便地控制和使用其功能,使得它的应用范围加大,可以说它可以满足绝大部分的应用场合。
以下为80C51单片机的基本组成如图2-3所示
图2-380C51单片机基本组成
2.2.2I/O端口
在此次设计中,我们主要应用了P3口,所以在这我们只对P3口做介绍。
P3口除可作为通用I/O口使用外,还具有第二功能。
当某些口线作第二功能使用时,不能再把它当作通用输入/输出口使用,其它未用的口线仍可作通用输入/输出口线使用。
P3口作通用I/O口使用时,不需要外接上拉电阻[3]。
以下为P3口引脚第二功能:
引脚 功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2
(外部中断0输入口)
P3.3
(外部中断1输入口)
P3.4T0(定时器0外部输入口)
P3.5T1(定时器1外部输入口)
P3.6
(写选通输出口)
P3.7
(读选通输出口)
2.2.3控制引脚
控制引脚中包括ALE/
、
、
/Vpp、RST/Vpd。
1.ALE/(30脚)
地址锁存使能信号输出端。
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
2.
(29脚)
程序存储器输出使能端。
外部程序存储器的选通信号,在由外部程序存储器取指期间,每个机器周期两次
有效。
但在访问外部数据存储器时,这两次有效的
信号将不出现。
3.
/Vpp
片内程序存储器屏蔽控制端。
当
保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,
将内部锁定为RESET;当
端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
4.RST/Vpd
复位信号复用脚。
当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。
初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指钟写入07H,其它专用寄存器被清“0”。
RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。
然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态。
5.XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出[4]。
2.3摄像头
摄像头在接到到命令后对收到的指令代码进行判断,然后做出拍图、取图和上传图像等工作。
摄像头接到开始命令后开始采集图像,并将图像压缩为JPEG格式,摄像头采取分包传递的方式,每传递一个包后,只有上位机得到确认命令后,摄像头才开始传下一个包,直到图像传递完成。
以下为摄像头TJ传输协议[5]:
2.3.1波特率
摄像头支持的波特率有57600、38400、19200、9600、2400。
摄像头默认115200。
2.3.2数据包
数据包的大小可以调整,可以一次传送一幅图片。
2.3.3摄像头控制指令
1.编号指令代码
每个摄像头都有一个编号,当摄像头收到的数据域内的摄像头编号与自己相一致时才响应该命令,但如果该数据域内的摄像头编号为0xFFFF,表示通用编号,任何摄像头都要响应该命令。
摄像头收到该命令后将该编号存入非易失的存储器中,以后将只响应摄像头编号与新编号及通用编号相同的命令。
该命令中的位置编号无实际意义。
摄像头收到该命令后将该编号存入非易失的存储器中,以后将只响应摄像头编号与新编号及通用编号相同的命令。
表2-1为编号指令代码。
表2-1编号代码
包头
(2字节)
命令码(1字节)
位置编号(1字节)
数据(4字节)
包尾(2字节)
摄像头编号(小端模式,2字节)
该摄像头以后将要使用的编号
0x400x40
0x60
0x5A
0xFF0xFF
0xFF0xFF
0x0D0x0A
举例:
发送0x400x400x600x5A0xFF0xFF0x020x000x0D0x0A
以上命令意思为任何收到此命令的视频模块的编号更改为0x0002
0x400x400x600x5A0x010x000x020x000x0D0x0A
以上命令意思为编号为0x0001的视频模块的编号更改为0x0002
2.开始拍摄指令代码
当摄像头收到的数据域内的摄像头编号与自己相一致时才响应该命令,但如果该数据域内的摄像头编号为0xFFFF,表示通用编号,任何摄像头都要响应该命令。
摄像头收到该命令后返回所拍图像数据的第一帧数据。
表2-2为拍摄指令代码。
表2-2拍摄代码
包头
(2字节)
命令码(1字节)
照片大小(1字节)
数据(4字节)
包尾(2字节)
摄像头编号(小端模式)
图像包大小(小端模式)
0x400x40
0x61
0x80(160*128)
0x81(320*240)
0x82(640*480)
0xFF0xFF
0xFF0xFF
0x0D0x0A
举例:
0x400x400x610x820xFF0xFF0x000x030x0D0x0A
以上命令意思为任何收到此命令的视频模块拍640*480图,图像数据以0x0300的长度分包
0x400x400x610x820x020x000x120030x0D0x0A
以上命令意思为编号为0x0002的视频模块拍640*480图,图像数据以0x0312的长度分包
3.取图指令代码
当摄像头收到的数据域内的摄像头编号与自己相一致时才响应该命令,但如果该数据域内的摄像头编号为0xFFFF,表示通用编号,任何摄像头都要响应该命令。
当数据域内的图像位置编号为0xFF0xFF表示按顺序取图,摄像头每次传送某位置的数据后,会自动把位置编号加一(位置编号从0开始)。
当数据域内的位置编号不为0xFF0xFF表示取固定位置的图像数据,主机端每次索要某位置的数据后,主机端需自己把位置编号加一。
照片大小字节无意义,但内容必须为0x81、0x82或0x83。
表2-3为取图指令代码。
表2-3取图代码
包头
(2字节)
命令码(1字节)
照片大小(1字节)
数据(4字节)
包尾(2字节)
摄像头编号(小端模式)
图像位置编号(小端模式)
0x400x40
0x62
0x80(160*128)
0x81(320*240)
0x82(640*480)
0xFF0xFF
0xFF0xFF
0x0D0x0A
举例:
0x400x400x620x810xFF0xFF0xFF0xFF0x0D0x0A
以上命令意思为任何收到此命令的视频模块按顺序传一包数据,实际每个视频模块中只能存一幅图,必须拍一幅图后并取完,方可拍下一幅
0x400x400x620x810x010x000x000x000x0D0x0A
以上命令意思为编号为0x0001的模拟头视频模块上传第一包数据
4.上传图像数据包格式
表2-4为上传图像数据包格式。
表2-4上传图像数据包格式
包头
位置
帧的大小
256
图像数据
校验和
结束
404063
0000
0002
FF
FFD8····
一个字节
0D0A
XXXX
····FFD9
小端
小端
所有数据累加---校验和
例如:
0x400x400x630x000x000xXX0xXX0xFF0xPP……0xVV0x0D0x0A
(1)包头
0x400x400x63
(2)数据开始传送位置
用两个字节表示:
0x000x00第一帧数据表示为0x000x00。
上位机每发送一次0x400x400x620x810xFF0xFF0xFF0xFF0x0D0x0A,摄像头位置加1,直到数据传送完毕。
(3)数据帧的大小
用两个字节表示:
0xXX0xXX表示为0xXX0Xxx发送数据包;当数据包的大小不等于0xXX0xXX时,或图像数据的最后两个字节为0xFFD9时,说明数据传送到了最后一包数据,数据帧的大小和拍摄图片的大小有关。
数据内容:
开始标志:
FFD8结束标志:
FFD9。
数据传送模式FFD8……0xVV0D0A,……FFD90xVV0D0A。
其中0xVV为校验和。
校验和的算法:
图像数据累加和。
应注意:
①每次传送数据时,必须发送取图指令,摄像头才会传送下一帧数据。
②如果在传送数据期间发送了拍图指令,摄像头将会重新取图。
不会保留上一次所取图形。
③只有发送拍图指令时才能配置图片的大小。
2.4Zigbee无线传输模块
2.4.1Zigbee简介
Zigbee技术是随着工业自动化对于无线通信和数据传输的需求而产生的,Zigbee网络省电、可靠、成本低、容量大、安全,可广泛应用于各种自动控制领域。
图1-4为Zigbee模块框图:
图2-4Zigbee模块框图
Zigbee是一个由可多到65000个无线数传模块组成的一个无线数传网络平台,十分类似现有的移动通信的CDMA网或GSM网,每一个Zigbee网络数传模块类似移动网络的一个基站,在整个网络范围内,它们之间可以进行相互通信;每个网络节点间的距离可以从标准的75米,到扩展后的几百米,甚至几公里;另外整个Zigbee网络还可以与现有的其它的各种网络连接。
例如,你可以通过互联网在北京监控云南某地的一个Zigbee控制网络。
不同的是,Zigbee网络主要是为自动化控制数据传输而建立,而移动通信网主要是为语音通信而建立;每个移动基站价值一般都在百万元人民币以上,而每个Zigbee“基站”却不到1000元人民币;每个Zigbee网络节点不仅本身可以与监控对对象,例如传感器连接直接进行数据采集和监控,它还可以自动中转别的网络节点传过来的数据资料;除此之外,每一个Zigbee网络节点(FFD)还可在自己信号覆盖的范围内,和多个不承担网络信息中转任务的孤立的子节点(RFD)无线连接。
每个Zigbee网络节点(FFD和RFD)可以可支持多到31个的传感器和受控设备,每一个传感器和受控设备终可以有8种不同的接口方式。
可以采集和传输数字量和模拟量。
2.4.2Zigbee技术应用领域
Zigbee技术的目标就是针对工业,家庭自动化,遥测遥控,汽车自动化、农业自动化和医疗护理等,例如灯光自动化控制,传感器的无线数据采集和监控,油田,电力,矿山和物流管理等应用领域。
另外它还可以对局部区域内移动目标例如城市中的车辆进行定位。
通常,符合如下条件之一的应用,就可以考虑采用Zigbee技术做无线传输:
1.需要数据采集或监控的网点多;
2.要求传输的数据量不大,而要求设备成本低;
3.要求数据传输性高,安全性高;
4.设备体积很小,不便放置较大的充电电池或者电源模块;
5.电池供电;
6.地形复杂,监测点多,需要较大的网络覆盖;
7.现有移动网络的覆盖盲区;
8.使用现存移动网络进行低数据量传输的遥测遥控系统;
9.使用GPS效果差,或成本太高的局部区域移动目标的定位应用。
2.4.3Zigbee技术特点
●省电:
两节五号电池支持长达6个月到2年左右的使用时间;
●可靠:
采用了碰撞避免机制,同时为需要固定带宽的通信业务预留了专用时隙,避免了发送数据时的竞争和冲突;节点模块之间具有自动动态组网的功能,信息在整个Zigbee网络中通过自动路由的方式进行传输,从而保证了信息传输的可靠性;
●时延短:
针对时延敏感的应用做了优化,通信时延和从休眠状态激活的时延都非常短;
●网络容量大:
可支持达65000个节点;
●安全:
ZigBee提供了数据完整性检查和鉴权功能,加密算法采用通用的AES-128;
●高保密性:
64位出厂编号和支持AES-128加密。
第三章软件设计及调试
软件设计包括Keil程序调试,Proteus电路图设计和Keil与Proteus联机调试。
3.1Keil调试
3.1.1Keil简介
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起[7]。
图3-1为Keil界面:
图3-1Keil界面
3.1.2Keil调试过程
1.首先点击
图标打开Keil软件,在工具栏中点击Project选择NewuVisionProject来新建一个工程,如图3-2所示。
图3-2新建工程
2.因为我们用到了单片机的串口,所以我们将工程取名为sbuf保存在相应的文件夹中,如图3-3所示。
图3-3工程取名
3.选择CPU,我们在这里选择Intel公司的80C51GB,如图3-4所示。
图3-4选择CPU
选好芯片确定后,弹出提示框,问是否添加一些文件,在这里选择“否”。
4.新建文本文档,用来编写源程序。
按下界面上的
图标进行建立,就会出现如下图3-5所示的窗口。
图3-5新建文件
5.按下保存图标
,将文件以“sbuf.c”文件名与新建的sbuf工程保存在一个文件夹中,如图3-6所示。
图3-6保存文件
6.将新建的文件加入工程中。
在SourceGroup1上点击鼠标右键,在弹出的菜单栏中选择AddFilestoGroup....选项,如图3-7所示。
图3-7文件加入到工程
在弹出的对话框中选择工程文件夹下刚才新建的“sbuf.c”文件。
点击Add,再点击Close关闭对话框,如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 图像 处理 采集 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)