寻迹小车FollowMe之三: 轨迹采样及逻辑控制部分硬件设计
0赞
[提要] 这一系列文章主要是为了帮助初学者入门,借助“寻迹小车”这个项目逐步进入嵌入式控制领域。
本篇主要描述反射式光电轨迹采样的硬件设计。
前面已完成了控制部分中的电机驱动器设计,以下着手轨迹采样及逻辑控制部分的硬件设计。
5.4 轨迹采样及逻辑控制部分硬件设计
5.4.1 设计背景
轨迹采样部分没有考虑采用独立方式,主要是因为控制过程中需要一些过渡信息,以便于编程者实现自己独特的控制逻辑。
由于寻迹小车逻辑不太复杂,而且项目主要目的是引导初学者入门,所以逻辑控制仍使用STC12C410AD单片机。实际上电机控制部分目前并未用到AD功能,主要是为了和逻辑控制部分统一,便于采购,所以均选用了带AD的芯片(对应有不带AD的,价格只便宜1元)。
同时,为了逻辑控制部分可以单独工作,比如作为RCX的输入扩展器,实现类似我以前发表过的“LEGO用轨迹传感器”的功能,所以在设计上做了考虑。
由于采样部分和逻辑控制部分合并后,无法排入一块可以放在前述小机壳中的PCB,所以也采用的双板结构,这样又多出一部分空间,就增加了一个小电流的驱动电路,以便可以实现一个简易的小车。
5.4.2 需求
1)采集4路反射式光电采样器;
2)根据采样信号输出相应的电机控制信号,实现走轨迹;
3)可以通过串口输出电机控制信号
4)可以输出标准的PWM(宽度1 – 2 ms 、周期20ms)电机控制信号;
5)可以直接输出两个电机的H桥控制信号,以便省去电机驱动控制,实现低成本的小车,或者用于提高编程的难度;
6)支持模拟输入功能,可接GP2D12 等模拟量输出传感器;
7)提供一路PWM方式的DA转换输出,以便作为RCX的输入扩展模块。
8)电源应支持单节电池供电,以便于作为独立模块使用。
5.4.3 概要设计
采用STC12C54xxAD系列单片机作为控制核心,控制、采集4路采样电路,采样电路中设计了背景光去除功能。
电源设计了从1V升压到5V的电路,以便于为扩充的输入器件供电,如GP2D12。而后再经3.3 V稳压器降压作为MCU的电源。这样设计使用1 - 2节7号或5号电池就可以工作,体积大大缩小。
电机驱动部分设计提供最大1A的驱动能力,电机的工作电压可变,以满足不同电机的需要。
5.4.4详细硬件设计
STC12C54xxAD系列单片机有8路10位AD转换器,虽说采用的是扫描方式逐个完成,但其一个通道的A/D转换时间在22.1184MHz 主频下只需约10us,加上通道间的切换时间,4个通道采样时间不到60us,所以可以满足4通道轨迹采样的要求。由于P1.0、P1.1 有可能要作为ISP编程的控制引脚,所以用P1.4 – P1.7 四个通道作为轨迹采样通道。
MCU资源分配汇总:
I/O口:
P1.0 — P1.1 —— ISP控制口, 兼作通用模拟输入口;
P1.2 — P1.3 —— 通用模拟输入口;
P1.4 — P1.7 —— 4路光电采样信号输入;
P2.0 — P2.3 —— 马达1 的4个驱动,使用PCA2 控制;
P2.4 — P2.7 —— 马达2 的4个驱动,使用PCA3 控制;
P3.0 — P3.1 —— TXD、RXD端,作为ISP使用,兼作为通用的串口;
P3.2 — P3.3 —— 通用的开关量输入口,
P3.4 —— 工作指示灯
P3.5 —— 用PWM输出模拟信号给 RCX;
P3.7 —— 控制光电采样器的背景采样,4路共用!
内部资源:
T0 —— 系统时基
T1 —— 串口波特率
PCA0 —— 生成背景采样控制,编程时看是用时基程序控制,还是PWM硬件控制。
PCA1 —— D/A输出给 RCX
PCA2 —— 马达1 的PWM控制
PCA3 —— 马达2 的PWM控制
INT0、INT1 —— 保留给开关量输入。
采样电路中第一级作为电压跟随器,提高输入阻抗,减少后级电路对光电管的影响,同时增加驱动能力,保证在Tx1截止、Tx2导通状态下,能可靠的对Cx1充电,实现对背景光强度的记忆。
第二级是一个减法器,同时兼作放大。采样时,Tx1导通,点亮LED,Tx2 截止,第二级的输入实际上为此时的光电信号减去刚才电容上记忆的信号,达到了去除背景光的目的。
PCA1 设计为DA输出用的PWM,以提供RCX输入所需的模拟信号,由于单片机采用的是3.3 V电源,输出使用LMV358做了电平转换,同时使用一个全桥电路实现与RCX的“无极性”连接。为了降低二极管带来的电压损失,使用了4个肖特基二极管,其正向压降约为0.15V,而普通整流管约为0.6V。
电源采用NCP1402开关型升压芯片,所需器件较少,电路简单,输出电流约200 mA(详查NCP1402手册)。
电机驱动部分使用的是长电的SS8050和SS8550作为功率驱动,标称最大电流1.5A。为了便于使用不同的电压驱动电机,电路上将电机驱动电压分开,其中的电阻值需要根据所使用的电压确定。由于空间有限,没有设计短路防护,在编程时要十分注意。而且只设计了H桥下臂的两个二极管,作为PWM调功必须的续流通路,省去了上臂的保护二极管,所以在软件编写时须注意,尽量避免同时切断所有桥臂,导致电机线圈产生高压,击穿三极管。
发光二极管的设置主要是为了便于监测程序的运行状态,可以根据需要改变LED闪烁的方式,达到调试或状态检测的目的。
电路设计上为了便于作为其他用途,PCB上留出了可以扩充的I/O口,包括:
1)4路可作为模拟输入的I/O口,接内部A/D转换器;
2)2路数字I/O,接内部外部中断,可灵活作为各种用途的监测;
3)TXD、RXD串口,既作为编程的接口,也可在执行用户程序时作为通用的数据接口;
4)提供了3.3V和5V两种电源,便于扩充需要。
为了增加灵活性、减小PCB,仍然采用软线引出,使用空中对接插头连接(插头资料见之二的附件),这样可以方便的按照自己的需要接出所需的信号,而不会受制于直接设计在PCB上的插座的约束。
从PCB的设计上可以看出,如果需要更复杂可靠的轨迹采样,可以再接一块采样板,使用保留的4路A/D通道,实现8个轨迹采样或者其他特殊的需求。
5.5 硬件设计总结
至此,控制硬件设计基本完成,综观上述设计,尤其是PCB的设计,应当可以看出,整个设计的宗旨均贯穿着这样的理念:
1)便于灵活的组合,以达到不同的目的,满足不同的需求;
2)尽量使所做的东西可以不断的被利用,以发挥其最大价值;
两个部分总共有4块PCB,他们可以灵活组合,每一块PCB又都可以方便的作为其它用途:
1)H桥部分可以作为其它主控板的功率驱动部分;
2)采样部分也可以单独作为光电采样的信号预处理;
3)电机驱动器的控制部分可作为一个通用的最小系统,方便的构成一些智能部件 。
硬件设计到此为止,在实施中也许会做适当改进。
(未完待续)
附件:
1)电原理图、PCB、元器件清单(供参考)
8912906836193.rar
参考资料:
1)NCP1402 数据手册
2)《电动机的单片机控制》王晓明编著 北京航空航天大学出版社
(20060715)
