基于STM32F107的图像采集传输系统设计
摘要:设计一种基于ZigBee传输技术和JPEG图像压缩技术的图像采集传输系统。以STM32F107微控制器为核心,通过摄像头 OV7670采集到图像后,对图像进行JPEG压缩。压缩后的数据通过ZigBee模块传输到上位机,在上位机上进行图像恢复。该系统功耗低,工作稳定,适合用于远程监测的图像采集系统使用。
关键词:STM32;低功耗;OV7670;CC2530
无线传感网络是由大量具有通信和计算能力、廉价微型的传感器节点通过自组织的无线通信方式,相互传递信息,协同地完成特定功能的智能网络,在环境监测、安全监控、智能家居等领域有着广大的应用空间。通过图像信息的分析可以精确、直观地对目标环境实施监测。本系统通过STM32F107对摄像头的时序控制,以及ZigBee模块的使用,实现了图像信息在无线传感网络的实时采集和传输。
1 硬件设计方案
1.1 硬件系统结构
系统硬件部分主要由STM32F107、摄像头OV7670、帧缓存器及ZigBee模块及其他外设组成。其中,LCD接口主要用于图像显示,便于图像采集程序的调试,SRAM用于系统的数据存储器,Flash用于系统的程序存储器。系统整体框图如图1所示。
1.2 STM32F107微处理器
STM32F107是意法半导体推出全新STM32互连型系列微控制器中的一款性能较强产品,是基于Cortex-M3内核的32位微控制器。工作电压为2~3.6 V,主频为72 MHz,片上集成256 kb的Flash和64 kb的SRAM.STM32F107拥有全速USB(OTG)接口,两路CAN2.0B接口,以及以太网10/100 MAC模块,并且带有一个ZigBee无线网络通讯接口,支持JTAG/SWD接口的调试下载,支持IAP。此芯片可以满足工业、医疗、楼宇自动化、家庭音响和家电市场多种产品需求。
1.3 摄像头OV7670
OV7670是OV公司生产的一颗1/6寸的CMOS VGA图像传感器,其体积小、工作电压低,提供单片VGA摄像头和影像处理器的所有功能。通过SCCB总线控制,可以输出整帧、子采样、取窗口等方式的各种分辨率8位影像数据。支持RawRGB、RGB(CBR4:2:2,RGB565/RGB555/RGB444),YUV(4:2:2)和 YcbCr(4:2:2)输出格式,支持VGA、CIF和从CIF到40*30的各种尺寸输出。用户可以完全控制图像质量、数据格式和传输方式,摄像头与 STM32的连接如图2所示。
1.4 帧缓存器AL422B
由于因为OV7670的像素时钟最高可达24 MHz,我们用STM32F107的IO口直接抓取,是非常困难并且十分占耗CPU。本系统通过FIFO读取,芯片的容量为384k字节,足够存储2帧QVGA的图像数据。
1.5 ZigBee模块
CC2530芯片是TI公司推出的嵌入式ZigBee应用的片上系统,其主要支持2.4GHz IEEE 802.15.4以及ZigBee协议。该芯片可以非常快速地切换到不同的运行模式,使得其可以应用于低功耗的相关场合。CC2530芯片还提供了32 KB、64 KB、128 KB、256 KB等四种不同的闪存,本系统选用128 KB的闪存。本系统为了有效地提高CC2530无线通讯质量且增加通信距离,使用CC2591芯片中的RF端子作为射频前端,射频前端CC2591外围电路如图3所示。
2 软件设计方案
2.1 摄像头初始化及采集
摄像头的初始化,主要是通过SCCB初始化相关IO口及配置寄存器。初始化后就要进行采集部分,本系统通过一个外部中断来捕捉帧同步信号 (VSYNC),在中断服务程序里启动OV7670模块的图像数据存储,直到下一次VSHNC信号时就关闭数据存储,至此完成一帧图像存储。在LCD实时显示的同时开始第二帧数据的存储,如此循环,实现摄像头功能。
部分实验代码如下:
2.2 无线网络的搭建
摄像头节点启动后加入ZigBee网络,然后低功耗侦听捕捉中断,接收中断后,完成摄像头初始化,设置好图像的分辨率,压缩率以及分包大小,将图像的大小信息发送给汇聚节点后,等待接收汇聚节点的取包命令,根据取包命令中的包ID取出相应的数据包,最后返回低功耗侦听模式,具体流程图如图 4所示。
2.3 系统测试
汇聚节点通过USB转串口工具连接到计算机,摄像头节点采集到数据后,将图像压缩,压缩后的数据分包发送给汇聚节点,汇聚节点通过串口发送给计算机,接收到的数据,在上位机进行图像恢复。使用VC++6.0可以编写一个图像恢复工具,通过使用ImageLoad.dll动态链接库可以减轻编写多种格式图像文件的读写及编码解码工作。将接收到的图片数据提取出以FF D8开始,FF D9结束的JPEG数据流,将其放入转换框中,点击“开始转换”按钮,得到了转换后的图片之后,点击“保存图片”按钮将图片保存。
3 总结
测试结果表明,本系统通过对摄像头的配置,很好的解决了时序问题,能够实现图像的实时采集,并且丢包较少,实现了数据在无线传感网络的传输,最后的
- STM32学习笔记:在IAR中建立FWlib 3.0项目(08-13)
- 基于STM32单片机的火控系统信号采集测试(11-14)
- 基于LabVIEW的STM32调试平台设计(11-17)
- 基于STM32的LF RFID识别系统设计(11-25)
- STM32中断与嵌套NVIC快速入门(01-25)
- 基于TLC5947的旋转LED屏显示控制器设计(01-25)