第一章 系统介绍
推荐给好友
打印
加入收藏
更新于2008-08-06 23:14:15

1.1 系统概述
本系统是为了参加Freescale智能车大赛而设计,目标是设计一个能够自主识别路线的智能车,在专门设计的跑道上自动识别道路行驶。使用竞赛秘书处统一指定并负责采购竞赛车模,采用飞思卡尔16位微控制器MC9S12DG128作为核心控制单元,自主构思控制方案及系统设计,包括传感器信号采集处理、控制算法及执行、动力电机驱动、转向舵机控制等,完成智能车工程制作及调试,不使用其他可编程控制芯片。下面细分每个模块的工作。
 
1传感器信号的 
采集 针对这个系统,传感器主要负责采集路面信息。赛道路面用专用白色基板制作,跑道表面为白色,中心有连续黑线作为引导线,黑线宽25mm。由于探测条件比较宽松,所以传感器的选择余地很大。大致可以分为两种方案。其一使用CCD传感器和微型镜头的组合。这种方案的优点是采集的信息丰富,探测距离较远。而缺点是采集速度缓慢,处理困难,安装困难。第二种方案是使用红外光电管组成光电管阵列采集,这种方案优点是安装调试简单,但又伴随着测试距离近,抗干扰能力不强,不能完全反应赛道信息的缺点。本次设计主要采用后者,通过精确设计来弥补红外管的种种不足。(该部分设计由倪敬飞完成)
 
2动力电机驱动
该电机主要负责为智能车提供动力,对直流电机的控制也是比赛取得好成绩的关键所在。本设计选用Freescale公司的MC33886为主电机驱动芯片。该芯片内部结构为MOS管构成的H桥式电路,并加入了逻辑控制电路和过流过热保护电路。(该部分设计由孟忠伟完成。)  

3转向舵机控制
对舵机的驱动为一路PWM波,本设计采用两种供电方式,即一路6V供电一路7.2V供电,平时使用6V比赛时使用7.2V。由于额定电压为5v~6v,但稍微高于额定电压会有更好的响应速度和扭力。 

4控制算法及执行
这里主要完成对转向舵机和驱动电机的控制。采用简单的闭环控制,使用PID算法为主要的控制算法。
下面详细分析一下系统的输入和输出。 

输入主要有2路即对赛道黑线的采集信号和小车速度信号。输出为伺服电机控制信号,驱动电机控制信号,也是2路。如图1-1所示。

对赛道采集可以使用红外传感器或CCD传感器来实现,而车速信息的采集可以使用霍尔传感器或光电码盘来实现。本设计采用红外传感器阵列和霍尔传感器的组合实现对外界信息的采集。红外传感器有反应迅速,结构简单的优点。而霍尔传感器具有安装简单,抗干扰能力强,输出波形规整等优点,故选择这样的组合。 

这样重新得到一个输入输出图1-2。


图1-2系统输入输出


本智能模型车系统以MC9S12DG128芯片为核心,由电源模块、传感器模块、电机驱动模块、路径识别模块、通讯调试模块和单片机模块组成。为了使智能车能够快速行驶,单片机必须把路径的迅速判断、相应的转向伺服电机控制以及直流驱动电机的控制紧密地结合起来。如果传感器部分的数据没有正确地采集和识别,转向伺服电机控制失当,这都会造成模型车严重抖动甚至偏离赛道;如果直流电机的驱动控制效果不好,也会造成直线路段速度上不去,弯曲路段入弯速度过快等问题。因此本设计将讨论传感器的种类、数量及安装,研究传感器的数据融合算法,并致力于提高转向伺服电机及直流驱动电机的控制能力。同时,单片机系统需要在接收路径识别电路信号和车速传感器信号后,采用某种路径搜索算法进行寻线判断,进而控制转向伺服电机和直流驱动电机的工作,因此本设计还必须讨论其软件控制方案,研究高性能的控制算法。

1.2 输入输出分析
本节对智能车的输入和输出量进行分类分配,如下表1.1和1.2所示为智能车系统输入和输出分析表。


1.3 模块划分

本智能车系统的设计是属于嵌入式开发与应用范畴,制作过程主要可分为软件设计、硬件设计和机械结构设计三个部分。由于有现成的车模,机械结构无须过多关注,本设计主要关心的是其软硬件设计。

根据系统输入输出分析情况,结合其软硬件特点,在硬件上可将智能车系统划分为电源、单片机、传感器、动力电机、转向舵机和通讯调试等几个模块。电源模块负责给其他各模块提供可靠的电源,保证各电路能够稳定的工作;单片机模块是整个系统的核心,它作为冯诺依曼体系结构中的运算器、存储器和控制器的集成,是系统中其他所有输入输出信息的控制和处理中心,本设计所用的单片机是MC9S12DG128 MCU;传感器模块为单片机提供必要的信息作为其决策的依据,在本系统中所用的传感器是利用可见光进行探测的灰度传感器;动力电机和转向舵机都是用DG128单片机的PWM信号来驱动的,其中,动力电机还用到了飞思卡尔半导体公司生产的MC33886半桥式驱动芯片;通讯调试模块主要采用了SCI串行通信和BDM调试接口,BDM调试接口主要用来将可运行程序从PC机方下载到MCU,SCI串行通信主要用于后期调试时的数据通信。

