一种基于C51单片机的图像采集处理系
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
K ey wor ds:sensor,image acquisition,interpolation,MCU
引言
数字图像采集与处理由于其大数据量通常采用 DSP 等高速处理器来实现。在某些领域比如纺织机械丝 线识别,水表读数等方面图像实时性的要求并没有那么 高,因此,本文采用 STC89C52 这一 C51 系列低速单片 机作为控制器进行图像的采集和处理,并通过 RS232 把采集的数据发送到 PC 进行处理生成 BMP 图片。
(4)
P(G) = G(i,i)
(5)
P(B) = [ B(i,j-1) + B(i,j+1))/ 2
(6)
式中,i = 2*m + 1 (1≤m≤ROW/2-2),
j = 2*n (1≤n≤COL/2-1),
COL=640,ROW=480
式(1) ̄ 式(3)实现的是奇数 Row 的 B 分量像素
点的 RGB 插值,式(4) ̄ 式(6)实现的是奇数 Row 的
2 图像采集处理系统软件设计
2.1 下位机 STC89C52 端程序设计 摄像头数据的采集起始控制、传输以及摄像头寄
存器配置的通道是上位机 PC 端的 RS232 和下位机 STC89C52 的 UART。系统设计了起始控制命令和寄 存器配置命令两种串口通信协议。通信协议见表 1。
表 1 串口通信协议
AL422B 这个先进先出的 DRAM 数据存储器主 要用于存放完整的一帧 OV7670 输出的图像数据。 AL422B 有 384KBytes 的存储空间,支持 VGA,CCIR, NTSC,PAL 等视频格式的分辨率大小[5]。AL422B 还提 供了读写复位,读写时钟引脚。因此在设计硬件系统 过程中,由 OV7670 的像素信号输出时钟 PCLK 作为 AL422B 的写输入时钟,由 C51 单片机的通用 IO 提 供读时钟。
Abstr act:This paper introduces the hardware and software design of OV7670 CMOS sensor based on C51 MCU with low cost and simple method. The FIFO memory is used to reduce the haredware design complexity and solve the problem of low memory capacity and slow speed IO of C51. The raw data from the sensor is collected by the firmware which also provides the funcation of setting the registers of OV7670. Addtionly, the host progame is also designed, which provids the funcation of colecting data, displaying and saving the image, sensor registers configuration, image resolution adjustment.
设置等参数修改的功能。
关键词:传感器,图像采集,插值,单片机
中图分类号:TN911.73
来自百度文库
文献标识码:A
Design of a I mage Acquisition and Processing System Based on C51 MCU
REN Zhi-min
(Department of Electromechanical Engineering,Changzhou Textile Garment Institute,Changzhou 213164,China)
PC 端上位机程序主要设计了数据显示功能,保 存图片,配置寄存器参数等功能。程序从串口读取图 像数据,在接收完整一帧数据后处理并显示、保存。 PC 端程序主要实现的一 个算法是 rgb raw bayer to rgb24。为了获得 raw bayer 数据,下位机程序默认配 置 OV7670 输出模式为 VGA(640×480),raw bayer 格 式,每一帧数据的 raw bayer 格式如图 4 所示。
参考文献:
[1] 李德明,韩 剑,江国强. 基于 OV7670 的图像采集及显示 系统设计[J].仪器仪表学报,2010,31(8):30-33.
[2] cmucam4. Electrical and Computer Engineering and CyLab Carnegie Mellon University [EB/OL]. http://www.cmucam.org, 2012-02.
(2)
P(B) = B(i,i)
(3)
式中,i = 2*m + 1 (1≤m≤ROW/2-2),
j = 2*n + 1 (1≤n≤COL/2-1),
图 6 奇数行像素点 G(i,j)插值
要实现 G(i,j)->P(R,G,B)的插值,则,
P(R) = [R(i-1,j) + R(i+1,j-1)] / 2
第 26 卷 第 3 期 文章编号:1003-5850(2013)03-0057-03
电脑开发与应用
(总 0219) ·57·
一种基于 C51 单片机的图像采集处理系统设计
任志敏
(常州纺织服装职业技术学院机电工程系,江苏 常州 213164)
摘 要:为了实现一种简单、低成本的复合图像传感器系统,设计了一种在 C51 单片机控制平台上采集处理
G 分量像素点的 RGB 插值。
偶数行的插值与奇数行类似,不再赘述。
3 结束语
采用基本感光元件 OV7670,FIFO 存储芯片,低 速的 C51 系列单片机,少量外围电路设计了图像数 据采集、处理并显示保存的图像处理的软硬件系统。 在 PC 端程序实现了 rgb raw bayer to rgb24 的插值算 法。本文为在低速、低价 MCU 平台上处理大容量图 像数据提供了一种可选的方案。
OV7670 是由 Omnivision 公司生产的图像感光元 件,其主要提供了 D0 ̄D7 八个数字像素输出信号, VSYNC 帧同步信号,HREF 行同步信号,PCLK 像素 同步信号,SCCB 总线(SDA,SCL)寄存器配置信号, XCLK 工作时钟信号等引脚。在 XCLK 引脚上设计了 一个 24M 的有源晶振作为 OV7670 工作的时钟信 号。SCCB 总线与 I2C 总线类似,因此,在 SDA 和 SCL 引脚设计了 2 个 10 K 的上拉电阻与 C51 单片机的 2 个通用 IO 相连,利用 C51 单片机通用 IO 模拟 SCCB 总线协议的方式配置摄像头的不同图像数据格式输 出、分辨率调整、自动曝光控制、自动增益控制、自动 白平衡以及饱和度、亮度、对比度等参数。OV7670 支 持 RGB 或 YUV 的不同图像数据格式输出,支持 VGA(640×480),QVGA(320×240)等图像分辨率[3]。
OV7670 感光元件数据的嵌入式视觉系统。在硬件设计方面,采用先进先出存储器最大限度降低了硬件设计复杂度,解
决了低价格 MCU 内存小、速度相对慢的问题。在软件设计方面,MCU 下位机程序实现了图像数据采集、OV7670 寄存器
配置,并通过 UART 输出图像数据。PC 端上位机程序实现了图像数据的获取、显示和保存,OV7670 寄存器配置,分辨率
为了保证采集完整的一帧数据,必须要做到帧同 步和行同步,OV7670 的控制信号输出时序图如图 2 所示。
图 2 OV7670 输出时序图
因此,系统把 VSYNC 连接到 C51 单片机的外部 中断上,通过下降沿中断开始一帧的采集,保证帧开
始同步。系统在 C51 的一个通用 IO 设计了一个启动 写入 AL422B 的信号与行同步型号 HREF 共同作为 一个与非门的输入连接到 AL422B 的 WE 引脚控制 AL422B 的写入,写入一帧信号后,在 VSYNC 的下一 个下降沿关闭写入信号,从而保证了 AL422B 存放了 完整的一帧信号。
图 1 C51 图像采集处理系统整体框图
* 收稿日期:2012-11-23,修回日期:2013-02-03 ** 作者简介:任志敏,男,1981 年生,讲师,硕士研究生,研究方向:机器视觉,嵌入式系统。
·58· (总 0220)
一种基于 C51 单片机的图像采集处理系统设计
2013 年第 3 期
整个系统由 OV7670 感光元件,先进先出存储器 AL422B,STC89C52 单片机,以及其他外围电路构成, 系统通过 UART 接口输出数据,接受命令,并预留了 SD 卡和 TFTLCD 接口。
命令功能
命令格式
采集起始控制
R
配置寄存器
寄存器号,寄存器值
下位机程序的流程图如图 3 所示。
图 3 下位机程序流程图
在系统初始化后,默认配置 OV7670 寄存器是 rgb raw bayer 格式的 VGA 输出模式,接下来就是等 待上位机发出采集命令或配置寄存器命令,若接收 到采集命令则在 VSYNC 帧同步开始时启动一帧采 集,开始往 AL422B 写入数据,在外部中断检测到 VSYNC 下一个下降沿的时候发出采集一帧结束标志 符,结束一帧数据写入。 2.2 PC 端上位机程序设计
图 5 奇数行像素点 B(i,j)插值
要实现 B(i,j)->P(R,G,B)的插值,则,
P(R) = [R(i-1,j-1) + R(i-1,j+1) + R(i+1,j-1) +
R(i+1,j+1) ]/ 4
(1)
P(G) = [G(i-1,j) + G(i,j-1) + G(i,j+1) + G(i+1,j)] / 4
第 26 卷 第 3 期
电脑开发与应用
(总 0221) ·59·
COL=640,ROW=480 奇数行 G(i,j)插值如图 6 所示。
图 4 rgb raw bayer 格式
一帧分辨率为 640×480 的 30 万像素的源数据 一共有 480 行,每一行的数据是 640 个像素点,每个 像素点输出 RGB 里面的 1 个分量值,由 BGGR 这种 组织方式构成的像素点称为 raw bayer 格式[6]。因此, 要组成 24 位的真彩色显示,需要对 raw bayer 进行插 值运算,简言之补全某个像数点缺少的另外两个颜色 分量。例如,对于 B(1,1)这个像素点只有蓝色输出, 另外两个缺少的颜色分量就是红色 R 和绿色 G,一 种简单的插值算法是,红色 R 可以由 R(2,2)这个值 补充,绿色 G 可以由 G(1,2)和 G(2,1)两个值的平均 值补充,构成(1,1)这个像素点的 RGB 三色分量值。 对于 R(2,2)这个像素点只有红色输出,另外两个缺 少的颜色分量就是蓝色 B 和绿色 R,蓝色 B 可以由 B (1,1)、B (1,3)、B (3,1)、B (3,3)这 个 4 个 值 的 平 均 值 补 充,绿色 R 可以由 G(1,2)、G(2,3)、G(3,2)、G(2,1)这 4 个 值的平均值补充。显然,缺失颜色分量补充与该像素 点所在的位置有关,因此,除了第 1 行,第 480 行,第 1 列,第 640 列的像素点插值需要单独处理以外,奇 数行的像素点 B(i,j)插值如图 5 所示。
1 图像采集处理系统硬件设计
由于 C51 单片机的 RAM 存储容量有限,而且受 到 C51 单片机的 IO 工作频率的限制,直接通过 C51
单片机采集完整一帧的数字信号很难实现,因此,在 C51 单片机和数字摄像头之间加入一个先进先出存 储器[1 ̄2],由 PC 端通过串口控制 C51 单片机启动采集 信号,采集一帧数据先放入存储器,然后单片机从存 储器读出数据并通过串口发送至 PC 显示。整体设计 框图如图 1 所示。
STC89C52 是一种低功耗 8 位基于 C51 内核的 微处理器,具有 8 K 在系统可编程 FLASH 存储器, 512 字节 RAM,32 位通用 IO 接口,看门狗定时器,内 置 4 KB EEPROM,MAX810 复位电路,3 个 16 位定时 器 / 计数器,一个 6 向量 2 级中断结构,一个全双工 串行口[4]。
引言
数字图像采集与处理由于其大数据量通常采用 DSP 等高速处理器来实现。在某些领域比如纺织机械丝 线识别,水表读数等方面图像实时性的要求并没有那么 高,因此,本文采用 STC89C52 这一 C51 系列低速单片 机作为控制器进行图像的采集和处理,并通过 RS232 把采集的数据发送到 PC 进行处理生成 BMP 图片。
(4)
P(G) = G(i,i)
(5)
P(B) = [ B(i,j-1) + B(i,j+1))/ 2
(6)
式中,i = 2*m + 1 (1≤m≤ROW/2-2),
j = 2*n (1≤n≤COL/2-1),
COL=640,ROW=480
式(1) ̄ 式(3)实现的是奇数 Row 的 B 分量像素
点的 RGB 插值,式(4) ̄ 式(6)实现的是奇数 Row 的
2 图像采集处理系统软件设计
2.1 下位机 STC89C52 端程序设计 摄像头数据的采集起始控制、传输以及摄像头寄
存器配置的通道是上位机 PC 端的 RS232 和下位机 STC89C52 的 UART。系统设计了起始控制命令和寄 存器配置命令两种串口通信协议。通信协议见表 1。
表 1 串口通信协议
AL422B 这个先进先出的 DRAM 数据存储器主 要用于存放完整的一帧 OV7670 输出的图像数据。 AL422B 有 384KBytes 的存储空间,支持 VGA,CCIR, NTSC,PAL 等视频格式的分辨率大小[5]。AL422B 还提 供了读写复位,读写时钟引脚。因此在设计硬件系统 过程中,由 OV7670 的像素信号输出时钟 PCLK 作为 AL422B 的写输入时钟,由 C51 单片机的通用 IO 提 供读时钟。
Abstr act:This paper introduces the hardware and software design of OV7670 CMOS sensor based on C51 MCU with low cost and simple method. The FIFO memory is used to reduce the haredware design complexity and solve the problem of low memory capacity and slow speed IO of C51. The raw data from the sensor is collected by the firmware which also provides the funcation of setting the registers of OV7670. Addtionly, the host progame is also designed, which provids the funcation of colecting data, displaying and saving the image, sensor registers configuration, image resolution adjustment.
设置等参数修改的功能。
关键词:传感器,图像采集,插值,单片机
中图分类号:TN911.73
来自百度文库
文献标识码:A
Design of a I mage Acquisition and Processing System Based on C51 MCU
REN Zhi-min
(Department of Electromechanical Engineering,Changzhou Textile Garment Institute,Changzhou 213164,China)
PC 端上位机程序主要设计了数据显示功能,保 存图片,配置寄存器参数等功能。程序从串口读取图 像数据,在接收完整一帧数据后处理并显示、保存。 PC 端程序主要实现的一 个算法是 rgb raw bayer to rgb24。为了获得 raw bayer 数据,下位机程序默认配 置 OV7670 输出模式为 VGA(640×480),raw bayer 格 式,每一帧数据的 raw bayer 格式如图 4 所示。
参考文献:
[1] 李德明,韩 剑,江国强. 基于 OV7670 的图像采集及显示 系统设计[J].仪器仪表学报,2010,31(8):30-33.
[2] cmucam4. Electrical and Computer Engineering and CyLab Carnegie Mellon University [EB/OL]. http://www.cmucam.org, 2012-02.
(2)
P(B) = B(i,i)
(3)
式中,i = 2*m + 1 (1≤m≤ROW/2-2),
j = 2*n + 1 (1≤n≤COL/2-1),
图 6 奇数行像素点 G(i,j)插值
要实现 G(i,j)->P(R,G,B)的插值,则,
P(R) = [R(i-1,j) + R(i+1,j-1)] / 2
第 26 卷 第 3 期 文章编号:1003-5850(2013)03-0057-03
电脑开发与应用
(总 0219) ·57·
一种基于 C51 单片机的图像采集处理系统设计
任志敏
(常州纺织服装职业技术学院机电工程系,江苏 常州 213164)
摘 要:为了实现一种简单、低成本的复合图像传感器系统,设计了一种在 C51 单片机控制平台上采集处理
G 分量像素点的 RGB 插值。
偶数行的插值与奇数行类似,不再赘述。
3 结束语
采用基本感光元件 OV7670,FIFO 存储芯片,低 速的 C51 系列单片机,少量外围电路设计了图像数 据采集、处理并显示保存的图像处理的软硬件系统。 在 PC 端程序实现了 rgb raw bayer to rgb24 的插值算 法。本文为在低速、低价 MCU 平台上处理大容量图 像数据提供了一种可选的方案。
OV7670 是由 Omnivision 公司生产的图像感光元 件,其主要提供了 D0 ̄D7 八个数字像素输出信号, VSYNC 帧同步信号,HREF 行同步信号,PCLK 像素 同步信号,SCCB 总线(SDA,SCL)寄存器配置信号, XCLK 工作时钟信号等引脚。在 XCLK 引脚上设计了 一个 24M 的有源晶振作为 OV7670 工作的时钟信 号。SCCB 总线与 I2C 总线类似,因此,在 SDA 和 SCL 引脚设计了 2 个 10 K 的上拉电阻与 C51 单片机的 2 个通用 IO 相连,利用 C51 单片机通用 IO 模拟 SCCB 总线协议的方式配置摄像头的不同图像数据格式输 出、分辨率调整、自动曝光控制、自动增益控制、自动 白平衡以及饱和度、亮度、对比度等参数。OV7670 支 持 RGB 或 YUV 的不同图像数据格式输出,支持 VGA(640×480),QVGA(320×240)等图像分辨率[3]。
OV7670 感光元件数据的嵌入式视觉系统。在硬件设计方面,采用先进先出存储器最大限度降低了硬件设计复杂度,解
决了低价格 MCU 内存小、速度相对慢的问题。在软件设计方面,MCU 下位机程序实现了图像数据采集、OV7670 寄存器
配置,并通过 UART 输出图像数据。PC 端上位机程序实现了图像数据的获取、显示和保存,OV7670 寄存器配置,分辨率
为了保证采集完整的一帧数据,必须要做到帧同 步和行同步,OV7670 的控制信号输出时序图如图 2 所示。
图 2 OV7670 输出时序图
因此,系统把 VSYNC 连接到 C51 单片机的外部 中断上,通过下降沿中断开始一帧的采集,保证帧开
始同步。系统在 C51 的一个通用 IO 设计了一个启动 写入 AL422B 的信号与行同步型号 HREF 共同作为 一个与非门的输入连接到 AL422B 的 WE 引脚控制 AL422B 的写入,写入一帧信号后,在 VSYNC 的下一 个下降沿关闭写入信号,从而保证了 AL422B 存放了 完整的一帧信号。
图 1 C51 图像采集处理系统整体框图
* 收稿日期:2012-11-23,修回日期:2013-02-03 ** 作者简介:任志敏,男,1981 年生,讲师,硕士研究生,研究方向:机器视觉,嵌入式系统。
·58· (总 0220)
一种基于 C51 单片机的图像采集处理系统设计
2013 年第 3 期
整个系统由 OV7670 感光元件,先进先出存储器 AL422B,STC89C52 单片机,以及其他外围电路构成, 系统通过 UART 接口输出数据,接受命令,并预留了 SD 卡和 TFTLCD 接口。
命令功能
命令格式
采集起始控制
R
配置寄存器
寄存器号,寄存器值
下位机程序的流程图如图 3 所示。
图 3 下位机程序流程图
在系统初始化后,默认配置 OV7670 寄存器是 rgb raw bayer 格式的 VGA 输出模式,接下来就是等 待上位机发出采集命令或配置寄存器命令,若接收 到采集命令则在 VSYNC 帧同步开始时启动一帧采 集,开始往 AL422B 写入数据,在外部中断检测到 VSYNC 下一个下降沿的时候发出采集一帧结束标志 符,结束一帧数据写入。 2.2 PC 端上位机程序设计
图 5 奇数行像素点 B(i,j)插值
要实现 B(i,j)->P(R,G,B)的插值,则,
P(R) = [R(i-1,j-1) + R(i-1,j+1) + R(i+1,j-1) +
R(i+1,j+1) ]/ 4
(1)
P(G) = [G(i-1,j) + G(i,j-1) + G(i,j+1) + G(i+1,j)] / 4
第 26 卷 第 3 期
电脑开发与应用
(总 0221) ·59·
COL=640,ROW=480 奇数行 G(i,j)插值如图 6 所示。
图 4 rgb raw bayer 格式
一帧分辨率为 640×480 的 30 万像素的源数据 一共有 480 行,每一行的数据是 640 个像素点,每个 像素点输出 RGB 里面的 1 个分量值,由 BGGR 这种 组织方式构成的像素点称为 raw bayer 格式[6]。因此, 要组成 24 位的真彩色显示,需要对 raw bayer 进行插 值运算,简言之补全某个像数点缺少的另外两个颜色 分量。例如,对于 B(1,1)这个像素点只有蓝色输出, 另外两个缺少的颜色分量就是红色 R 和绿色 G,一 种简单的插值算法是,红色 R 可以由 R(2,2)这个值 补充,绿色 G 可以由 G(1,2)和 G(2,1)两个值的平均 值补充,构成(1,1)这个像素点的 RGB 三色分量值。 对于 R(2,2)这个像素点只有红色输出,另外两个缺 少的颜色分量就是蓝色 B 和绿色 R,蓝色 B 可以由 B (1,1)、B (1,3)、B (3,1)、B (3,3)这 个 4 个 值 的 平 均 值 补 充,绿色 R 可以由 G(1,2)、G(2,3)、G(3,2)、G(2,1)这 4 个 值的平均值补充。显然,缺失颜色分量补充与该像素 点所在的位置有关,因此,除了第 1 行,第 480 行,第 1 列,第 640 列的像素点插值需要单独处理以外,奇 数行的像素点 B(i,j)插值如图 5 所示。
1 图像采集处理系统硬件设计
由于 C51 单片机的 RAM 存储容量有限,而且受 到 C51 单片机的 IO 工作频率的限制,直接通过 C51
单片机采集完整一帧的数字信号很难实现,因此,在 C51 单片机和数字摄像头之间加入一个先进先出存 储器[1 ̄2],由 PC 端通过串口控制 C51 单片机启动采集 信号,采集一帧数据先放入存储器,然后单片机从存 储器读出数据并通过串口发送至 PC 显示。整体设计 框图如图 1 所示。
STC89C52 是一种低功耗 8 位基于 C51 内核的 微处理器,具有 8 K 在系统可编程 FLASH 存储器, 512 字节 RAM,32 位通用 IO 接口,看门狗定时器,内 置 4 KB EEPROM,MAX810 复位电路,3 个 16 位定时 器 / 计数器,一个 6 向量 2 级中断结构,一个全双工 串行口[4]。