《电子技术应用》

基于SoPC的智能巡迹小车的设计

来源:电子技术应用2013年第7期 作者:纪金水,刘彩虹
2013/9/18 13:49:27

摘  要: 本设计以SoPC套件E-Play-1c12上配置的Cyclone系列FPGA芯片EP1C12Q240C8为控制单元,加以直流电机、光电传感器、超声波传感器和电源电路以及其他电路构成。控制小车在寻轨区能够沿黑线行驶,并能在相应的区域加/减速,进入寻光区后开始在光源的引导下到达终止线停止。同时,在小车行驶过程中车首点阵式液晶滚动显示字幕,实时显示小车行驶的时间及路程。
关键词: FPGA;SoPC;光电传感器;检测信号

     SoPC(System on a Programmable Chip)是一种特殊的嵌入式系统。首先它是片上系统,即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁剪、可扩充、可升级,并具备软硬件在系统可编程的功能[1]。SoPC技术是将尽可能大而完整的电子系统(包括嵌入式处理器系统、接口系统、硬件协处理器或加速系统、数字通信系统、存储电路以及普通数字系统等)在单一FPGA中嵌入实现。因此,可以使得整个设计在规模、可靠性、体积、功耗、功能、上市周期、开发成本、产品维护及其硬件升级等多方面实现最优化[2]。从未来电子系统设计技术走势上看,SoPC技术更具发展性和前瞻性,被称为“半导体产业的未来”[3-4]。
1 系统总体设计方案
    系统设计要求小车由起始端出发沿黑线行驶,在测到第一条黑线后有明显的加速,测到第二条黑线后有明显的减速,测到第三条黑线后开始寻光,测到第四条黑线后停止。在行驶过程中,车首液晶显示屏实时显示小车运行的时间和路程。下面给出两种方案:
    (1)方案1:使用8051系列的单片机芯片。8051系列的单片机芯片使用多年,在市面上应用广泛。各种电路也比较成熟,但其速度相对较慢,指令都是串行执行,在增加液晶显示等模块后使得CPU对检测电路的扫描变慢。
    (2)方案2:使用E-Play-SoPC开发套件上的Cyclone系列FPGA芯片EP1C12Q240C8。FPGA运算速度很快,且其进程以并列的形式执行,即使增加更多的功能模块(在FPGA芯片的资源范围内)也丝毫不影响对检测信号的响应速度[5]。
    比较两种方案,为使小车平稳运行且功能更加智能化,选择了方案2。
    系统整体框图如图1所示,主要由控制核心FPGA、寻轨电路、寻光电路、测障电路、液晶显示模块、电机驱动电路、LED指示灯指示模块、语音提示模块和点阵显示模块组成[6]。

2 硬件设计
2.1 寻轨电路

    寻轨电路采用两对红外线传感器,当传感器未检测到黑线时,红外线接收管相当于短路,比较器负向端的电位在4 V左右;当检测到黑线时,红外线接收管相当于开路,比较器负向端的电位在2 V左右。因此,将比较器正向端电位器的比较电位调到3 V即可实现对黑线的检测。未检测到黑线时电路输出低电平,检测到黑线时输出高电平。其实现电路如图2所示。

2.3 电机驱动电路
    小车采用双轮驱动,使用驱动芯片L293D,其工作电压为9 V。电机驱动电路如图4所示,引脚1和引脚9分别是电机输出的控制引脚,当引脚1或引脚9为低电平时,无论引脚2、引脚7、引脚10、引脚15的输入为何值,引脚3、引脚6、引脚11、引脚14的输出都为低电平;当引脚1或引脚9为高电平时,引脚3、引脚6、引脚11、引脚14输出的电平与引脚2、引脚7、引脚10、引脚15输入电平的高低相应。

