模拟摄像头信号采集学习笔记

本篇文章介绍了模拟摄像头信号的相关基础知识,以及使用单片机进行摄像头图像采集的方法

目录

0 - 楔子

1 - PAL制式简介

2 - 同步信号的分离

3 - 行、场同步信号与PAL时序关系

4 - AD采样

5 - 处理流程

6 - 附件 摄像头测试图片


0 - 楔子

选用摄像头的是“索尼CCD模拟摄像头”,输出PAL制式电视信号(AV) 。 在本文里主要讲述的是模拟摄像头信号的一种采集方法。采用LM1881这款芯片进行视频同步信号分离,片内AD进行采样(亦可用片外AD进行采样,不过需要注意的是单片机对于IO口的读取速度可能不及片外高速AD的速率,这就有可能导致数据混乱)

才疏学浅,必有疏漏,望各位指正

1 - PAL制式简介

首先先看一下从这款摄像头的视频线输出的图像(黄色信号)是什么样的

图1 黄色为AV信号,蓝色为行同步信号

 

PAL制式的输出信号由 复合同步信号复合消影信号视频信号这3部分组成

  • 视频信号: 真正的图像信号, 对于黑白摄像头,图像越黑, 电压越低,图像越白,电压越高。在这里我们通过AD采集来得到亮度信号
  • 复合同步信号: 用于控制电视机的电子枪对电子的偏转。当电子枪收到行同步(HSYNC)信号时,电子束就从上一行的最右端移动到下一行的最左端。当电子枪收到场同步(VSYNC)信号时就从屏幕的最右下角移到最左上角。在这里我们需要用这个信号来控制采集像素的时序。
  • 复合消影信号:在图像换行和换场时电子枪回扫时不发射电子。即收到复合同步信号后,电子枪要换位置时是不能发射电子束的,这时候就由这个信号来消隐。在这里我们不用管这个信号,一般用延迟避开即可。

在PAL制式中,每秒输出25幅画面(25帧),每一幅画面又分为奇场和偶场来显示。

一幅画面一共有625行,但是电子枪会先扫描奇数行 (1,3,5......)形成一场(奇数场),然后再扫描偶数行(2,4,6.....)形成一场(偶数场)。也就是说这两场是一幅画面隔行而来 

具体细节、原因以及电视信号的一些知识请参考

电视原理与系统  

只需要看前面的几章即可,感兴趣可以全看完

行同步信号产生后,经过一段行消影信号后才会不间断的输出那一行上各个像素的亮度,亮度越大,电压越高。

场同步信号产生后,经过一段场消影信号后才会开始从图像的顶端行开始输出每一行的行信号。

 

行同步信号的周期为64uS , 场同步信号的周期是20ms

每一帧会扫描625行,但是实际上有用的只有575行 (场消影信号占去)

奇场和偶场每一场会扫描312.5行,实际显示的行数每场为287.5行

图2 行场同步信号示例

 

接下来将讲解采集的方法,请确保对于PAL制式信号已有一定了解。

2 - 同步信号的分离

可以知道,AV信号线中出来的PAL制式信号不仅仅包括我们所需要的视频信号,还包括用于电子枪移动控制的复合同步信号以及复合消影信号。这里我们讲讲如何从PAL信号里如何分离出复合同步信号。

LM1881是一款视频同步信号分离芯片,可以将输入的复合视频信号中的行同步信号,场同步信号,奇偶场信号以及突发输出给分离出来。在这里我们只用上行同步信号,场同步信号即可。由于奇偶场中图像差别不是很大,所以我们没有必要一定去采集奇场或者偶场信号,只需要保证采集到某一场的信号即可。

图3 LM1881应用原理图

 

值得注意的是,在LM1881的2脚Video Input引脚上需要用一个620Ω电阻,510pF电容构成一个低通滤波器,配合0.1uF的输入耦合电容来保证进入芯片的信号能被正常分离出同步信号。

