
一、电机驱动模块:
驱动电路板安装在车体后部,它主要负责系统各部分电压
的分配以及电机的驱动。由于这部分电路功耗较大,单独设计一块电路板后可
使散热性能更好。
目前电路板上将两片33886并联,PWM信号一路直接输入到A1,一路经过
反向后输入到A2。这样如果PWM波的占空比高于50%时,电机朝一个方向转;
占空比低于50%时,电机朝另一个方向转。通过这种方式,可以在程序中实现反
向制动,而这对于赛车在直道上提高速度是有帮助的。(但是今年的C车车模有两个电机,这两天我会研究下两个电机怎么控制)
33886制定的参数范围是-40°C≤TA≤125 °C、5.0V≤V+≤28V。 集成电路也可以工作在40V通过降低规定的定额值。集成电路能够在表面安装带散热装置的电源组件.(听说还有一种驱动芯片也不错,可是没有研究过)
二、系统电源模块:
全部硬件电路的电源由7.2V、2A/h的可充电镍镉电池提供。由于电路中的不
同电路模块所需要的工作电压和电流容量各不相同,因此电源模块应该包括多
个稳压电路,将充电电池电压转换成各个模块所需要的电压。主要包括如下不
同的电压:
A、5V电压。主要为单片机、信号调理电路以及部分接口电路(如速度传感器)
提供电源,电压要求稳定、噪声小,电流容量大于500mA。
B、 6V电压。主要是为舵机提供工作电压。实际工作时,舵机所需要的工作电流一般在几十毫安左右,电压无需十分稳定。
C、 7.2V电压。这部分直接取自电池两端电压,主要为后轮电机驱动模块提供电源。
D、12V电压。采用摄像头进行道路检测时,需要12V工作电源。
整个电源模块的电路结构为:
由于CCD需要12V供电,而且CCD供电电压过高容易使CCD发热,虽然短时间内信号质量将提高,但长时间会使CCD输出信号质量下降,而CCD供电电压过低会使CCD信号质量降低。为了保证CCD的正常供电,12V电路较为复杂且占用电路板空间较大。
三、核心控制板(主电机控制、寻线响应、舵机转动控制和速度获取等功能)
负责视频采集(用ATD模块的其中一个ANx通道)、获取速度(速度这里还没有看过怎么测)并输出舵机(三线:VCC、GND、信号线,需6V供电)和驱动电机的控制信号。(PWM控制两个电机,好像这样驱动芯片要四个接口,PWM的输出接口与I/O口P口复用)
电路板上包括了S12 单片机工作所必需的稳压模块、时钟模块和复位模块,同时还包括了视频信号分离电路(目前开发板上用的是1881)、BDM 调试接口(用于程序下载及调试)、串口(之前用串口显示摄像头采集到的数据,可是串口速度跟不上,所以不知道留串口接口做什么用)以及无线接口(很多人都用到无线模块,可是我还太明白为什么小车上还要用到小车模块,以及用什么无线模块也不知道用什么)等
说明:(1)采用PAL制CCD摄像头,需要PAD0转换采集到的模拟信号
(2)之前调电机的时候,遇到一个问题就是,调了大半天的程序,竟然是不够电。所以最好做一个电压检测电路,当电池电压不足时,可以用做提醒及时更换电池,可以用AD转换的一个通道来采集电池的电压。
(3)PAD7的摄像头电压,我还不知道用来干嘛的,可能是检测摄像头的工作电压是否正常吧
(4)用外部中断来采集行同步脉冲,同时在中断里完场AD转换
(5)现在还不明白为什么要测速,PT0接口应该是用来捕捉脉冲吧!
(6)PT1捕捉场同步信号,奇场是高电平,偶场为低电平,不太明白为什么还要用PT2采集奇偶场信号
(7)用PMW0,PWM1连成16-bitsPWM,控制舵机的转向,由PWM1口输出PWM。
(8)用PMW2,PWM3连成16-bitsPWM,控制舵机的转向,由PWM3口输出PWM。
(9)不明白为什么要用16-bitsPWM,控制LED4、LED5。不需要渐亮渐灭吧?
(10)这里应该是用串口来调试吧
(11)暂时还不知道用什么无线模块(有什么推荐吗)
(12)看上图IO口的分配,用A、B口控制LED#2、LED#1,调试时用LED做指示灯,可是不需要那么多把
(13)J口的0、1、6、7可以用做中断。这里用于33886状态检测和使能。不太明白,33886还需要检测和使能的吗?
(14)PM0和MSCAN0,RXD1复用,这里不知道用哪个功能用做视频选测信号
(15)看很多人都用拔码开关,不明白具体有什么用。
通常情况下的电机转速的闭环控制,是通过软件的自动控制算法实现的,需要将电机的转速反馈给S12,通过软件上的自动控制算法,由需要的速度同实际的速度的偏差,给出纠正值,达到对速度的稳定控制。但是这样一来将会增加S12的负担。而我们的智能车利用CCD进行识别,使微控制器更多的关注图像的采集及处理是我们设计时一直注意的问题。因此我们在电机驱动电路上下了很大的功夫,最终确定了一种硬件的闭环控制方案。
说明:最小系统和摄像头可以模块化,其他都不可以。到时可能选择我们现在开发板上的最小系统。
