运动定位装置远程控制器的 FPGA 实现

2014-07-20 03:08高振斌吴金兰陈卫科刘权震
河北工业大学学报 2014年5期
关键词:车轮指令脉冲

高振斌,吴金兰,陈卫科,刘权震

(1. 河北工业大学 信息工程学院,天津 300401;2. 华南理工大学 电子与信息学院,广东 广州 510641)

运动定位装置远程控制器的 FPGA 实现

高振斌1,吴金兰1,陈卫科1,刘权震2

(1. 河北工业大学 信息工程学院,天津 300401;2. 华南理工大学 电子与信息学院,广东 广州 510641)

设计并 实现了一种 基于 FPGA 和 SIM 908 模块的远程 定位运动系 统.在 SOPC Builder 中构建以 CPU、存储器、定时器、Avalon 总线、UART 为核心的 NIOS 处理器,编程实现对 SIM 908 模块 GPS 数据的接收以及控制指令的解析与处理,并根据指令计算电机驱动模块控制参数,驱动电机使该装置按照给定路径行驶.系统使用软硬件协同设计技术实现,控制命令解析由软件编程实现,而电机驱动与调整由 FPGA 上逻辑电路实现,详细阐述了软硬件的设计过程.实验结果表明该控制器能通过解析控制命令完成给定路径行驶、实现定位.

GPS 定位;GPRS;控制指令;NIOS 处理器;中断函数

智能小车是一种智能机器人,具有体积小、功耗低、可靠性好、操作简单等特点,它集中运用了通信、人工智能和导航等技术,可以通过对其进行特殊的设计实现特定功能.目前智能小车可实现自动壁障、红外线循迹、寻找光源进入车库、检测贴片、躲避悬崖等诸多功能,但在实现车身定位和借助网络驱动小车动作的领域研究较少.

为了研究特殊环境下智能车的行走及定位能力,本设计搭建了三轮小车作为实验平台,前两轮平行排列为主动轮,最后一个轮为从动轮.实验平台配有供电系统、电机驱动系统、GPS/GPRS 定位装置[1],光电检测传感器等模块.在主控 FPGA 中构建一个 NIOS 软核[2-3]作为整个系统的核心,通过 NIOS 外接电路实现对实验平台的运动控制.借助GPRS网络发送控制指令使该实验平台完成给定路径行驶,实现自身定位.该平台可作为野外作业的基础平台,在后期实验过程中加上图像采集装置,可以更精准的控制平台动作.

1 系统功能及组成

该系统由FPGA开发板、SIM 908 模块、电机驱动模块和光电检测模块组成,如图1 所示.

SIM 908 模块包含GPS和GSM两部分,分别完成系统定位与通信功能.NIOS 软核是整个系统的核心,它解析GPS模块接收到的定位数据和GSM模块接收到的控制指令,经过处理后控制装置运动.电机驱动模块支持PWM调速.光电检测设备负责检测装置转速,反馈给驱动电路以实现电机的闭环控制.

图1 整体设计框架图Fig.1 The structureof overalldesign

2 运动控制原理

对实验平台的控制分为2种情况:通过指令获取装置当前位置信息;通过指令控制装置按指定路径行驶,其中行驶方式分为直行、左转和右转.电机驱动模块接收PWM脉冲,从而决定平台转速,计算PWM脉冲所需参数从指令中获取.运动类命令包括2种:直行和转弯.

直行时通过指令设定行驶状态、行驶路程和速度,以“SLxxxVxxx”格式发送指令.其中字母代表“直行”状态;Lxxx代表行驶路程值,用三位整数表示;Vxxxx代表车轮速度,用四位数表示(包括小数点).直行时设两轮行驶路程为 L、速度为 V、转速为 Q、行驶时间为 t、车轮半径分别为 R .

直行时路程与车轮半径、速度和转速间的关系为

