历史上的今天
返回首页

历史上的今天

今天是:2025年04月20日(星期日)

正在发生

2021年04月20日 | STM32和OV2640的嵌入式图像采集系统设计

2021-04-20 来源:eefocus

引言


随着电子产品向低功耗、低价格、智能化的方向发展,利用视频传感器采集图像成为研究热点,如可视门铃、安全监控[1]、赛车自动循迹[23]、烟叶图像采集[4]、草本叶子图像采集[5]等。本文根据在线采集、分析、存储图像的需求,设计了嵌入式图像采集系统,运用嵌入式芯片STM32对图像信息进行采集、显示和存储。


1 系统结构与功能


图像采集系统以基于ARM公司的CortexM3内核的STM32F103RBT6(以下简称STM32)处理器为核心,配合OV2640摄像头和TFT液晶显示器,是一款采集像素多、实时性好且成本低廉的图像采集系统。


系统的硬件结构框图如图1所示,系统通过JLink口实现程序在STM32上的仿真、在线调试,利用JLINK仿真编程器将编译之后的二进制文件烧写到Flash中,系统每次上电时便可从Flash启动文件系统,图像采集系统采用OV2640摄像头模块,输出显示采用2.4英寸TFT液晶显示屏,可将采集到的数据保存在SD卡中。当存储按键按下时,系统接收中断,同时将从OV2640摄像头采集到的数据显示在液晶显示屏上。

图1 系统硬件结构框图


2 硬件设计


2.1 CPU处理器


本系统用的是32位的CortexM3内核的STM32芯片STM32F103RBT6,支持Thumb2指令集,STM32F103RBT6内部的Flash有128K,SRAM大小为20 K,有64个增强I/O口、2个USART、2个12位的A/D转换器[6]。它的供电电压为2.0~3.6 V,拥有省电模式,可以保证低功耗需求。CPU主频最高可以达到72 MHz。


2.2 OV2640摄像头


OV2640具有体积小、工作电压低、兼容I2C总线接口等特点。通过SCCB总线控制,支持RawRGB、RGB(GRB4:2:2、RGB565/555/444)、YUV(4:2:2)和YCbCr(4:2:2)输出格式,可以输出整帧、二次转换分辨率、取特定区域等方式的各种分辨率的8位或10位的图像帧数据,UXGA(1 632×1 232)图像最高达到15 fps。图2OV2640摄像头连接示意图因此,编程者可选择不同图像质量、数据格式,而且,OV2640的高灵敏度适合低照度环境,它的低电压特性适合嵌入式开发应用,摄像头数据口连接CPU的示意图如图2所示。


采用摄像头的8位数据模式,摄像头高8位接CPU的I/O口的低8位,低2位悬空。


2.3 SCCB总线


SCCB(OmniVision Serial Camera Control Bus)与I2C总线协议类似,使用SIO0和SIO1两根数据线进行传输和控制。SIO1是控制线,提供传输过程中的时钟脉冲控制信号,SIO0是串行双向数据传输线,根据控制信号通过串行的方式发送数据。在很多设计中,经常采用I/O口模拟I2C总线的传输,对于SCCB,也可以采用这样的方式。


采用I/O口模拟SCCB总线的要点如下:对于SCL所连接的引脚,在寄存器中设置为输出,而SDA所接的引脚,在数据传送过程中,基于IODIR值的改变,动态改变引脚为输入或输出方式。


2.4 LCD显示模块


本设计所用的为2.4英寸的TFT液晶显示屏,图3系统与ILI9320连接图内部集成有ILI9320 LCD控制芯片,可以直接控制数据的显示。ILI9320可以用来读写寄存器、GRAM,还可显示动态图形的RGB输入接口。显示控制芯片有RGB接口模式与i80系统接口模式,设计选用i80system接口模式。


i80system接口是通过设置IM[3:0]来决定的,同时这几个位也决定了数据传输位数的模式,通过硬件设置IM0位高电平,IM1位高电平,把模式设置为了8位i80system接口传输模式。连接示意图如图3所示。



要写数据到屏上显示,只需要对寄存器0x0022进行写操作即可,当这个寄存器的数据更新时,地址指针(AC)会自动增加或减小,读数据也是同样的道理。


2.5 SD卡接口电路设计


通常而言,SD卡电路设计有两种模式:SPI模式和SD卡模式,由于引脚资源限制,对于连接STM32的方式,采用第一种设计电路,通过STM32上面的SPI接口来和SD卡进行数据通信[8],引脚如图4所示。



