0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深度剖析关于SoPC的智能巡迹小车的设计

电子工程师 来源:电子技术应用 作者:纪金水,刘彩虹 2021-04-28 10:16 次阅读

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

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]。

o4YBAGCIxOyARFxoAAGBTSwiZhg562.png

2 硬件设计

2.1 寻轨电路

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

5009725934327.gif

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输入电平的高低相应。

5010218909599.gif

3 软件设计

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

pIYBAGCIxSSAQdbTAAC_-pE8oW0871.png

(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所指示的位置为终点,当小车检测到终点线后停止运行。由仿真图可知,小车在理想情况下可顺利地通过高速寻轨区、低速寻轨区、寻光区,并在检测到终点线后停止运行。

5010739943480.gif

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.

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18261

    浏览量

    222098
  • 电路
    +关注

    关注

    170

    文章

    5480

    浏览量

    169509
  • 单片机
    +关注

    关注

    6001

    文章

    43970

    浏览量

    620778
  • 嵌入式系统
    +关注

    关注

    40

    文章

    3427

    浏览量

    128213
收藏 人收藏

    评论

    相关推荐

    如何设计一款四轮智能小车

    如何设计一款四轮智能小车 此部分共分为五个小节,通过这个 Part 的学习,我们将了解机器人的概念和组成,对机器人的整体设计有一个明确的思路,然后通过机械结构、驱动系统、传感系统、控制系统四大
    的头像 发表于 03-26 10:58 201次阅读
    如何设计一款四轮<b class='flag-5'>智能</b><b class='flag-5'>小车</b>

    基于51单片机的智能小车驱动MAX7219控制点阵屏显示小车运动状态?

    智能小车点阵屏显示 个人是小白,想求各位大佬帮忙!!!用51单片机控制小车运动,并驱动MAX7219控制点阵屏显示小车运动状态,就是当小车
    发表于 02-05 00:50

    深度剖析 IGBT 栅极驱动注意事项

    深度剖析 IGBT 栅极驱动注意事项
    的头像 发表于 11-24 14:48 299次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>剖析</b> IGBT 栅极驱动注意事项

    智能小车设计指导_第二版_预览版

    电子发烧友网站提供《智能小车设计指导_第二版_预览版.pdf》资料免费下载
    发表于 11-03 14:15 3次下载
    <b class='flag-5'>智能</b><b class='flag-5'>小车</b>设计指导_第二版_预览版

    请问智能小车如何在一个空地上定位呢?

    请问智能小车如何在一个空地上定位呢?现在在空地上画上了黑线来寻迹,但是不够灵活,如何让小车随意去一个坐标呢?
    发表于 10-25 06:32

    基于可编程片上系统(SOPC)的智能电子血压计的设计

    电子发烧友网站提供《基于可编程片上系统(SOPC)的智能电子血压计的设计.pdf》资料免费下载
    发表于 10-20 11:07 5次下载
    基于可编程片上系统(<b class='flag-5'>SOPC</b>)的<b class='flag-5'>智能</b>电子血压计的设计

    基于stm32的智能小车走直线

    求助各位大佬,智能小车走直线用pid 控制的时候,是否需要其他传感器辅助,还是说直接用软件实现就好,有没有源代码,想参考下,谢谢
    发表于 10-14 08:29

    智能循迹小车光电探头原理图和PCB

    智能循迹小车光电探头的原理图和PCB
    发表于 09-26 06:31

    智能小车DIY攻略

    本文是为正准备 DIY 一辆智能小车或已在进行中的学生、玩家们提供一些综合、客观的信息,作为其方案选择、取舍的参考。系个人所见,欢迎交流、指正!
    发表于 09-26 06:22

    线板的PCB原理图分享

    线板的PCB原理图免费
    发表于 09-21 06:30

    润和HiHope智能小车烧录问题

    场景:润和智能小车,现在我烧录这些都没有啥问题,我使用了热点连接,USB供电启动,能连接热点。问题来了,我把板子插到小车的底座上面,开关开启,发现没有反应。在USB调试,查看日志都没有啥问题。
    发表于 09-11 20:33

    基于蓝牙控制技术的遥控小车

      随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。遥控小车起源于美国,由于政府对无线遥控小车研发的资助以及相关资助的推动作用,日本、美国、德国等工业大国在遥控小车技术上占据
    发表于 07-18 16:38 0次下载

    你也能自己组装这样的智能小车

    智能小车
    YS YYDS
    发布于 :2023年06月27日 18:05:37

    Ros小车应用篇(一)之Ros小车wifiQT上位机

    Ros小车多功能QT上位机 代码仓库: 小车嵌入式控制可以查看我的博客: 小车通讯协议可以参
    发表于 05-29 15:00 1次下载
    Ros<b class='flag-5'>小车</b>应用篇(一)之Ros<b class='flag-5'>小车</b>wifiQT上位机

    用MATLAB来做智能小车的建模与仿真案例

    在市面上常见的两种智能小车都是基于轮式的,在某宝上面卖的最多的,各位在学生时代拿来应付课程设计和毕业设计用的各种小车分为两种。
    发表于 05-10 09:57 2349次阅读
    用MATLAB来做<b class='flag-5'>智能</b><b class='flag-5'>小车</b>的建模与仿真案例