230 likes | 354 Views
智能车报告. 第三组. 稳压芯片比较. 纹波 (ripple) 的定义. 由于直流稳定电源一般是由交流电源经整流稳压等环节而形成的,这就不可避免地在直流稳定量中多少带有一些交流成份,这种叠加在直流稳定量上的交流分量就称之为纹波。. 纹波的害处. 容易在用电器上产生谐波,而谐波会产生较多的危害; 降低了电源的效率; 较强的纹波会造成浪涌电压或电流的产生,导致烧毁用电器; 会干扰数字电路的逻辑关系,影响其正常工作;
E N D
智能车报告 第三组
纹波(ripple)的定义 • 由于直流稳定电源一般是由交流电源经整流稳压等环节而形成的,这就不可避免地在直流稳定量中多少带有一些交流成份,这种叠加在直流稳定量上的交流分量就称之为纹波。
纹波的害处 • 容易在用电器上产生谐波,而谐波会产生较多的危害; • 降低了电源的效率; • 较强的纹波会造成浪涌电压或电流的产生,导致烧毁用电器; • 会干扰数字电路的逻辑关系,影响其正常工作; • 会带来噪音干扰,使图像设备、音响设备不能正常工作。
单片机电源电路设计 • 使用5v 供电的端口有 • VDDR(41 引脚) 接+5V VSSR(40 引脚) 接地 内部电压调整器供电端 • VDDX(107 引脚) 接+5V VSSX (106 引脚) 接地 IO 驱动供电端 • VDDA(83 引脚) 接+5V VSSA(86 引脚) 接地 AD 转换器供电端 • 使用2,5v 供电的端口有(内部电压调整器开启时不必进行外部供电) • VDDPLL(43 引脚) 接+2.5V VSSPLL(45 引脚) 接地 锁相环供电端 • VDD1(13 引脚) 接+2.5V VSS1(14 引脚) 接地 内部电源供电端1 • VDD2(65 引脚) 接+2.5V VSS2(66 引脚 ) 接地 内部电源供电端2 • 此外还有 • VRH (84 引脚) VRL (85 引脚) AD 转换器参考电压(不得大于5V) • VREGEN(97 引脚) 电压调整器使能端 (上拉3.3K 电阻或直接连接可开启内部电压调整器)
电压反馈模块 左边的这个方框是一个4×1K排阻。是用来给电池电压分压用的。比如单片机A/D转换的参考电压是5V,那么就必须用分压来使输入PAD03的电压值不能高于5V以免发生转换溢出。
AD基准电压 • 是一个参考标准,比如你说一个人是高还是矮总要有个参照物吧. • 基准电压就是这个参照物,把测量的电压值和基准比较,看它占基准的几分之一,8位的ad就是把基准分为2的8次放,就是256份,每一份占基准的256分之一,就是最小可分辨的单位.如果是10位精度的ad就是把基准分成1024份,这样精度更好些. • 举个例子,假如基准为1米,如果分成10分,那么最小单位就是分米,也就是精确到分米.如果分成100分,那么最小单位就是厘米,也就是精确到厘米.如果分成1000分,那么最小单位就是毫米,也就是精确到毫米.用同一个标准说分别精确到是0.1米,0.01米,0.001米. • 转换结果=Vin*Vref/2^n
转换程序如下: /********************ADC部分************************************/ unsigned int adc_read(void) { //计算实际电压 unsigned long value=0; unsigned int voltage=0; //电压单位为(mV) value=ADCL; //首先读低位 value |= (int)ADCH << 8; //然后读高位 voltage = (value * ADC_VREF)>>10; return voltage; } /***********AD初始化********/ void adc_init(void) { //adc转换初始化 ADCSR = 0x00; //禁止AD转换 ADMUX = 0x41; /*基准AREF、 右对齐、通道1*/ ACSR = 0x80; //关闭模拟比较功能 } AD是后来单独启动的.
电机控制算法 • 智能车系统速度控制是指用在一定的给定速度条件下,使电机转速达到给定的速度。使用速度传感器检测小车当前速度,与给定速度做比较,形成闭环反馈控制。 • 下面证明闭环控制的必要性。
测试开环与闭环控制响应曲线 从上图中可以得到,开环控制在5 s后达到稳定速度,即响应时间约为5s。在稳定之后,纹波较小。 从下图中可以得到,PID控制在参数未经过细调的情况下,响应时间约为1.2s,稳定之后有5% 的纹波。 对比发现闭环控制在响应速度上有很大的优势。在比赛中,若要求电机以最快速度响应设定值,因此闭环控制是必须的。 开环控制占空比80%电机速度曲线 PID控制下电机响应曲线
开环控制下PWM占空比与电机转速之间的关系 PWM占空比与电机转速曲线与拟合曲线 PWM占空比与电机转速近似为线性关系。
采用两片MC33886并联驱动,这样做有两个优点,其一是提高电机的输入电流,增大电机的实际功率,使电机能在不增加动力源的情况下,性能大幅度提高;其二是减小单片MC33886的功耗,MC33886发热现象比较严重,上面须加上一定面积的散热片来缓和一下,在这里用两片MC33886来为同一个电机供能,可以有效地减小单片MC33886的功耗,发热现象也可以得到部分缓解。采用两片MC33886并联驱动,这样做有两个优点,其一是提高电机的输入电流,增大电机的实际功率,使电机能在不增加动力源的情况下,性能大幅度提高;其二是减小单片MC33886的功耗,MC33886发热现象比较严重,上面须加上一定面积的散热片来缓和一下,在这里用两片MC33886来为同一个电机供能,可以有效地减小单片MC33886的功耗,发热现象也可以得到部分缓解。
电机驱动模块 • MC33886 内阻120mΩ,承载电流5A • IRF540 内阻77 mΩ,承载电流23A • 电子调速器GTX 内阻0.35 mΩ,承载电流700A • 可以看到,电子调速器的性能参数远远超过了33886和IRF540。
摄像头选择 因为S12 单片机的AD 转换时间在不超频的情况下最短为7us,所以如果选用一个分辨率为320 线的摄像头, 则单行视频信号持续的时间约为20ms/320=62.5us,AD 对单行视频信号采样的点数将不超过[62.5/7]+1=9 个。 若 使 用 分 辨 率 为 640 线的摄像头, 则单行视频信号持续的时间约20ms/640=31us,AD 对单行视频信号采样的点数将不超过[31/7]+1=5 个。这就是说,分辨率越高,单行视频信号持续的时间就越短,AD 对单行视频信号所能采样的点数就越少。 如前所述,摄像头的分辨率越高,尽管可提高纵向分辨能力,却会减少单片机AD 采样单行信号的点数,削弱了横向分辨能力。现在市场上摄像头的分辨率通常都在300 线以上, 由此推得单行视频信号的持续时间至多为20ms/300=66us 左右,AD 采样每行视频信号的点数至多为[66/7]+1=10 个(不超频情况下),这对赛车定位来说是不够的。所以,在选择摄像头时,应当尽量选择分辨率低的摄像头,这样做会降低摄像头的纵向分辨能力(但降低后仍然远远够用),却可以增加单片机采样单行视频信号的点数,提高横向分辨能力。
信号分离电路 要能有效地对视频信号进行采样,首先要处理好的问题是如何提取出摄像头信号中的行同步脉冲、消隐脉冲和场同步脉冲。这里有两种可行的方法。第一,直接通过单片机AD 进行提取。因为行同步脉冲、消隐脉冲或场同步脉冲信号的电平低于这些脉冲以外摄像头信号的电平,所以据此可设定一个信号电平阈值来判断AD 采样到的信号是否为上述三类脉冲。第二,就是给单片机配以合适的外围芯片,此芯片要能够提取出摄像头信号的行同步脉冲、消隐脉冲和场同步脉冲以供单片机作控制之用。 LM1881 视频同步信号分离芯片(简称1881)可从摄像头信号中提取信号的时序信息,如行同步脉冲、场同步脉冲和奇、偶场信息等,并将它们转换成TTL 电平直接输给单片机的I/O 口作控制信号之用。
摄像头初始化 由于摄像头行同步信号接到了S12 单片机的外部中断IRQ 引脚,所以当每行视频信号到来时,会产生一个中断。此时如果需要采集该行,就开始进行AD转换。摄像头的初始化包括初始化中断和AD 模块,具体过程为: DDRS_DDRS2=0; //奇偶场信号输入 INTCR_IRQE=1; //外部IRQ使能 INTCR_IRQEN=1; //IRQ选择为边沿触发 ATD0CTL2=0xc0; //AD上电, 快速清零, 无等待, 关闭外部触发 ATD0CTL3=0x08; //每通道转换一次, 无 FIFO ATD0CTL4=0x81; //8位精度,2个时钟周期, ATD时钟=8MHz ATD0CTL5=0xa0; //右对齐, 无符号,单通道,通道0 ATD0DIEN=0x00; //关闭数字输入
二值化算法 算法思路是:设定一阈值(例如42),对于二位数组矩阵中每一列,从上至 下比较各像素值和阈值的大小。若像素值大于等于阈值,则判定该像素对应的 是白色赛道;若小于阈值,则判定对应的是目标指引线。记下第一次出现像素 值小于阈值时的像素点纵坐标值(简称首次纵坐标值)和最后一次出现像素值 小于阈值时的像素点纵坐标值(简称末次纵坐标值),算出两纵坐标值的平均值(称为中间值),以此平均值作为该列(横坐标)上目标指引线的纵坐标(该列中行值为此纵坐标值的点即为该列的特征点)。 该算法的的抗干扰性不强,当出现光强有大幅度的变化时,或当拍摄图像中出现其他黑色图迹的干扰时,该算法提取的位置就会有可能与目标指引线的实际位置偏离较大。
边缘检测算法 我们检测目标指引线的上边缘。算法思路是:设定一阈值(例如15),对于二位数组矩阵中每一列,从上至下求得相邻两像素值间的差值(上减下)。若差值大于等于阈值,则判定其下的像素点对应的是黑色指引线的上边缘,以此像点作为该列的特征点,记录下此像素点的纵坐标值(即为相应的上边缘纵坐标),作为该列上目标指引线的纵坐标。有可能始终不会出现差值大于等于阈值的情况,则让该列上目标指引线纵坐标值保持不变(即同于分析上一场图像数据时求得的纵坐标)。
跟踪边缘检测算法 其主要思路是:当已寻找出某列的上边缘,若在该位置附近寻找下一列的上边缘,则只用花较少的步骤就可以找到(如图中所示,对比图中的搜寻方式)。这种方法的特点就是始终跟踪在每列上边缘的附近,去寻找下一列的上边缘,所以就称这种方法为“跟踪”边缘检测算法。
超频设置 S12 单片机中有四个不同的时钟,即外部晶振时钟、锁相环时钟、总线时钟和内核时钟。目前电路采用的是16MHz 的外部晶振,默认设置下,锁相环时钟为32MHz,总线时钟为8MHz,内核时钟为16MHz。通过将PLLSEL 置位,可选择总线时钟从锁相环时钟获得,而锁相环时钟与外部晶振时钟的关系由SYNR、REFDV 两寄存器决定。通过寄存器设置,将总线时钟超频到了32MHz。由于总线时钟用作片上外围设备的同步,而内核时钟则用作CPU 的同步,它决定了指令执行的速度,所以超频后AD 的采样性能大大提高。具体设置过程为: REFDV=3; SYNR=7; //总线时钟=16MHz*(SYNR+1)/(REFDV+1)=32MHz while(0==CRGFLG_LOCK); //等待VCO 运行稳定 CLKSEL=0x80;