基于摄像头的路径信息采集系统的简易设计与实现
输入捕捉:MC9S12DG128单片机的外部晶振为16MHz,,由于输入捕捉寄存器为16 位,其计数值最大为65535,需要对系统时钟进行分频处理,设分配系数为a,其中
本文引用地址:http://www.amcfsurvey.com/article/82110.htma=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
比较器相关文章:比较器工作原理
评论