在SPI模式中,数据通过STM32的MOSI与MISO进行传送,SCK信号线用来提供工作时钟,当SD 卡收到复位命令(CMD0)时,SD卡立即进入SPI模式。要注意的是,在发送CMD0 之前须发送大于74个的时钟周期;另外,在SD卡初始化时,CLK时钟频率最大不能超过400 kHz。


3软件设计


3.1 系统初始化


系统初始化主要是对CPU时钟进行初始化,以及设置外围电路的时钟分频比,设置中断。其流程可描述如下:


SystemInit();


if (HSEStartUpStatus == SUCCESS){


//如果HSE晶振稳定且就绪


RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); //PLL设置


RCC_CLKConfig();//设置外部总线时钟


GPIO_PinRemapConfig();//改变指定引脚的映射


NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);


//设置中断


}


3.2 摄像头初始化


首先,通过SCCB总线设置OV2640的寄存器数据,主要是配置摄像头输出数据格式类型和输出图像数据大小,达到初始化OV2640的目的。OV2640初始化流程较为简单,伪代码如下:


unsigned char OV2640_init(void){


unsigned char temp;


unsigned inti=0;


OV2640_GPIO_Init();


SCCB_GPIO_Config();//摄像头I/O口初始化


CLK_init_ON();//开摄像头时钟


temp=0x80;


//初始化并判断是否成功


if(0==wrOV2640Reg(0x12, temp))


return 0;


for(i=0;i

if( 0==wrOV2640Reg(change_reg[i][0],change_reg[i][1]))


return 0;


}


return 0x01; //不成功则返回1


}


3.3 LCD显示模块


通过对ILI9320的读写操作时序控制进行仔细的分析后,初始化TFT屏幕,其实质就是对寄存器的设置。程序中对LCD控制器操作的函数接口主要有以下3个:


LCD_WR_REG16()//写寄存器命令


LCD_WR_DATA16()//写寄存器数据


LCD_RD_DATA16()//读寄存器数据


3.4 主程序流程与系统实现


程序运行流程如图5所示,系统启动之后,先按照程序初始化设备,并打开外部中断,如果检测到门铃有按键输入,则启动摄像头与CPU之间的数据传输,启动TFT液晶显示器与CPU之间的数据传输,在液晶显示器上实时显示摄像头所拍摄到的画面,并鸣响蜂鸣器。


如果用户需要,还可以启动拍照,并将照片保存为Bmp的格式文件在SD卡上。同时,在延时一段时间之后,如果没有任何中断触发,则系统运行至低功耗状态,关液晶屏。



实验效果图如图6所示。



从图6中可以看出,STM32加OV2640方案的效果比较令人满意,摄像头的清晰度较高,实时性较好,2.4英寸的显示屏能满足图像显示的需求。


结语


本文基于STM32处理器和OV2640摄像头加2.4英寸TFT液晶显示屏的设计方案不仅成本低廉,而且功能齐全,整体效果较好,硬件平台设备较为成熟。


在软件方面,程序流程严谨,逻辑严密,而且驱动程序较为完善,各个模块之间不存在耦合性,系统运行稳定、可靠。


推荐阅读

史海拾趣

超音(CY)公司的发展小趣事

超音(CY)公司成立于XXXX年,初期专注于音频设备的研发和生产。创始人XXX先生凭借对音乐的热爱和对技术的追求,决定进入电子行业,并确定了音频设备作为公司的主要发展方向。在初创阶段,超音面临了诸多挑战,包括资金短缺、技术瓶颈和市场竞争等。然而,通过不懈的努力和创新,超音逐渐在音频设备领域崭露头角。

CWIND公司的发展小趣事

CWIND公司非常重视人才培养和团队建设。公司建立了完善的培训体系,为新员工提供全面的职业技能培训;同时,公司还鼓励员工参与各种技术交流和培训活动,提升自身的技术水平。在团队建设方面,CWIND注重营造积极向上的工作氛围和团队合作精神。通过定期举办团队建设活动和员工表彰大会等方式,公司成功打造了一支高效、协作、创新的团队。

FCT Electronics公司的发展小趣事

在国内市场取得成功后,FCT Electronics开始将目光投向国际市场。公司积极参加国际电子展会,与多家国际知名企业建立了合作关系。凭借出色的产品性能和专业的客户服务,FCT Electronics的测试设备逐渐在海外市场上占据了一席之地,为公司的国际化发展奠定了坚实基础。

