技术报告飞华队.docx
《技术报告飞华队.docx》由会员分享,可在线阅读,更多相关《技术报告飞华队.docx(58页珍藏版)》请在冰豆网上搜索。
技术报告飞华队
第一届“飞思卡尔”杯全国大学生
智能汽车邀请赛
技术报告
基于MC9S12DG128B单片机的
智能寻迹电动车的设计
学校:
华南理工大学
队伍名称:
飞 华
参赛队员:
钟建强
杨晓春
劳中建
带队教师:
游林儒
关于技术报告和研究论文使用授权的说明
本人完全了解第一届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、使用技术报告和研究论文的规定,即:
参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。
参赛队员签名:
钟建强
杨晓春
劳中建
带队教师签名:
游林儒
日期:
2006.8.10
第一章 绪论
1.1 智能车系统概述及框图
本文详细介绍了智能寻迹电动车的路径检测、转向控制、电机驱动、车速检测、电源管理等功能模块硬件电路及软件控制算法的设计。
电动车以飞思卡尔公司的16位单片机MC9S12DG128B为核心控制器,根据黑色与白色反射率的不同,采用红外光电传感器的阵列对路径(黑线)进行主要的识别,再将检测信号送入单片机,通过比例控制实时修正控制舵机的PWM波占空比,以实现电动车的平滑转向,使电动车沿黑线自主运动。
同时辅以CMOS摄像头来预测路径的变化,以此来对速度进行分级设定。
而对电动车的速度调节是以脉冲宽度调制(PWM)控制方式来实现,其采用数字闭环的方式,将测速发电机的电压通过A/D转换后作为反馈信号,以模糊控制算法对电机的转速进行实时调节,实现其速度的调节。
图1.1 系统方框图
1.2 智能车主要技术参数
智能车的设计以车模进行改造,没有对车体进行钻孔等机械改造,主要增加了三块控制电路:
第一块是检测路径的红外光电管阵列,固定于车头的前方。
第二块是主控制电路,固定于车身正上方,其包含了智能车的各功能模块的硬件电路,以及一些辅助电路的接口,包括CMOS摄像头及其它一些辅助调试电路接口。
第三块是COMOS摄像头电路,其通过支架固定于车头的上方。
智能车改造后的主要技术参数如下表所示,各部分的安装如下图所示。
表1-1智能车主要技术参数
总重量
1.27kg(含电池)
CMOS摄像头
1个
长
39.5cm
驱动电机
1个
宽
24cm
舵机
1个
高
25.5cm
电路功耗
10.5W~27.2W
红外光电管
14个
电容总容量
697µF
图1.1 摄像头支架 图1.2 CMOS摄像头电路板
图1.3 主控制电路板 图1.4 红外光电管阵列
图1.5 测速发电机的安装 图1.6 智能车整体
第二章 路径识别模块的设计
2.1 路径检测方案的选择
路径识别模块是智能车系统的关键模块之一,路径识别方案的好坏,直接关系到最终性能的优劣。
一般可以采用CCD图像传感器或者是光电传感器来识别道路的状况,但是如果采用CCD图像传感器,外围电路则比较的复杂,需要为CCD图像传感器提供多路的时钟信号,需要设计升压斩波电路为CCD图像传感器提供12V的工作电源,而且软件中涉及到二值化处理、图像分割、曲线拟合的算法,占用单片机过多的资源,处理的速度比较的慢,不利于对智能车的实时控制,虽然可以将CPU超频,但仍然对单片机的负担很重。
再者,CCD传感器的价格比较昂贵,即使是线阵CCD传感器也要上百元,对于简单功能的智能车系统来说性价比不高。
而光电传感器寻迹方案,即路径识别电路由一系列发光二极管、接收光敏三极管组成,由于道路中存在轨迹指示黑线,落在黑线区域内的光电二极管接收到的反射光线强度与白色的道路不同,由此判断行车的方向。
光电传感器寻迹方案的优点是电路简单、信号处理速度快,适合于用单片机进行处理,但是其也有一个很大的缺陷就是不能对前方的道路情况进行预测,不利于对智能车的速度进行控制。
为了能够对转向进行实时控制,又能够有效预测道路变化,采用光电传感器对道路进行主要检测,实时修正转向。
同时结合现有的资源,将普通电脑用CMOS摄像头的电路拆下来与单片机进行连接,接口简单,可以5V供电,直接数字信号输出,故以其为辅助道路预测,实时控制车速。
2.2 红外光电传感器电路
2.2.1 方案的选择
采用光电传感器寻迹也有几种方式可以选择。
第一,选用普通发光二极管与光敏二极管组成发射-接收电路。
这种方式的缺点明显,周围环境的光源会对光敏二极管的工作产生很大的影响,一旦外界光源改变,会造成单片机的误
判或漏判。
虽然可以采用超高亮发光二极管来降低干扰,但这也增加了额外的功率消耗。
第二,选用不调制式的红外发送-接收电路。
这种方式用红外发射管代替了普通的发光二极管,虽然可以有效地降低周围环境光源的干扰,但是用直流电源对红外二极管进行供电,限于二极管的功率要求,工作电流在10mA左右,仍然易受干扰。
第三、选用脉冲调制式红外发送-接收电路。
环境光源的干扰主要是直流分量,采用带交流分量的调制信号,可以有效地将环境光源干扰降到最低。
此外,红外发射管的最大工作电流取决于平均电流,在使用较小占空比的情况下,瞬时电流可以达到50mA~100mA,提高了信噪比。
同时,瞬时发射功率的提高,可以提高红外线作用的距离,提高了使用效率。
综上所述,在本智能车系统的自动识别黑线电路设计中,采用了脉冲调制式红外发送-接收电路。
另外,光电传感器的排列方法、个数、彼此之间的间隔都与控制方法密切相关,在不受到外部因素影响的前提下,能够感知前方的距离越远,行驶效率越高。
但由于光电传感器电路板不可能伸出车体太远,可以调整光电传感器电路板与路面的夹角,使光电传感器可以感知更远一点的道路情况。
在本智能车系统中,采用了台湾亿光公司生产的红外发射接收一体封装的反射式红外光电传感器 图2.1 ITR9909原理图
ITR9909,尽量多的红外光电传感器,按“一”字型等间隔排列,如图2.2所示,相邻管子间隔2cm,其中白色的代表发射管,黑色的代表接收管。
这样用其来检测2.5cm的引导黑线,则红外光电传感器垂直对着黑线的情况可以有一个管子正对和两个管子正对两种情况,则智能车不偏离黑线时中间两个红外光电管正对黑线,而将偏离黑线的情况分为左右两边各13种,以使得智能车转向细分,从而可以平滑地实现转向。
图2.2 红外光电传感器阵列
2.2.2 脉冲调制式红外发送电路
在本智能车的路径检测模块中用到了14个红外发射管,如果采用14个红外发射管关联驱动的方式,则并联后虽然每个发射管的正向工作电压很容易得到满足,但是由于红外发射管是电流型驱动的器件,消耗的总电流为14个发射管工作电流之和,会消耗大量的电流。
故这里将14个发射管分成5组,每组发射管串联后再与其它组并联,这样只需五个发射管的电流之和即可以驱动所有14个发射管,减小了电流的消耗。
但是并联后每组的供电电压必须大于该组3个发射管正向工作电压之和。
由IRT9909光电特性可以得到,假设每个发射管的正向工作电压为1.5V,则每组的供电电压应大于4.5V,故这里直接用智能车系统的总电源——7.2V的电池作为每组发射电路的供电电源。
表2-1 IRT9909光电特性
参数
符号
最小
典型
最大
单位
条件
输入
正向电压
VF1
-
1.2
1.5
V
IF=20mA
VF2
-
1.4
1.85
V
IF=100mA
VF3
-
2.6
4.0
V
IF=1A
反向电流
IR
-
-
10
µA
VR=5V
峰值波长
λP
-
940
-
nm
-
发射角度
θ
-
40
-
Deg
IF=20mA
输出
暗电流
ICEO
-
-
100
nA
VCE=10V
C-E饱和电压
VCE
(sat)
-
-
0.4
V
IC=2mA
IB=0.1mA
集电极电流
IC(ON)
0.2
-
-
mA
VCE=3V
IF=40mA
漏电流
ICEOD
-
-
1
µA
上升时间
TR
-
15
-
µsec
VCE=2V
IC=100µA
RL=1KΩ
速度
下降时间
TF
-
15
-
µsec
由于红外发射管为电流驱动器件,故在设计电路时应该每组的发射电路设计成恒流源电路,不能使红外发射管的输出电流随供电电压的变化而变化。
设计的电路图如图2.2所示。
图中NPN三极管Q1为倒相放大级,集电极上接有R2,普通LED、PNP三极管Q2的基级驱动电流由Q1供给,Q2的输入阻抗约5KΩ,当输入为低时,Q1截止,故Q2也截止,红外发射管不工作。
当Q1输入为高电平时,Q1、Q2均呈饱和状态,四个串联的红外发射管被驱动工作。
而Q1在饱和导通状态时,普通LED的正向压降为1.8V,即图中该LED的阴极电位恒定,除去Q2的E-B结电压0.7V,则R3的端电压为1.1V,流过R3的电流,即流过Q2和串联红外发射管的电流为1.1V/10Ω=110mA,此电流即为脉冲调制发射电路的瞬时峰值电流,平均电流由脉冲调制信号的占空比来决定。
因此可以将Q2视作一个恒流源,使红外光发射十分稳定,发光强度恒定,不随供电电压而变化,是较理想的输出级电路。
图2.3 红外发射电路
在实际的电路连接中,可以用定时器或输出比较来产生脉冲调制信号,但会占用CPU资源,这里用单片机的PWM模块直接产生38KHz的脉冲调制方波信号,与五路红外发射电路的脉冲调制信号输入相连接,其初始化后自动产生PWM波,不占用CPU资源,而调节占空比可以改变其工作功率,可以根据下面接收电路来设定,这里采用1/100。
2.2.3 红外接收电路
红外接收电路是为了在检测到黑线与白色道路时,通过黑色与白色反射率的差别,产生电平信号的差别以作为进一步处理。
故将红外接收管的发射极接地,将集电极连接一电阻R4后与5V相连,而将接收管的集电极作为检测信号的输出,如图2.4所示。
这样,由于接收管的电流信号与接收到的光强有关,则当检测到白色时,红外发射管发射的红外光几本上被反射到接收管侧,接收管的导通程度较大,和R4分压后集电极电位较低;当检测到黑时,红外的射管的红外光几本被吸收了,接收管接收不到红外光,导通程度较小,和R4分压后集电极电位较高。
故可以通过调节集电极上接的电阻,提高接收管输出信号对黑、白色的分辨率。
为了进一步适应不同材料的道路,集电极输出信号出来后用比较器进行整形,通过调节R5设置比较器的参考电平可以适应不同材料黑与白的敏感程度。
这样通过设置PWM波的占空比、调节R4和R5就可以适应场地的变化。
图2.4 红外接收电路
14个红外接收管的集电极输出信号通过四片LM324N整形输出之后可以直接与MC9S12DG128B的并行I/O口相连接。
由于并行I/O口只有8位,故14个红外接收管要用到MC9S12DG128B的两个并行I/O口,同时为了方便单片机对读入信号的处理,将红外光电传感器阵列左边的7个接收信号与MC9S12DG128B的PA0~PA6相连接,右边的7个接收信号与MC9S12DG128B的PB0~PB6相连接,如图2.1所示。
2.3 CMOS摄像头
2.3.1 功能原理
图像传感器完成网络摄像机的视频采集功能。
图像传感器由一格格的感光二极管组成,这些感光二极管把光传换成为电荷。
每一感光二极管能都记录下投射到它的表面的光线的强度或亮度,这个对光照进行反应的过程是聚焦电荷的过程,光越强,电荷越多。
这些电荷被检测之后,转换为数字信息,这些数字信息将显示有多少光投射到二极管上。
由这些数字信息就可以重塑图像。
2.3.2 设计实现
目前市场上应用的图像传感器主要有CMOS和CCD两种。
CMOS影像传感器过去有着信噪比小、分辨率低这些缺点,一直无法和CCD技术抗衡。
但是,随着CMOS大规模集成电路技术的不断发展,这些缺点已逐渐被克服。
而CMOS器件所具有的集成度高、制造成本低、单一电源供电(3.3V或5V)、功耗低和像素缺陷低等优点也使其非常适合于本系统。
考虑到本系统处理的图像需求为黑白模式,1万象素以下即可,并综合低成本的要求及最大限度利用现有资源的原则,我们采用了包含Omnivition公司的OV7620芯片的一个电脑摄像头。
该芯片支持VGA/QVGA两种图像,最高像素达30万象素,帧速率可达30fps,数据格式包括YCrCb4:
2:
2、GRB4:
2:
2、RGBRawData三种,当配置为黑白模式后,则只有Y输出,取其高4位则可得出黑白图像。
OV7620有两种控制方法:
上电重启方式和SCCB接口控制方式。
虽然SCCB方式可控制全部的功能,但该方式下OV7620必须工作在从模式下,需提供标准的同步时序,占用资源太多,故本系统中芯片采用上电重启方式。
摄像头部分的电路原理如图2.5所示。
图2.5 CMOS摄像头电路
第三章 转向控制模块的设计
3.1 舵机控制
在智能车转向控制系统中,就是用舵机来带动与前轮相连的连杆,通过处理路径检测模块的信号,用单片机产生的PWM控制信号的占空比的变化改变舵机转动的角度位置,从而实现智能车的实时转向。
按照图模型图纸安装舵机,其左右连杆的长度不一样,造成左右力矩的不同,使得左右转向产生差异,这里将舵机安装在中间,使左右连杆长度一样。
在本智能车系统中采用的是SANWA公司型号为SRM-102的舵机。
其有三条控制线,分别为:
电源、地及控制,电源线与地线用于提供内部的直流马达及控制线路所需的能源,额定工作电压为6V。
由于舵机工作时会产生较大的噪音,会影起电源电压的波动,因此该电源应尽可能与单片机系统的电源隔离。
甚至小的舵机在大负载时也会拉低放大器的电压,所以整个系统的电源供应的比例必须合理。
由于整个系统采用单一电源供电,电源的隔离较难,同时因为7.2V转换6V的电压差不够大,而当电机运行时将电源电压拉低,转换效果更加差,故这里直接给舵机接了7.2V的电压。
舵机的控制即是在控制线输入一个周期性的正向脉冲PWM信号,这个周期性脉冲信号的高电平时间通常在0.5ms~2.5ms之间,而舵机的控制频率在50Hz~200Hz之间,其控制要求如图3.2所示。
图3.3表示了一个典型的20ms周期性脉冲的正脉冲宽度与舵机的输出臂位置的关系。
图3.2 舵机控制要求
图3.3 输入脉冲与转角关系
由于车模在转向的时候不仅受到舵机转向极限位置的影响,而且还受到车模前轮转向硬件条件的影响,通过测试得出,舵机不能转向到其自由的极限位置,系统中其左右极限位置为36度。
而其每个转角对应的脉冲宽度近似地成一线性关系,约为45°/µs,其极限转角对应脉宽约为1.18ms~1.82ms,如图3.4所示。
因此可以通过软件来限定舵机的左右转向极限位置,防止舵机因堵转而烧坏。
图3.4 舵机转角与脉宽的关系
舵机的控制线即蓝色线接到MC9S12DG128B的PWM5口,由MC9S12DG128B的PWM通道4和通道5联合成16位的PWM控制,提高舵机控制的精度,控制频率采用200Hz以提高舵机的反应速度。
第四章 电机驱动模块的设计
4.1 方案的选择
直流电机转速n的表达式为n=(U-IR)/(KΦ),式中U为电枢端电压,I为电枢电流,R为电枢电中总电阻,Φ为每极磁通量,K为电机结构参数。
由此可以直流电机转速的控制方法有两类:
对励磁磁通进行控制的励磁控制法和对电枢电压进行控制的电枢控制法。
由于励磁控制法在低速时受磁极饱和的限制,在高速受换向火花和换向器结构强度的限制,并且励磁线圈电感较大,动态响应较差,故此方法比较少采用。
而对直流电机电枢控制法中,在对半导体功率器件的使用上又可以分为线性放大驱动方式和开关驱动方式。
线性放大方式是使半导体功率器件工作在线性区。
这种方式的优点是控制原理简单,输出波动小,线性好,对邻近电路干扰小,但功率器件在线性区工作时会将大部分的电功率用于产生热量,效率和散热问题严重。
故本智能车系统采用开关驱动方式,使半导体功率器件工作在开关状态,通过脉冲宽度调制PWM来控制电机的电枢电压,实现调速。
直流脉宽调速系统主电路线路简单,所需功率器件少;低速性好,调速范围宽;开关频率高,快速响应性好;功率损耗小,装置效率高;波形系数好,对电网功率因数高。
4.2 PWM直流脉宽调速系统
本智能车系统的驱动电机采用RS-390SH型号的电机,其额定工作电压为7.2A,能输出0.9W~40W的功率。
其特性参数如下表所示。
表4-江1 电机特性参数
工作电压
无负载
范围
额定
转速
电流
V
V
r/min
A
3~9
7.2
16200
0.50
最大效率
转速
电流
转矩
输出
r/min
A
mN-m
g-cm
W
14060
3.29
10.9
111
16.0
图4.1 电机特性曲线
通过PWM来对电机进行调速,其外围电路比较简单,可以用MOSFET开关管直接搭成桥式驱动,考虑到其可靠性,这里直接采用了电机驱动芯片MC33886来实现PWM调速。
MC33886是高电压、大电流,接收标准的TTL/CMOS逻辑电平信号H桥集成电机芯片,可以用来实现电机的双极性控制。
其在5V~40V电压下可提供5A的电流,完全可以满足驱动电机的工作要求,且其PWM波的频率可达10KHz,平稳性能好,内置有输出短路电流保护,可靠性高。
图4.2 MC33886原理图
表4-2 MC33886控制逻辑
IN1
IN2
OUT1
OUT2
H
L
H
L
L
H
L
H
H
H
H
H
L
L
L
L
在本智能车系统中,由于不需要实现倒车,故在这里没有采用双极性控制,而是采用了最简单的T型桥驱动电路,即只用到了H桥的半个桥。
在电路的连接中只需将MC33886的IN1接单片机的PWM输出,IN2直接接地就行了。
图4.3 MC33886电机驱动电路
在利用MC33886对智能车驱动电机进行PWM调速控制时其电路可以简化为图4.4所示,输入输出的电压波形如图4.5所示。
当IN1为高电平时,开关管MOSFET的栅极输入为高电平,开关管导通,直流电机电枢绕组两端有电压Us。
t1秒后,IN1为低电平,栅极输入变为低电平,开关管截止,电机两端的电压为0。
T2秒后,栅极输入重新变成高电平,开关管动作重复前面的过程。
这样对应着输入电平的高低,直流电机电枢线组两端的电压波形如图4.5所示,则电机电枢绕组两端的电压平均值为U0=(t1Us+0)/(t1+t2)=t1Us/T=αUs,其中α=t1/T为占空比,表示一个周期T里,开关管导通时间与周期的比值,α的变化范围为0≦α≦1。
因此可知当电源电压Us不变的情况下,改变α的值就可以改变电枢两端电压的平均值,从而达到调速的目的。
图4.4 PWM调速控制原理图 图4.5 PWM调速控制输入输出电压波形
在PWM调速时,占空比α是一个重要参数,有三种方式可以改变占空比值。
(1)定宽调频法
这种方法是保持t1不变,只改变t2的值,这样周期T或频率随之发生改变。
(2)调宽调频法
这种方法是保持t2不变,只改变t1的值,这样周期T或频率随之发生改变。
(3)定频调宽法
这种方法是周期T或频率保持不变,而同时改变t1和t2。
前面两种方法由于在调速时改变了控制脉冲的周期或频率,当控制脉冲的频率与系统的固有频率接近时会引起振荡,因此在智能车系统中采用了定频调宽法,PWM波的频率固定为10KHz,而α根据速度变化自动调节。
第五章 车速检测模块的设计
5.1 方案的选择
车速的检测通常有多种方法可以实现:
第一,采用霍尔式传感器。
通过霍尔效应产生电流的变化,需要在齿轮的两侧安装磁片,而将霍尔式传感器安装在固定轴上,从而对脉冲的计数来测量车速。
但是智能车的齿轮位置相对比较窄,安装磁片及传感器比较困难,容易产生相互干扰。
第二,采用光电码盘。
车轴旋转,带动码盘旋转,通过码盘上透光与不透光的部分产生计数脉冲信号,从而测量车速,精度较高。
但是一般的光电码盘都比较的大,在车轴上安装不易。
如果不用码盘,而直接在车轮框上钻孔,对脉冲计数也能测量车速,但相对还是比较困难。
第三,采用加速度传感器。
测量得加速度之后对其进行积分运算可得速度。
其外围电路比较复杂,测量受车行驶状态影响较大。
第四,采用测速发电机。
只需配置合适的齿轮,将测速发电机的齿轮吻合上车轴的齿轮,固定电机即可将输入的机械转速转换为电压信号输出,通过A/D转换后就可以得出相应的速度量,精度受A/D转换的参考电压及位数影响。
综上所述,采用测速发电机测量速度,安装比较方便,输出可以直接与单片机A/D口相连,电路简单。
虽然精度不是很高,但是在智能车系统中只需对车速进行粗调,精度要求不是很高,故在此采用测速发电机测量车速。
5.2 直流测速发电机测速电路
直流测速发电机输出的是一个模拟量,其与单片机连接时必须经过A/D转换。
而MC9S12DG128B内部集成了8个通道的A/D转换,其精度为8/10位,已经能满足智能车系统的测速要求。
直流测速发电机安装在被测的后轮驱动电机的轴上,以与后轮驱动电机相同的转速旋转。
直流测速发电机的输出电压经过R2和C7组成的滤波环节后,滤去直流测速发电机输出电压的纹波,使之是稳定的直流电压。
由于MC9S12DG128B内部的A/D转换器参考电压已经接了5V,故直流测速发电机输出的电压应用电位器调至小于5V才能接入单片机。
实际上测得,当智能车空载最高转速时,直流测速发电机的输出电压为3.5V,小于参考电压5V,故无需用电位器进行分压,直接可以和单片机连接,而实际的速度测量应实测一些车速,再与A/D转换值对应与来找到它们的关系。
图5.1 直流测速发电机测速电路
5.3 数字闭环控制
在智能车控制系统中,是通过设置单片机PWM模块,产生一定占空比的PWM波来对智能车的速度进行调节的,其给定的是一个数字量信号,故为数字量控制。
如果仅采用开环控制方式,则智能车在转弯或者系统供电电池电量不足的时候,智能车的速度在同样占空比的条件下也会很不相同,影响了控制的质量,在电池刚充满电的情况下,很容易跑飞,故必须对其采用闭环控制,使其速度能稳定下来。
闭环反馈控制是一种基于偏差的控制,以消除偏差为目标,故适用于本智能车速度的调节。
在以上的测速模块中已经将车速值通过测速发电机和A/D转换反馈回给单片机了,已经形成了一个数字闭环,只要给定一个与A/D转换值范围对应的数字量,就可以求得与实际的偏差,再通过模糊控制算法查表得对应的PWM占空比即可以实时对驱动电机的转速进行控制和调节。
图5.2 数字闭环控制方框图
第六章 电源管理模块的设计
6.1 总体方框图
智能车系统的供电电源采用6节镍镉电池串联起来提供能源,其供电电压为7.2V,容量为2000mAh。
智能车系统根据各部件正常工作的需要,对供电电池进行电压调节。
其中单片机系统、红外接收电路、比较器芯片及电机驱动芯片需要5V工作电压,转向系统的舵机、红外发射电路和驱动电机使用7.2V的工作电压。
图6.1 智能车系统电压调节图
6.2 LM2575实现5V稳压
智能车系统中需要用7.2V的供电电源产生一些模块工作需要的5V电压,故需要用到稳压电路。
LM2575-5.0是5V的电压变换器,其最小输入电压为7V,最大输