车轮转弯示意图如图2所示.转弯时由指令设定车轮转弯方向、转角、内侧车轮转弯半径和转速,以 “Z YxxrxxVxxxx” 格式发送指令.其中 Z 代表“左转”,Y 代表“右转”;xx代表车轮转弯角度,用两位整数表示;rxx代表转弯半径值,用两位整数表示;Vxxxx代表前内侧车轮速度,用四位数表示(包括小数点).

装置转弯时设车轮半径为 R,内轮转弯半径为 r,前两轮之间的距离为 d,外轮转弯半径为 r+d ,内外轮转弯角度均为,内外轮转过的弧长分别为 L1、L2,内外轮转速分别为 Q1、Q2.其中车轮半径 R和前两轮间的距离d可以通过实际测量获得,下面以车轮左转为例推导各个量之间的关系

图2 车轮转弯示意图Fig.2 The schematic diagram ofwheel turn

其中 L1=Vt=2RQ1t .

推出

同理可知右转时各个量之间的关系为

计算出的时间用于定时器计时,定时时间到表明动作已完成,则运动停止.转速 Q(Q1、Q2)经编程转化为PWM控制字 C(C1、C2),传递给驱动电路用于产生PWM控制字.

3 系统设计及仿真

硬件设计主要包括 3 部分:构建NIOS软核,设计PWM脉冲产生模块和光电检测模块.

3.1 整体运动控制电路

图3 所示为NIOS软核对装置的运动控制过程.实验平台的运动方式包括直行 S、左转 Z 和右转 Y ,编程解析出指令中的运动方式控制量并传递给比较模块.光电检测传感器用于检测车轮实际转速,将检测到的脉冲个数in1、in2 经定时计数后参与比较.当运动方式为直行时,比较模块输出脉冲个数的比较差值;运动方式为左转和右转时,比较模块输出的差值为 0.NIOS软核将指令中的转速值转化为相应的PWM控制字并通过I/O口输出给调整模块.调整模块根据比较器输出的差值对PWM控制字进行调整再输出,同时调整模块输出车轮的使能控制信号.

图3 整体电路控制电路图Fig.3 The circuitdiagram of overallmotion control

3.2 构建 NIOS 软核

在 QuartusⅡ中新建一个图形文件作为顶层文件,利用SOPCBuilder软件构建NIOS II软核[4-5]并添加到顶层文件中.构建的处理器结构主要包括 NIOS IICPU、定时器、Flash 存储器、SDRAM 控制器、IO 口、串口等.NIOS II处理器各部分之间的连接关系如图4 所示,其中比较模块根据I/O口输出的运动方式控制量决定比较输出,调整模块根据 I/O 口和比较模块的输出值调整PWM控制字.

3.3 PWM 脉冲产生模块

装置的运转由 PWM[6]脉冲驱动.图5为产生PWM脉冲的电路,图6为该电路仿真波形图.

仿真过程中时钟周期设置为 10 ns,计数器 cntA 对时钟上升沿个数进行计数,PWM控制字 C 每隔 10.24s变化 1次,每次增幅为 30.计数器的输出值A和PWM控制字C进行比较,当A小于C时,PWM输出为 1,否则输出为 0.从仿真图可知,该模块能根据控制字C产生PWM脉冲,C越大,PWM脉冲的占空比越大,车轮转速越大;反之越小.

图4 NIOSⅡ处理器结构Fig.4 The structureof NIOS Ⅱ processor

图5 PWM脉冲产生电路图Fig.5 The diagram of PWM pulsegenerating circuit

图6 PWM脉冲仿真图Fig.6 The simulation diagram of PWM pulse

3.4 光电检测电路

光电检测电路用于检测前两轮的实际转速,并对其进行比较.en 为'1'时电路生效,in1、in2 为光电检测传感器的输出端脉冲,脉冲周期的大小用于指示前两个车轮的实际转速大小,先对in1、in2 去抖动操作并在时钟上升沿对其进行计数,同一个计时间隔内的计数结果分别为 a、b.信号cnt为对时钟上升沿个数进行计数,当cnt计数溢出时电路对 a、b 进行比较.当时 a > b,out3=01,比较差值 diff1=a b;当时 a=b,out3 =00,比较差值 diff1=diff2=0;当时 a < b,out3=10,比较差值 diff2=b a.仿真如图7 所示,由仿真图知该电路能检测车轮实际转速并输出比较差值.