其次,在6脚Rset引脚上需要一个680k电阻以及0.1uF电容构成64uS延迟,来保证芯片正常工作。

在应用时,我们只需要把摄像头AV视频线的一个分路接入LM1881的2脚,将LM1881的1脚作为行同步信号,3脚作为场同步信号来分别接入单片机的外部中断即可。

现在我们知道了可以通过视频同步信号分离芯片来将PAL制式信号里的同步信号分离出来,供给单片机,那么接下来我们来看看行、场同步信号与PAL视频信号的时序关系如何 。

(注意,以下的行、场同步信号都是由LM1881分离得出,不同的同步信号分离芯片得到的结果可能不一样,建议以芯片DataSheet讲述为准)

3 - 行、场同步信号与PAL时序关系

图4  PAL与行同步信号 黄色为PAL某行信号的前半部分,蓝色为行同步信号

 

图中纵向光标a、b分别处在行同步信号的下降沿 以及 某行像素信号开始输出的起始处。在光标a到光标b的这一段内,实际上是没有像素输出的,这一段也就是行消影信号的所在位置 。我们从行同步信号的下降沿开始测量,直到一行最顶端的像素开始输出为止,这里测得的时间大约为9.8us。这个时间我们便可以拿来用作延迟时间,以至于不读取到行消影区。

补充说明:这里要注意,不仅仅消影区部分会是一段平直线,在每一行开始有像素输出的地方开始,直到下一个行同步信号来临的这一段时间内,在图4中用白框框出的部分也会是一段平直线,这一段叫后沿,并不是拍到暗地方造成的低平直线。

图5 行同步信号持续时间约4.56us

 

一般来说都是用行同步信号的下降沿来做中断触发标志,行同步信号低电平的维持时间可能由于芯片不同或硬件电路原因而导致差异。

图6 场同步信号 (蓝色)与PAL信号 (黄色)

 

这里需要注意,场同步信号产生一次表明上一场的结束以及下一场的开始,所以采集到两次场中断则是代表一个完整的场已经完成 。

图7 黄色为PAL信号,蓝色为场同步信号

 

注意,这里示波器的时间分度已经转成了200us,要知道每一场里有许多的行输出,所以行信号(光标b右侧)在这里已经被压挤成了一起,不过还是可以看出来每一行的行信号大致的样子。

我们用的是场同步信号的上升沿作为中断触发,如果和行同步信号一样用下降沿来作为触发方式的话为了不读取到无用的场消影信号,我们要多延迟230us的时间(这个230us不同的芯片可能时间不同),这会缩短后期图像算法以及其他操控的时间 

以上就是行、场同步信号和PAL信号的大致时序讲解,建议在考虑用延迟的方法避开消影区前先用示波器好好测量一下消影区的大概长度,然后自己慢慢调整,知道找到最适宜的时间。

4 - AD采样

经过前面的PAL制式讲解,行同步信号,场同步信号以及消影信号的大致讲解,大家应该对于信号的构成有了一定的了解。接下来讲讲如何采集每一行上像素的信号。

图8 某行信号前段部分

 

之前介绍过,图像照射在CCD上,亮度越大,则电平越高,亮度越暗,则电平越低。但是这里的高和低是有一定的限度的。

首先,看到横向光标b所在的位置,约为480mV,但是这个不是我们说的表示“暗”的低电平,这一段是同步信号的所在电平位置。从白色箭头所指处(这里是部分摄像头区域照到部分亮光出产生的一段高峰)往后才是视频数据。而白色箭头所指的这一段横线的电平才是我们所说的表示“暗”的低电平,而表示“亮”的电平自然可以知道是光标a所在的由于照到亮光而产生的高峰的电平,约3.04V.

(注意,这个数值并不是绝对的,由于用来做AD参考电压范围的参考,所以建议亲自测量下为准)

之后,我们就可以根据这个来做AD参考电压范围的界定了,同时也可以用来做二值化阈值的判断标准。

