摘要:以飞思卡尔半导体公司的MC9S12DGl28B系列MCU为核心,设计智能车的系统框架,软件和硬件的设计方案。详细介绍了电源模块和电机驱动模块在设计过程中遇到的问题和解决方案。
关键词:智能车;HCSl2单片机;红外传感器
0 引言
“飞思卡尔杯”智能车大赛起源于韩国,是韩国汉阳大学汽车控制实验室在飞思卡尔半导体公司资助下举办的以HCSl2单片机为核心的大学生课外科技竞赛。组委会提供一个标准的汽车模型、直流电机和可充电式电池,参赛队伍要制作一个能够自主识别路径的智能车,在专门设计的跑道上自动识别道路行驶,谁最快跑完全程而没有冲出跑道并且技术报告评分较高,谁就是获胜者。其设计内容涵盖了控制、模式识别、传感技术、汽车电子、电气、计算机、机械、能源等多个学科的知识,对学生的知识融合和实践动手能力的培养,具有良好的推动作用。我校于2007年8月参加第三届大学生智能模型车竞赛,并取得三等奖的好成绩。
1 系统分析
智能车系统一般由电源模块、传感器模块、直流电机驱动模块、路径识别模块、通讯及调试模块、单片机模块等组成。
本智能车的核心处理单元采用飞思卡尔半导体公司的MC9S12DGl28B系列MCU,系统框图如图l所示,本智能车的设计采用了多模块技术:运用反射式红外传感器设计路径检测模块和速度监测模块;采甩PWM技术,控制舵机的转向和电机转速:系统还扩展了液晶显示屏和键盘模块实现人机交互操作,以便于智能车的相关参数调整。此外,PID寻迹算法结合ABS(Anti—skid Brake System.:防抱死系统)技术,使我们的小车能在曲折的赛道上以较快的速度稳定行驶。
2 系统硬件设计
2.1 电源部分硬件各部分所需的电源大小不一样,为满足这一要求,本系统对电源部分进行设计。供电电源为配发的标准车模用7.2V 2000mAh Ni—cd蓄电池,通过稳压芯片分别提供6V、5V电压以及接地端。6V稳压电路如图2所示。其中6V电压供给伺服电机,5V的电压供给单片机系统、路径识别的光电传感器和接收器电路、车速传感器电路,LCD显示电路。在电路设计中,考虑到由于电机驱动所引起的电源输出不稳定(主要为瞬态脉冲),在电源输出端,各芯片电源引脚都加入了滤波电路。为了避免由于驱动电机转动时所引起的电磁干扰,在印制板上做了敷铜处理,将电路中的“地”与敷铜面相连接。
2.2 信息采集模块在该模块中包括速度信息采集和位置信息采集两个子模块,分别采集智能车当前的位置信息和速度信息,并将采集到的信息传给MCU,其核心是反射式红外传感器。测速传感器安装于智能车右后轮附近,在靠近车轮的轴上贴一黑白相问、36等分的圆盘,用反射式红外传感器检测黑线,通过对黑色标志的记数可得车轮转过一周所用的时间T,通过公式进行计算即可得到智能车当前的运行速度V。
2.3 信息处理模块信息处理模块包括信息处理和控制模块,其核心是MCU,MCU接收到采集来的信号,对信号进行处理后作出判断,并发出控制命令。
2.4执行模块该模块包括了驱动电机和舵机,当接收到MCU的命令后便执行相应的操作,同时信息采集模块又采集到电机和舵机的状态信息,反馈给MCU。从而整个系统构成一个闭环系统,在运行过程中,系统自动调节而达到正确行驶的目的。
用芯片MC33886来驱动电机,通过调节加在电机两端的电压控制电机的转速从而控制小车的速度。利用芯片的全桥控制,对电机进行反接制动。由实验知,使用单片芯片的时候发热严重,以至芯片过热而自动保护。为此我们采取了三项措施来解决芯片发热问题:一、多片并联,减小单片的通过电流;二、在MC33886上部加装散热片;三、在电路板上留有大片覆铜区,通过片子的下部与覆铜区紧贴,进行散热。为了提高散热效果,在片子的上下表面都涂有导热硅脂,使其与散热片和覆铜区紧贴。由实验知,驱动芯片能够稳定运行。
2.5人机交互模块 在该模块中包含了按键输入与LCD液晶显示,其中按键用于调节小车的工作模式,同时也用于调节小车行驶时所需的一些参数;结合LCD液晶显示,从而使整个小车系统更具人性化。
3 系统软件设计
软件设计是整个系统的重要组成部分之一,软件设计是否合理直接影响智能车能否稳定行驶。飞思卡尔MC9S12DGl28B系列单片机可使用C语言和汇编语言来编写源代码,使用C语言编写更为简单和易于移植。在IAR环境下编写源代码,经编译生成十六进制文件后可以通过JTAG下载到程序存储器中,并且可以在线调试和修改,大大提高了开发效率。本系统软件包括主程序、系统初始化子程序、液晶显示屏子程序、按键子程序、定时器中断服务程序等。各子程序可以完成相对独立的功能,而主程序需要完成以下任务:
(1)初始化各功能子模块:
(2)检测用户按键输入;
(3)调用各子模块的功能;
(4) 协调分配各子模块占用的系统资源。其系统控制流程如图3所示。
4 结束语
本论文结合实际设计经验,从智能车的硬件设计、软件设计等方面讨论了智能车如何能够平稳运行。在设计中笔者发现选择合适的器件、选用合理的控制算法、设计合理的软件程序是决定智能车能否快速、平稳行驶的关键。