图7 光电检测模块波形仿真图Fig.7 Thewaveform simulation diagram of photoelectric detectionmodule

3.5 调整电路

led1、led2 为软核I/O口的输出,out3、diff1、diff2 为光电检测电路的输出,两个电路的输出作为调整电路的输入.L1、L2、L3、Z_F为调整模块输出的车轮使能端和正反转控制端,DB1、DB2、DB3 为调整模块输出的 PWM 控制字.调整模块根据 out3、diff1、diff2 对 led1、led2 进行调整,将实际计数值小的一路脉冲加上比较差值再输出,使直行时车轮转速尽量保持一致.调整模块仿真如图8所示,由仿真图知调整模块能根据比较结果对led1、led2 进行调整.

4 软件设计

软件设计主要指编程实现模块的初始化功能,接收 SIM 908 模块数据并解析 GPS 定位信息[7]、接收并解析指令、向控制台发送定位数据等功能.

4.1 主程序流程图

图8 调整模块波形仿真图Fig.8 Thewaveform simulation diagram of adjustmentmodule

图9 为主程序执行过程.初始化过程包括GSM和GPS两个中断初始化和SIM 908 模块初始化.然后判断实验平台当前动作时间是否到达,若定时到则判断命令队列是否有新命令未执行,若无未执行命令或定时未到,转去判断是否收到控制命令.若未收到则返回判断定时时间是否到达;若收到则判断命令是否有效.若命令为 dw,则获取GPS 数据并发送;若命令以、或开头,则存储命令到命令队列,同时置标志位.如果命令队列有新命令未执行,则读取新命令,编程计算出、和的值,将和的值输出给外部调整电路,设定定时初值启动定时器,最后删除已执行命令.

4.2 GPS 中断服务函数

GPS中断接收服务程序的执行过程如图10所示,设定$GPRMC格式的定位数据以字符“$”开头,以字符“*”结尾,接收到的头和尾以及中间所有字符均存到一个数组里,便于解析函数使用.

4.3 GSM 中断服务函数介绍

一般AT指令的返回值以回车符开头和结尾,接收寄存器接收到字头和自尾回车符后分别置标志位,特殊情况下单独判断.获取控制指令内容的返回值中包含3个回车符,当接收到字符串“+ CMGR”之后清除接收数组中的内容,只存储包含控制命令内容的两个回车符之间的数据.GSM中断服务程序流程图如图11所示.

图9 主函数流程图Fig.9 The flow chartof themain function

图10 GPS中断接收服务函数流程图Fig.10 The flow chartof GPS interrupt receiving service function

图11 GSM中断服务函数流程图Fig.11 The flow chartof GSM interruptservice function

5 设计结果及分析

5.1 定位数据的接收

装置在行驶过程中,当接收到 “dw”指令就会返回给目标控制端处理后的定位数据,数据包括当前日期、时间、经纬度、对地速度等.

5.2 装置速度的标定

实验中令装置在平坦路面上直线行驶,分别给定前两轮相同的 PWM 控制字,依次为 78、85、92、99、106、113、120、127,记录下装置行驶 2m的时间,分别计算出装置运行速度为 0.14m/s、0.15m/s、0.16m/s、0.17m/s、0.18m/s、0.19m/s、020m/s、0.21m/s.速度 v 和PWM 控制字 C 的大致关系如图12 所示.

整理得到直行速度 v和PWM控制字C 之间的经验公式为

5.3 装置运动结果及误差分析

直线运动中,由控制指令给定速度值计算出PWM控制字 C,给定速度与实际速度对照如表1所示.观察表可知,实际速度值与给定速度值接近.