BSI公司的发展小趣事

随着电子产品的普及和消费者对产品质量的关注,电子产品测试和认证成为了一个必不可少的环节。BSI作为全球知名的认证机构,为电子产品提供了专业的测试和认证服务。通过严格的测试和认证流程,BSI确保了电子产品符合国际标准和客户需求,提高了产品的市场竞争力和信誉度。同时,BSI还为企业提供了定制化的商检解决方案,帮助企业在国际贸易中解决技术和法规问题,降低了贸易风险。

台湾兆欣(EMTEK)公司的发展小趣事

在立足台湾市场的同时,兆欣也积极拓展海外市场。他们通过参加国际展会、与海外客户建立合作关系等方式,成功将产品打入国际市场。特别是在亚洲地区,兆欣的产品受到了广泛欢迎和认可。这种多元化的市场布局为公司的快速发展提供了有力支持。

Celduc Relais公司的发展小趣事

Celduc Relais公司自创立之初,便以技术创新为核心驱动力。在公司的早期发展阶段,研发团队成功开发了一款具有颠覆性的继电器产品,该产品在性能、稳定性和寿命等方面均达到了行业领先水平。这一突破性的技术创新不仅为公司赢得了市场的广泛认可,也为后续的产品线扩展和技术升级奠定了坚实基础。

问答坊 | AI 解惑

毕业设计分享【一起学习吧】

发几个毕业设计上来,大家一起学习一下吧 [ 本帖最后由 open82977352 于 2010-1-14 11:10 编辑 ]     …

查看全部问答>

请问,三极管参数里的“耐压”和“功率”是什么意思?

前几天做实验,想买个三极管,但是看到这参数,不知道什么意思,有谁能告诉我的,详细一点的,还有,那个功率,是不是说三极管本身会耗功率啊?谢谢! 型 号 耐压(V) 电流(A) 功率(W) 型 号 耐压(V) 电流(A) 功率(W) B857 70V 4A 40W BU2508A 150 ...…

查看全部问答>

如何让单片机通过互联网控制???请高手指点.

今天做了一个东东...使用了周立功的ZNE10T串口转以太网模块..(该模块有IP协议栈) 实现了局域网的控制.... 但能不能实现外网的控制呢?(就是在远程通过别的PC机利用以太网控制) 请高手指点.... 上位机该怎样写呢?…

查看全部问答>

如何用c#实现wince4.2窗口最大化(隐藏任务栏),谢谢大家!!!

如何用c#实现wince4.2窗口最大化(隐藏任务栏),谢谢大家!!!…

查看全部问答>

LED光源技术在DLP拼接墙中应用的现状和前景深入分析

国内数字背投影显示墙市场已经经历了长达10年的高速增长。目前市场规模已攀升到40亿元人民币每年以上。而据预测,未来五年内该产业依然能保持年均30%以上的增长速率,并逐步实现市场规模化、品牌集中化。     数字背投影显示墙产品市场 ...…

查看全部问答>

在IAR中怎样看程序的运行时间

怎样在IAR调试环境中看程序的运行时间呢?比如我想看一段程序的花费时间,在IAR中怎样设置呢?请各位指教,谢谢。…

查看全部问答>

新设计的MP3开发板

在LPC11U14没有出现之前用LPC1114设计的MP3开发板,在LPC11U14出现后感觉没有必要使用LPC1114,所以一直没有大样,现在秀秀图吧。。。。。。。。。。。。。。                     & ...…

查看全部问答>

苛刻环境下的产品系列-高温产品 2

设计考虑因素德州仪器高可靠性(HiRel)开发小组提供了许多不同的用于恶劣环境下的半导体产品。许多应用都要求电子器件能够在户外使用,工作在典型的工业温度范围内,甚至有时会超出了-55℃至+125℃的军用温度标准范围。这些应用都具有限定条件及封装 ...…

查看全部问答>

大家帮忙翻译一下ADI实验室电路下载资料的标题,感谢哈

1、Broadband, Low Error Vector Magnitude (EVM) Direct Conversion Transmitter Using LO Divide-by-2 Modulator (CN0311) 2、High Accuracy Multichannel Thermocouple Measurement Solution (CN0172) …

查看全部问答>

选择何种传感器?

用于机械操作安全防护。人伸手到某位置则触发动作,置金属到同样的位置却并不触发。…

查看全部问答>