相信大家会想到,既然它是不断的输出每一行上的像素亮度,那么如果我AD的采样速率越快,那不是可以理论上采集到更多的行像素吗?

的确,但是需要考虑到的一点是单片机的读取速度。无论是对于片外AD还是片内AD来说,单片机的读取速度才是应该把握住的上限,如果AD转换的速率超过了单片机的读取速率的话,很有可能将会导致读取出来的数据出现混杂的错误,这样反而得不偿失。

5 - 处理流程

以上就大致的讲完了要进行模拟摄像头PAL制式信号的采集的基本要素,在实地采集之前,有一个问题不容忽视,那就是单片机的速率。

前面介绍过,行中断的周期为64us,场中断的周期为20ms。按照普通的想法,每来一次行中断便不断读取AD转换出来的值作为这一行上面的像素。但是这有一个问题,64us里单片机能够读取到有效的转换值实在太少,有时想要多读一些却发现采集到了前面的行消影区或者后沿上的“暗”电平。过少的一行像素用作道路识别或者其他方面实在难以接受。

举个例子,假设每行采集10个点,圆圈代表采集的像素点。

          图9 相机视角

 

由于行中断每64us便会产生一次,所以一行里面能采集到的像素就很少。然而在一场里面会有很多行,场中断20ms一次。所以如果用普通的方法来采集的话便会造成图像很窄但比较长 (马脸)。

但是,如果我们转过来想一下,将行中断里采集到的数据作为图像一列的像素,每来一次行中断则变成采集下一列的像素,那么从相机视角采集回来的图像就会变成这样

       图10 上述方法采集回来的图像

 

可以发现,使用该方法采回来的图像解决了普通方法只能采集“马脸”的问题。但是新的问题是图像不仅仅旋转了,还发生了翻转。发生旋转的问题好解决,我们只需要将摄像头旋转一下即可。而发生翻转的问题我们只需要将原本从图像数组开头开始储存,一直到图像数组末尾位置的储存顺序颠倒一下,改为从图像数组末尾开始,向数组头的位置储存即可。

      图11 水平翻转后的图像

旋转摄像头就能得到和原图像方向相同的图像了。

并且,我们也可以选择某些行进行采集,某些行不进行采集,这样既可以保证采集到足够的行数,同时也可以减轻负担。

解决了这个问题,剩下的就好办了。

 

这里贴一下我写的处理代码

来张效果图     

6 - 附件 摄像头测试图片

 

