基于STM32单片机驱动面阵CCD实时图像显示的研究毕业论文.doc

上传人:仙人指路1688 文档编号:3939279 上传时间:2023-03-28 格式:DOC 页数:5 大小:314.50KB
返回 下载 相关 举报
基于STM32单片机驱动面阵CCD实时图像显示的研究毕业论文.doc_第1页
第1页 / 共5页
基于STM32单片机驱动面阵CCD实时图像显示的研究毕业论文.doc_第2页
第2页 / 共5页
基于STM32单片机驱动面阵CCD实时图像显示的研究毕业论文.doc_第3页
第3页 / 共5页
基于STM32单片机驱动面阵CCD实时图像显示的研究毕业论文.doc_第4页
第4页 / 共5页
基于STM32单片机驱动面阵CCD实时图像显示的研究毕业论文.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于STM32单片机驱动面阵CCD实时图像显示的研究毕业论文.doc》由会员分享,可在线阅读,更多相关《基于STM32单片机驱动面阵CCD实时图像显示的研究毕业论文.doc(5页珍藏版)》请在三一办公上搜索。

1、基于STM32单片机驱动面阵CCD实时图像显示的研究 摘要: 本文主要通过研究一种ST公司的ARM架构的STM32F4系列单片机,并通过配置其自身带的DCMI通道,从而产生相应的时序来实现对面阵CCD的驱动。目前市面上面阵CCD的种类繁多,基于要实现良好的性能匹配和简易的信息处理的特性,本文选用了OV7670 CCD实现了信息数据的采集,同时该CCD将采集到的20位数据通过自身中的10位AD转换器将数据2次高速处理后转换为RGB565格式的16位数据输出并存储,存储后通过DCMI通道传输信息从CCD存储单元至单片机的RAM中,然后单片机通过DMA技术快速的将数据移送到SPI的目的地址存放于配置

2、静态可变存储器中,再通过SPI传送TFT(ILI9235)彩色液晶显示屏,经过对TFT屏相应的程序编程,最终把RGB16位数据的处理后将图像实时显示出来,由于数据转移的过程是通过DMA实现的,这样就避免先前CPU的操作控制,大大节省了系统运行的时间,高速信息转移的状态下,看起来就跟实时显示一样了。本文不仅给出了硬件电路的设计并将硬件进行了搭建,而且还通过KEIL4软件及J-LINK工具对硬件电路进行了仿真及测试,结果表明利用此器件可以把图像实时显示出来,且分辨率依赖于OV7670约有500万像素,由于其控制简单、信息数据易存储、信息数据易处理、实时显示效果良好等功能特点,在工业监控及图像处理控

3、制应用的场合下得到了广泛的应用。关键词: CCD;STM32;单片机;DMA。Research of Imaging System Based on STM MCU Abstract: By the timing array CCD OV7670CAMMERCHIP analysis, using the ARM architecture of STM32 MCU timing to drive the CCD generated by the DCMI channel configuration. Converts 20 bits of data collected by CCD for t

4、he RGB565 format for data transmission in 16bits MCU RAM, and then through the DMA technology data will be rapidly transferred to the SPI destination address and stored in a static variable memory, through the SPI (Serial Peripheral Interface) on TFT (ILI9235) color LCD screen displaying the image.

5、Complete the design of hardware circuit after the KEIL4 software and the J-LINK simulation and test results show that, the real-time image shows perfect effect by using this device, can be widely used in industrial control and image data acquisition and process control applications.Key Words: CCD di

6、gital camera ; STM32; MCU(micro-controller unit); DMA(Direct Memory Access)引言随着电子时代的高速发展,CCD的驱动并非难事,例如我们使用的手机,都有实时显示的功能,但是在工业控制的场合,不光是将图像实时显示出来,而且还要能够保存信息,还要对信息进行实时处理,这样才能实现对控制目标更好的准确控制。本文采取面阵CCD OV7670作为图像传感器,它可以传送多种数据采集模式,要结合ILI9325 TFT屏进行实时图象显示,此TFT屏的数据存储器的基本存储单元为16位,因此采用了RGB565图像数据格式进行处理。详细介绍了重要

7、模块的相关知识、成品的硬件组成、单片机及外围接口电路设计、软件程序编写、硬件仿真、成型产品设计效果介绍等。设计的创新点在于,OV7670图像传感器集成模块功能齐全,致使外围电路设计简单且易于复制和学习,脉冲控制程序和实时显示程序简单易写,采集到的数据处理方便并且易于对想要的数据进行处理等优点,适合技术工作者进行简单的应用。此外,整个仪器的制作费用很低(200元RMB即可),体积小,极利于大规模的生产和应用。1. 系统总体方案的设计由于STM32F4系列单片机是采用ST公司ARM架构的一款新型单片机,ARM类的单片机是采用面向对象的编程方式而使得技术工作者更容易上手,它改变我们对单片机控制的思路

