无线图像传输课程设计报告Word格式.docx
- 文档编号:22639769
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:19
- 大小:1.15MB
无线图像传输课程设计报告Word格式.docx
《无线图像传输课程设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《无线图像传输课程设计报告Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
1、设计过程中出勤、学习态度等方面
0.2
2、课程设计质量与答辩
0.5
3、设计报告书写及图纸规范程度
0.3
总成绩
教研室审核意见:
教研室主任签字:
教学系审核意见:
主任签字:
年月日
摘要
图像无线传输系统集图像的采集、大容量存储及显示为一体,它能记录所监控现场的图像信息,通过液晶显示器查看图像或存入系统自带的SD卡中,作为事后对图像进行分析处理的图像源。
本系统包括三个主要模块。
一、图像采集模块。
该模块采用AL422B高速缓存,解决了OV7670图像传感器输出的高速图像数据流和ARM11的读取速度之间的匹配问题;
二、无线传输模块。
该模块将nRF24L01无线发送/接收组件作为图像数据无线传输的通道;
三、大容量存储器模块。
该模块将SD卡作为图像数据的大容量存储器。
基于以上模块,设计了数据采集程序、通信程序和高效的SD卡写操作函数,分别进行了图像数据采集实验、无线传输通信实验以及SD卡存储测试实验。
实验表明:
图像无线传输系统的原理样机的系统整体传输速率和传输距离达到预定设计要求,整体性能测试运行正常。
关键词:
图像无线传输,数据采集,单片机控制,无线传输,大容量存储
无线图像传输系统的设计
1设计内容及分工
主要功能:
本图像无线传输系统集图像的采集、大容量存储、和无线传输及显示为一体,完全脱离PC机,独立运行,可应用于多个方面。
系统硬件组成:
系统发射端主要包括图像传感器模块、单片机主控模块及无线发射模块,系统接收端主要包括无线接收模块、单片机主控模块、SD卡存储模块及TFT显示模块。
系统软件组成:
系统软件主要包括图像采集的程序、无线发射与接收程序、SD卡存储程序及图像的TFT液晶显示的驱动程序。
本系统软件在KeiluVision4开发环境用编写,使用C8051系列单片机仿真器USBDebugAdapter下载程序到单片机中。
主要技术指标:
OV767输出的图像格式为RGB555彩色图像,宽度为16bits,分辨率为QVGA(320×
240)。
无线传输模块nRF24L01工作频段为2.4GHz,空中速率2Mbps,在理想状态下传输距离为10m。
系统特点及创新点:
采用AL422B高速缓存解决了OV7670图像传感器输出的高速图像数据流和C8051F340单片机读取速度之间的匹配问题,完成了系统各种复杂时序信号的控制;
系统在发送端和接收端都可以用SD卡存储图像数据。
发送端可作为独立的图像采集与存储设备来工作,当发送端置于某个监控环境下时,接收端带有SD卡存储,可以实现无人看守。
课程设计分工:
本组由
四名成员组成,具体分工为负责总体设计,负责硬件电路设计、负责软件设计、负责资料搜集整理。
2方案论证与对比
2.1方案一
方案一原理如图2-1所示。
图2-1方案1原理图
这是我们开始根据指导老师的方案要求设计的一种方案,经过查找资料发现图像传感器产生的本身是数字信号,无需经过AD转换,而且因为图像信息较大,单片机无法直接接收如此大量的信息,需要添加缓冲模块。
所以此方案被我们否定,经过查找大量资料我们制定了第二方案。
2.3方案二
方案二原理如图2-3所示。
图2-3方案三原理图
在设计了方案二后我们进行了可行性论证,在接收模块使用89C51,单片机内的片内XRAM太小无法存储一帧图像,单片机工作较慢,查找资料后我们选用了C8051F340他的XRAM有(256+4)KB,能够满足数据暂存需求。
并增加了SD卡存储模块,方便存档。
2.4方案详细介绍
以上方案中,我们经过不断的改进最终确定了方案三。
下面详细介绍方案三。
系统由两大部分组成:
视频图像采集发送端和视频图像接收监控端。
两部分之间视频图像的传输是通过一对无线射频模块实现的。
系统的总体结构如图2-4所示:
图2-4系统总体结构图
图中,上半部分为视频图像采集发送端,下半部分为视频图像接收端。
图像传感器、FIFO高速缓存和单片机主控模块都是通过8位数据总线进行图像数据的传输,在单片机的控制信号作用下,图像传感器输出的高速图像数据输入FIFO高速缓存中暂存;
单片机通过SPI总线与无线模块相连,当准备无线发射数据时,单片机将图像数据低速从FIFO高速缓存中读出并发射;
接收端的单片机接收到数据后通过SPI总线将无线接收模块中的数据读出,并送入存储控制模块中保存或直接在液晶显示模块上显示,单片机与存储控制模块通过SPI总线相连,选用的液晶是并口液晶,单片机与液晶通过并行口相连。
设计时根据系统的总体结构将系统的两部分分为三个模块进行(用虚线框示意),分别为图像采集模块、无线传输模块和图像显示模块。
(1)图像采集模块
采集模块负责图像的采集,是整个系统中对实时性要求最高的部分。
单片机主控模块选择C8051F340,时钟频率最高为48MHz。
单片机周期性地采集图像监控端的图像数据,图像的分辨率为QVGA(320×
摄像头的图像像素输出频率取决于图像传感器的时钟频率,本系统采用图像传感器的工作频率为12MHz,对于这样的高速信号,如果不加处理,直接输入单片机,将会受到单片机自身执行速度的影响,造成图像数据的丢失。
因此为了采集到一帧完整的图像数据,必须解决摄像头和单片机之间的速度匹配问题。
本系统选用FIFO芯片AL422B作为缓存,通过设计FIFO的时序控制电路,使来自图像传感器的完整一帧数据自动地写入FIFO,然后单片机开始读取FIFO中的数据进行下一步的操作。
系统中添加了高速缓存AL422B后,C8051F340可以不用同时接收与处理数据,降低了系统对单片机的时钟要求。
本系统为了简化设计,图像采集购买集成OV7670图像传感器与FIFO高速缓存AL422B的图像采集模块,该模块的实物图如图2-5所示,该模块共22个插针,使用数据总线与单片机连接。
图2-5图像传感器模块实物图
(2)无线传输模块
无线模块是图像数据传输的通道,负责将完整一帧图像数据可靠地发送和接收。
本系统中无线模块选用Nordic公司的nRF24L01,工作频段为2.4GHz,空中速率2Mbps。
本课题传输的图像数据格式为QVGA(320×
240像素)RGB565,每帧数据量为320×
240×
2=153600Bytes。
受制于无线通信模块带宽的限制,每次最多发送32字节数据,因此单片机不可能一次将所有数据发送完毕,只能分多次发送。
单片机从FIFO中读取数据后,按照无线通信协议将数据编成数据包,由无线发射模块完成数据的发送。
无线接收模块检测到数据后,将接收到的数据由单片机控制暂存入单片机的片内XRAM中,为后续的处理做准备。
发射模块实物图如图2-6所示。
图2-6无线发射模块实物图
(3)存储控制显示模块
图像的存储控制模块负责将数据写入非易失性存储器,方便日后的查看,存储器选用SD卡。
单片机控制将无线接收模块接收到的数据写入SD卡中,无线模块和SD卡都采用SPI总线与单片机连接,实际操作时要注意片选信号的控制。
本系统配有串口液晶显示模块,可方便快速地对所监控的区域实时查看。
SD卡与TFT屏实物图如图7。
图2-7SD卡与TFT屏实物图
(4)系统的工作原理
系统的工作原理为:
系统通过OV7670图像传感器采集视频图像数据,将捕捉到的图像先输入高速缓存AL422B中暂存,生成RGB565,分辨率为QVGA(320×
240像素)的彩色图像;
AL422B接收到一帧完整的图像数据后,单片机将AL422B中的数据读出,并按无线传输协议将数据封装成数据包发送;
视频图像接收端的单片机接收到数据后,将数据保存到SD卡中,在液晶显示模块上可以进行图像数据的显示。
系统的工作流程如图2-8所示。
图2-8系统工作流程
3系统硬件设计
3.1电源电路
电源电路是整个系统正常工作的基本电路,负责系统中各个器件的电压分配。
本系统中单片机主控模块,摄像头模块,NRF24L01,SD卡和液晶显示使用的是3.3V电源,系统使用5V直流电源供电,所以使用三端稳压器AMS1117-3.3V,提供稳定的电源。
3.3V稳压电路如图3-1所示。
图3-1+3.3V稳压电路
2.2图像采集模块电路
在本系统中OV7670输出的数据先暂存在AL422B中,然后供单片机读取,因此OV7670的数据输出是AL422B的输入,AL422B数据输出是C8051F340的输入,AL422B是整个系统传输的关键,它在图像采集系统中的连接设计最为关键。
整个图像采集电路如图3-2所示。
图3-2图像采集电路
3.3发射模块电路
本系统的无线传输模块采用NFR42L01芯片,与单片机之间的数据传输采用串口传输方式。
发射模块接口如图3-3所示。
图3-3发射模块接口
3.5SD卡存储电路
在本系统中接收端采用的是C8051F34O来作为主控芯片。
在数据存储时,由于数据量庞大,我们采用的是SD卡存储。
SD卡存储电路如图3-4所示。
图3-4SD卡存储电路
3.6液晶显示电路
在本系统中需要用液晶显示来验证数据传输的正确性。
液晶显示电路如图3-5所示。
图3-5液晶显示电路
3.7显示模块控制电路
C8051F340主控电路是整个接收模块电路的核心,控制着所有的器件运转,所有器件的时序都由C8051F340控制。
C8051F340主控电路如图3-6所示。
图3-6C8051F340主控电路
4系统软件工作流程图
4.1图像采集主程序
单片机作为图像采集的核心控制器,完成图像采集的同步控制。
在图像采集部分设有一个缓存芯片AL422B,存储容量为384k×
8bits,单片机将摄像头输出的高速图像数据送入缓存中存放,待一帧图像采集完毕,将AL422B中的数据送入单片机的XRAM中等待后续处理。
由于本模块的时序较为复杂,在图像采集程序中应准确判断各时序信号,才能采集到正确的图像数据。
主程序的流程如图4-1所示。
图4-1主程序流程图
4.3SD卡存储软件设计
4.3.1SD卡写操作软件设计
初始化子程序SD卡从上电到进行数据读写操作之前需要一个初始化过程。
初始化流程如图4-4所示。
SD卡初始化流程图具体操作过程为:
SD卡上电以后,默认进入SD模式,要通过复位操作使其更改为SPI模式。
先将SPI时钟设为低速模式,一般设置在100KHz~400KHz之间,本设计中设置为100KHz,C8051F340首先发送74个时钟,以完成SD卡的上电过程,然后将SD卡的片选信号线CS置为低电平,以选中SD卡,接着C8051F340向SD卡发送命令CMD0,SD卡便会向C8051F340发送应答信号,若C8051F340接收到的应答信号是0x01,表示SD卡复位操作成功,SD卡已进入SPI模式,然后C8051F340将SD卡的CS信号线置高,向SD卡额外发送8个时钟,整个复位操作完成。
之后C8051340向SD卡发送命令CMD1,以激活SD卡,如果C8051F340读到的应答不是0x00,则重复发送CMD1直到读取的应答信号为0x00为止,这表明已经激活了SD卡的初始化过程,准备接收下一条命令。
将SD卡的时钟频率提高,设为高速模式,本程序设置为12MHz。
主机发送命令CMD16,设置数据块为512字节,若收到的应答为0x00,则继续执行下面的指令,否则SD卡操作停止。
主机发送命令CMD59,关闭CRC校验位,若收到的应答为0x00,表示操作成功。
最后CS置为高电平,主机向SD卡补发8个时钟,至此SD卡的所有初始化操作完成。
在这里需要注意的问题是,主机发送命令CMD0的时候,需要CRC校验位,这时的CRC值必须为0x95,其余的命令应该关闭CRC校验,CRC的值无所谓,这里填充成0xFF。
在完成了SD卡的初始化操作之后,就可以进行正常的数据读写操作了。
图4-4卡初始化流程
在了解了C51和汇编程序的调用规则之后,就可以进行SD卡写多块操作函数的编写。
在主程序中调用SD卡写多块的函数声明为:
externunsignedcharSD_WriteMultipleBlock(unsignedlongsector,unsignedcharsectornum,unsignedcharxdata*buffer);
其中,sector是要写数据的起始扇区,sectornum是一次性写入的扇区个数,buffer是存放要写入的图像数据的数组,并给它指定了存储类型是xdata,因为这样程序的效率要高很多。
如果不指定存储类型,buffer指针将是一般指针,一般指针的参数传递使用3个字节,第一个字节指定存储类型,后两个字节是指针指向的地址,指定存储类型之后,本程序中buffer指针只用两个字节,不用在运行时动态判断读取RAM的方式,因此程序执行效率很高。
SD卡多块写汇编模块文件名是sdwrite.asm,具体程序见附录。
多块写操作的程序流程如图4-5所示。
图4-5写多块操作流程图
写多块操作的流程为:
主程序向写多块程序传递的一次性写入的扇区数为6,单片机首先向SD卡发送写多块命令CMD25,命令重试次数设置为10次,如果接收到卡的应答信号为0x00,发送多块写开始标记0xFC,否则继续重发命令CMD25,直到收到的应答为0x00或达到重试次数,程序退出。
发送要写入SD卡的512字节图像数据,接着发送2字节的CRC校验位0xFF,如果SD卡的应答信号为0xE5,表明数据被SD卡正确接收。
之后,SD卡将数据写入内部扇区中,处于忙状态,单片机处于等待状态直到SD卡写操作完成。
一个扇区写操作完毕后,单片机重新发送开始标记0xFC……,直到6个扇区全部写完为止。
单片机发送停止标记0xFD,SD卡处于忙状态,单片机等待写卡操作完成,之后单片机将SD卡的片选信号置高,并发送8个额外时钟,程序返回。
在整个写多块操作过程中,单片机判断SD卡处于忙状态时,如果等待时间超时,将产生写操作错误,所有操作停止,写卡失败。
4.3.2SD卡读操作软件设计
SD卡的读操作过程与写操作过程类似,这里读卡操作也采用多块读的方式,只不过和写的命令字不同,读多块的命令字为0x18,停止传输用的是命令字0x12,而不是发送中的停止标志,读多块子程序流程如图4-6所示。
由图21可知,读图像数据的流程为:
主程序调用读数据子程序,进入到数据读取操作,C8051F340发送读多块命令CMD18,之后将CS置低,开始接收SD卡发送来的数据,直到接收到开始标志0xFE为止,之后SD卡发送来的数据就是图像数据,单片机将图像数据存入片内XRAM中的数组buf[3072]中,读完512字节数据后,判断是否读完规定的扇区数,如果没有继续等待数据开始标志0xFE,并接收SD卡的数据,如果读完规定的扇区数,C8051F340发送停止传输命令CMD12,结束本次数据传输,并将SD卡片选信号CS置高,发送8个时钟,结束本次程序的调用,程序返回。
图4-6读多块子程序流程
5元器件详细清单
表格1元器件清单
序号
类型
数量
1
单片机板
2块
2
560Ω电阻
4个
3
1K电阻
5个
4
1Ω电阻
5
100K电阻
1个
6
10K电阻
7
10uF电容
8
100uF极性电容
2个
9
0.1uF
10
22pF
11
发光二极管
红色5个绿色1个
12
三端稳压器AMS1117-3.3
13
2.5mmDC插座
14
10×
2插座
15
4×
16
15×
17
Header2H
18
MHDR1X2
19
SD卡卡座
20
简易牛角座DC3-10P2*5
21
单刀开关
22
按键开关
23
C8051F340
2片
6总结与思考及致谢
为期三周的课程设计已经接近尾声了,在开始选题的时候我们组就选择了老师提供的难度值最大一个课题,为此我们也有了相应的心理准备。
在开始定设计方案时我们有很多知识都不了解,为此我们查阅了很多的资料,也走了很多弯路,遇到了很多问题,最终一一得到了解决。
(1)最开始老师的要求我们用VGA实现显示,在查找了资料后,发现VGA的显示需要单片机达到一定的主频,所选芯片不能达到,最终我们选用了方便实用的TFT屏的显示。
(2)由于没有经验,在设计方案二到最后论证的时候发现,芯片的内部数据存储容量不能容纳一幅图像,考虑了增加外部存储但觉得不实用后,我们选择了更换芯片C8051F340。
我们重新查看数据表,重新设计方案等等,浪费了大量的时间。
(3)在硬件设计时,我们开始是想一点画一点,结果做了很多无用功,在以后的设计工作中,一定要注意先设计好,再去画图,避免做无用功。
(4)在画图过程中,发现还是软件操作不熟悉,特别是一些软件报错不知道怎么解决。
对于这种软件操作问题,不能光只是纸上谈兵,要实际操作,这样才能让问题暴露出来,然后多积累。
这样以后问题就越来越少了。
(5)无线传输和接收,我们采用nRF24L01模块,由于开始对此模块不是很了解,不知道nRF24L01的通信模式,后来通过查阅相关文献,了解到nRF24L01的两种通信模式EnhancedShockBurstTM模式和ShockBurstTM模式并且EnhancedShockBurstTM模式在ShockBurstTM的基础上集成了高速链路层操作,正好满足双向通信协议有效地执行。
(6)在程序编写时,由于要用到C语言嵌汇编语言的方式,并且要兼顾各个硬件接口,工作量比较大,我们通过相互讨论最终使一些问题(传感器初始化程序、SPI总线的读写函数)等得以解决。
通过本次课程设计,不仅课本理论知识运用到实践中,同时也学习了解了一个单片机系统的开发流程,弄懂了上课时遗留下来的一些疑惑。
同时也认识到理论知识的重要性,弄明白了单片机的工作原理。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 无线 图像 传输 课程设计 报告