论文部分内容阅读
[摘 要]目前小区装的猫眼很小,无清楚清晰识别来访者,所以对于这一现状而研究可视门铃系统。此次大学生创新训练项目所研究的基于ARM的智能可视化门铃系统属家庭安全系统的一个子系统,主要是对居民住宅的安全进行防范和监控。项目以STM32芯片为研究主体,对ov7670摄像头模块和TFT屏进行了研究,最终实现了可视化的门铃。
[关键词]可视门铃;STM32
中图分类号:TM925.9 文献标识码:A 文章编号:1009-914X(2015)42-0346-02
一、系统的总体设计
可视系统采用的都是模拟的摄像头进行图像采集,通过视频线和音频线实现传输功能。系统以单片机作为核心,并配以视频采集及控制、通话控制、通信控制模块。
系统以摄像头传感器获取门外图像信息,信息输入到STM32微控制器,并实时显示到TFT液晶显示屏;对讲模块控制门铃音频信号的输出与输入。
二、硬件系统设计
2.1 OV7670模块
OV7670 是 OV公司生产的一颗 1/6 寸的 CMOS VGA 图像传感器。该传
感器体积小、工作电压低,提供单片 VGA 摄像头和影像处理器的所有功能。通过 SCCB 总
线控制,可以输出整帧、子采样、取窗口等方式的各种分辨率 8 位影像数据。该产品 VGA
图像最高达到 30 帧/秒。用户可以完全控制图像质量、数据格式和传输方式。所有图像处理功能过程包括伽玛曲线、白平衡、度、色度等都可以通过 SCCB 接口编程。OmmiVision 图
像传感器应用独有的传感器技术,通过减少或消除光学或电子缺陷如固定图案噪声、托尾、
浮散等,提高图像质量,得到清晰的稳定的彩色图像。
OV7670 的特点有:
高灵敏度、低电压适合嵌入式应用
标准的 SCCB 接口,兼容 IIC 接口
支持 RawRGB、 RGB(GBR4:2:2, RGB565/RGB555/RGB444), YUV(4:2:2)和 YCbCr
(4:2:2)输出格式
支持 VGA、CIF,和从 CIF 到 40*30 的各种尺寸输出
支持自动曝光控制、自动增益控制、自动白平衡、自动消除灯光条纹、自动黑电平校准等自动控制功能。同时支持色饱和度、色相、伽马、锐度等设置。
支持闪光灯
支持图像缩放
2.2 TFT彩屏显示模块
本系统使用的真彩屏是一块高画质的3.5寸TFT真彩LCD模块,共分布着320*240个像素点,模块内置LCD控制器以及驱动器,可方便地通过ARM对其进行控制,具有编程方便和易于扩展等良好性能,接口中D0—D7为8位数据总线,CS为片选信号低电平有效,A0为控制寄存器与数据寄存器的选择,RD/WE为读/写信号,SCK与SDO等信号为SPI总线的数据传输,彩屏接口
2.3 对讲模块
对讲模块包括发射语音信号处理,调制,功率放大,接收的低噪放大,语音信号解调,信号处理。体积超小,开发简单,周期短,可做成小型对讲机,又可将该模块嵌入到其它移动手持设备中。
三、软件系统设计
对摄像头该模块,只关心两点:1,如何存储图像数据;2,如何读取图像数据。
因为OV7670的像素时钟(PCLK)最高可达24MHz,我们用STM32F103RBT6的IO口直接抓取,是非常困难的,也十分占耗CPU(可以通过降低PCLK输出频率,来实现IO口抓取,但是有其相应的弊端,不推荐使用)。所以,这里我们并不是采取直接抓取来自OV7670的数据,而是通过FIFO读取,ALIENTEK OV7670摄像头模块自带了一个FIFO芯片,用于暂时存储图像数据,有了这个芯片,我们就可以很方便的获取图像数据了,而不再需要单片机具有高速的IO口,也不会耗费多少CPU,可以说,只要是个单片机,就可以通过ALIENTEK OV7670摄像头模块实现摄像功能。
3.1 存储图像数据
ALIENTEK OV7670 摄像头模块存储图像数据的过程为:等待 OV7670 同步信号FIFO
写指针复位?FIFO 写使能?等待第二个 OV7670 同步信号?FIFO 写禁止。通过以上 5 个步骤,就完成了 1 帧图像数据的存储。
3.2 读取图像数据
在存储完一帧图像以后,就可以开始读取图像数据了。读取过程为:FIFO 读指针复位给FIFO读时钟(FIFO_RCLK)读取第一个像素高字节给 FIFO读时钟读取第一个像素低字节给FIFO读时钟读取第二个像素高字节?循环读取剩余像素结束。
可以看出,ALIENTEK OV7670 摄像头模块数据的读取也是十分简单,比如 QVGA 模式,RGB565 格式,我们总共循环读取 320*240*2 次,就可以读取1帧图像数据,把这些数据写入 LCD 模块,就可以看到摄像头捕捉到的画面了。
3.3 代码设计
我们用一格外部中断来捕捉同步信号(VSYNC),然后在中断里面启动OV7670模块的图像数据存储,等待下一次VSHNC信号到来,我们就关闭了存储,然后一帧的数据就存储完成了,在主函数里面就可以慢慢的将这一帧数据读出来,放到LCD即可显示了,同时开始第二帧数据的存储,如此循环,实现摄像头功能。
这里,我们还有一个小技巧,我们使用的是摄像头模块的QVGA输出(320*240),刚好和ALIENTEK MiniSTM32开发板使用的LCD模块分辨率一样,一帧输出就是一屏数据,提高素速度的同时也不浪费资源。 四、系统调试与测试
4.1 电路板整体调试
在系统的印刷电路板设计和制作出来后,就要焊接相应的器件在电路板上,由于器件的封装几乎都是贴片式的,所以子啊焊接的时候更加小心。当焊接完成后,就要对电路板整体进行调试,具体步骤分以下几点:
1、检查电路元器件的管脚的序号是否接错,尤其是二极管、三极管等一些器件,一旦管脚序号接反,会烧坏器件和电源。
2、检查元器件有没有出现漏焊和虚焊,用万用表进行测试。
3、对照原理图,用万用表检查电路板线路是否与电路原理图上一致,电路有没有出现短路,电源和地会不会出现短路。
4.2 系统整体测试
当所有的模块装配成一个完整的系统后,就要对其进行系统性能测试。系统测试的主要目的是为了更加稳定和安全,排除出错的可能性。针对此系统进行性能上的测试。
为了测试系统性能,在PC机上建立一个模拟超级终端,所有程序的测试都是通过超级终端来实现。
测试的最终目的满足以下几点:
1、系统的图像稳定清晰,声音的效果满足一定质量,监控的录像能够传递到安全中心。
2、为了验证系统的稳定,长时间地进行测试,并多次进行可视对讲通话,发现并没有问题。
3、在不同场合和环境下进行监测。将此系统放至不同小区内测试,并且在不同温度、湿度环境下运行,运行效果良好。
五、总结
基于ARM处理器的STM32芯片并非是很高档的芯片,但是其高性能、低成本、低功耗的特点使得它应用于可视化门铃系统十分的合适。一方面,门铃系统可视化的视屏要求并无需那么高,STM32芯片处理起来游刃有余,可以保证较好的像素及帧数。另一方面,STM32芯片功耗低,不易发热,给可视化门铃系统的稳定性提供了保障
参考文献
[1] 刘火良,杨森.STM32库开发实战指南,机械工业出版社,2012.
[2] 王竹梅.基于ARM9处理器的楼宇控制器设计,北方工业大学硕士学位论文,2010.
[3] Philips Semiconductors.UDA1341 datasheet.www.zlgmcu.com 2004.5.
[关键词]可视门铃;STM32
中图分类号:TM925.9 文献标识码:A 文章编号:1009-914X(2015)42-0346-02
一、系统的总体设计
可视系统采用的都是模拟的摄像头进行图像采集,通过视频线和音频线实现传输功能。系统以单片机作为核心,并配以视频采集及控制、通话控制、通信控制模块。
系统以摄像头传感器获取门外图像信息,信息输入到STM32微控制器,并实时显示到TFT液晶显示屏;对讲模块控制门铃音频信号的输出与输入。
二、硬件系统设计
2.1 OV7670模块
OV7670 是 OV公司生产的一颗 1/6 寸的 CMOS VGA 图像传感器。该传
感器体积小、工作电压低,提供单片 VGA 摄像头和影像处理器的所有功能。通过 SCCB 总
线控制,可以输出整帧、子采样、取窗口等方式的各种分辨率 8 位影像数据。该产品 VGA
图像最高达到 30 帧/秒。用户可以完全控制图像质量、数据格式和传输方式。所有图像处理功能过程包括伽玛曲线、白平衡、度、色度等都可以通过 SCCB 接口编程。OmmiVision 图
像传感器应用独有的传感器技术,通过减少或消除光学或电子缺陷如固定图案噪声、托尾、
浮散等,提高图像质量,得到清晰的稳定的彩色图像。
OV7670 的特点有:
高灵敏度、低电压适合嵌入式应用
标准的 SCCB 接口,兼容 IIC 接口
支持 RawRGB、 RGB(GBR4:2:2, RGB565/RGB555/RGB444), YUV(4:2:2)和 YCbCr
(4:2:2)输出格式
支持 VGA、CIF,和从 CIF 到 40*30 的各种尺寸输出
支持自动曝光控制、自动增益控制、自动白平衡、自动消除灯光条纹、自动黑电平校准等自动控制功能。同时支持色饱和度、色相、伽马、锐度等设置。
支持闪光灯
支持图像缩放
2.2 TFT彩屏显示模块
本系统使用的真彩屏是一块高画质的3.5寸TFT真彩LCD模块,共分布着320*240个像素点,模块内置LCD控制器以及驱动器,可方便地通过ARM对其进行控制,具有编程方便和易于扩展等良好性能,接口中D0—D7为8位数据总线,CS为片选信号低电平有效,A0为控制寄存器与数据寄存器的选择,RD/WE为读/写信号,SCK与SDO等信号为SPI总线的数据传输,彩屏接口
2.3 对讲模块
对讲模块包括发射语音信号处理,调制,功率放大,接收的低噪放大,语音信号解调,信号处理。体积超小,开发简单,周期短,可做成小型对讲机,又可将该模块嵌入到其它移动手持设备中。
三、软件系统设计
对摄像头该模块,只关心两点:1,如何存储图像数据;2,如何读取图像数据。
因为OV7670的像素时钟(PCLK)最高可达24MHz,我们用STM32F103RBT6的IO口直接抓取,是非常困难的,也十分占耗CPU(可以通过降低PCLK输出频率,来实现IO口抓取,但是有其相应的弊端,不推荐使用)。所以,这里我们并不是采取直接抓取来自OV7670的数据,而是通过FIFO读取,ALIENTEK OV7670摄像头模块自带了一个FIFO芯片,用于暂时存储图像数据,有了这个芯片,我们就可以很方便的获取图像数据了,而不再需要单片机具有高速的IO口,也不会耗费多少CPU,可以说,只要是个单片机,就可以通过ALIENTEK OV7670摄像头模块实现摄像功能。
3.1 存储图像数据
ALIENTEK OV7670 摄像头模块存储图像数据的过程为:等待 OV7670 同步信号FIFO
写指针复位?FIFO 写使能?等待第二个 OV7670 同步信号?FIFO 写禁止。通过以上 5 个步骤,就完成了 1 帧图像数据的存储。
3.2 读取图像数据
在存储完一帧图像以后,就可以开始读取图像数据了。读取过程为:FIFO 读指针复位给FIFO读时钟(FIFO_RCLK)读取第一个像素高字节给 FIFO读时钟读取第一个像素低字节给FIFO读时钟读取第二个像素高字节?循环读取剩余像素结束。
可以看出,ALIENTEK OV7670 摄像头模块数据的读取也是十分简单,比如 QVGA 模式,RGB565 格式,我们总共循环读取 320*240*2 次,就可以读取1帧图像数据,把这些数据写入 LCD 模块,就可以看到摄像头捕捉到的画面了。
3.3 代码设计
我们用一格外部中断来捕捉同步信号(VSYNC),然后在中断里面启动OV7670模块的图像数据存储,等待下一次VSHNC信号到来,我们就关闭了存储,然后一帧的数据就存储完成了,在主函数里面就可以慢慢的将这一帧数据读出来,放到LCD即可显示了,同时开始第二帧数据的存储,如此循环,实现摄像头功能。
这里,我们还有一个小技巧,我们使用的是摄像头模块的QVGA输出(320*240),刚好和ALIENTEK MiniSTM32开发板使用的LCD模块分辨率一样,一帧输出就是一屏数据,提高素速度的同时也不浪费资源。 四、系统调试与测试
4.1 电路板整体调试
在系统的印刷电路板设计和制作出来后,就要焊接相应的器件在电路板上,由于器件的封装几乎都是贴片式的,所以子啊焊接的时候更加小心。当焊接完成后,就要对电路板整体进行调试,具体步骤分以下几点:
1、检查电路元器件的管脚的序号是否接错,尤其是二极管、三极管等一些器件,一旦管脚序号接反,会烧坏器件和电源。
2、检查元器件有没有出现漏焊和虚焊,用万用表进行测试。
3、对照原理图,用万用表检查电路板线路是否与电路原理图上一致,电路有没有出现短路,电源和地会不会出现短路。
4.2 系统整体测试
当所有的模块装配成一个完整的系统后,就要对其进行系统性能测试。系统测试的主要目的是为了更加稳定和安全,排除出错的可能性。针对此系统进行性能上的测试。
为了测试系统性能,在PC机上建立一个模拟超级终端,所有程序的测试都是通过超级终端来实现。
测试的最终目的满足以下几点:
1、系统的图像稳定清晰,声音的效果满足一定质量,监控的录像能够传递到安全中心。
2、为了验证系统的稳定,长时间地进行测试,并多次进行可视对讲通话,发现并没有问题。
3、在不同场合和环境下进行监测。将此系统放至不同小区内测试,并且在不同温度、湿度环境下运行,运行效果良好。
五、总结
基于ARM处理器的STM32芯片并非是很高档的芯片,但是其高性能、低成本、低功耗的特点使得它应用于可视化门铃系统十分的合适。一方面,门铃系统可视化的视屏要求并无需那么高,STM32芯片处理起来游刃有余,可以保证较好的像素及帧数。另一方面,STM32芯片功耗低,不易发热,给可视化门铃系统的稳定性提供了保障
参考文献
[1] 刘火良,杨森.STM32库开发实战指南,机械工业出版社,2012.
[2] 王竹梅.基于ARM9处理器的楼宇控制器设计,北方工业大学硕士学位论文,2010.
[3] Philips Semiconductors.UDA1341 datasheet.www.zlgmcu.com 2004.5.