8、,我们可以不再去深入了解单片机的各个模块,只要能够根据对各个模块配置好的函数进行简单的调用和再编程即可实现对该款单片机相应的模块功能进行操作和应用,使用起来极为方便,当然对C语言的熟练掌握也至关重要。此单片机DCMI模式,使得IO口具有了复用功能,它使得时钟发生器产生相应的脉冲驱动从而使CCD进行工作,然后据CCD(OV7670)相应的图像处理模块,把数据处理成RGB565的16位数据形式,以2次8位数据的形式通过PD0PD7的复用功能传送给单片机CPU,STM32单片机同时采用FSMC模块来产生相应的时序,来驱动LCD工作,与此同时通过DMA模式,把单片机中RAM的数据快速传送到LCD寄存器

9、中,LCD控制芯片通过读取寄存器中的RGB565格式的后就图像数据把CCD采集到的图像信息快速的显示出来。实现原理图如下:图1 基本设计原理图2. 系统的设计CCD实时显示设计主要包括:OV7670的驱动及图像数据信息处理、单片机DCMI(Digital camera interface)接口配置及使用、TFT真彩屏的驱动及图像显示、单片机FSMC模块配置、软件控制程序编写、硬件电路搭建,KEIL4连同J-LINK仿真应用等方面。根据上述扼要分析在进行设计时应该主要考虑以下几点内容:(1)分析CCD(OV7670)工作原理,单片机SCCB通信方式,单片机DCMI接口配置;(2)介绍TFT(IL

10、I9325)真彩屏的工作原理,单片机驱动脉冲分析,图象显示原理;(3)硬件电路原理图设计;(4)程序下载仿真与实验结果。2.1 CCD的工作原理及SCCB通信首先,CCD感光阵列(共有 656x488 个像素)将采集到光信号转换为电信号,然后由图像处理模块对收到的原始模拟信号进行处理,原始信号处理后分为G和BR两路进入一个10位的AD转换器,AD再将这些数据送到数据处理器(DSP),DSP处理过程是这个模块控制把原始数据插值到RGB565信号的过程,DSP与单片机之间的通信之间采用FIFO模式, 因为单片机位8位数据输入,而DSP是16位数据输出,这样在单片机与DSP连接时就使用FIFO来达到

11、数据匹配的目的,从而完成10位数据到8为数据的转换,实现RGB565格式数据分2次8位数据输出,图2中PD7:0为数据的输出图2 OV7670的功能原理图OV7670具有SCCB接口,通过编写SCCB的时序来控制CCD芯片的运行。SCCB(Serial Camera Control Bus)是和I2C相同的一个协议。SIO_C和SIO_D分别为SCCB总线的时钟线和数据线。SCCB控制总线功能的实现完全是依靠SIO_C、SIO_D两条总线上电平的状态以及两者之间的相互配合实现的。SCCB总线传输的启动和停止条件如图3。经分析,采用简单的三相写数据的方式,即在写寄存器的过程中先发送OV7670的

12、ID地址,然后发送写数据的目地寄存器地址,最后发送要写入的数据。图3 SCCB总线启动和停止的条件 如果给连续的寄存器写数据,写完一个寄存器后,OV7670会自动把寄存器地址加1,程序可继续向下写,而不需要再次输入ID地址,从而三相写数据变为了两相写数据,由于本系统只需对有限个不连续寄存器进行配置,如果采用对全部寄存器都加以配置这一方法的话,会浪费很多时间和资源,所以我们只对需要更改数据的寄存器进行写数据。2.2 ILI9235TFT和SPI通信简介ILI9325是一款具有系统级芯片驱动分辨率为240rgbx320,包括一个720通道的源极驱动器,一个320通道的栅极驱动器,172800字节的

13、RAM用于图形数据存储。具有SPI(串行数据接口)和一个18位/16位的RGB接口(Dotclk,VSYNC,HSYNC, ENABLE,DB 17:0)。I/O接口的工作电压为1.65V3.3V。ILI9325与STM32单片机之间采用SPI通信。SPI总线系统可直接与ILI9325外围器件直接接口,该接口使用4条线: MOSI(主机输出/从机输入数据线)主器件数据输出,从器件数据输入;MISO(主机输入/从机输出数据线 )主器件数据输入,从器件数据输出;SCLK(串行时钟线)时钟信号,由主器件产生。NSS (低电平有效的从机选择线)从器件使能信号。SPI接口在内部硬件实际上是两个简单的移位

