基于FPGA的室内智能吸尘平台设计
扫描二维码
随时随地手机看文章
智能环境清洁器由于可代替人进行环境清洁工作,已日渐成为人们研究的焦点。虽然它们实现了智能,但大多结构复杂、集成度高,不利于开发者拓展其功能。在研究并总结市场上相对成熟产品的基础上,本文基于可编程性强的FPGA设计并实现了应用于室内的智能吸尘平台。平台具备自我导航、能清洁大部分空间,同时外形紧凑、运行稳定、噪音小。更重要的是其结构简单,具有人性化接口,便于操作和功能的进一步开发。
1 平台总构成
本文提出的平台整体框架设计如图1所示,用装有四个轮子的小车作为整个平台的载体。以FPGA控制器作为整个平台的主控器,通过I/O与光电传感器jk1、jk2、jk3、jk4及碰撞开关jk5相连,实现平台障碍的检测;通过I/O输出PWM波形,驱动扬声器和高低电平的变化以驱动LED的亮灭,组成声光电路;通过控制电机驱动器的信号控制线来驱动步进电机dj1、dj2和直流吸尘电机dj3,实现平台的移动和吸尘。
2 硬件主体设计
系统主要由FPGA主控芯片、光电传感器、碰撞开关、由2个STC89C52单片机控制的无线遥控发射模块、两种模式选择芯片、声光电路、驱动电机、吸尘器电机和整个系统的供电电路组成,如图2所示。
2.1 FPGA芯片的选择
根据平台的总体设计,可以得出对芯片的基本要求:(1)需要最少6路PWM波形输出。(2)需要一路串行通信接口。(3)需要较高的12 V转化为3.3 V的实时芯片。(4)较高的处理速度。(5)I/O接口要多。
综合考虑这些条件,采用Altera公司生产的CycloneII系列FPGA中的EP2C35F672C6型号基本可满足要求。它具有出色的运算速度,成本低且带有DSP模块,具有超大的内部存储器、多通道PWM输出以及灵活的设计和多种语言的综合运用,性价比较高[1,2]。
2.2 配置电路设计要点[3-6]
(1)电源电路:供电系统采用12 V电源作为输入电源,利用L7805CV将其降压为5 V,再由TPS37HD301将5 V转化为3.3 V和1.2 V,FPGA的I/O端口供电点压为3.3 V,内核供电电压为1.2 V。因为电机驱动系统是用控制器的5 V信号,而FPGA的端口电压是3.3 V,必须将I/O电压升压到5 V,在这里利用的是74HCT245升压芯片。
(2)时钟和复位电路:时钟电路中用ZPB-26-16 M作为有源晶振,频率为16 MHz,使得串口波特率更加精确。同时可支持芯片内部的PPL功能及ISP下载功能。复位电路采取硬件复位和软件复位。
(3)调试JTAG和下载电路:因为FPGA内部可以直接搭建软核ISP和JTAG,硬件电路接一个IDC-10的JTAG接口。
(4)配置存储电路:选用EPCS16作为FPGA的ROM,可以由下载电缆或其他设备进行重复编程,也可以通过AS接口进行在线系统编程。用FPGA芯片内部自带的4 MHz的On-Chip memory作为FPGA的RAM。
(5)传感器和碰撞开关:光电传感器(光电开关)选用沪工集团的E3F-DS5C4.P1R型号的光电开关,用于检测障碍和楼梯,此型号是圆柱型扩散式最远距离5 cm、可调NPN型常开光电开关。碰撞开关主要与前传感器配合完成对平台前的保护。当平台碰到前方障碍时,触发开关,使平台躲开障碍物。
(6)无线发送与接收模块:选用汇睿微通XL02-232AP1型号无线模块,XL02-232AP1是UART接口半双工无线传输模块,可以工作在433 MHz公用频段,满足无线管制要求。
(7)驱动和吸尘电机:平台采用前轮双驱动,电机选择深圳步科公司生产的两相混合式步进电机,吸尘器电机采用直流电机。步进电机的主要电器参数为:①步距角:1.8°;②相电流:0.87 A;③保持扭矩:0.24 nm;④相电阻:3.3 Ω;⑤相电感:5.0 mH;⑥重量:0.2 kg。
(8)声光电路和自动清扫时间输入显示电路:声光电路主要由发光二极管和蜂鸣器组成,直接连FPGA,提醒平台工作状态。利用4个按键(确定、初始、上调、下调)输入清扫时间,再由三个数码管显示设定时间。清扫时间由FPGA内部的定时器计时,当计时完成时,平台即停止工作。
3 程序设计要点
将程序分为硬件程序设计和软件程序设计两部分,硬件程序设计要对硬件电路进行时序仿真以确定达到调试的效果。
3.1 硬件程序设计与仿真
平台主要通过传感器和碰撞开关产生输入信号,通过FPGA处理信号,最后FPGA把处理后的信号传到电机,由电机来完成一系列的动作,如表1所示。所以其逻辑设计是实现智能的关键。
结束硬件选型后,利用Quartus II搭建硬件原理图,编译后对jk1、jk2、jk3、 jk4进行时序仿真,分析时序关系,估计设计的性能并检查和消除竞争冒险[7-9]。仿真结果如图3所示。
时序仿真图中,clk为输入PWM信号,clr和en两个模块的片选信号是由FPGA的SoPC通过软件C语言控制。当jk1=0、jk2&jk3=1时,output(PWM控制信号)会出现一段等于0之后产生20个波形。需要说明的是:图3(a)时序仿真图中,output出现一段PWM后出现低电平后接着出现了20个PWM,说明平台在正常前进遇到jk1=0、jk2&jk3=1时,会停车一段时间接着左拐或者右拐20个PWM角度。驱动器用的是4细分,输出1个PWM波形步进电机会转动0.45°,应该旋转90°但是波形个数为:n=(90/0.45)=200个,在此用20个代替200个说明问题(图3(b)的波形个数都会以此情况说明)。
由图3(b)可以看到前段时间jk4为高电平,pwmout输出正常脉冲,说明此时平台处于正常吸尘状态。后段时间jk4变为低电平,pwmout时延后输出一小段脉冲,说明此时平台检测到楼梯,停车一段时间后调整方向。
3.2 软件程序设计
硬件设计调试完成后,还要进行软件系统设计。在C语言文件中编写C程序进行SoPC的编程[10]。平台工作总体算法流程如图4所示。平台接通电源,首先初始化进入自动清扫和手动遥控清扫二选一模式;当选择自动清扫模式时,通过键盘输入平台自动清扫工作时间,在清扫过程中通过传感器判断是否遇到障碍物或楼梯并进行处理。通过中断,时刻查询是否到达设置时间,如果没到,则程序返回运行;如果设置时间到,则程序结束,平台停止工作。当选择遥控清扫时,平台运动受操作者的控制。
通过硬件选型、搭建调试和软件语言的编写调试,成功地制作出了简易平台,实现了既定的各种功能。相比市场上的同类产品,其结构更简单、成本更低、灵活性和扩展性更强,为研究者开发更多功能提供了一个硬件支持的平台,具有实用价值。随着微处理器的不断进步和传感技术的发展,其性能可不断改进,成本也可不断下降。但在仿真和实现过程中发现其具体的流程算法不够严谨,日后有必要继续对其进行改进。