0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >无线互联 > 基于STM32F407芯片+HR11105A+LAN8720A+OV7670CMOS图像传感器的图像远程采集终端设计方案

基于STM32F407芯片+HR11105A+LAN8720A+OV7670CMOS图像传感器的图像远程采集终端设计方案

来源:
2021-08-05
类别:无线互联
eye 400
文章创建人 拍明

原标题:基于STM32F407的图像远程采集终端设计方案

  本文阐述一种基于STM32F407的图像远程采集终端,分别从终端采集硬件设计和终端采集软件设计两方面进行论述,并借助实验验证该采集终端的有效性和合理性。

  1、终端采集硬件设计

  系统的主体框图如图1所示,它主要由STM32F407芯片、OV7670CMOS图像传感器和上位机软件等几个重要部分组成。STM32F407是整个远程采集终端的核心,起到了承上启下的关键作用,一方面它将完成底层信号的获取和预处理,另一方面它将通过网络将采集到的彩色图像数据实时传送到上位机,本文将重点介绍这两部分的内容。

  

image.png


  图1 系统主体框图

  1.1、STM32F407与OV7670的硬件连接

  在图2中,利用STM32F407的PH9~PH12、PH14,PI4、PI6、PI7接口接收OV7670经DCMI接口输出的8位图像数据。OV7670的SIO_C和SIO_D接口分别与STM32F407PF8、PF9引脚相连,通过该接口实现对摄像头的初始化配置。OV7670CMOS摄像头配置COM7寄存器实现采集到的是RGB565的16位图像数据,通过DMA将数据传输到图像数据缓冲区,当垂直同步中断到来时表示缓冲区中已存满一帧图像数据,控制器取出图像数据缓冲去的数据进行后续的处理,然后传输到上位机。摄像头与STM32F407的连接图如图2所示:

  

1.png


  图2 OV7670与STM32F407连接电路图

  1.2、STM32F407以太网通信接口电路

  以太网通信接口模块是由CPU所内置的以太网MAC、专用10/100MPHYLAN8720A、HR11105A以及RJ45网口组成。以太网物理层器件LAN8720A作为TCP/IP协议的物理层器件。HR911105A为RJ45网络接口器件。当上位机PC有数据要求时,数据请求指令首先通过双绞线、HR911105A和STM32F407的以太网模块进入控制器,指令数据在其内部进行格式转换至SPI格式,然后通过SPI总线送至STM32F407,在STM32F407内实现SPI格式数据到以太网数据的转换。完成IP封装后的数据经过STM32F407的以太网模块、LAN8720A及HR911105A接口和双绞线传送至上位机。芯片引脚连接图如图3。

  

image.png


  图3 LAN8720A与STM32F407硬件连接电路示意图

  2、终端采集软件设计

  软件设计主要包括在STM32F407上实现TCP/IP协议并与上位机通信,控制OV7670CMOS图像传感器实现图像数据的采集和传输等工作。STM32F407程序设计在KeiluVision4环境下实现,主要包括以下两部分:一是OV7670完成模拟信号的采集;二是远程传输数据的实现。本文主要介绍STM32F407程序的实现方法。

  2.1、OV7670完成模拟信号的采集

  在图像采集软件设计中,对系统各个部分的初始化是最为关键的一步,只有对各部分初始化成功以后,才能实现图像采集功能。图像采集初始化程序主要包括对系统时钟、SCCB接口、DMA、DCMI接口、OV7670摄像头等的初始化。在系统初始化设置成功以后,微控制器不断监测VSYNC信号电平变化,根据VSYNC产生的中断情况,控制对数据的读取。终端图像采集程序流程图如图4所示:

  

image.png


  图4 图像采集程序流程图

  (1)设置SCCB的相关参数

  由于对摄像头工作参数的配置主要通过SCCB来实现,因此,在系统进行软件设计时,首先设计SCCB相关程序,进而通过SCCB设置摄像头的相关参数。SCCB设计的重要函数如下。

  voidsccb_bus_init(void)

  {

  GPIO_InitTypeDefGPIO_InitStructure;//结构体初始化

  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);//使能GPIOF时钟

  GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_9;//SCCB_SIC:PE2、SCCB_SID:PE3

  GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;//设置为输出

  GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;//设置为推免模式

  GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;//悬浮模式

  GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//50MHz时钟频率

  GPIO_Init(GPIOF,&GPIO_InitStructure);}

  (2)OV7670的寄存器的配置

  在完成SCCB初始化、起始与停止等相关程序后,配置OV7670寄存器完成工作参数的设置,包括显示模式、输出格式、增益控制等。OV7670的寄存器配置如下:

  constuint8_tOV7670_reg[OV7670_REG_NUM][2]={

  {0x12,0x14};//设为VGA显示模式

  {0x40,0xd0};//RGB565输出格式

  {0x3e,0x00};//PCLK不分频

  {0x71,0x00};//非测试模式

  /*图像分辨率的配置*/

  {0x32,0x80},

  {0x17,0x16},

  {0x18,0x04},

  {0x19,0x02},

  {0x1a,0x7a},

  {0x03,0x03},......}


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