基于软硬件协同处理的小型轮式机器人平台
扫描二维码
随时随地手机看文章
1项目背景及目标
1.1项目背景
本文课题源于华中科技大学瑞萨实验室的移动机器人项目以及智能车竞赛,主要目的是基于嵌入式技术和控制系统原理,基于FPGA结合ARM的基本架构设计一个小型移动机器人平台,可以研究自动驾驶、自动泊车、图像处理、智能控制算法等机器人应用。
该平台是一种模块化、通用、层次结构的设计方案,使得研究人员可以根据自己的要求选择不同的模块通过简单的组合,构建符合要求的移动机器人平台。所设计的小型移动机器人平台不光有助于机器人技术领域的研究,也是一个理想的嵌入式技术的研究和验证平台。
移动机器人领域在可重配置和模块化方面一直有大量的研究。随着FPGA在嵌入式系统中的广泛应用,通过硬件语言编程来实现所需的逻辑功能、实现硬件平台的重配置,为可重配置和模块化机器人的设计提供了一种新的方法。FPGA负责实现连接各类传感器和执行机构的逻辑电路功能和必要的信号处理,只需编写不同的硬件语言程序,即可实现所需的电路功能,连接相应的传感器和执行机构,实现硬件的重新配置。随着基于FPGA的SOPC技术的发展,使用SOPC技术来实现可重配置的机器人控制器也成为了机器人平台研究的热点。然而基于开发控制系统的商业性、系统可升级性、算法复杂度以及工具链、生态链成熟度的角度考虑,使用基于ARM的CPU作为主控制器更易于实现该平台。因此本项目将基于分立的ARM和FPGA基本架构实现移动机器人平台。
该机器人平台系统分为三个层次:实时控制层、控制数据流层、传感器与驱动器层。系统高两层使用串行计算的MCU(ARM7)和并行计算的FPGA(Spartan6)这样的AMP架构,处理器间高效的通信将是提升整个系统性能的关键,基于开发经验,本平台将采用EMC与SSP这样串并结合的通信方式。平台还可以上扩一个高端嵌入式系统接口,ARM7可以通过USB与ARM Cortex A9通信,完成更复杂的功能。传感器与驱动器层可以搭载多种传感器与驱动器模块,运算在FPGA中完成。
关于软件平台设计,该小型移动机器人可以移植非常有商业前景的TOPPERS实时嵌入式操作系统,既可以在ARM7上移植,也可以考虑在Spartan6上移植。
该课题思想已经在专业课程、移动机器人项目以及两项智能车竞赛中得到数年设计的充分验证,团队有成熟的硬件平台、OS及组件系统移植范例、IP设计范例、算法资源和测试数据,已经开始相关模块的实现。
1.1.1FPGA处理底层密集数据流
FPGA相对CPU的特点在于并行计算和高速,因此适合于处理批量数据。针对本项目,FPGA负责数字图像处理、智能控制、图像人机接口等典型应用的底层密集数据流。
以点阵液晶LCM作为基本人机接口为例说明。引入映射缓冲区这一思想,可以把LCM接口的物理接口部分和数据部分分开,即ARM只读写映射区的数据,而FPGA负责液晶的具体时序要求,通用性、可移植性大大增强。引入双口RAM,则可实现ARM的快速数据通道EMC接口与LCM的慢数据通道接口的跨时钟域设计。这样一来,系统的同步、模块化、高效大大加强。同时可以利用C语言逻辑描述优势实现复杂的画图功能,而利用Verlilog HDL物理并行优势在数据间插入复杂的时序、命令及状态机操作。
1.1.2ARM处理上层复杂控制流
CPU相对硬件的特点是复杂函数计算。实时嵌入式操作系统TOPPERS在ARM7上的移植可以丰富系统的应用及加强实时性。同时结合丰富的协议栈及应用支持,系统功能可以得到较大扩展。利用ARM处理复杂控制流并扩展功能、利用FPGA处理密集数据流,正是该平台最显著的特点。
1.2主要实现目标
1.2.1ARM与FPGA高效通信及重配置
采用的ARM7芯片拥有32 位外部存储器控制器EMC以及串行同步接口SSP。EMC支持异步静态存储器(如SRAM、Flash)和动态存储器(例如SDRAM)的并行接口,而SSP兼容SSI、SPI、MicroWave等格式,并支持DMA传输。
为了充分发挥接口性能,ARM7与Spartan6之间的通信采用双向EMC与双向SSP结合的方式,其中一路SSP被配置成SPI模式,完成ARM对FPGA从串配置。