版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
内蒙古科技大学毕业设计说明书(毕业论文)摘要本设计在信息工程学院智能停车场实验平台上,以飞思卡尔智能车为模型设计并实现了小车自动停车入库系统。该系统将Freescale16位单片机MC9S12XS128作为系统微控制器,设计了单片机最小系统、电源管理模块、电机驱动电路、舵机驱动电路、路径识别电路及对管定位电路,并介绍了电路相关参数的计算方法。在小车自动停车入库系统中,小车通过采集道路信息、交通灯信息以及车库信息,自动从车场入口行驶至指定空车位,并准确停车入库。通过CCD摄像头采集道路信息并对其处理,提取出路中央黑线与小车位置的偏差,从而控制舵机动作来矫正行驶中小车的状态;通过安装在车头的红外线对管来确定空车位及信号灯的位置;同样采用CCD摄像头来提取信号灯的指向,进而指引小车正确驶向车库。关键词:自动入库;智能车系统;图像采样;Freescale16位单片机AbstractOntheexperimentalplatformofthesmartparkinggarageinSchoolofInformationEngineering,theautomaticcarparkingstoragesystemisdesignedonthebasisoftheFreescaleintelligentcar.Includingtheminimumsystemcircuit,powermanagementpart,motordrivecircuit,servodrivecircuit,pathrecognitioncircuitandthegeminatetransistorscircuit,thesystemtakestheMC9S12XS128SCMasitsmicrocontroller.Besides,relativecalculationsofparametersarealsogiven.Inthisautomaticcarparkinggaragesystem,thesmartcarisdesignedtodrivetotheassignedgarageautomaticallyfromtheentranceandtoparkinthestorageaccurately,thoughidentifyinginformationofroads,trafficlightsandgarages.Firstly,thesystemisusedtodealwiththeinformationsearchedbyCCDcamera,thentofindthedeviationbetweenthepositionofthecarandthecentralblackline,andcorrectthecarthroughasteeringgear.Inaddition,theinfraredtubescanbeinstalledinfrontofthecartodeterminethelocationsoftheemptyparkingspacesandthesignallights.Similarly,thedirectionsofsignallightscanbedetectedbyCCDcameraaswelltomakethecardriveinthegaragecorrectly.Keywords:Automaticparkinggarage;Intelligentvehiclesystem;Imagesampling;Freescale16-bitsingle-chip目录TOC\o"1-3"\h\u1554摘要 I28605Abstract II25162第一章引言 190291.1设计背景及意义 114431.2设计目标 223946第二章总体设计 3194542.1系统硬件结构 311812.2设计方案分析 3234212.2.1道路识别方案分析 4283082.2.2交通灯识别方案分析 5246672.2.3小车自动入库方案分析 5295222.3系统硬件安装 613342.3.1智能车系统硬件安装 692482.3.2车场硬件安装 727343第三章硬件设计 822853.1单片机最小系统电路 87053.1.1单片机MC9S12XS128简介 8226963.1.2单片机时钟电路设计 933263.1.3复位电路设计 934083.1.4BDM接口电路设计 10138353.2电源电路设计 11311573.2.15V电源电路设计 1111133.2.26V电源电路设计 12301993.2.312V电源电路设计 12299983.3直流电机及电机驱动电路 1485193.3.1电机RS-380简介 14281463.3.2电机驱动电路 14272613.4视频采集电路 1633033.4.1CCD摄像头的工作原理 16241833.4.2视频分离电路 17318863.5舵机及舵机驱动电路 18292823.6红外对管电路 1918250第四章软件设计 21290194.1主函数 21217564.2初始化程序设计 22122994.2.1锁相环初始化设计 22191244.2.2TIM模块初始化设计 22322984.2.3PIT模块初始化设计 2311904.2.4PWM模块初始化设计 24197224.2.5A-D转换初始化设计 24258584.3道路模块程序设计 25316484.3.1道路信息采集程序设计 25180224.3.2引导线提取程序设计 2758884.4交通灯模块程序设计 28247404.5小车自动入库程序设计 292459第五章总结 3112672参考文献 3229732附录A:系统硬件仿真原理图 3421801附录B1:最小系统PCB原理图 3528539附录B2:电机驱动PCB原理图 3532726附录B3:电源模块PCB原理图 3610877附录C:系统C语言源程序 37第一章引言1.1设计背景及意义智能停车场实验室是我校信息工程学院为本科研究生实践训练和课程研究搭建的模拟平台,该实验室可以为自动化和测控专业在数字电路实验、模拟电路实验和嵌入式实验等方向上提供支持,为我院学生的学习生活又增添了一种新的方式。在此平台上能够实现自动停车和车库设计两方面的功能,其中自动停车方面可以研究自动循迹、信号灯识别、图像识别以及PWM控制等,车库设计方面可以研究空位查询、各种安全报警以及停车信息系统管理等。测控技术与仪器专业是一个理论与实践并重的专业,理论性与应用性都极强。除了要学习测控的理论知识外,还要进行相关实践的训练,以提高解决实际问题的能力,加深对知识的理解。为了培养学生的创新能力和开发能力,我校信息与工程学院先后创办了创新基地与秋实工作室,智能停车场课题也是在此基础上提出的。学院计划设立智能停车场实验室,用于研究其相关系统,同时用于单片机嵌入式课程的教学。该项目为我们提供了一个学习的平台,让有兴趣的同学参与开发研究,可以开阔大家的视野,激发学习基础理论的热情。对于大四的学生,可以将其作为毕业设计深入研究,更好的了解现在社会上嵌入式发展的形势。此外,通过这个实验室还可以增进与其他院校的交流,以达到相互学习共同进步的目的。本设计是在智能停车场的基础上,对车辆自动进入车库系统进行设计的,以便提高车库的自动化程度。如果这项技术成熟并投入使用,不但可以改变现在车场管理效率低下的现状,而且可以实现车场无人化管理,节省人力物力。因为车辆入库是按照空余车位指定的路线自动行驶停放的,从而解决了车库排队拥挤和停车安全的问题,减少了车主停车的时间。此外,如果停车场内有对外开放的临时车位,自动停车系统更加有利于对这些车位的管理。随着我国城市化进程的加速和人们经济生活水平的提高,拥有私家车的家庭越来越多,城市机动车辆迅速增加。车辆的高速增长导致城市交通拥堵,与此同时,停车入库排队时间长和寻找车位困难已经成为十分严重的社会问题。城市交通需求量不断增大,城市人口又相对密集,无论是私家车还是公交车辆都很难满足正常停放,一方面车主对停车的安全性和便利性都产生了新的需求,另一方面更加科学有效地管理车场,提高车场的使用率和安全性,已经成为现在研究的热门[1]。1.2设计目标本设计是在飞思卡尔智能小车的基础上进行的,首先要按照飞思卡尔大赛的标准设计出智能车系统,其系统主要包括微控制器模块、电源管理模块、路径识别模块、电机驱动模块及转向舵机控制模块等[2]。这部分要实现的主要功能是:智能车在摄像头的配合下,能够自动识别指定道路并沿着道路上的引导线行驶。在小车行驶的过程中,利用了摄像头对道路进行感测,得到的数据送交单片机,单片机处理得到的数据,通过PWM波控制车头舵机的转动,从而调整小车的相对位置,以达到自动寻迹的目的。在此基础上设计智能车自动进入车库并准确停入空余车位,这部分主要包括识别交通灯和定位空车位两部分。通过摄像头采集交通灯的信息,经过程序算法提取出交通灯的指向,指引小车向空车位行驶。在小车和车位上安装红外线对管,当车位上没有车时,车位上的红外线对管发射信号,小车经过时通过红外接收器检测到信号,从而实现定位车位的功能。本设计的具体任务如下:(1)、结合停车场模型,设计引导路线的识别方法;(2)、结合停车场模型,设计信号灯的识别方法;(3)、设计小车控制硬件电路原理图、PCB;(4)、设计循迹、停车入库软件。第二章总体设计2.1系统硬件结构智能小车系统的功能模块主要有:控制核心(MCU)模块、电源管理模块、交通灯检测模块、路径检测模块、电机驱动模块、舵机控制模块以及辅助调试模块,在这次自动入库的设计中还有一个红外传感器模块,用于准确寻找空余车位。每个模块都包括硬件和软件两部分,硬件为系统工作提供硬件实体,软件为系统提供各种算法。智能车系统的总体结构框图如图2-1所示。图2-1智能车系统总体结构框图微控制器根据图像采集传感器采集的道路信息快速准确地对路径进行判断,对舵机和后轮直流电机PWM控制,从而保证智能车能够快速稳定地行驶。其中微控制器选用Freescale公司的MC9S12XS128开发模块;电源管理模块为开发模块、各传感器、舵机以及直流电机提供电源;图像采集模块采用面阵CCD摄像头;舵机控制模块用来控制小车转向的,模块化舵机只要送入脉宽调制信号就可控制其转向和转角,控制主要是通过单片机片内资源PWM配合编程实现;直流电机驱动模块为车后轮直流电机驱动。2.2设计方案分析在设计小车自动停车入库系统的过程中,通过对相关资料的查询,可以发现系统的不同部分存在多种实现方案,各种方案都存在其利弊。系统的方案选择主要存在道路识别、交通灯识别、自动倒库三个模块,下面将分析这三个模块的方案,选择出最利于我们实现的方法。2.2.1道路识别方案分析道路识别模块要实现的功能是在白底黑线的车道上自动识别行驶的路线,检测智能车相对于车道中央的偏移量、方向等信息使小车自主沿着车道运行。为了提高小车对车场环境的适应能力,实现其自主沿着车道快速而稳定的行驶,要选择合适的采集赛道信息传感器,设计合理的路径识别方,以确保获取足够多、足够远、足够精确的车道信息来提高小车的运行速度。路径识别的主要要求是准确、快速、尽量超前地采集路面信息,把它转变成点信号,传送到单片机中处理。现在做路径识别的技术很多,方法也是千差万别,但其目的都是为小车寻到前进的方向,现在分析下面三种方案的利弊。(一)、基于光电传感器的路径识别方案对于飞思卡尔大赛来说,基于光电传感器来进行路径识别是完全可行的,因为赛道是在白色赛道上识别中间的黑色,可以在小车前面装上光敏器件,光敏电阻或是光敏二极管,根据白色与黑色赛道对光的反射强度的不同,从而对光敏器件产生不同的电阻电压,把这些数据送给单片机处理就可以让小车识别具体的路线。这种方案的优点是电路简单,信号处理速度快。其弊端是感知前方赛道距离有限,受外界红外频段光线干扰,精度比较低[3]。(二)、采用电磁传感器的路径识别方案这种方案是在道路中央安装电流约为20KHz、100mA的导线,采用电磁传感器阵列来感应道路上的磁场信号,经过放大电路放大后,可以得到正弦波,传给单片机进行AD采样,得到正弦波的峰值,以判断电磁传感器距离导线的距离,从而定位智能车在路径上所处位置。这种方案的特点是:磁场在空间的分布具有方向性,所以电磁传感器采集的信息同样具有特定的方向。其缺点是磁场受附近车道上磁场影响较大,而且不同传感器对磁场感应的变化规律有很大的差距[4]。(三)、采用摄像头采集的路径识别方案使用摄像头采集路径信息的原理是通过调整摄像头镜头的焦距,可以采集到小车前方不同范围的道路图像,得到智能车前方的道路信息,对图像中的道路参数进行检测。通过对检测的图像用适当的图像处理方式进行处理后,可以获得道路的中心位置、道路形状、弯道曲率等信息。其优点是可以获得小车前方较远路径信息,不足是对图像处理的计算量大,单片机处理数据时间长,电路设计相对复杂。摄像头的选择也存在两种方案,一种是采用CCD图像传感器,其是以PAL制式信号输出到CCD信号处理模块并进行同步信号分离,连续的图像数据和同步信号同时输入到S12单片机控制核心,进行进一步的图像处理。其优点是对比度高、动态特性好。缺点是工作电压是12V,需要升压模块,耗电量较大,且图像稳定性不高。另一种方案是采用CMOS图像传感器,这种传感器的原理与CCD图像传感器的原理大致相同。虽然CMOS传感器具有电源功耗低、感光度高的特点,但其受环境影响较大,适应性较差[5]。综上所述,在这次设计中路径识别模块选用CCD图像传感器的摄像头方案。2.2.2交通灯识别方案分析现在各学科对识别交通灯的研究很多,依据的理论也各不相同。例如上海交通大学研究的基于级联滤波交通灯识别方法,其是通过对已有的交通灯图像进行训练及采用色彩分割的方法而提取候选区域,并将候选区域作为输入[6];同济大学研究的方向是在HIS颜色空间进行交通灯的颜色分割,利用交通灯被黑色矩形框包围这一典型特征进行形状分割,根据形状分割所得位置对颜色分割候选区进行确认,从而精确定位交通灯位置以及亮灯在交通灯中的位置[7]。但总的来说,各种方案都是使用摄像头来对交通灯进行信息采集的。因为在路径采集模块选用的是CCD摄像头,为了减少智能车的硬件组成以及减少费用预算,所以在这里使用同样的摄像头,但对信息的处理算法却迥然不同,在后续的论文中将会详细介绍。2.2.3小车自动入库方案分析这一部分要实现的主要功能是小车行驶的过程中能够准确定位到空余车位。能够实现定位的传感器数不胜数,最初试想的方案是利用光敏电阻来测量小车与车位的距离,具体做法是在车库中央安装发光二极管,车库空着时二极管被点亮,在小车四周安装八个光敏电阻,利用光敏电阻距离光源位置不同产生不同电阻的原理,进而产生电压差,从而测出小车距离光源的位置。实际证明这种方案并不合理,首先在小车上安装光敏电阻相对麻烦,而且电路连接较为混乱。最严重的问题是光敏电阻受环境影响很大,远远不能实现车库的精确定位。最终确定的方案是使用红外线对射管,这种对管的原理是点对点的发射接收,车库空着时对管发射信号,车辆行驶至车库时接收红外信号。红外对射管的接收范围相对较小,所以并不受相邻车库对管的影响,精确度高,能够实现小车对车库的精确定位[8]。2.3系统硬件安装2.3.1智能车系统硬件安装智能车上的硬件有:车轮、舵机、路径采集摄像头、交通灯采集摄像头、电机、主控芯片、电源驱动一体化电路、红外接收管、视频分离电路。其中车轮、舵机和电机已经安装在车上,不需要进行调节机械结构。车体本身机械参数如下:车长27.5cm;车宽17cm;车轮直径5cm;轴宽12cm[9]。智能车硬件安装如图2-2所示。图2-2智能车硬件安装示意图其中最关键的部分是摄像头的安装,出于对车身重心位置以及探测前瞻量的考虑,摄像头最好装在车体前部,以平衡重心并获得较大的前瞻量。摄像头安装位置的高低对智能车行驶过程中路径识别的范围,以及路径识别的准确性和实时性具有直接的影响。安装位置过低,会导致视野不够开阔,使得有效的路径识别范围缩小;安装位置过高,又会导致黑色引导线变得过窄而无法被检测到,而且会使智能车系统重心抬高,从而降低了其稳定性。摄像头又受到单片机采样速率的影响,根据实验发现用于路径采集摄像头的高度为10厘米、向下倾角30度为宜,用于交通灯信息采集摄像头的高度为12厘米、向上倾角30度为宜。其次便是红外对射管的安装,智能车在两处需要用红外对管定位,一处是车库门前,另一处是在路口。车库有左右之分,所以在小车的左右两侧各需要一个对管,用以区分空余车位在车的左侧还是右侧。车库中道路是按照双车道设计的,所以检测路口的红外对管需要安装在车的右侧,又因为采用的对管是同一个型号,为了避免出现错误判断,检测路口的传感器安装位置要高于其余两个对管。2.3.2车场硬件安装智能车场的设计是独立于自动入库系统的,但本次设计需要车场相关硬件配合,所以这里对车场的硬件安装提出简单要求,其主要部分有:红外对管、交通灯以及用于空位查询的光电管。交通灯需要安装十字路口,受到CCD摄像头采集有效距离的影响,摄像头要安装在靠近车的路口,同时位置要高于摄像头支杆。安装在车库门口的红外对管,其装在右侧还是左侧取决于该车库相对于主干道的位置。用于定位路口的红外对管需要安装距离路口11cm的地方,这是由装在车上对管的位置决定[10]。空位查询的传感器安装在车库正中即可,车场系统硬件安装如图2-3所示。图2-3车场系统安装示意图第三章硬件设计3.1单片机最小系统电路3.1.1单片机MC9S12XS128简介我们选用飞思卡尔公司的MC9S12XS128作为系统的主控芯片,其隶属于MC9S12X系列。MC9S12X系列是HCS12系列的增强产品,其基于S12CPU内核,可以达到之前产品2到5倍的性能。S12X系列单片机增加了172条指令,可以执行32位计算,总线频率最高可达40MHz,并完全具备了CAN功能,改进了中断处理能力。S12X单片机的CPU以复杂指令集CISC为架构,集成了中断控制器,有丰富的寻址方式。其系列单片机最大的优点是添加了一个平行处理的外围处理器XGATE模块,该模块是一个可编程的16位RISC核心,设计的最高运行速率可达100MHz。此模块是一个可编程的、智能的直接内存存取模块,可以进行通信处理、中断处理和数据预处理。MC9S12X系列单片机目前有一下几个子系列:MC9S12XA系列、MC9S12XB系列、MC9S12XD系列、MC9S12XE系列、MC9S12XS系列[11]。MC9S12XS128单片机存在三种不同的引脚封装:112引脚LQFP封装、80引脚QFP封装、64引脚LQFP封装,他们的功能基本相同。因为本次设计需要的引脚较多,所以选用的是112引脚的封装。其主要功能如下:中央处理器是高速的16位处理单元,数据总线也是16位,由算数逻辑单元(ALU)、核心寄存器组以及控制单元三部分组成;因为单片机的地址总线是16位的,所以基本存储器的寻址范围是0x0000~0xFFFF,寻址空间为64KB。这些地址空间分给了数据存储器RAM、程序存储器EPROM、数据闪存器EEPROM和I/O口寄存器;共有十一个并行I/O口,分别是:A、B、E、K、T、S、M、P、H、J和AD,其中除了A、B和H作为通用I/O口,其他端口都存在复用功能;中断模块实现了7级嵌套,每个中断源灵活分配中断级别,中断源又分为可屏蔽中断和不可屏蔽中断;串行通信SCI模块由13位的波特率选择,同时支持LIN总线协议;16通道的A-D转换位数有8位/10位/12位可选,转换数据左对齐或右对齐,存在单次或连续转换两种方式;8通道8位的脉冲宽度调制器PWM可转换成4通道16位;定时器/计数器模块分为输入捕捉/输出比较模块和周期中断定时模块;内部集成了系统运行监视功能,即看门狗功能,用硬件监视软件是否正常运行,从而可以保证出错后系统快速恢复;工作环境温度范围宽等[12]。3.1.2单片机时钟电路设计时钟电路是单片机最小系统设计中的关键环节,由于使用的晶振体工作频率很高,如果电路设计不合理会使其工作时产生的高频信号对其他电路造成干扰,特别对模拟部分的干扰较大,甚至会致使单片机系统无法正常工作。通常时钟电路的连接方法有三种:串联型、并联型和使用外部有源振荡器[13]。并联型电路连接如图3-1所示。图3-1时钟电路图中晶振的大小选用16MHz,电容C1、C2称为负载电容,将它们分别与晶振连接后接地,作用是消减谐波对电路稳定性的影响,其典型值为22pF。R3的作用是保证晶体正常起振,它的大小一般为10MΩ。在设计时钟电路PCB时要注意下面三点:(1)晶振体的周围尽量不要有线路,特别是对信号质量要求高的器件连线;(2)为了保证单片机的稳定性和避免晶振对周围电路造成干扰,它们之间的连线要尽量短,尽量宽;(3)为了阻挡晶振体的噪声,可以将地线包围和覆盖在其周围,这样也可以避免其他信号的干扰。3.1.3复位电路设计单片机要正常工作需要在上电的时候给它一个复位信号,使CPU和其他部件都置为一个确定的初始状态,并从这个状态开始工作。此外,在调试程序的时候经常需要手动对单片机复位,所以复位电路的设计必不可少。S12单片机的复位引脚是低电平有效,即在正常状态时要求该引脚被上拉至高电平,在对单片机进行复位时其要保持一定时间的低电平[14]。复位电路如图3-2所示。图3-2单片机复位电路系统上电时,复位按钮处于松开状态,由于电容C1要进行充电,所以电压不会突然变化而只能缓慢上升,这样就可以在复位引脚上保持一段时间的低电平。当按钮被按下时,复位引脚被拉到低电平,单片机进入复位状态。但是该电路不具备低压复位保护功能,而且在对系统的稳定性要求较高的场所,需要在R1两端并联反向保护二极管[15]。3.1.4BDM接口电路设计BDM模块可以实现程序下载、读写存储器/寄存器、硬件断点、条件断点、单步运行、连续运行等全部在线调试功能,而只需要简单的外部接口电路。此部分电路设计就是为了连接BDM调试器的,BDM调试器的功能是将程序从微机上下载到单片机里,并可实现在线调试,同时它还可以给单片机供电[16]。BDM接头存在两种定义方式,一是飞思卡尔的方式,方法是将通讯口BKGD设置在第一脚,VDD在第六脚,若BDM插反,VDD将直接与BKGD短接,很可能引起芯片BDM模块故障,甚至烧毁芯片。第二种方法是清华大学提出的,该方式将BKGD设置到第三脚,这样即使BDM头插反,也不会引起任何严重的后果。按照第二种方式设计的BDM接口电路如图3-3所示。图3-3BDM接口电路为了充分保护单片机的引脚,通常串联如图所示的电阻R13,其典型阻值为51欧姆,此外单片机的工作模式决定了要在MODC引脚与电源之间串联一个3.3K的电阻。当使用BDM下载程序时,单片机需要处于调试模式,即要求MODC引脚处于低电平,实现过程是BDM调试器的对应引脚自动将其拉低。当单片机与调试器分离时,由于MODC上存在3.3K的上拉电阻,单片机就会自动回到普通模式。3.2电源电路设计电源模块的设计是为整个系统提供所需的电源,所以首先需要设计出满足要求的电压电流,其次需要考虑电源转换率和噪声等方面,稳定可靠的电源是整个硬件电路稳定运行的基础。电源管理模块主要包括:主电源、舵机电源、摄像头电源、电机驱动电源以及各芯片供电电源[17]。其中主电源需要一块充电电池,现在市场上常见的充电电池有镍镉电池、镍氢电池、锂离子电池、碱性电池和封闭式铅酸电池等几类,其中镍氢电池电路简单、技术成熟而且价格便宜,所以这里选用一块由6节型号相同1.2V电池串联的7.2V电池,其额定容量为1300mAh。3.2.15V电源电路设计5V电源模块是对7.2V电池进行电压调节,主要为单片机、视频分离电路以及辅助电路提供稳定电压,所以要求电压稳定、噪声小、电流容量大。现在常用的5V稳压芯片有LM7805、LM2940等,其中LM7805内部功率损耗大,全部压降均转换成热量损失了,电源效率比较低,因此选用LM2940作为5V稳压芯片。LM2940稳压芯片的典型压降只有0.5V,其最大输出输出电流可达1A,并且具有短路保护的特点。5V稳压电路原理图如图3-4所示。图3-45V稳压电路图3.2.26V电源电路设计6V电源只给前轮舵机提供工作电压。舵机工作时需要的工作电流一般在几十毫安左右,且电压无需十分稳定,所以这里选用LM2941作为稳压芯片。LM2941是一种可调式低压稳压器,其优势主要在于:典型压降为0.5V;最大输出电流为1.0A;输出电压范围为0~20V,最大输出电压可达26V;具有短路保护、热过载保护和自我保护功能。此外当输入输出压差超过3V时,芯片内部有专门的电路将引脚地的静态电流减小。当输出电流为1A并且输入输出压差为5V时,静态电流仅为30mA。6V稳压电路原理图如图3-5所示。图3-56V稳压电路图当引脚ON/OFF为高电平时,芯片被关闭,引脚OUTPUT输出电压为0V,反之当其接低电平时,芯片被开启,有电压输出。输出电压的计算方法如式3-1所示。(3-1)从上式可以看出LM2941输出电压的大小取决于R2与R1比值的大小,其中它的基准电压VREF的大小为1.275V,实际电路中R1通常取1K,根据输出电压为6V计算出R2的大小为3.7K[18]。此外输出电压的稳定性;也取决于R1和R2的稳定性;即电阻稳定性好,则电路就不会因温度等因素而引起输出电压的不稳定,所以这两个电阻不能太小或者不接。需要注意的是电路中的电源滤波电容在布线时要原理调节端。3.2.312V电源电路设计CCD摄像头的额定工作电压是12V,所以需要使用升压电路将7.2V电源升压至12V,在这里我们使用MC34063构成直流升压电路,这款芯片使用不同的外围电路可产生不同的电压值。MC34063是一块高效的开关型DC/DC变换控制电路,内部含有直流到直流变换器所要求的主要功能,即具有温度补偿的基准电压源和比较器、具有激励电流限制的占空比可控的振荡器和驱动器以及大电流输出开关等。其输入的工作电压为3~40V,工作频率为100KHz,基准度为2%,控制的开关电流达到1.5A。MC34063片内的恒流源不断对接在CT引脚上的定时电容进行充电和放电,从而使振荡器产生震荡波。因为充电和放电的电流都是恒定的,所以振荡器的振荡频率完全取决于定时电容的容量。当振荡器对外充电时,片内与门的C输入端呈现为高电平,反之,则呈现出低电平。当比较器的输入电平低于阀值电平时,与门的D输入端表现为高电平,反之,则表现为低电平。当C端和D端都为高电平时,片内触发器被置为高电平,从而使输出开关管导通。当C端和D端有一端为低电平时,触发器被置为低电平,输出开关管就被关闭。通过判断连接在5V电源与SI检测口的电阻上的压降来完成电流限制的功能。当该电阻上的压降接近于300mV时,电流限制功能便被启用,主要是通过对CT引脚上定时电容进行快速充电,从而减少充电时间和输出开关管的导通时间,其结果是输出开关的关闭时间减少,电路中的电流大小下降,达到电流限制功能[19]。12V稳压电路如图3-6所示。图3-612V稳压电路图所设计的电路是将7.2V升压至12V,根据MC34063的工作原理可知,电路输出电压的大小只与电阻R1和R2有关,但R1R2的阻值不能过小,否则支路的分流电流将会变大,导致输出端的负载能力下降。这里选用电阻R1R2的大小分别为2K和18K,具体计算方法按式3-2所示。(3-2)根据MC34063工作频率等特性,可以计算出定时电容CT的大小为470pF,滤波电容C和C0的大小都为100uF。电路中选用0.3欧姆的电阻作为检测电阻RSC,将电感L的大小设置为100uH。3.3直流电机及电机驱动电路3.3.1电机RS-380简介直流电机的结构可以分为定子和转子两大部分组成。直流电机运行时静止不动的部分称为定子,定子的主要作用是产生磁场,组成部分有机座、主磁极、换向极、端盖、轴承和电刷装置等。运行时转动的部分称为转子,其主要作用是产生电磁转矩和感应电动势,是直流电机进行能量转换的枢纽,所以通常又称为电枢,组成部分有转轴、电枢铁心、电枢绕组、换向器等。电机是小车动作的主要执行机构,在这我们选用RS-380直流电机作为驱动电机。因为直流电机速度控制性能优良,其输出转矩较大,可直接拖动后轮负载,重要的是可通过调节控制脉冲直接控制转速和方向。电机RS-380的额定电压为7.2V,工作电压范围3~8V,空载转速在7.2V时可达30000转。工作电流的范围为0.75~1.30,堵转电流可达24A。其在很多方面有优越性,具体如下:(1)较大的转矩能够克服传动装置的摩擦和负载转矩;(2)电机速度调整范围宽且精度高,机械特性及调节特性线性好,且速度平稳;(3)电机有很硬的负载特性且过载能力较大,可保证速度不受负载冲击的影响;(4)响应速度快,可满足复杂变化速度的情况;(5)可以长时间的处于停转状态而不会烧毁电机。3.3.2电机驱动电路电机驱动电路要求不仅能够使电机在所需转速转动,而且要求能够实现反转的功能,所以需要使用H桥对电机驱动。H桥驱动电路因其形状酷似英文字母H而得名,其电路包含4个三极管和一个电机,三极管位于H的4个垂直腿,电机则位于H的横杠上。如要使电机转动,就要使位于对角上的三极管导通,根据导通情况不同,电流会从左至右或从右至左的流过电机,从而达到对单片机的正反控制。通过调节电机导通的时间,达到控制电机转速的目的,当无需电机转动时,让四个三极管都不导通即可。但需要注意的是同侧三极管不能一起导通,否则会导致短路。4个三极管的安排应该是上面两个位同种,下面两个位另一种[20]。H桥示意图如图3-7所示。图3-7H桥驱动电路示意图现在市场集成H桥电机驱动芯片有33886、BTS7960等,因为小车电机内阻大约为430毫欧,而飞思卡尔公司的33886内部的每个MOSET导通电阻都在120毫欧以上,会大大增加电枢回路总电阻,导致直流电机转速下降,驱动电路的效率也随着降低,所以在本次设计中不采用33886芯片。选用BTS7960作为主控芯片。BTS7960是Novalithic系列的三个独立芯片的一部分,它是一般用于电机驱动的大电流半桥集成芯片。其内部含有一个N沟道的低边MOSFET、一个P沟道的高边MOSFET和一个驱动IC,驱动IC具有电流诊断、逻辑电平输入、斜率调节和过温、过压、欠压、过流及短路保护等功能。BTS7960电源输入为5~25V,通态电阻典型值为16mΩ,驱动电流可达43A。使用两片BTS7960构成电机全桥驱动,一片就相当于一侧的半桥。当INH引脚为高电平时,便可使能BTS7960,反之,芯片边进入睡眠状态,所以设计中将两芯片的这一引脚连接在一起。将IN脚与单片机的PWM输出口连接,当IN为高电平且INH为高电平时,高边MOSET三极管导通,OUT引脚输出高电平;当IN为低电平且INH为高电平时,低边MOSET三极管导通,OUT引脚输出为低电平。SR引脚外接电阻的大小,可以调节MOS管导通和关断的时间,具有防电磁干扰的功能,该电阻越大则三极管延迟时间就越大,但开关变化率就会越小,综合考虑开关变化率和死区时间,选取该电阻阻值为10K。由于电机在进行PWM调制时三极管开关速率较快,导致电路产生较大的纹波电压,所以在电源与地之间连接一个470uF的电容。电机驱动电路如图3-8所示。图3-8电机驱动电路图中R1、R2、R5和R6为电路的限流电阻,起保护电路的作用,防止过大的感应电压对芯片内部逻辑电路造成伤害,根据实验选用阻值10K比较理想。IS引脚是电流检测输出引脚,正常情况下片内电流源与该引脚直接相连,根据计算可得该电阻阻值为2.2K。3.4视频采集电路视频采集模块主要有摄像头、视频分离电路以及单片机AD模块组成,摄像头输出的视频信号,一路传给分离电路,分离出相应的场行同步信号;一路传给单片机AD口,便于有用信号的采集,即视频信号是AD采集的基础。3.4.1CCD摄像头的工作原理摄像头有彩色和黑白之分,因为本次设计利用摄像头的目的是采集道路中心线和信号灯方向,所以只需提取画面的灰度信息即可,而不需要知道其色彩信息,也就是说黑白摄像头就可以满足设计要求。摄像头的主要组成部分有镜头、图像传感芯片和外围电路。其最重要的部分是图像传感芯片,该芯片需要与外围电路配合才能正常工作,单板就是图像传感芯片与外围电路的总称,单板上通常的三个端子是电源端、地端和视频信号端,部分板子上还有一个音频信号端。通常我们所见的摄像头就是单板与镜头、外壳、引线和接头组装在一起而成的。摄像头的主要工作原理是:按一定的分辨率,以隔行扫描的方式采样图像上的点,当扫描到某点时,就通过图像传感芯片将该点处图像的灰度转换成与灰度成一一对应关系的电压值,然后将此电压值通过视频信号端输出。具体过程是摄像头连续地扫描图像上的一行,就输出一段连续的电压视频信号,该电压信号的高低起伏正反映了该行图像的灰度变化情况。当扫描完一行,视频信号端就输出一低于最低视频信号电压的电平,并保持一段时间,即紧接着每行图像对应的电压信号之后都会有一个电压凹槽,此凹槽叫做行同步脉冲,它是扫描换行的标志。因为摄像头是隔行扫描的方式,所以摄像头跳过一行后,就开始扫描新的一行,如此下去直到扫描完该场的视频信号。之后就会出现一段场消隐区,此区中有若干个复合消隐脉冲,在这些消隐脉冲中,有个脉冲远宽于其他的消隐脉冲,该消隐脉冲又称为场同步脉冲,它是扫描换场的标志。场同步脉冲标志着新的一场的到来,但是场消隐区恰好跨在下一场的开始部分和上一场的结尾部分,只有等场消隐区过去,下一场的视频信号才真正到来[21]。摄像头输出信号如图3-9所示。图3-9摄像头视频信号我国的电视标准为PAL制式,黑白视频信号规定每帧图像共625行,每场为312.5行,在每场的312.5行中,有一些行要用作场消隐,是不包含视频信号的,按照CCIR656标准规定的行编号方法,奇场的行号为第1至312.5行,偶场的行号为第312.5至625行[22]。摄像头每秒扫描25幅图像,每幅又分奇、偶两场,先奇场后偶场,奇场时只扫描图像中的奇数行,偶场时则只扫描偶数行,故每秒扫描50场图像,即每场需要0.02秒,每行需要64微妙,但在实际测量中每行的时间为40微妙。经示波器测试有效视频信号的电压范围为2~3V。3.4.2视频分离电路为了提取出视频电压中的有用信号,首先要分离出信号中的行同步脉冲,消隐脉冲和场同步脉冲。现在进行分离的方法可以分为硬件和软件两种:软件方法是直接通过单片机AD提取,因为行同步脉冲、消隐脉冲或场同步脉冲信号的电平低于视频信号电压,可以在软件上设置一个电压阀值,通过对采集信号判断出各种同步信号;硬件方法是利用外部芯片提取出摄像头信号的行同步脉冲、消隐脉冲和场同步脉冲以供单片机作控制之用。因为单片机的速度有限,而一些脉冲的间隔时间又较短,为了减轻其处理负担,这里采用了硬件的方法进行信号的处理,选用芯片LM1881作为电路核心,其和外围电路构成的摄像头图像采集电路如图3-10所示。图3-10摄像头图像采集电路如上图所示CVBS引脚(即2脚)为视频信号输入端,在其之前接一个电容滤除杂波,与此同时视频信号也接入单片机的AD0口;VSYNC引脚(即3脚)为场同步信号输出端,与单片机输入捕捉端口PT1连接,当摄像头信号的场同步脉冲到来时,该端将变为低电平,一般维持230us,然后重新变回高电平;CSYN引脚(即2脚)为行同步信号输出端,与单片机输入捕捉端口PT0连接,当信号中的行同步脉冲到来时,该端将变为低电平;ODD引脚为奇偶同步信号输出端,当摄像头信号处于奇场时,该端为高电平,当处于偶场时,为低电平。由此可知,不仅场同步信号可以作为换场的标志,ODD引脚也可作为信号与单片机PT1脚相连[23]。3.5舵机及舵机驱动电路本设计中使用舵机对小车前进方向控制,舵机是一种位置伺服的驱动器,可以用于那些需要角度不断变化并可以保持的控制系统,舵机是一种学名,它其实是一种伺服马达。通常舵机有红色、黑色和白色三个引出线,其中红色引线是舵机的电源线,为电机提供工作电压;黑线是地线;白色引线是舵机控制信号的输入端。舵机的控制是智能车寻迹行走的关键,要求舵机驱动的转向机构具有准确的角度控制和快速响应的能力。所用舵机接线如图3-11所示。图3-11舵机接线图单片机的PWM控制信号传给舵机的红色端口,通过占空比的不同来控制舵机的位置。控制信号由舵机内部接收机的通道进入信号调制芯片,经比较获得直流偏置电压。舵机内部含有一个基准电路,它可以产生周期为20ms,宽度为1.5ms的基准信号,将电位器电压与直流偏置电压进行比较获得电压差输出,最后电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动[24]。在这选用的舵机型号是S3010,其在6V电压时转动速度可达0.16s每60度。由舵机的特性可知,在实际中PWM的周期也为20ms,当脉冲高电平的时间为1.5ms时,舵机转动的角度为0;当脉冲高电平时间为0.5ms时,舵机向右打轮90度;当脉冲高电平时间为2.5ms时,舵机向左打轮90度。由此可推导出舵机转动角度与脉冲宽度的计算公式,如果要求舵机转动X度,则脉冲高电平时间T的计算如式3-3所示。(3-3)由上式可知舵机转动1度时,所需脉冲高电平时间为0.011ms。一般舵机的位置等级有1024个,由此可计算出舵机角度精度等级为0.18度,脉冲控制精度为2us(2ms/1024),即脉冲每改变2us舵机就转动0.18度。但在实际小车安装硬件中,舵机的转动范围只有左右30度。3.6红外对管电路红外线是光谱中波长从760至400微米的电磁波,其是不可见光线,人眼无法识别,红外线可用于检测的优点是受其他光线影响较小。红外对管是红外线发射管和红外线接受管或红外线接收头的总称,其中红外线接收管又可分为光电二极管和光电三极管,光电二极管是将光信号转换为电信号,而光电三极管不仅将光信号转换为电信号,又将其电流进行放大了。红外接收管的工作原理是:红外线接收管核心部件是一个特殊材料的PN结,在结构上与普通二极管相比有很大的改变,为了能够更多更大面积的接受入射光线,红外线接收管PN结面积尽量做的比较大,电极面积尽量减小,而且PN结的结深很浅,一般小于1微米。红0.1微安),称为暗电流。在有红外线光照时,携带能量的红外线光子进入PN结后,把能量传给共价键上的束缚电子,使部分电子挣脱共价键,从而产生电子空穴对。它们在反向电压作用下参加漂移运动,使反向电流明显变大,光的强度越大,反向电流也越大,这种特性称为光电导。红外线接收二极管在一般照度的光线照射下,所产生的电流叫光电流[25]。如果外电路上存在负载,负载上的电压信号就会随之光强度的变化而变化。在本次实验中选用的3个是NPN常开型红外接收三极管,发射管是红外发射二极管,其有效距离是50厘米。右侧车库接受管的信号引脚与单片机PT2口连接,左侧车库接受管的信号引脚与单片机PT3口连接,十字路口接收管的信号引线与单片机PT4口连接。红外接受与单片机的连接如图3-12所示。图3-12红外接受管电路由红外接受管的特性可知,在输出和正极之间串连一个1K左右的上拉电阻可直接接单片机的IO口,当红外接收管没有检测到信号时,其信号输出端在上拉电阻的作用下呈现高电平;当有红外信号射向接收管时,其输出端呈现为低电平。第四章软件设计4.1主函数主函数是整个程序的入口,实现软件功能的主体,这里主要完成的任务是对系统进行初始化及在不同条件下调用各种函数[26]。初始化程序包括参数初始化、锁相环初始化、输入捕捉初始化、定时初始化、PWM初始化以及AD初始化。通过输入捕捉功能检测单片机PT2口、PT3口和PT4口电平的高低变化,从而改变程序调用参数cx的数值,根据cx的大小决定主函数调用各子函数。当cx的值为0时,执行自动循迹子程序,通过单片机内部AD对CCD摄像头的数据采集,判断出小车与中心黑线的偏差,将偏差送给舵机1子程序,调整小车的状态;当cx的值为1时,说明小车已经行驶到十字路口,同样用AD将信号灯的数据采集出来,通过辨别信号灯的指向,确定小车的转向。当cx的值为2时,说明智能车已经行至车库,则执行入库程序,这里主要利用单片机的定时器功能,通过定时来控制电机方向和舵机转角,至此整个程序运行结束。主程序流程如图4-1所示。图4-1主程序流程图4.2初始化程序设计4.2.1锁相环初始化设计单片机一般采用内部振荡的方式为其提供时钟源,振荡器时钟二分频后作为MCU内部总线时钟。如果想要系统有更加快速的运行速率,那么可以通过提高内部总线时钟频率的方法实现,但过高的外部时钟容易受到干扰,同时其也会影响其他器件的正常工作。MC9S12XS128单片机内部集成了时钟产生模块,可利用外部稳定的振荡器频率,锁定内部更高的压控振荡器频率作为系统时钟,其锁相环时钟可达80MHz,即使内部总线时钟达到40MHz[27]。与锁相环相关的寄存器有时钟分频寄存器(REFDV)、时钟合成寄存器(SYNR)、锁相环控制寄存器、时钟产生标志寄存器、时钟后分频寄存器以及时钟选择寄存器。其中后分频寄存器用于设定ƒVCOCLK与ƒPLLCLK之间的频率比例,一般比例为1,ƒVCOCLK为内部压控振荡器频率,ƒPLLCLK为锁相环时钟频率;时钟选择寄存器用于控制总线时钟的选择,这里选择锁相环时钟频率的二分频作为内部总线的时钟;锁相环控制寄存器用于确定锁相环的功能;时钟分频寄存器和时钟合成寄存器用于确定锁相环与内部总线的时钟频率,内部总线时钟频率ƒBUSCLK的计算方法入式4-1所示。ƒBUSCLK=ƒPLLCLK/2=ƒVCOCLK/2=ƒOSCCLK•(SYNR+1)/(REFDV+1)(4-1)上式中ƒOSCCLK为外部振荡器的频率,即ƒOSCCLK等于16MHz;REFDV的值由时钟分频寄存器的后5位确定,为了使锁相环稳定,应该选择尽可能大的REFDV,综合考虑到其他因素,程序中设置其值为1;SYNR的值由时钟合成寄存器的后5位决定,设计中要求内部总线的时钟频率达到40MHz,所以这里设置时钟合成寄存器的值为0x44,即SYNR的值为4。4.2.2TIM模块初始化设计MC9S12XS128单片机内部设置有定时器TIM模块,其全称是TimerModule,这部分可以完成输入捕捉、输出比较和脉冲累加等功能,可用于测量输入波形、产生输出波形、统计脉冲或边沿个数,还可用于作为时间基准使用。TIM模块的主要组成部分有1个16位自由运行计数器、1个16位脉冲累加器和8个16位输入捕捉/输出比较通道,通过可编程预分频器为其提供时钟源[28]。这里使用的是TIM模块的输入捕捉功能,输入捕捉功能是通过捕捉16位自由运行计数器的计算值来检测外部事件和输入变化的。捕捉端口PTO用于检测视频的行同步信号,捕捉端口PT1用于检测视频的场同步信号,捕捉端口PT2用于检测交叉口的对管信息,捕捉端口PT3用于检测右车库信息,捕捉端口PT4用于检测左车库信息。与输入捕捉功能相关的寄存器有定时器系统控制寄存器1(TSCR1)、定时器输入捕捉/输出比较选择寄存器(TIOS)、定时器控制寄存器3(TCTL3)、定时器控制寄存器4(TCTL4)及定时器中断使能寄存器(TIE)等。其中TSCR1寄存器控制定时器的使能位;TIOS寄存器用于选择定时器的具体功能,清零时相应通道起输入捕捉的作用,置一时相应通道起输出比较的作用,硬件上需要5个输入捕捉端口,因此TIOS的值为0xe0,即通道0、1、2、3和4作为输入捕捉端口;TCTL3和TCTL4是输入捕捉边沿控制位,程序上将其分别设置为0x01和0x55,也就是说5个端口都是上升沿捕捉;TIM寄存器控制定时器的中断使能位。4.2.3PIT模块初始化设计周期中断定时器PIT模块的全称是PeriodicInterruptTimer,其主要作用是周期性产生中断和外设模块触发,其包含4路24位定时器,程序中利用PIT模块实现定时功能。PIT模块的工作原理是:通过片内总线时钟的8位微计数器减一操作完成,当此微计数器的数值减到0时,就会触发高16位计数器做一次减一操作,如此循环计数直到这两个计数器的数值都减到0,则就会产生定时器溢出中断,从而完成计时功能。XS128单片机的这部分有运行、等待、停止和冻结四种工作模式[29]。设计中决定PIT模块定时时间的寄存器是微定时器加载寄存器和加载寄存器,其中微定时器加载寄存器是给微定时器0和1装载数据的,加载寄存器为16为计数器装载计数初值。如果16位计数器和8位微计数器对应的加载寄存器的值分别是A和B,则定时器定时时间的计算如式4-2所示。T=(A+1)•(B+1)/ƒBUSCLK(4-2)在上面已经设计了系统内部总线的时钟频率为40MHz,这部分设计要求定时最小时间为100ms,再通过这个时间进行更大时间的计时,则A的值为19999,B的值为199。此外,其他的寄存器决定了PIT的主要工作功能,定时器的定时通道选择0,多路选择寄存器的值设置为0x00,即设定通道0连接的微定时基准计数器也是0,同时要开启定时器中断使能。4.2.4PWM模块初始化设计脉冲宽度调制PWM是嵌入式应用系统的常用功能之一,即产生一个在低电平和高电平之间交替重复的方波输出信号,通过软件编程可以调节方波信号波形的占空比、周期以及相位。S12XS系列单片机可以通过两种方式产生PWM信号,一种是利用TIM模块的比较功能,另一种是采用MCU内置的PWM模块实现,前者可通过软件编程设定输出任意脉冲信号,但其不易产生精确的脉冲序列,后者专门用于输出PWM信号,而且占用的CPU资源极少。MCS12XS128内置的PWM模块包括8路具有可编程周期和占空比的PWM通道,亦可通过设置变为4个16位的PWM通道,每个通道由独立运行的8位通道计数器、通道周期寄存器和占空比寄存器等组成[30]。设计中用到3路PWM控制,即舵机控制和电机控制,其中电机要实现正反转,所以电机需要两路PWM控制。将PWM控制寄存器的值设置为0x70,实现通道0和1、2和3、4和5的16位级联;极性寄存器决定了先输出电平的高低,则设置其的大小为0xff,PWM信号在周期开始时输出高电平,达到占空比计数后翻转为低电平;要输出精确的脉宽调制信号,首先要选择和设置时钟参数,程序中设置预分频时钟选择寄存器为0x33,即时钟A和B的频率为总线频率的四分之一(40/4=10MHz)。比例因子A寄存器和比例因子B寄存器的值都为20,即时钟SA和SB的频率为时钟A和B的四十分之一(0.25MHz)。选择时钟SA作为通道1和5的时钟源,选择时钟SB作为通道3的时钟源,即时钟选择寄存器的值为0x2a;PWM的周期可由通道周期寄存器(PWMPER)来设置,周期计算如式4-3所示。(4-3)上面已经设置了时钟周期为4毫秒,又因为要求PWM周期为20ms,由此可计算出通道周期寄存器的值为5000。信号的占空比可由通道占空比寄存器(PWMDTY)来调节,具体计算如式4-4所示。(4-4)4.2.5A-D转换初始化设计CCD摄像头输出的是模拟信号,而单片机只能接受数字量进行计算,所以需要将CCD的模拟信号转换成数字信号。转换方法可以利用专用的AD转换器实现,这种方法转换速度较快,但需要设计相关的外围电路,也可以用XS128单片机内置的AD模块,为了充分开发单片机的内部资源,这里使用第二种方法。MC9S12XS128内部包含16路模拟输入通道,转换位数有8位、10位和12位三种,具有数据对齐方式、单次/连续转换、结果比较等多种转换方式[31]。设置AD转换结果为8位右对齐的数据,即AD控制寄存器1和5的数值分别为0x00、0x20,由此可知AD的转换精度为28,因为单片机的参考电压输入为0~5V,所以AD转换的最小分辨电压为19.5毫伏。AD的转换时钟可由控制寄存器4来确定,计算如式4-5所示。ƒATDCLK=ƒBUSCLK/(2•(PRS+1))(4-5)上式中的PRS由控制寄存器4(ATDCTL4)后四位对应的十进制数决定,设置AD时钟预分频因子时,要使ƒATDCLK的值不小于0.25MHz,同时不大于8.3KHz,所以设置控制寄存器4的值为0x04,ATDCTL4的高4为决定了采样时间与转换时间的倍数,即采样时间是AD转换时间的4倍,所以AD的进行一次转换所需的时间为1微妙,而CCD摄像头输出信号每行持续的时间为40毫秒,也就是说通过单片机内部AD每行可以采集40点,但实际实验中每行只能采集20点。此外,设置AD模块在连续转换模式下工作,其转换结果从结果寄存器的第一位开始依次存放,用到最后一个结果寄存器,再返回到第一个接着存放。4.3道路模块程序设计4.3.1道路信息采集程序设计道路模块主要实现的功能是通过采集道路黑线信息调整小车的状态,上面已经介绍了通过单片机内部AD可以对画面上每行采集20个点,由CCD摄像头的原理可知,每场画面上包含300行左右,而这里并不需要对每一行的信息都进行采集,而且又考虑单片机的运行速率,设计中设置每场画面采集37行,采集的行信息用数组get_n[]来表示。因为在AD初始化中设置其为连续转换模式,所以采集每行点的数据值依次存放在AD的16个结果寄存器中,这就要求在提取数据的过程中也要依次读取这16个寄存器。对于每个点采集到的数据,可以直接用于数据处理,也可以对其先进行二值化再做数据处理,因为车道是在白色底板上铺设黑色引导线,因此干扰比较小,黑线与白色低板在摄像头中转换的电压值差距很大,根据实验可知,黑线在单片机中反应的数字量在90左右,而白色底板在单片机中反应的数字量在140左右,所以设置二值化的阀值为130。而在采集信号灯的过程中并不需要对采集的数据进行二值化处理。硬件设计中用单片机的输入捕捉来采集摄像头的行场中断,所以在软件设计中,将数据采集模块放在行中断里面。摄像头采集数据程序流程如图4-2所示。图4-2摄像头采集数据流程图通过AD采集的数据首先存放在数组get_n[]中,如果采集的数据是信号灯信息,则可直接存入包含行信息的数组a[][],如果所采集数据是道路信息则需要对其进行二值化处理,然后将其存入数组a[][]。4.3.2引导线提取程序设计道路信息中包含着黑线位置,需要对数组进行处理提取出黑线与小车的相对位置,在黑线的识别前,要先做图像除噪处理,程序中采用9方格的方法除噪,即当一个像素点周围的8个点全部是黑点时,那么这个点就一定是黑点。这里采用的是边沿检测算法,因为黑线对应的二值化数值为1,白色底板对应的二值化数值为0,所以从a[][]最左边的数据开始查找,当数据从0跳变到1时,并且接下来的一个数据也是1,则数组中第一个为1的点就是该行黑线的位置,将每场中采集行黑线点的平均值作为一场的黑线位置。引导线提取流程如图4-3所示。图4-3引导线提取流程图上图中参数error为小车偏离引导线的相对距离,其为正数时小车位于引导线的左侧,需要对舵机进行右打轮。其为负数时小车位于引导线的右侧,需要对舵机进行左打轮。Error数值越大则小车偏离引导线越远,舵机所需转动的角度也就越大。4.4交通灯模块程序设计信号灯数据的采集与道路信息采集相似,都是通过CCD摄像头采集画面信息,再通过AD转换输送给单片机处理。与之不同的是不用对采集的数据进行二值化,而是直接用程序寻找到数据中的最大值,因为亮色在摄像头中的电压值远远大于暗色的电压,而实验中信号灯可分为左中右三个灯,同一时间只有一个灯亮,将一幅图像分为左中右三部分,根据数据最大值在图像中的位置,便可分辨出信号灯的指向。信号灯方向判断流程如图4-4所示。图4-4信号灯判断流程图4.5小车自动入库程序设计当小车行至指定车库时,小车前头的红外对管接收器会接受到车库门口的红外对管发射器发出的信号,接受器的信号端与单片机PT3或PT4口相连,此时相应引脚被接收管拉成低电平,从而触发TIM模块捕捉中断,在这个中断函数中将参数cx的值置成2,则程序就转入执行小车入库程序,入库程序的流程图如下图4-5所示。图4-5小车入库程序流程图在进入小车入库程序后,首先要做的是初始化定时器0,也就是说定时器0是在进入这个程序后才开始计时的。因为小车收到车库红外发射器信号的时候,安置接受器的车头位于车库最前方,要让小车安全进入车库仍需要前行一段距离。通过几次实验,电机在占空比为20%的信号电压下工作时,小车前进1.6秒比较合适,经过测量小车大约向前行驶了65厘米。行驶到车库前方准备倒入车库时,小车要进行向左或右打轮。在本设计中在小车前方左右各有一个红外对管接收器来接受车库信号,以便区分空余车库在小车左方还是右方。因为停车场设计里面将道路设计成双车道,按照我国的交通行驶规则,小车是在道路右侧的,靠近右侧车库而远离左侧车库,所以停入左侧车库与停入右侧车库的程序有所不同。这里以停入右侧车库为例说明程序流程,小车直行一段距离后,通过调整舵机PWM信号的占空比,使小车前轮向右打轮,经过实验占空比在3.6%时,前轮向右转30°(小车舵机的最大角度)。同时对电机的PWM信号设置,使单片机PP1口输出低电平,PP5口输出占空比为20%的PWM信号,这样后轮电机反转,小车以与前进时同样的速度后退,通过定时器定时2.6秒后小车便可进入车库。之后将小车前轮打正,继续后退0.3秒小车就可停到车库正中。如果车库位于小车左侧,则舵机的PWM应调整到4.4%,此时小车前轮向左转30°,电机的两路PWM信号与右侧时相同,在进入车库后,小车要向后直行1秒方可停入车库正中。小车入库程序是整个程序的最后一个程序,这个程序执行结束后,小车及其他硬件就不在动作,所以在这个程序的最后关闭了总中断。第五章总结时光飞逝,4个多月的毕业设计已经接近尾声,虽然这一学期一直都很紧张,但每天都过的充实有意义。因为在做毕业设计中,我将大学四年学习的基础知识重新整合理解,并与实际系统结合,不断发现问题、解决问题,学习并及时运用新的知识,这都丰富了这一学期的生活。现在毕业设计任务已经基本完成,下面对设计成果及不足做出总结,并且阐述在这个过程中的心得体会。本次设计的主要任务是让智能车自动找到车位并实现停车,现在能够实现的功能有:1、小车能够自动循迹,判断出黑色中心线与自身的相对位置;2、在十字路口,智能车能够判断出简易信号灯的指向;3、行驶中的小车能够定位空车库的位置,并实现自动停车入库。在做毕业设计的过程中,我不仅复习查阅了单片机和硬件电路方面的知识,而且学习了不少新的软件知识。在软件设计模块,选用了飞思卡尔公司的软件CodeWarriorIDE作为软件开发平台,其优点是可以实现程序在线调试仿真。在硬件设计模块,我自学了protel软件,利用它绘制了小车相关的硬件电路图,并且自动布线绘制了印制电路板;系统学习了单片机MC9S12XS128的内部结构,以及CCD摄像头的工作原理。设计系统的缺陷之处有:1、本次设计用的是单片机内部AD,采集速度有点慢,导致图像中每行信息采集的过少,数据处理结果出现失真情况,并且使采集的有效范围减少。建议下一届使用外部AD转换芯片,设计合理AD模块硬件电路;2、在采集道路信息和信号灯信息中,使用了两个CCD摄像头,为节约资源最好使用舵机控制一个摄像头来采集两种数据;3、在检测到空车位和十字路口信息时,由于小车的惯性较大,对它们定位的精确度不够大,需要不断实验确定电机的控制方案。最后衷心感谢赵建敏老师在设计中给予的关心和帮助。参考文献[1]张明月.带有临时车位的小区停车场设计[J].电大理工,2009,240(3):8-11.[2]卓青,黄开胜,邵贝贝.学做智能车——挑战“飞思卡尔”杯[M].北京:北京航空航天出版社,2007.[3]吴建平.红外反射式传感器在自主式寻迹小车导航中的应用[J].中国测试技术,2004,30(06):21-22.[4]罗志凡,卢耀祖,张氢,卞永明.一类自动引导小车的规划方法[J].中国工程机械学报,2004,(2):04.[5]丁振兴.CMOS图像传感器在智能车路径识别中的应用研究[D].山东:山东大学,2007.[6]金涛,王春香,王冰,杨明.基于级联滤波的交通信号灯识别方法[J].上海交通大学学报,2012,(46):09.[7]武莹,张小宁,何斌.基于图像处理的交通灯信号识别方法[J].交通信息与安全,2011,29(161):51-53.[8]赵志昊.智能小车的制作[J].科技传播,2011,(21):12-14.[9]梁伟,谢启天,周超.第五届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告[R],北京:飞思卡尔智能车大赛,2010.[10]张新天.停车场规划设计中的若干问题[J].城市道桥与防洪,1993,(04):9-11.[11]王宜怀,刘晓升.嵌入式系统--使用HCS12微控制器的设计与应用[M].北京:北京航空航天大学出版社,2008.[12]王江华.基于XS128单片机的智能车赛道识别装置的设计[J].价值工程,2011,(17):155-156.[13]沈红卫.基于单片机的智能系统设计与实现[M].北京:电子工业出版社,2005.[14]张友德,涂世亮,赵志英.单片微型机原理、应用与实验[M].上海:复旦大学出版社,2010.[15]张国雄.测控电路[M].北京:机械工程出版社,2009.[16]邵贝贝.单片机嵌入式应用的在线开发方法[M].北京:清华大学出版社,2004.[17]卓晴,黄开胜,邵贝贝.学做智能车--挑战“飞思卡尔”杯[M].北京:北京航空航天大学出版社,2007.[18]刘淑英,蔡胜乐,王文辉.电路与电子学[M].北京:电子工业出版社,2004.[19]康孝胜,王冰.HYPERLINK"/kns50/detail.aspx?dbname=CJFD2010&filename=HDZJ201002010&filetitle=%e5%9f%ba%e4%ba%8eMC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 支票作为借款抵押物的合同3篇
- 房屋买卖合同范本版3篇
- 方式购物合同格式3篇
- 改扩建工程施工合同的培训资料3篇
- 招标方案范本3篇
- 安全骑行承诺电动车安全责任3篇
- 文化创意产业基地合作协议3篇
- 新版无担保借款合同模板3篇
- 景观设计测量员劳动合同
- 港口工程委托施工合同
- 登高作业错题解析
- 昌乐二中271高效课堂培训与评价ppt课件
- 《国际经济法》案例思考题
- 省部联合减盐防控高血压项目培训教材
- 【作文素材】他被故宫开除,却成为“京城第一玩家”!——王世襄剖析
- 开发商退房通知书
- 模特的基础训练
- 药品招商流程
- 混凝土配合比检测报告
- 100道递等式计算(能巧算得要巧算)
- 【2019年整理】园林景观设计费取费标准
评论
0/150
提交评论