采用带软处理器的FPGA实现机器人车辆控制器._第1页
采用带软处理器的FPGA实现机器人车辆控制器._第2页
采用带软处理器的FPGA实现机器人车辆控制器._第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、采用带软处理器的FPGA实现机器人车辆控制器从玩具到移动家用电器,简单的机器人应用正呈蓬勃发展之势,这些机器人应 用都依赖某种处理器。一些产品采用 8位MCU而另一些采用定制芯片或分立 元件实现。借助当今的先进技术,工程师可以在无需考虑外形尺寸的条件下, 利用现有的单片半导体器件实现一个完整的自主机器人车辆 (ARV)控制器。本文 将探讨如何采用带软处理器的FPGA来打造这样的控制器。首先采用 FPGA外加 一个串行配置设备、两个 H桥马达驱动器、一个模数转换器(ADC)、一个从玩具到移动家用电器,简单的机器人应用正呈蓬勃发展之势,这些机器人应 用都依赖某种处理器。一些产品采用 8位MCU而另

2、一些采用定制芯片或分立 元件实现。借助当今的先进技术,工程师可以在无需考虑外形尺寸的条件下, 利用现有的单片半导体器件实现一个完整的自主机器人车辆 (ARV)控制器。本文 将探讨如何采用带软处理器的 FPGA来打造这样的控制器。首先采用FPGA外加一个串行配置设备、两个 H桥马达驱动器、一个模数转换器 (ADC)、一个三轴加速器、一个DC/DC电源转换器、扩展/传感器连接器和各种 辅助元件来实现一个简单的轨道式(tracked)ARV。该FPGA被配置成一个完整的系统级芯片(SoC),它是整个设计的关键所在。在 该SoC结构内,包含一个32位软核处理器、RAM/ROM两个串行通信块和两个 马达

3、控制块。该SoC采用最小的Cyclone III FPGA(EP3C5)实现的,这款含有 5000个逻辑单元的器件具有充分的空间来增加所需的其它功能(图1)。与Cyclone III 类似,大部分FPGA都是基于SRAM勺。因此,它们需要配置数 据资源。在本例中采用的是一款 Altera串行配置器件,稍后将讨论这种器件带 来的其它可能性。ARV架构的基础该SoC的核心是一颗32位Nios II软核处理器。由于它是基于 FPGA来实现, 因此可以根据设计功能的需求很容易地对其进行扩展或性能改善(图2)。有许多因素决定着处理器的选择,如所需的处理能力、需要/可用的存储器、代码空间、所选FPGA内的

4、布线空间以及最终系统成本。我们的初始项目是基于Nios II/e 器件,这使得采用密度最低的 Cyclo ne III FPGA 以及小尺寸封装成 为可能。存储器是关键因素。在这类嵌入式设计中,既可采用内部又可采用外部存储器。尽管选择的FPGA艮制了内部RAM/RO的大小,但内部存储器允许更小的占板面积并能降低成本。事实上,外部存储器可实现任何密度和数据通路带宽。对于机器人车辆来说,由于可用功率的限制,开发者需对整个设计施加一些约 束。外部存储器主要有SRAM和DRAM两种类型,它们具有多种密度和封装类 型。有 4 个主要因素影响器件的选择:所需的最小密度与可用密度;功率约束,这 是因为AVR

