DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 869|回复: 0
打印 上一主题 下一主题

[安防] 基于摄像头的路径信息采集系统的简易设计与实现

[复制链接]
跳转到指定楼层
楼主
发表于 2011-4-26 06:10:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于摄像头的路径信息采集系统的简易设计与实现
摘要:本文基于freescale 16位HCS12单片机的输入捕捉功能设计一种视频信号采集系统。在该系统中,将CMOS摄像头的输出信号二值化,利用单片机输入捕捉功能实时对信号采样、处理,提取出黑色导引线的形状特征。实验证明:系统能很好地满足智能车对路径识别性能和抗干扰能力的要求,实时性好,测量精度高,同时硬件和软件的开销都比较小。
关键词:图像二值化;HCS12单片机;视频图像;比较器
引言
第二届“飞思卡尔”杯全国大学生智能车竞赛中,要求各参赛队赛车在规定的赛道上行驶,速度快者胜出。由于跑道只有黑、白两色,对图像的灰度没有要求,所以只需要反映反射光线的强弱。若用A/D进行采样,不仅软件设计比较麻烦,而且测量的精度和响应时间都不够理想,抗干扰能力也较差。本文摒弃传统的视频信号采集方法,结合单片机的输入捕捉功能,提出一种新的路径识别方法,并在实际系统中得到应用,实践表明该方法不仅使系统具有良好的性能,而且容易实现。
视频信号的特征
使用CHD-918B面阵CMOS摄像头,通过对内部电路的改造,可以在5V电压环境下正常工作,输出PAL 制式模拟视频信号,如图1所示。每秒扫描50场图像,一场又有312.5行,每行图像信号时间为64μs,除去行同步头,其中有效的图像信号约为59.3μs。所以,若选用S12的A/D转换器采集,转换耗时压力大,图像分辨率低。



鉴于MC9S12DG128是HCS12系列单片机的一种,片内设有增强型定时器(ECT),具有输入捕捉功能,可通过捕捉系统时钟脉冲来检测导引线。这样,计算单片机相应阶段内输入捕捉系统时钟脉冲的个数就能反映当前的路径信息。系统的实现如图3所示。



系统实现
视频信号同步分离:视频信号分离电路主要采用视频同步分离芯片1881,电路原理图如图4所示。先将经过预处理的视频信号通过一个滤波电路接至LM1881的2脚,为了滤除杂波,匹配阻抗,C4选取0.1μF,C2取510pF,R2取620Ω。1脚输出行同步信号,3脚输出场同步信号,在实际运用中,二者存在高频干扰,所以必须加上低通滤波器。



选行电路:在一场视频信号中共扫描312.5行,没有必要每一行都进行采样,只需要选择性的采集特定行,计算出跑道的大致形状,同时也为后续处理留出时间。该部分电路主要由一片二进制计数器74LS161实现,原理图如图5所示。对行使能信号控制行同步信号的开关,通过对拨码开关的设置,可对行同步2、4、8、16分频,选择采集不同的行。本文在调试过程中设置成4分频。



二值化电路
视频信号的二值化主要由芯片MAX941完成,通过调节滑动变阻器的阻值来改变阈值电压。经反复试验本文将阈值定在2.55V。防止黑色导引线的边界处出现毛刺干扰,在二值化输出端加上RC低通滤波电路。电路图如图6所示。



时序关系:在上述几个电路模块中,使用了门电路、计数器、比较器,使原有的时序关系发生了变化,后续编程处理和系统的可靠性受到挑战。在比较器的输出端加入两片非门,增大延时,情况得到改善。最后得到的时序关系如图7所示。其中a为场同步,b为行同步,c是经过4分频后的行同步信号,d为二值化后的视频信号,包含着路径信息。



输入捕捉:MC9S12DG128单片机的外部晶振为16MHz,,由于输入捕捉寄存器为16 位,其计数值最大为65535,需要对系统时钟进行分频处理,设分配系数为a,其中
a=2-n,(n=0,1,2…7) (1)
则分频后的系统时钟可由(2)式得,
f1=f0×a=16MHz×2-3=2MHz (2)
即最小单位为0.5μs,对应的跑道采集精度,远处的分辨率为0.4cm,近处的为0.2cm ,完全符合路径识别的要求。输入捕捉的触发方式设置成任意沿捕捉,这样可以简化硬件电路的设计。以,仅仅需要计算几个沿变化之间输入捕捉系统时钟脉冲的个数,就能精准的反映当前的路径信。对应图2,BC段是黑线,DE段是同步头,AB与CD段反映的是左右视场边沿到黑线的距离,在后续处理中,可以利用这些信息方便的计算出跑道的曲率和斜率。由于黑色导引线的宽度是一定的,每行有效图像扫描时间都约为59.3μs,根据这些信息就可以剔除明显的坏点,增强系统得抗干扰能力。
软件实现:为了节约系统时间,在编程中主要采用中断处理,并且设置成上升沿触发。在场中断期间,先调用屏蔽场同步消隐子程序,把成像效果不好的部分滤除掉,随后打开行中断。当经过分频后的行同步头到来时,开始捕捉图像信号的4个任意沿,在相应两个沿之间,所捕捉到的系统时钟脉冲个数就反映了当前的路径信息。另外,为了消除偶然误差的影响,在不降低系统速度测量精度的前提下,通过使用软件上的循环队列算法,保证了路径信息的准确性。循环队列的具体实现过程为:通过设置一个长度为L的队列,每发生一次输入捕捉中断就进行一次入队操作,由队列“先进先出”的性质,即替换最先入队数据,能够保证将最新的刷新数据进行数据处理并进行控制,提高了控制的实时性。该系统部分软件流程图如图8所示。



结语
若采用片内A/D采集,在最高时钟频率2MHZ的情况下,进行一次10位精度A/D转换的时间为7μs。这样,采集的图像每行只有8个像素,图像分辨率过低。如果采用超频的手段来补偿,又会降低系统的可靠性。而本文采集的图像数据分辨率为128×64,每行有128个像素,并且分辨率留有进一步提高的余留量,软件的编写也比较简单。但是该方法目前还不能区分图像的灰度,是以后需要改进之处。
参考文献:
1 邵贝贝, 单片机嵌入式应用的在线开发方法[M], 北京:清华大学出版社,2004.
2 王明顺, 虚拟编码器在智能车上的应用[J,
电子产品世界,2006 (12)
3 吴建辉,印制电路板的电磁兼容性设计[M],北京:国防工业出版社,2005
4 [美]Steven F.Barrett,Daniel J.Pack著,郑扣根译,嵌入式系统——使用68HC12和HCS12的设计与应用[M]. 北京:电子工业出版社,2006
5 卓晴等., 学做智能车[M]. 北京那个航空航天大学出版社,2007
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-5-7 05:27 , 耗时 0.094377 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表