嵌入式设计应用
在无人机系统与地面站通信过程中,机载陀螺仪姿态数据的高速产生与外部相对低速的无线数据模块传输的矛盾日益突出,严重制约着无人机的发展。针对这一问题,采用FPGAFIFO作为高速数据缓冲,提出一种基于FPGA内建FIFO的无人机陀螺仪前级通信接口。通过高速异步FIFO缓冲,将无人机陀螺仪姿态数据经由FPGA准确无误地发送给地面站,显著提高数据传输质量,实现了高速芯片与低速设备之间的通信。整个设计在实际应用中效果良好,数据稳定可靠,满足了低误码率与高稳定性的要求,以及无人机与地面站高速通信的需求,有着广阔的市场应用前景。
无人机系统对于地面站发送的控制信号以及飞行器传回的姿态数据有着极高的实时性、可靠性与稳定性要求,这对无人机通信系统设计提出了新的挑战。对于采用 ARM作为微处理器的无人机系统来说,系统往往需要协调基于ARM处理器的高速陀螺仪模块与相对低速的外部无线数据传输模块间的工作。在通信高稳定性与低误码率的要求下,处理器不得不花时间运行空操作来等待外部相对低速的传输模块完成一帧数据的收/发。由于等待所浪费的处理器运算周期无形中降低了整个飞控系统的实时性,进而带来许多潜在的不稳定因素。本设计结合无人机系统发展需求,采用FPGA FIFO作为高速数据缓冲,提出一种基于FPGA内建FIFO的无人机陀螺仪前级通信接口。通过高速异步FIFO缓冲,将无人机陀螺仪姿态数据经由 FPGA准确无误地发送给地面站,保证了传输质量,架起了高速芯片与低速设备之间沟通的桥梁。
FPGA内建FIFO的基本工作原理
FIFO即先进先出队列,采用环形存储电路结构,是一种传统的按序执行方法。先进入的指令先完成并引退,随后才执行第二条指令,是一种先进先出的数据缓存器。根据FIFO的读写时钟频率是否相同,可将FIFO分为同步FIFO与异步FIFO。FIFO的应用可以很好地协调不同时钟、不同数据宽度数据的通信,满足高/低速时钟频率要求。与普通存储器相比,FIFO没有外部读写地址线,使用方便。
采用FPGA异步FIFO连接基于ARM处理器的高速无人机陀螺仪模块与相对低速的无线数据传输外设。从硬件的观点来看,FIFO实质上就是一块数据内存。异步FIFO采用2个时钟信号控制其读写操作,分别为写时钟(wrclk)和读时钟(rdclk)。一个用来写数据,即将数据存入FIFO;另一个用来读数据,即将数据从FIFO中取出。与FIFO操作相关的有两个指针:写指针指向要写的内存部分;读指针指向要读的内存部分。FIFO控制器通过外部的读写信号控制这两个指针移动,并由此产生FIFO空信号或满信号。读写时钟相互独立设计,有效地保证了FIFO两端数据的异步通信。
基于ARM的无人机陀螺仪接口结构
由于机载燃油和电能储备的制约,无人机载设备要求小巧轻便,能效比高,因此对芯片的选型及电路结构提出了较高的要求。综合稳定性、数据精度、工作温度、封装体积以及能耗等各方面因素,对无人机陀螺仪传感器经行严格筛选,确定了所示的陀螺仪方案。无人机陀螺仪的主控芯片选用ARM 32 bit CortexTM M3内核的STM32F103T8处理器。其内建64 KB的闪存存储器和20 KB的运行内存,以及7通道的DMA、7个定时器、2个UART端口等。通过板载的8 MHz晶体和STM32内部的PLL,控制器可以运行在72 MHz的主频上,为姿态解算提供强大的硬件支持。
三轴加速度与三轴角速度传感器采用Invensense公司的MPU-6050单芯片方案,此芯片为全球首例整合性6轴运动处理组件,相比其他多芯片实现方案,免除了整合陀螺仪与加速度器轴间差的问题,大大减少了封装空间。三轴磁力计采用Honeywell公司的HMC5883L芯片,此芯片内部采用先进的高分辨率HMC188X系列磁阻传感器与行业领先的各向异性磁阻技术(AMR),具有轴向高灵敏度和线性高精度的特点,测量范围从毫高斯到8高斯,稳定可靠。气压传感器采用博世公司的BMP180芯片,该芯片性能卓越,绝对精度可以达到0.03 hpa,并且功耗极低。传感器采用强大的7 pin陶瓷无引线芯片承载(LCC)超薄封装,安装使用方便。各传感器与ARM处理器采用I2C总线连接,示意图如图3所示。
FPGA FIFO与陀螺仪的连接
结合无人机ARM陀螺仪的特点,为了适应过程的复杂性,实现操作的简便性,设计选用Altera公司的CycloneII系列芯片EP2C8Q208C8N,在QuartuesII平台上进行Verilog代码设计,使用Altera公司提供的FIFO IP核。此方案稳定高效,易于开发。
陀螺仪与FIFO及FPGA的连接
处理器采集各传感器信号,在ARM内部进行姿态解算,进而得到俯仰角、横滚角、航向角、气压、高度和温度信息。为了及时将解算得到的数据发送回地面站,处理器控制写请求信号wrreq和写时钟wrclk将这些数据高速写入FIFO,然后回到飞行控制程序,进行下一周期的姿态解算。FIFO在数据写满后,写满标志位wrfull会置高电平,ARM处理器通过检测写满标志位的状态来判断是否继续写入数据。与此同时,在FPGA中通过检测所读取FIFO是否为空标志位rdempty来判断是否继续读取数据。读空标志位为低电平代表FIFO中有数据,可以读取,则配合读请求信号rdreq和读时钟rdclk及时读取数据,直到将数据全部读出,标志位变为高电平,此时FIFO中已经没有数据。基于ARM的陀螺仪与FIFO及FPGA的连接如图4所示。
全部0条评论
快来发表一下你的评论吧 !