第六章 软件系统设计与实现
推荐给好友
打印
加入收藏
更新于2008-07-31 00:51:57

6.1 系统初始化
         在各模块中,MC9S12DG128微控制器模块是控制核心,其他模块的初始化正是通过对单片机内部设置实现的。系统的初始化主要是对MC9S12DG128内部各寄存器,各端口进行设置,并定义自变量,分配存储空间,使之满足系统要求。下面仅给出单片机初始化的结果,未涉及到的端口与模块不予描述[17]。
   工作模式
通过软件与硬件的结合,选定单片机工作模式为普通弹片模式。
   时钟设置
单片机内部的总线频率为24MHz,CPU单元工作频率是总线频率的2倍为48MHz。
   存储空间分配
对内部地址资源的分配采用普通单片工作模式初始化时默认的配置,即$0000到$0400为寄存器地址空间,$2000到$3FFF为内部RAM地址空间,$4000到$7FFF为一块固定的Flash EEPROM地址空间,$8000到$BFFF为页面Flash EEPROM地址空间,$C000到$FFFF为一块固定的Flash EEPROM地址空间,其中$FF00到$FFFF为中断向量地址空间。
  复用端口设置 
  A端口为普通输入端口 
  J端口为中断输入端口 
  P端口为PWM信号输出端口
各模块初始化
 PWM模块0通道独立使用,4、5通道合并为一16位的PWM通道使用;PWM时钟选择为总线频率8分频即3MHz。
 定时/计数器模块全部通道设置为定时模式;时钟选择为总线频率8分频即3MHz。 
  此外,初始化时也对下面需用到的自变量进行了定义与赋初值,在此不作赘述。
6.2 视频图像信号采集 
  本智能车图像采集的原理[18]是根据视频同步信号对单个奇场或偶场图像信号进行隔行、隔点采集,一方面为了保证时序上的准确性,必须准确的判断同步信号和严格的定时,另一方面定时的时间相对于CPU周期是比较长的,在这些时间内可以让CPU去做其它工作,故在此部分中的程序多采用了中断。 
  具体的程序流程如图6.1所示。 
  对视频信号的采集过程如下:等待场信号;延时,跳过场回程的22.5个行周期——即1.44ms;等待行同步信号;判断采集行数是否满足要求,满足则采集完成,否则延时,跳过行同步信号和消隐信号,约4.7+5.7=10.4us;对一行视频信号进行连续采集;延时,跳过6.5行视频信号即延时416us,跳回到等待行同步信号,直至完成

6.3 图像处理和黑线提取
6.3.1 图像处理 
  由摄像头直接采集进来的图像的干扰信息比较多,并且在特殊的位置采集进来的图像有很多的信息是无用的信息,如十字交叉,甚至会严重的影响模型车的控制。 
  针对上面提出的问题,我们先对采集进来的图像作一次差分和取阈值二值化。一次差分:假设采集进来的图像信息有N列信息,则用n+1列的值减去n列的值,作为n列的值,那么可以得到n-1列值。取阈值二值化是根据当前的图像信息设定一个阈值,当图像上某点的值大于该阈值的时候设为1,当图像上某点的值小于该阈值时设为0。 
  用上面提出的两种方法来处理采集进来的图像[19],可以得到:

  由图6.2可以明显的看出,在(a)中通过一次差分法处理后,可以有效的将跑道外面的干扰信息去掉,以使得模型车能够在各种环境下适应跑道。在(b)中当模型车正对着十字交叉时,采集进来的图像是一个正的十字交叉通过一次差分的方法能够将错误的信息排除掉。采集进来的图像经过两次上述一次差分处理后再用取阈值二值化法可以进一步降低干扰因素,使得图像上的有效信息得到强化,提高了模型车的抗干扰能力,并且能够更好的识别出当前的路况信息,为下面的黑线提出做好了准备。
6.3.2 黑线的提取 
  图像检测范围与图像复杂程度是一组矛盾。若图像检测范围大,在转弯等一些情况下在图像的边界或角落里就会出现干扰,不利于在软件上对图像的处理。若令图像检测的范围减小以使在所有情况下图像中都不会出现干扰,结果会出现如下情况:
 有些转弯采集不到黑线。
 检测到的直线赛道与弯道的差别很小,不利于算法上区分。 
  因此在系统设计过程中,先把CCD信号接入电视,在多个不同位置多次试验得出一个CCD摄像头安装最佳位置,使得检测范围足够大且干扰尽量小。 
  在有干扰的情况下,经过测试发现,一般在图像中最后一行像素点数据即离小车最近的一行出现干扰的情况极小,故可以在此行内搜索第一个黑点作为黑线左边界位置,搜索结束,以这个位置为基准左右各偏移一定距离作为下一行搜索的范围,下一行搜到边界后,再依次类推计算出以后各行的搜索范围。在有灯光反射干扰的情况下,有些行的图像中无黑线,若在此行搜索范围内搜索不到黑线,则记录一个错误位置标志,下一行搜索范围在此行基础上再增加一些。当一幅图像中搜索的结果中错误标志过多时,就认为此幅图像出错,控制方案按照上一幅图像的处理结果决定。试验结果表明,此种方法能够有效地排除干扰,找到黑线的左边界,且效率高,处理时间短。同时加入右边界检测,可以减少干扰。
视频去噪处理在再现真实的路径方面有着不可忽视的作用,正是由于CCD视觉传感器易受环境影响,才需要去噪算法进行去噪处理,保证视频数据的准确性。在本系统中,我们采取的视频去噪策略是取距离车体最近的数据,也就是第一行的数据作为参考数据,根据数据的连续性,进行整场数据的噪声处理。 
  本模型车检测黑线中心位置算法的大体思想如下:首先判断图像采集是否完成,完成了才开始下面的计算。从最近一行图像开始检测,设定检测的左、右边界值。在边界值限定的范围内检测各个点是否是黑点,并记录下黑点的左、右边界位置。根据该行获得的黑线左、右边界位置来确定下一行检测的左、右边界值。如此循环直到处理完整幅图像。此外,考虑到在某些行上可能没有测到黑点,这种情况的发生有可能是图像本身就没有黑点,也有可能是错误的信息。因此,对于没有黑点的行将置一个无效标志位,为之后能成功地对电机及舵机进行控制做准备。黑线中心的检测算法流程图如图6.3所示。

 

第五章 理论分析与算法实现        第七章 开发与调试




 
关于我们 | 诚邀加盟 | 客户服务 | 相关法律 | 网站地图 | 友情链接 | 服务信箱:service@eefocus.com
© 2006 与非门科技信息咨询(北京)有限公司 All Rights Reserved.