救救孩子,5毛买块糖
  • 5
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: CMOS模拟集成电路设计学习笔记 CMOS模拟集成电路设计学习是电子工程领域中的重要一环。CMOS(互补金属氧化物半导体)技术在现代集成电路设计中起着至关重要的作用。在学习CMOS模拟集成电路设计过程中,我对以下几个方面有所收获。 首先,电路的基本理论知识是学习CMOS模拟集成电路设计的基础。了解电路设计中的电压、电流、电阻、电容等基本概念,掌握基本的电路分析方法和技巧,对于有效地进行CMOS模拟集成电路设计非常重要。 其次,掌握CMOS技术的原理和特点。CMOS技术是使用N型和P型MOS管并排组成的电路结构,相比于其他技术,CMOS技术具有功耗低、抗干扰能力强等优势。了解CMOS技术的工作原理和特点,能够更好地应用于模拟集成电路的设计和优化过程中。 再次,学习射极耦合放大器(CAS)的设计和优化方法。CAS是模拟电路设计中常用的基本模块,具有放大增益高、抗干扰能力强等特点。通过学习CAS的设计和优化方法,能够更好地理解和应用于CMOS模拟集成电路设计中。 此外,了解电流镜、共源共排模式放大器、差分放大器、反馈电路等常见的CMOS模拟集成电路结构和设计技巧,对于深入理解CMOS模拟集成电路设计原理和方法非常有帮助。 最后,实践是学习CMOS模拟集成电路设计的重要环节。通过自己动手设计具体的电路实例,理解并解决实际问题,能够增加对理论知识的应用和理解。 总之,学习CMOS模拟集成电路设计需要掌握电路基本知识、了解CMOS技术原理和特点、学习常见的电路结构和设计技巧,并进行实践应用。通过不断学习和实践,我相信在CMOS模拟集成电路设计领域中会有更大的进步。 ### 回答2: cmos模拟集成电路设计是现代电子领域的重要研究方向之一。在学习过程中,我了解到cmos模拟集成电路设计的基本原理和方法,以及在实际应用中的一些注意事项。 首先,cmos模拟集成电路是一种使用cmos(互补金属氧化物半导体)技术制造的集成电路,其中的晶体管由n型和p型金属氧化物半导体场效应晶体管(NMOS和PMOS)组成。cmos模拟集成电路设计主要涉及到电流源、放大器、运算放大器、滤波器等模块的设计。 在设计过程中,要考虑电路的性能指标,如增益、带宽、噪声等。同时,为了提高电路的稳定性和可靠性,需要注意电路中的电源抑制、温度补偿、布线规划等方面的问题。 另外,cmos模拟集成电路设计还需要掌握一些基本的设计工具和方法。如Spice仿真工具的使用,可以通过仿真验证设计的正确性和性能指标。还有一些常用的设计技巧,如工作在互补模式、差分放大器、共模反馈电路等,可以有效提高电路的性能。 在实际应用中,cmos模拟集成电路设计广泛应用于各个领域。例如,用于通信系统中的放大器、滤波器等电路设计,用于传感器中的信号处理电路设计等。因此,掌握cmos模拟集成电路设计的知识和技能对于从事电子工程的相关人员来说是非常重要的。 总之,cmos模拟集成电路设计学习笔记包括了基本原理和方法,设计工具和技巧,以及实际应用等方面的内容。通过学习和掌握这些知识和技能,可以提高我们在cmos模拟集成电路设计方面的能力和水平。 ### 回答3: CMOS模拟集成电路设计学习笔记是我在学习过程中记录的一本笔记,总结了我对CMOS模拟集成电路设计的理解和经验。 首先,CMOS模拟集成电路是一种重要的集成电路设计技术,它利用CMOS工艺制造出的器件来实现各种模拟电路功能。学习CMOS模拟集成电路设计,首先需要了解CMOS工艺的基本原理和特点。CMOS工艺是一种使用N型细长沟道和P型细长沟道场效应管组成的半导体工艺,它具有电压驱动强、功耗低、噪声小等优点。此外,还需要学习CMOS工艺的制造工艺流程和工艺参数的选择。 在设计CMOS模拟集成电路时,首先需要进行电路的建模与分析。我学习了基本的电路理论与分析方法,如放大电路、逻辑电路、反馈电路等,并学会了使用理想运放进行电路近似分析。此外,还学习了CMOS器件的模型和特性,如MOSFET的输出特性曲线、小信号模型等。通过电路建模与分析,可以更好地理解电路的工作原理和设计要素。 然后,学习了CMOS模拟电路的常见设计技术和方法。其中,包括源随器的设计与优化、偏置电路设计、放大电路设计、运算放大器设计等。在设计过程中,我学会了使用EDA工具进行电路仿真和验证,以及对电路进行性能指标的评估。通过反复实践和调试,我逐渐掌握了设计方法和技巧。 最后,我还学习了一些高级的CMOS模拟集成电路设计技术,如电压参考电路设计、数据转换电路设计、低功耗设计等。这些技术使得我能够设计更加复杂和高性能的CMOS模拟集成电路,提高了我的设计能力和水平。 通过CMOS模拟集成电路设计学习笔记的记录和总结,我不仅巩固了自己的知识和理解,还积累了更多的设计经验。这本笔记对于我今后的工作和学习都具有重要的参考价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值