14、寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。如下图所示,在SCLK的上升沿上数据发生改变,同时一位数据被存入移位寄存器。图4 SPI通讯时序图 从时序图中可以看出,SS线刚开始下降沿变化时,触发数据寄存器写入数据,随着时钟线连续的上升沿跳变的过程中,数据被一次次写入对应的寄存器里。2.3 硬件电路设计原理图STM32单片机的工作电压为3.3V,因此我们要设计5V转3.3V电源电路,主要应用器件为REG1117芯片,原理图设计如下图:图5 3.3V电源电路 接下来,我们要将CCD OV7670的24PIN引脚与单片机建立相应的连接。要由STM

15、32 的DCMI模块给CCD提供相应的脉冲驱动,因此要将单片机的IO口复用引脚选好,连接方式如下图6:图6 OV7670与单片机的引脚连接原理图 要通过TFT屏将图像显示出来,这样就要配置STM32的FSMC模块,此模块给出相应的脉冲,从而驱动CCD进行工作,将此模块与ILI9235的引脚连接起来,数据的传输时是通过SPI模式进行的,同样的也要将IO口的SPI功能引脚进行配置,原理图连接如图7:图7 ILI9235与STM32的连接原理图3 控制程序编写对上述硬件电路电路搭建好以后,还需要进行程序的编写,这样才会使硬件电路实现工作。整个硬件工作的实现需要利用对STM单片机进行程序编写才能实现控

16、制,而STM单片机采用面向对象的方式进行编程,在ST公司对STM单片机的个模块进行了库函数的编写的前提下,因此去公司的资料查找相应的模块化程序,这样我们就极为方便的对要用模块采取相应的库函数调用即可,即:#include stm32f4xx.h这里需要分别根据OV7670和ILI9325的时序分析对其进行驱动程序的编写,在函数的编写中我较多采用C语言中结构体的形式。要实现实时显示,就要有高速的数据处理模式,所以采用单片机的DMA通道,而且DMA有自己的时钟,这样就不在需要麻烦CPU起动后再让DMA开始进行工作,实现了可以直接从CCD内存中读取数据的操作,因此就缩短了经过CPU允许读取数据的时间

17、,从而看起来似实现了实时显示的效果。部分主要程序编写如下:void DMA(void) DMA_InitTypeDef DMA_InitStructure;/声明STM库函数种的DMA函数,以便对其内部函数进行直接调用。RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2, ENABLE); /开启AHB1时钟线的DMA2的时钟,使其工作 。DMA_DeInit(DMA2_Stream4);DMA_InitStructure.DMA_Channel=DMA_Channel_2; /选取DMA所用通道,根据STM手册选折DMA2,Stream4 通道。DMA_In

18、itStructure.DMA_Memory0BaseAddr=(uint32_t)&LCD_RAM;/DMA内存中的数据直接发送给LCD的RAM中,这里进行了一次数据强制转换。DMA_InitStructure.DMA_DIR=DMA_DIR_MemoryToMemory;/DMA读取数据的方向为直接从CCD内存到单片机内存。主函数:int main(void)GPIO_Configuration();GPIO_SetBits(GPIOE, GPIO_Pin_0 | GPIO_Pin_1| GPIO_Pin_2| GPIO_Pin_3) ;DMA();LCD_Initializtion();

19、delay_ms(50);LCD_WriteReg(0x0011,0x6078);LCD_REG = 0x0022;DCMI_OV7670_Init();DMA_Cmd(DMA2_Stream1, ENABLE);DCMI_Cmd(ENABLE); DCMI_CaptureCmd(ENABLE);while (1) 4 结论将硬件电路搭建好并测试OK完成后,通过KEIL4软件程序进行编写,同时需要使用J-link烧写程序到单片机的ROM中,这里需要对KEI4软件进行相应的配置,然后通过KEIL4软件和J-link直接将程序下载到STM32单片机中的ROM 中,按下复位键以后,就可以看到实时的图

20、像于TFT显示屏上。CDD的数据处理的速度为50帧/秒,成像效果良好,目前可应用于视频监控,视频信息处理的项目中,同时在机电楼视觉机器人研究室进行了视频控制的验证。参考文献1 周立功. ARM嵌入式系统基础教程M.北京:航天航空大学出版社. 2005,(1).2 张传胜. 基于FPGA的面阵CCD驱动及快速显示系统的设计实现J. 长春光机所学报.2012,(12).3 刘君华.深入浅出STM32系列M.河北:先河环保科技出版社. 2010,(11).4 吴吕宪.基于线阵CCD及STM32的滚针直径精确测量的研究M北京:清华大学出版社.2012,(3).5 童诗白,华成英模拟电子基础第3版M.北京:高等教育出版社. 2003,(2).6 刘化朋.用单片机驱动CCD的讨论J.光学技术.2000,26(4).7 Integrated Devices Single Supply Rail to Rail,Low Cost Instruments Amplifier ADJ.Analog Devices.1999.8 谭浩强.C程序设计(第二版)M.北京.清华大学出版社.2001.9 朱勇.Protel DXP电路设计与进阶M.北京.科学出版社.2004.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号