免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于stm32单片机驱动面阵ccd实时图像显示的研究 摘要: 本文主要通过研究一种st公司的arm架构的stm32f4系列单片机,并通过配置其自身带的dcmi通道,从而产生相应的时序来实现对面阵ccd的驱动。目前市面上面阵ccd的种类繁多,基于要实现良好的性能匹配和简易的信息处理的特性,本文选用了ov7670 ccd实现了信息数据的采集,同时该ccd将采集到的20位数据通过自身中的10位ad转换器将数据2次高速处理后转换为rgb565格式的16位数据输出并存储,存储后通过dcmi通道传输信息从ccd存储单元至单片机的ram中,然后单片机通过dma技术快速的将数据移送到spi的目的地址存放于配置静态可变存储器中,再通过spi传送tft(ili9235)彩色液晶显示屏,经过对tft屏相应的程序编程,最终把rgb16位数据的处理后将图像实时显示出来,由于数据转移的过程是通过dma实现的,这样就避免先前cpu的操作控制,大大节省了系统运行的时间,高速信息转移的状态下,看起来就跟实时显示一样了。本文不仅给出了硬件电路的设计并将硬件进行了搭建,而且还通过keil4软件及j-link工具对硬件电路进行了仿真及测试,结果表明利用此器件可以把图像实时显示出来,且分辨率依赖于ov7670约有500万像素,由于其控制简单、信息数据易存储、信息数据易处理、实时显示效果良好等功能特点,在工业监控及图像处理控制应用的场合下得到了广泛的应用。关键词: 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 the 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. 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 digital camera ; stm32; mcu(micro-controller unit); dma(direct memory access)作者简介:孙丰(1988.2),男,吉林白山人,长春理工大学机械电子工程专业硕士研究生,主要从事机电系统控制与技术方向的研究。引言随着电子时代的高速发展,ccd的驱动并非难事,例如我们使用的手机,都有实时显示的功能,但是在工业控制的场合,不光是将图像实时显示出来,而且还要能够保存信息,还要对信息进行实时处理,这样才能实现对控制目标更好的准确控制。本文采取面阵ccd ov7670作为图像传感器,它可以传送多种数据采集模式,要结合ili9325 tft屏进行实时图象显示,此tft屏的数据存储器的基本存储单元为16位,因此采用了rgb565图像数据格式进行处理。详细介绍了重要模块的相关知识、成品的硬件组成、单片机及外围接口电路设计、软件程序编写、硬件仿真、成型产品设计效果介绍等。设计的创新点在于,ov7670图像传感器集成模块功能齐全,致使外围电路设计简单且易于复制和学习,脉冲控制程序和实时显示程序简单易写,采集到的数据处理方便并且易于对想要的数据进行处理等优点,适合技术工作者进行简单的应用。此外,整个仪器的制作费用很低(200元rmb即可),体积小,极利于大规模的生产和应用。1. 系统总体方案的设计由于stm32f4系列单片机是采用st公司arm架构的一款新型单片机,arm类的单片机是采用面向对象的编程方式而使得技术工作者更容易上手,它改变我们对单片机控制的思路,我们可以不再去深入了解单片机的各个模块,只要能够根据对各个模块配置好的函数进行简单的调用和再编程即可实现对该款单片机相应的模块功能进行操作和应用,使用起来极为方便,当然对c语言的熟练掌握也至关重要。此单片机dcmi模式,使得io口具有了复用功能,它使得时钟发生器产生相应的脉冲驱动从而使ccd进行工作,然后据ccd(ov7670)相应的图像处理模块,把数据处理成rgb565的16位数据形式,以2次8位数据的形式通过pd0pd7的复用功能传送给单片机cpu,stm32单片机同时采用fsmc模块来产生相应的时序,来驱动lcd工作,与此同时通过dma模式,把单片机中ram的数据快速传送到lcd寄存器中,lcd控制芯片通过读取寄存器中的rgb565格式的后就图像数据把ccd采集到的图像信息快速的显示出来。实现原理图如下:图1 基本设计原理图2. 系统的设计ccd实时显示设计主要包括:ov7670的驱动及图像数据信息处理、单片机dcmi(digital camera interface)接口配置及使用、tft真彩屏的驱动及图像显示、单片机fsmc模块配置、软件控制程序编写、硬件电路搭建,keil4连同j-link仿真应用等方面。根据上述扼要分析在进行设计时应该主要考虑以下几点内容:(1)分析ccd(ov7670)工作原理,单片机sccb通信方式,单片机dcmi接口配置;(2)介绍tft(ili9325)真彩屏的工作原理,单片机驱动脉冲分析,图象显示原理;(3)硬件电路原理图设计;(4)程序下载仿真与实验结果。2.1 ccd的工作原理及sccb通信首先,ccd感光阵列(共有 656x488 个像素)将采集到光信号转换为电信号,然后由图像处理模块对收到的原始模拟信号进行处理,原始信号处理后分为g和br两路进入一个10位的ad转换器,ad再将这些数据送到数据处理器(dsp),dsp处理过程是这个模块控制把原始数据插值到rgb565信号的过程,dsp与单片机之间的通信之间采用fifo模式, 因为单片机位8位数据输入,而dsp是16位数据输出,这样在单片机与dsp连接时就使用fifo来达到数据匹配的目的,从而完成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的id地址,然后发送写数据的目地寄存器地址,最后发送要写入的数据。图3 sccb总线启动和停止的条件 如果给连续的寄存器写数据,写完一个寄存器后,ov7670会自动把寄存器地址加1,程序可继续向下写,而不需要再次输入id地址,从而三相写数据变为了两相写数据,由于本系统只需对有限个不连续寄存器进行配置,如果采用对全部寄存器都加以配置这一方法的话,会浪费很多时间和资源,所以我们只对需要更改数据的寄存器进行写数据。2.2 ili9235tft和spi通信简介ili9325是一款具有系统级芯片驱动分辨率为240rgbx320,包括一个720通道的源极驱动器,一个320通道的栅极驱动器,172800字节的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接口在内部硬件实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。如下图所示,在sclk的上升沿上数据发生改变,同时一位数据被存入移位寄存器。图4 spi通讯时序图 从时序图中可以看出,ss线刚开始下降沿变化时,触发数据寄存器写入数据,随着时钟线连续的上升沿跳变的过程中,数据被一次次写入对应的寄存器里。2.3 硬件电路设计原理图stm32单片机的工作电压为3.3v,因此我们要设计5v转3.3v电源电路,主要应用器件为reg1117芯片,原理图设计如下图:图5 3.3v电源电路 接下来,我们要将ccd ov7670的24pin引脚与单片机建立相应的连接。要由stm32 的dcmi模块给ccd提供相应的脉冲驱动,因此要将单片机的io口复用引脚选好,连接方式如下图6:图6 ov7670与单片机的引脚连接原理图 要通过tft屏将图像显示出来,这样就要配置stm32的fsmc模块,此模块给出相应的脉冲,从而驱动ccd进行工作,将此模块与ili9235的引脚连接起来,数据的传输时是通过spi模式进行的,同样的也要将io口的spi功能引脚进行配置,原理图连接如图7:图7 ili9235与stm32的连接原理图3 控制程序编写对上述硬件电路电路搭建好以后,还需要进行程序的编写,这样才会使硬件电路实现工作。整个硬件工作的实现需要利用对stm单片机进行程序编写才能实现控制,而stm单片机采用面向对象的方式进行编程,在st公司对stm单片机的个模块进行了库函数的编写的前提下,因此去公司的资料查找相应的模块化程序,这样我们就极为方便的对要用模块采取相应的库函数调用即可,即:#include stm32f4xx.h这里需要分别根据ov7670和ili9325的时序分析对其进行驱动程序的编写,在函数的编写中我较多采用c语言中结构体的形式。要实现实时显示,就要有高速的数据处理模式,所以采用单片机的dma通道,而且dma有自己的时钟,这样就不在需要麻烦cpu起动后再让dma开始进行工作,实现了可以直接从ccd内存中读取数据的操作,因此就缩短了经过cpu允许读取数据的时间,从而看起来似实现了实时显示的效果。部分主要程序编写如下: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_initstructure.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();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软件程序进行编写,同时需要使用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 行政工作效能提升方案操作手册
- 企业采购审批流程标准作业与管理一体化模板
- 儿童成长教育投资承诺书(4篇)
- 公司内外部信息沟通交流模版和沟通协议书
- 物理九年级全册二 磁场教案设计
- 2025年甘肃莫高实业发展股份有限公司招聘20人笔试考试参考试题及答案解析
- 二年级数学计算题专项练习1000题汇编
- 2025年甘肃人力委托招聘政务服务热线12345坐席考试笔试备考试题及答案解析
- 高考政治一轮复习 第13课 创新思维要力求超前(讲义)(原卷版)
- 手机录制高质量微课操作指南
- 2025年中国铝铸件铸造行业市场前景预测及投资价值评估分析报告
- 企业文档管理与归档操作规范
- 质量管理与思政
- 2025年度哈尔滨“丁香人才周”(春季)民兵教练员补充招聘20人笔试考试备考题库及答案解析
- 2025年肠道菌群行业发展现状与未来趋势白皮书
- 足疗服务篇培训
- (人教版205新教材)英语三年级上册核心基础知识清单年
- 代谢综合征麻醉管理要点
- 2025年教师资格考试《学科教学论》备考题库及答案解析
- 2025浙江金华市交通投资集团有限公司招聘笔试笔试历年参考题库附带答案详解
- 网吧消防演练方案及流程
评论
0/150
提交评论