基于STM32单片机驱动面阵CCD实时图像显示的研究
2020-08-28
来源:爱问旅游网
第37卷第1期 2014年2月 长春理工大学学报(自然科学版) JournalofChangchunUniversity ofScience andTechnology(Natural ScienceEdition) Vo1.37 No.1 Feb.2014 基于STM32单片机驱动面阵 GOD实时图像显示的研究 李大朋,曹国华,陈佶言 (长春理工大学机电工程学院,长春130022) 摘要:通过研究一种ST公司ARM架构的STM32F4系列单片机,并通过配置其自身带的DCMI通道,从而产生相应的 时序来实现对面阵CCD的驱动。给出了硬件电路的设计并将硬件进行了搭建,而且还通过KEIL4软件及J—LINK工具对硬 件电路进行了仿真及测试,结果表明利用此器件可以把图像实时显示出来,由于其控制简单、信息数据易存储、信息数据 易处理、实时显示效果良好等功能特点,在工业监控及图像处理控制应用的场合下得到了广泛的应用。 关键词:CCD;STM32;单片机;DMA 中图分类号:TN911.73 文献标识码:A 文章编号:1672-9870(2014)01--0037-04 Research on Imaging System Based on STM Micro-controller Unit LI Dapeng,CAO Guohua,CHEN Jiyan (School ofMechatronicalEngineering,ChangchunUniversityofScience andTechnology,Changchun130022) Abstract:By the timing array CCD analysis,the ARM architecture of STM32 MCU timing is used to drive the CCD by the DCMI channel configuration.The design of hardware circuit is completed 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 and can be widely used in industrial control,image data acquisition,process control applications. Key WOrds:CCD;STM32;Microcontroller;DMA(Direct Memory Access) 随着电子时代的高速发展,CCD的驱动并非难 采集到的数据处理方便并且易于对想要的数据进行 事,例如我们使用的手机,都有实时显示的功能,但 处理,适合技术工作者进行简单的应用。! 外,整个 是在工业控制的场合,不光是将图像实时显示出来, 仪器的制作费用很低,体积小,极利于大规模的生产 还要能够保存信息,对信息进行实时处理,这样才能 和应用。实现对控制目标更好的准确控制。 本文采取面阵CCD 0V7670作为图像传感器, 它可以传送多种数据采集模式,要结合ILI9325 1 系统总体方案的设计 由于STM32F4系列单片机是采用ST公司 TFT屏进行实时图象显示,此TFT屏的数据存储 ARM架构的一款新型单片机,ARM类的单片机是 器的基本存储单元为16位,因此采用了RGB565图 采用面向对象的编程方式而使得技术工作者更容易 像数据格式进行处理。详细介绍了重要模块的相关 上手,它改变我们对单片机控制的思路,我们町以不 知识、成品的硬件组成、单片机及外围接口电路设 再去深入了解单片机的各个模块,只要能够根据对 计、软件程序编写、硬件仿真、成型产品设计效果介 各个模块配置好的函数进行简单的调用和再编程即 绍等。设计的创新点在于,0V7670图像传感器集 可实现对该款单片机相应的模块功能进行操作和应 成模块功能齐全,致使外围电路设计简单且易于复 用,使用起来极为方便,当然对C语言的熟练掌握也 制和学习,脉冲控制程序和实时显示程序简单易写, 至关重要。此单片机DCMI模式,使得IO口具有了 收稿日期:2Ol3一o8—22 作者简介:李大朋(1983一),男,硕士研究生,E—mail:lidap2007@163.COID_ 通讯作者:曹国华(1965一),男,教授,博士生导师,E—mail:caoguohua@cust.com 长春理工大学学报(自然科学版) 2014年 较多采用C语言中结构体的形式。要实现实时显 DCMI—OV7670一Init(); 示,就要有高速的数据处理模式,所以采用单片机的 DMA通道,而且DMA有自己的时钟,这样就不再 需要CPu起动后再让DMA开始进行工作,实现了 可以直接从CCD内存中读取数据的操作,因此就缩 短了经过CPU允许读取数据的时间,从而看起来似 DMA—Cmd(DMA2一Streaml,ENABLE); DCMI—Cmd(ENABI E); DCMI—CaptureCmd(ENABLE); white(1) { } } 实现了实时显示的效果。部分主要程序编写如下: void DⅣ【A(void) { 4结束语 DMA—InitTypeDef DMA—InitStmcture;//声明STM 库函数种的DMA函数,以便对其内部函数进行直接调用。 RCC—AHB1PeriphClockCmd (RCC—AHBIPefiph—DMA2,ENABLE);//开启AHB1时钟 线的DMA2的时钟,使其工作。 DMA—DeImt(DMA2一Stream4); DMA—InitStructure.DMA—Channel=DMA—Channel一 2;//选取DMA所用通道,根据STM手册选折DMA2, Strearn4通道。 DMA—InitStmcture.DMA—Memory0BaseAddr= (uint32一t)&LCD—RAM;//DMA内存中的数据直接发送给 LCD的RAM中.这里进行了一次数据强制转换。 DMA—InitStmcture.DMA—DIR=DMA—DIR—Memory—— ToMemory;//DMA读取数据的方向为直接从CCD内存到 单片机内存。 } 主函数: int main(void) { GPIO—Configuration(); GPIO—SetBits(GPIOE,GPIO—Pin一0 I GPIO—Pin一1l GPIO—Pin一2j GPIO—Pin一3); DMA(); LCD.Initializtion(); delay—ms(50); LCD—WriteReg(0x0011,0x6078); LCD—REG=0x0022: 将硬件电路搭建好并测试OK完成后,通过 L4软件程序进行编写,同时需要使用J~link烧 写程序到单片机的ROM中,这里需要对KEI4软件 L4软件和J—linl【直 接将程序下载到STM32单片机中的ROM中,按下 复位键以后,就可以看到实时的图像于TFT显示屏 上。CCD的数据处理的速度为50帧/秒,成像效果 良好,目前可应用于视频监控,视频信息处理的项目 中,同时在机电楼视觉机器人研究室进行了视频控 制的验证。 参考文献 [1]周立功.ARM嵌入式系统基础教程[M].北京:北京航 天航空大学出版社,2005. [2] 张传胜.基于FPGA的面阵CCD驱动及快速显示系统 的设计实现[J].液晶与显示,2012,27(6):789-794. [3]吴吕宪.基于线阵CCD及STM32的滚针直径精确测量 的研究IN].北京:清华大学出版社,2012. [4]童诗白,华成英.模拟电子基础[M].北京:高等教育出 版社,2003. [5]张化朋.用单片机驱动线阵CCD的探讨[J].光学技术, 2000,26(4):342-347. [6]谭浩强.C程序设计(第二版)IN].北京:清华大学出版 社,2001. [7]尹勇.Protel DXP电路设计与进阶[M].北京:科学出版 社,2004. KEI进行相应的配置,然后通过KEI