在软件上,采用分层化的软件体系结构,分为硬件驱动层、功能控制层和主控软层。在硬件驱动层分别有AD转换驱动、PWM脉宽调制驱动、定时器驱动、蜂鸣器驱动程序和最小可运行系统驱动模块。功能控制层主要有AD采样滤波和均值处理、动力电机和转向舵机控制以及系统定时时钟模块。主控软层主要是对寻迹算法和策略的实现。
 
对于以上各个模块,在以后章节会有较为详细的介绍。

 1.4 开发平台简介
本设计所用开发平台是由苏州大学飞思卡尔DSP&MCU研发中心自主研发的集成开发环境SDIDE12。该集成开发环境支持C和汇编语言的编译,有TBDML调试下载和串口监控下载功能,是集工程管理、编辑、编译、程序下载、调试功能于一体的新型MCU实验开发工具,它充分利用Windows平台的特性,具有标准的Win32视窗界面和功能强大的菜单工具栏,软件安装方便,占用系统资源少且操作简便,有丰富的帮助文件和示例程序。

 该软件采用Visual C++ MFC编写,图1.1是该平台的功能结构图,图1.2显示了它的主开发界面,其中左方为工程管理窗口,右方为代码编辑,下方为编译输出及调试窗口。
此集成开发系统的主要功能如下:


图1.1 SDIDE12集成开发环境功能结构图


1. 标准Win32视窗界面。充分利用Windows平台的特性,具有功能强大的菜单工具栏,软件安装方便,占用系统资源少且操作简便。丰富的帮助系统和示例程序可帮助用户快速掌握M68HC12系列单片机的编程,同时该系统也可方便的移植到其他微控器平台上。

2. 工程管理。在SDIDE集成开发环境中,工程是非常重要的概念和,它是用户组织所有源文件、设置编译链接选项、生成调试信息和最终目标文件的基本结构。工程将管理所有源文件和库文件,并根据实际情况进行相应的编译和链接。每个工程必须有与其相对应的目录,以进行文件管理。工程管理对象可为C工程也可为汇编工程,它们在主界面上都以文件树的形式进行组织。在工程属性中可以设置编译参数和路径以及处理器的相关参数等。该模块的主要功能就是管理源文件和生成编译器需要的文件。在保存工程时后台同时生成了该工程的makefile文件和src文件,makefile文件包含编译选项和工程属性,src文件则包含工程中使用到的文件和资源。

3. 源文件编辑。可以方便的编辑源文件,支持剪切、复制、查找、替换、注释,完全支持中文和语法高亮显示(Syntax Highlight)。
 
4. 文件编译。编译模块使用了GNU的M68HC12编译器,点击工具栏上的编译按钮就可以开始编译,编译成功后生成标准的Motorola S-record文件。该编译器能对C代码进行优化,若要使系统适用于其他微控制器,则要选用GNU提供的其他MCU编译器。


图1.2 SDIDE12集成开发环境主开发界面



图1.3 SDIDE12集成开发环境程序下载界面



图1-4 写入器头实物图


5. 程序下载。程序下载包括S19文件分析、TBDML通信和Flash存储器擦写等。TBDML通信模块负责通过USB接口将PC方的S-record代码写入到空白的Flash存储器指定区域。S19分析模块则将S-Record标准的S19文件进行分析,将文件的内容转换成特定的传输格式,以判断文件中程序的起始地址和页数以及是否越界等。用户通过点击工具栏上下载按钮即可以弹出程序下载界面,如图1.3所示。该下载程序操作流程是:选择芯片型号(不同的芯片其Flash擦写程序不同),设置目标晶振频率(用于连接TBDML设备),最后写入程序。写入程序的主要过程是先将Flash擦写程序数据和用户程序数据写入到RAM的指定区域(此时要事先为它们分配好固定的RAM区,以免出现相互重叠,从而造成数据丢失情况),在某页的用户程序数据写入到分配到RAM区后,就调用执行RAM区存放的写入程序代码的函数tbdml_target_go(),若tbdml_target_go()返回值为“0”,则程序就能正确执行,从而将事先存放在RAM区的某页数据写入到指定的Flash区。写入调试头MT-Programmer(for S12)实物图如图1.4所示,扁头的USB口接PC机方,方口的USB口则接目标板。

6. 为了方便用户开发,系统还集成了调试器及Flash和寄存器查看器。点击工具栏上的调试按钮,就可进入调试模式,调试模式分单步调试和断点调试,这两种模式都不需要用户输入调试指令。Flash查看器和寄存器查看器分别可以查看指定Flash区和寄存器的内容。调试器的工作流程与下载程序相似。BDM是16位单片机的编程接口,除完成FLASH写入、擦除功能外,还可用于应用程序的调试,甚至可以在应用程序运行时,动态地获取CPU、存储器等瞬态信息。BDM调试工具与单片机的通信通过双向的BKGD引脚实现。

7. 丰富的帮助系统和示例程序。考虑到用户实际需要,本系统集成了专门制作的软件操作手册,里面包含系统所有功能的介绍和使用方法教程。此外,附带的示例程序可帮助用户快速掌握M68HC12编程。

 

 

上一章: 总结                                                                                  下一章: 硬件设计




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