3 软件设计
    本文设计的小车中,基本运行程序可分为黑线计数模块、寻轨模块、寻光模块以及计时模块、路程测量模块、液晶显示模块、LED指示灯指示模块等辅助功能模块。其行驶程序流程图如图6所示。

 

 

    (1)寻轨模块:在黑线数为0、1、2时执行此模块。当车底左端的传感器检测到黑线时,小车的左轮停止转动,右轮按原速转动;若右端的传感器检测到黑线,则反之。当黑线数为0、2时小车为减速状态,通过对电机驱动芯片L293D的控制引脚输出占空比为25%的方波信号实现。当黑线数为1时,小车运行在加速状态,此时直接电机驱动芯片L293D的控制引脚输出高电平。
    (2)寻光模块:当黑线数为3时运行本模块,当光强检测电路的检测信号为高电平时认为左端的光照较强,小车左拐,反之右拐。
    (3)路程测量模块:在小车的车轮上有黑、白相间且间距相同的扇形花纹,当车轮转动时车轮内侧的光电传感器产生高低变化的电信号,经过比较器比较产生脉冲信号,控制芯片通过对脉冲计数并与标定的数值相乘得出小车行驶的路程。
    (4)LED指示灯指示模块,车首两端分别有3个颜色分别为红、黄、绿的LED指示灯指示小车的速度,绿灯亮时小车行驶在高速区,黄灯亮时小车行驶在低速区,红灯亮时小车到达终点停止。车前部两侧各有一个LED指示灯指示小车拐动方向,左拐时左灯亮,右拐时右灯亮。车尾有4个LED指示灯指示小车已测黑线的数量,每测一条黑线增加一个LED指示灯亮。
4 抗干扰措施
    需要对黑线检测和障碍物检测的信号采取抗干扰措施。具体如下:当检测到黑线或障碍物时,延时一段时间后再次检测,若还是黑线或障碍物,则确定其为黑线或障碍物,否则认为其为干扰不予理睬[7]。具体实现程序如下:
    PROCESS(a,clk)
        VARIABLE m1,m2 : INTEGER RANGE 0 TO 8191;
        BEGIN
        IF clk=′1′ AND clk'EVENT THEN
            IF a=″00″ THEN
                m2:=0;
                IF m1=8190 THEN
                    m1:=0;
                    IF a=″00″ THEN
                        r1<=′1′;
                    END IF;
                ELSE
                    m1:=m1+1;
                END IF;
            ELSE
                m1:=0;
                IF m2=8190 THEN
                    m2:=0;
                    r1<=′0′;
                ELSE
                    m2:=m2+1;
                END IF;
            END IF;
            END IF;
        END PROCESS;
5 仿真测试
    仿真测试时序如图7所示。其中,A所指示的位置为车底的两个光电传感器同时检测到黑线,经过去抖处理后黑线数目加1;B所指示的区域为高速区,小车高速行驶在此区域,当车底一侧的光电传感器检测到黑线时,小车相应地调整轨迹使其沿黑线行驶;C所指示的区域为减速区,小车在此区域中行驶的速度较慢,约为高速区的1/4,此区域中存在很多弯道,当车底一侧的光电传感器检测到黑线时,小车也相应地调整轨迹沿黑线行驶;D所指示的区域为寻光区,小车进入此区域后立刻开始寻光并朝光线较强的方向行驶,小车在此区域中的速度与低速区相同;E所指示的位置为终点,当小车检测到终点线后停止运行。由仿真图可知,小车在理想情况下可顺利地通过高速寻轨区、低速寻轨区、寻光区,并在检测到终点线后停止运行。

    FPGA的运算速度非常快,保证了小车的平稳运行,且其并行执行过程让点阵式液晶显示更加方便。FPGA在程序并行控制方面充分显示了其优越性,并且运行准确。今后将会对本设计进行扩展以及更进一步的开发。
参考文献
[1] 何伟,秦江云,张玲,等.基于SoPC的多用途无线监控报 警系统[J].电子技术应用,2011,37(2):33-35.
[2] 周渝斌.基于FPGA+DSP的智能车全景视觉系统[J].电子技术应用,2011,37(3):38-41.
[3] POUSSIER S,RABAH H,WEBER S.SoPC-based embedded smart strain gage sensor[C].12th International Conference, FPL 2002 Montpellier,France,2002:1131-1134.
[4] Cao Liting,Jiang Wei,Zhang Zhaoli.Automatic meter reading system based on wireless mesh networks and SoPC  technology[C].Intelligent Networks and Intelligent Systems,ICINIS'09,Second International Conference,2009:142-145.
[5] 雷伏容.VHDL电路设计[M].北京:清华大学出版社,2007.
[6] 徐惠民,安德宁.数字逻辑设计与VHDL语言描述[M].北京:机械工业出版社,2010.
[7] 薛小刚,葛毅敏.Xilinx ISE9.x FPGA/CPLD设计指南[M].北京:人民邮电出版社,2007.

继续阅读>>