5、的可用功率有限;存取和处理器速度;FPGAf存储器和I/O器件进 行连接的可用I/O引脚数。其它约束条件包括:封装、成本及为针对 FPGA预置 的接口 IP。Cyclone III FPGA 能够根据不同电压水平或多功能接口 (PCI、差分信令)进行 I/O 分组。目前可用的知识产权 (IP) 包括大量通信、存储器和传统模块。处理器代码存储(通常采用闪存器件)完全取决于ARV勺功能以及设计工程师是 否打算采用实时操作系统(RTOS对于小型ARV来说,利用配置器件存储代码 免除了对系统提供存储器件的要求并降低了功率。Cyclone III的FPGA引脚是专用的,因此无需额外的引脚,并有可能降低整

6、体成本。对于无法使代码与配置器件相匹配或不适应这种方法的设计工程师来说,有两 种不同的闪存接口可以使用:即串行和并行。器件的密度以及电路板空间将影 响这一决定或发展方向。由于它们具有相似的密度,因此两种类型的密度问题 汇聚成为一个问题。连接物理部分的接口是挂接部分 (clinching entity) 。 (这一分析基于 16位数 据路径。 )并行组件会用到约 44 个 I/O 引脚。相同密度的串行组件则将使用约 6个I/O引脚。(串行闪存为x8。)FPGA与组件IP的接口必须适应向x16格式 的转换。引脚数又一次成为重要因素,它可以影响器件的物理尺寸。如果采用了操作系 统,则必须具有面向可用

7、接口的驱动器。否则就要花费精力自己构建。马达控制 对ARM运动和控制来说,马达驱动和控制是最基本的。最简单的马达控制包 含一个负责处理电流负载的驱动器和一个单独的 I/O 引脚。该引脚主要进行打 开/关断(流通/截止)操作,但涉及ARV的整体运动性能时,该方法尚有很多不 足之处。下一步是利用脉宽调制器(PWM来控制速度(用FPGA可以很容易地实现PWM) 速度控制允许减速至停止状态或加速至一个固定速度 ( 类似汽车 ) 。在不具备汽 车类型转向控制或带有轨道的 ARV应用中,这种转向方法被称为“滑动转向 (skid steering) 。”基本上,被减速或停止的驱动侧是拟转向的方向。停止或减速

8、的时间将决定转向的次数。外部驱动可以是采用分立器件构建的H桥(有刷电机)或带有内置FET(用于控制电流)的单芯片。ARV实例包括两个针对基本分立器件 H桥控制配置的马达IP块。PWM勺输出通 过两个引脚中的一个被路由至该 H桥。运动方向决定着路由引脚。另一个引脚 接地。驱动安全性是一个值得考虑的问题。一种可确保安全的简单方法是在任何指定 时间监控流经桥的电流量。对于采用分立器件的桥来说,可以用一个ADC和一个低阻值精密电阻来实现。从FPGA到ADC勺接口取决于所需的引脚数及 ADC分辨率。现在日益流行的串行 外设接口 (API)ADC可提供高数据传输速率。本文例子中的 ARV采用的就是SPI

9、ADC。该处理器可在运动的设定间歇时间读取采样值并将其与设定的故障参数进行比 较。大多数带有集成FET的单芯片方案具有内置热/电流安全保护功能(关闭输 入/输出),并设置了用户可参考的标记或标记群。用户应将这些功能设为高优 先级。否则,ARV马达控制器有可能会损坏。在理想情况下,每个马达都应具有速度监控器。这使得ARV可以移动地设定距离而不会受到远程控制器的干涉。监控器可以是霍尔效应变换器或光电断路 该IP是一个时钟输入来自该霍尔变换器或光电断路器的简单计数器。第二个时 钟源用于设定样本大小。这已成为设计工程师所偏爱的方式,但计数器越大, 能耗也就越高。一个500ms的样本可在32位的计数器内

10、保留大多数设计,在这种情况下计数器 可与内部 Nios-II 数据总线匹配。第二个源时钟将计数器数据存入读寄存器用 于访问处理器并将该计数器复位为零。利用轨道式ARV设计工程师为驱动齿链的每个循环计算该值,轨道移动“x”以英寸表示,在大型设备上以英尺计。借助该常数,处理器可计算其前行或后 退了多少距离。例如,常数“ x” =4英寸/转,距离=“x”x转数,40英寸=4英寸/转X 10转 计算起来很简单,但对许多应用来说足够了。速度计数器还能通知处理器出现 滑动或轨道拥堵状况,这种情况表现为桥电流上升。引导系统实际上在所有系统内,引导系统都是一个关键部分,而在ARV内,引导系统更复杂、所占体积更

11、大。在非常小的 ARV或玩具内,基于空间和成本方面的考 虑,引导系统通常是个奢侈品。微机电系统(MEMS的引入允许更小的单元以更轻的重量、更低的功耗及成本拥 有完整的引导系统。MEM可直接连接FPGA本文讨论的两个引导项目是加速计和陀螺仪。加速计提供模拟或数字接口; 1 个、 2个或 3个轴;以及不同的“加速度 (g) ”等级。因此,应当采用数字 SPI 加速计以减少所用的元件数。这样还将减小在连接 ADC的模拟线路上被噪声干 扰的机会。X和Y轴通常可用于确定上/下倾斜或左/右倾斜。Z轴则表示ARV旋 转时的速率和方向。增加陀螺仪可简化一些工作。首先要添加的陀螺仪位于Z轴。单个Z轴能够很方便地

12、决定减速或停止一条轨道 (用于转向操作 )的时间。陀螺仪将显示从初始 参考点开始已旋转的度数。如果ARV从点A移动到点B(沿一条直线除外),则该信息没有价值。增加 X和丫 轴可允许处理器以地球表面为参照对 ARV勺实际位置“画” 一幅心理图像。对 那些需要全部信息的应用来说,一部分 MEM模块包括三轴加速计和三轴陀螺 仪。传感器和通信传感器是机器人感知世界的唯一途径。在开发 ARV过程中用到的大多数传感器 是SPI/I2C或模拟的。此时仍需要用 ADC在模拟传感器和FPGA之间建立连接。如果想要将I/O引脚数减到最少,那么可采用仅需两个引脚的 I2C。但它的最 高数据传输速率为3.4MHz,另

13、一方面,SPI需要更多的引脚,但其传输速率可 达 12.5MHz。传感器对于ARV的前部单元而言非常重要,它用于指示“路上有东西”、“到 了世界尽头”或“别碰我脑袋。”这些描述代表路上有东西、突然失去驱动表 面(例如一个大洞、楼梯边沿或悬崖)以及ARVS过时必然会受损的低悬物体。与ARV的通信总是使事情更有趣且增加了灵活性。许多无线模块采用标准UART进行处理器通信。通过创建低冲击 (low-impact) 协议,数据可在操作者和 ARV 之间传递。这使得速度、方向甚至传感器的限制都能得到改善。通过通信链 路,研究数据还可以从传感器数据包送回。将组件整合为一个工作系统现在到了把所有这些组件放入

14、一片 FPGA勾成一个工作系统的时候了。初始项目 包含一个Nios II/e 处理器、8KB内部RAM两个SPI总线模块、两个带有速度 计数器的马达模块、两条中断线路 (用于加速计)以及增加其它 I/O 和传感器的能力。该项目在最小型的 QFP封装内采用现有密度最低的 Cyclo ne III 器件(图 3)。前文中例子讨论的是简单 ARV但真实的机器人世界并非如此简单。目前的 FPGA可控制一个8轮驱动ARV这个ARV可采用不同的“有效负载”功能选 择。该单元采用了 4个32位Nios II处理器,它们负责如下整体功能:主处理器:做出最终决策、处理整体路径移动、负责与现实世界通信以及管理 有

15、效负载接口。引导处理器:负责采集来自惯性测量单元(加速计和陀螺仪)、GPS莫块以及过 滤/导航算法的连续数据。传感器处理器:该器件不停地与观察 ARV周围环境的传感器阵列,以及专用传 感器(即甲烷监视器、氧气监视器)通信;它包括从智能光检测和测距(激光雷达) 单元发回的数据。马达处理器:该部分控制驱动单元(不限于电动马达),也被用于液压系统;在 电子系统中,它控制每个马达的 RPM监测马达的电流(仍然用于检测马达停转 时的过电流);液压系统在阀控制功能(两个方向上的比例激励)及线压力方面更 简单。每个处理器都拥有用于存储引导/应用代码的ROMx域以及面向主处理器的暂存 RAM 个1KB的邮箱系

16、统被划分成4个部分负责处理器间的通信。这使得主处 理器可以给其它处理器“留下信息”,或重新获取决策所需的信息。该邮箱需要一个仲裁器。每个处理器在试图读写邮箱RAM前都必须首先与仲裁器协商。由于整个配置是从头开始构建的,因此需要制订一个最基本的通信协 议。最高优先级将保证没有其它的连接“挂起”互连总线。以下是邮箱的构建 以及这些值的地址(表1)。传统方法 所有基于FPGA勺SoC在加快上市速度、降低原材料成本以及缩短测试 /调试时 间方面都具有设计优势。由于它是一款可重新配置的单芯片方案,因此可同时 实施多个设计路线。此外,在设计FPGA勺过程中就可进行原理图绘制和 PCB设计。也可在进行其它 处理的同时为每个处理器编制软件流程图甚至具体实现软件。可利用FPGA完成板级或系统级仿真,而不必仿真多处理器环境。可以轻松地将许多功能集成到 FPGA内,然后可对设计及任何附加的软件进行重 新编译。在采用分立微处理器的传统方法中,无法利用独立的处理器实现附加 功能将迫使设计工程师重新设计、并加装一块新的电路板。这将造成时间和金 钱的浪费并有可能对产品的市场占有率带来负面影响。表2对比了基于Cyclone III FPGA 及Nios II 处理器的SoC与基于4个独立处 理器的传统方法的成本和优势。(未列出专用传统处理器。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论