表1 给定速度与实际速度对照表Tab.1 The comparison between the known speed and actualspeed

图12 V_C对应关系图Fig.12 The diagram of V_C corresponding

转弯运动中,由控制指令给定的转弯角度与实际运动角度对照如表2所示.观察表可知,给定角度与实际运转角度值接近.

表2 给定转角与实际转角度对照表Tab.2 The comparison between the known angle and actualangle

通过测试不同路面的行驶情况发现,装置运行的实际速度与理论速度之间存在差值,实际测得的转弯角度和给定转弯角度之间略有偏差,这与车轮行驶的路面情况不完全一致有关.

6 结束语

本文针对远程定位运动控制技术的实际应用需求,研究了一种基于FPGA的远程定位运动控制实验平台,并对最终的设计成果进行了不同路况下的测试.测试结果表明该装置具有较强的道路适应性和可靠性,装置能通过解析控制命令实现自身定位,并完成按给定路径行驶.后续的工作将在现有基础上进一步改进调整算法,使得装置运行速度和拐弯角度更准确.

[1] 王涛,董海瑞.车载卫星通信站天线自动控制系统设计 [J].电视技术,2001(11):34-35.

[2] 王永州,范多旺,金静,等.基于NIOS Ⅱ处理器GPS/GSM车辆监控系统终端设计 [J].铁路计算机应用,2007,16(2):26-29.

[3] 黄海波,蒋伟荣,刘勇,等.基于SOPC的智能车辆道路识别与跟踪 [J].仪器仪表学报,2012, 33(2):321-325.

[4] 李振峰,肖建.基于NIOSⅡ的SOPC实验系统设计与开发 [M].成都:西南交通大学,2012:23-42.

[5] 刘小雍.基于SOPC的GPS无线定位终端设计与实现 [M].成都:西南交通大学,2011:12-28.

[6] 王玉花,郭书军.NIOSⅡ系统Avalon 总线PWM设计 [J].现代电子技术,2010(1):183-185.

[7] 刘斌,梁美美,李欣.基于NIOSⅡ的GPS信息接收系统设计与实现 [J].现代电子技术,2013,36(6):105-108.

[责任编辑 代俊秋]

The implementation of a remote controller for motion positioning device based on FPGA

GAO Zhen-bin1,WU Jin-lan1,CHEN Wei-ke1,LIU Quan-zhen2
( 1. School of Information Engineering, Hebei University of Technology, Tianjin 300401, China; 2. School of Electronic Information Engineering, South China University of Technology, Guangdong Guangzhou 510641, China )

The paper designs and implements a remote controller formotion positioning device based on FPGA and SIM 908module.Thedesign buildsaNIOSprocessorconsistofNIOSⅡ CPU,memory,the timer,Avalon bus,UARTs. The processor receivesGPSdata of SIM 908module,analysesand processesdata of control instructions,calculates the control parameters for themotor drivemodule and drives the device along a given path.The system uses hardware and software codesign technology.Control instructions are parsed by software,but the driver and adjustmentofmotor are implemented by the logic circuit.The paper introduces the design and implementation processof thehardware and software in detail.Experimental results show that the controller can complete a given path under the controlof control instructions,and realize positioningw ithin theacceptable error.

GPSpositioning;GPRS;control instruction;NIOSprocessor;the interrupt function

1007-2373(2014)05-0027-06

TP273.5

A

10.14081/j.cnki.hgdxb.2014.05.005

2014-06-25

河北省科技支撑计划(13210305D)

高振斌(1973-),男(汉族),副教授,博士.

猜你喜欢
车轮指令脉冲
脉冲离散Ginzburg-Landau方程组的统计解及其极限行为
车轮的位置
上下解反向的脉冲微分包含解的存在性
车轮开启赴爱之旅
ARINC661显控指令快速验证方法
黄芩苷脉冲片的制备
有趣的车轮转动
杀毒软件中指令虚拟机的脆弱性分析
修车
中断与跳转操作对指令串的影响