Hanker

寻迹小车FollowMe之三: 轨迹采样及逻辑控制部分硬件设计

0
阅读(2413)

[提要] 这一系列文章主要是为了帮助初学者入门,借助“寻迹小车”这个项目逐步进入嵌入式控制领域。
本篇主要描述反射式光电轨迹采样的硬件设计。

      前面已完成了控制部分中的电机驱动器设计,以下着手轨迹采样及逻辑控制部分的硬件设计。

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)