0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

探究FPGA与ARM的无人机陀螺仪数据接口设计

电子工程师 来源:《电子技术应用》 作者:应进;潘浩曼;代冀 2021-05-05 07:01 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

无人机系统对于地面站发送的控制信号以及飞行器传回的姿态数据有着极高的实时性、可靠性与稳定性要求,这对无人机通信系统设计提出了新的挑战。对于采用ARM作为微处理器的无人机系统来说,系统往往需要协调基于ARM处理器的高速陀螺仪模块与相对低速的外部无线数据传输模块间的工作。在通信高稳定性与低误码率的要求下,处理器不得不花时间运行空操作来等待外部相对低速的传输模块完成一帧数据的收/发。由于等待所浪费的处理器运算周期无形中降低了整个飞控系统的实时性,进而带来许多潜在的不稳定因素。

本设计结合无人机系统发展需求,采用FPGA FIFO[1]作为高速数据缓冲,提出一种基于FPGA内建FIFO的无人机陀螺仪前级通信接口。通过高速异步FIFO缓冲,将无人机陀螺仪姿态数据经由FPGA准确无误地发送给地面站,保证了传输质量,架起了高速芯片与低速设备之间沟通的桥梁。

1 FPGA内建FIFO的基本工作原理

FIFO即先进先出队列,采用环形存储电路结构,是一种传统的按序执行方法。先进入的指令先完成并引退,随后才执行第二条指令,是一种先进先出的数据缓存器。根据FIFO的读写时钟频率是否相同,可将FIFO分为同步FIFO与异步FIFO[2]。FIFO的应用可以很好地协调不同时钟、不同数据宽度数据的通信,满足高/低速时钟频率要求。与普通存储器相比,FIFO没有外部读写地址线,使用方便。

本文设计采用FPGA异步FIFO连接基于ARM处理器的高速无人机陀螺仪模块与相对低速的无线数据传输外设。从硬件的观点来看,FIFO实质上就是一块数据内存。异步FIFO采用2个时钟信号控制其读写操作,分别为写时钟(wrclk)和读时钟(rdclk)。一个用来写数据,即将数据存入FIFO;另一个用来读数据,即将数据从FIFO中取出。

与FIFO操作相关的有两个指针:写指针指向要写的内存部分;读指针指向要读的内存部分。FIFO控制器通过外部的读写信号控制这两个指针移动,并由此产生FIFO空信号或满信号。读写时钟相互独立设计,有效地保证了FIFO两端数据的异步通信,其模块框图[3]如图1所示。其中,异步FIFO模块共有9个端口,分别为数据输入(datda[15..0])、写请求(wrreq)、写时钟(wrclk)、缓冲器满信号(wrful)、读请求(rdreq)、读时钟(rdclk)、数据读出(q[15..0])、缓冲器空信号(rdempty)、缓冲器清空信号(aclr)。

o4YBAGB-qluAdkbkAABjtKt8fNo853.png

2 基于ARM的无人机陀螺仪接口结构

由于机载燃油和电能储备的制约,无人机载设备要求小巧轻便,能效比高,因此对芯片的选型及电路结构提出了较高的要求。综合稳定性、数据精度、工作温度、封装体积以及能耗等各方面因素,对无人机陀螺仪传感器经行严格筛选,确定了如图2所示的陀螺仪方案。

o4YBAGB-qkSALfKbAAFlvS-izLg742.png

无人机陀螺仪的主控芯片选用ARM 32 bit CortexTM M3内核的STM32F103T8处理器。其内建64 KB的闪存存储器和20 KB的运行内存,以及7通道的DMA、7个定时器、2个UART端口等。通过板载的8 MHz晶体和STM32内部的PLL,控制器可以运行在72 MHz的主频上,为姿态解算[4]提供强大的硬件支持。

三轴加速度与三轴角速度传感器采用Invensense公司的MPU-6050单芯片方案,此芯片为全球首例整合性6轴运动处理组件,相比其他多芯片实现方案,免除了整合陀螺仪与加速度器轴间差的问题,大大减少了封装空间。

三轴磁力计采用Honeywell公司的HMC5883L芯片,此芯片内部采用先进的高分辨率HMC188X系列磁阻传感器与行业领先的各向异性磁阻技术(AMR),具有轴向高灵敏度和线性高精度的特点,测量范围从毫高斯到8高斯(gauss),稳定可靠。

气压传感器采用博世公司的BMP180芯片,该芯片性能卓越,绝对精度可以达到0.03 hpa,并且功耗极低,只有3 ?滋A。传感器采用强大的7 pin陶瓷无引线芯片承载(LCC)超薄封装,安装使用方便。各传感器与ARM处理器采用I2C总线连接,示意图如图3所示。

o4YBAGB-qVCAXTu6AADVAvIgHuQ959.png

3 FPGA FIFO与陀螺仪的连接

结合无人机ARM陀螺仪的特点,为了适应过程的复杂性,实现操作的简便性,设计选用Altera公司的CycloneII系列芯片EP2C8Q208C8N,在QuartuesII平台上进行Verilog代码设计,使用Altera公司提供的FIFO IP核[5]。此方案稳定高效,易于开发。

3.1 陀螺仪与FIFO及FPGA的连接

处理器采集各传感器信号,在ARM内部进行姿态解算,进而得到俯仰角、横滚角、航向角、气压、高度和温度信息。为了及时将解算得到的数据发送回地面站,处理器控制写请求信号wrreq和写时钟wrclk将这些数据高速写入FIFO,然后回到飞行控制程序,进行下一周期的姿态解算。FIFO在数据写满后,写满标志位wrfull会置高电平,ARM处理器通过检测写满标志位的状态来判断是否继续写入数据。

与此同时,在FPGA中通过检测所读取FIFO是否为空标志位rdempty来判断是否继续读取数据。读空标志位为低电平代表FIFO中有数据,可以读取,则配合读请求信号rdreq和读时钟rdclk及时读取数据,直到将数据全部读出,标志位变为高电平,此时FIFO中已经没有数据。基于ARM的陀螺仪与FIFO及FPGA的连接如图4所示。

pIYBAGB-qdiAFEbwAACSoYjC1y4070.png

3.2 FIFO的配置与读写操作

针对上述ARM陀螺仪接口特点,对FIFO进行配置如下。

FIFO Width : 16 bit

FIFO Depth : 2 048 words

Synchronize reading and writing clock : YES

Asynchronous clear : YES

设计采用位宽为16 bit、深度为2 048且带有同步清零端[6]的异步FIFO结构,其写时序与读时序分别如图5、图6所示。

1307365131699.gif

状态机跳转部分控制代码如下:

always@(posedge SYSCLK or negedge RST )

begin

if(!RST)

state 《= idle;

else

case(state)

idle:

begin

data[15:0] 《= 16′d0;

wrreq 《= 1′b1;

rdreq 《= 1′b0;

aclr 《= 1′b0;

state 《= write;

end

read

if(rdempty != 1′b1 && rdreq ==1′b1)

read_start 《= 1′b1;

else

begin

read_start 《= 1′b0;

wrreq 《= 1′b1;

state 《= idle;

end

write:

if(wrfull!= 1′b1 && wrreq == 1′b1)

write_start 《= 1′b1;

else

begin

write_start 《= 1′b0;

rdreq 《= 1′b1;

state 《= read;

end

default: state 《= idle;

endcase

end

4 系统仿真效果

综合运用QuartuesII[9]与ModelSim SE[10]先进仿真工具,结合FPGA内建FIFO与基于ARM的无人机陀螺仪接口设计方法,仿真结果如图8、图9所示。

pIYBAGB-qfKAOxduAADDjq08Zvs974.png

o4YBAGB-qgqAGL20AAGgrt87vZo372.png

从图8中仿真结果得知,在写入时钟频率为100 MHz、写满标志位为低电平时,待写入数据data在每个写入时钟上升沿来临后被准确写入FIFO的存储区;随后在读出时钟频率为5 MHz且读空标志位为低电平的情况下,待读出数据q在每个读时钟上升沿来临后被正确读出,系统读写数据稳定准确,符合设计需求。

图9为通过此通信接口读取得到的无人机飞行姿态数据,包括俯仰角、偏航角、滚转角,以图表形式予以显示。数据精度与实验结果理想,验证了FPGA与ARM无人机陀螺仪数据接口设计方案稳定可靠。

本文提出了基于FPGA内建FIFO与ARM的无人机陀螺仪数据接口设计方法,解决了无人机ARM处理器与相对低速无线发送模块直接数据传输时传输速度不匹配的难题,实现了ARM处理器将无人机姿态数据高速写入FIFO后就可以立即返回、无需等待的功能,节约了处理器资源,使得无人机系统的可靠性与稳定性得到大幅提升。仿真验证表明,读写数据准确无误,显著提高了数据传输速度与数据质量,证明了本方案的可行性与正确性。面对高速数据传输的需求,该系统还可广泛应用于其他需要高无线数据传输的领域,有较高的理论意义和应用价值。

参考文献

[1] 秦鸿刚,刘京科,吴迪。基于FPGA的双口RAM实现及应用[J]。电子工程设计,2010,2(2):72-74.

[2] 夏宇闻.Verilog数字系统设计教程[M]。北京:北京航空航天大学出版社,2008.

[3] BAKER R J,LI H W,BOYEE D E.CMOS电路设计布局与仿真[M]。陈中建,译。北京:机械工业出版社,2006.

[4] PAVLLOV A.CMOS SRAM circuit design and parame tric test in Nano-Scaled technologies[M].New York:Springer,2008.

[5] 单立超,谢雪松。基于FPGA的一种可变帧数字分接技术[J]。电子技术应用,2013,32(2):27-30.

[6] 何涛。基于软硬件协同技术的FPGA测试平台设计及测试实现[D]。成都:电子科技大学,2009.

[7] 徐国强,张萌。基于FPGA的高性能视频信号采集系统设计与实现[J]。微型机与应用,2012,31(6):72-75.

[8] BRIAN D,ANDREW S,CHAN K.RAM with configurable depth and width[P].US:6578 104.1 8.22,June 2003.

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1655

    文章

    22287

    浏览量

    630308
  • ARM
    ARM
    +关注

    关注

    135

    文章

    9499

    浏览量

    388731
  • fifo
    +关注

    关注

    3

    文章

    406

    浏览量

    45493
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    请问多旋翼无人机单个电机故障怎么排查问题?

    我使用的是ardupilod开源无人机,固件4.6.0版本,用的默认参数。 无人机起飞后,3号电机经常跑满(1950),其余1 2电机只有1700左右,导致无人机没法正常定高。 目前已经排查
    发表于 10-30 15:32

    陀螺仪无人机中的应用:无人机精准飞行的关键保障

    顺利完成各项任务的核心要素。而陀螺仪,作为决定无人机飞行姿态控制精度的关键部件,在其中发挥着不可替代的作用。只是在实际应用中,无人机陀螺仪的应用还面临着诸多挑战。 实际应用中面临的挑战
    的头像 发表于 10-09 10:24 224次阅读
    <b class='flag-5'>陀螺仪</b>在<b class='flag-5'>无人机</b>中的应用:<b class='flag-5'>无人机</b>精准飞行的关键保障

    离轴技术:赋能无人机精准配送的核心芯片应用

    传感器,还提前画好城市三维磁场地图。当无人机穿越密集建筑群,靠近金属障碍物时,传感器立刻让陀螺仪和螺旋桨协同工作,走出 “Z” 字形避障路线。最终,末端定位精度达 ±0.8 米,投递成功率从 78% 升到 99%,单架无人机
    发表于 09-05 16:32

    什么是光纤陀螺仪陀螺仪有哪些作用?

    陀螺仪是干什么用的?陀螺仪是用来感知和测量物体旋转的一个传感器。简单来说,它可以帮助设备知道自己当前的角度和运动方向。通常,我们会在智能手机、无人机、VR设备等科技产品中看到陀螺仪的身
    的头像 发表于 08-26 17:36 1609次阅读
    什么是光纤<b class='flag-5'>陀螺仪</b>?<b class='flag-5'>陀螺仪</b>有哪些作用?

    无人机如何靠陀螺仪保持稳定飞行?

    无人机的飞行过程中,你是否好奇它是如何保持稳定、精准转向甚至抵抗风力干扰的?答案就藏在它的“神经中枢”——ER-3MG-043三轴陀螺仪中。这款高性能传感器凭借卓越的角速度测量能力,成为无人机飞控系统的核心“指挥官”,让每一次
    的头像 发表于 08-08 16:04 876次阅读
    <b class='flag-5'>无人机</b>如何靠<b class='flag-5'>陀螺仪</b>保持稳定飞行?

    为什么三轴MEMS陀螺仪无人机飞控系统的核心传感器?

    在现代无人机技术中,三轴MEMS陀螺仪扮演着至关重要的角色。作为飞行控制系统的核心传感器,它通过实时测量飞行器的角速度变化,为稳定飞行提供关键数据支持。以ER-3MG-063 MEMS陀螺仪
    的头像 发表于 08-07 17:37 866次阅读
    为什么三轴MEMS<b class='flag-5'>陀螺仪</b>是<b class='flag-5'>无人机</b>飞控系统的核心传感器?

    MEMS陀螺如何成为无人机稳定飞行的核心?

    无人机自主翱翔、灵活机动并适应多变环境的背后,对其运动状态——尤其是姿态——的精确感知是基石。作为飞行控制系统(飞控)的“内耳”,陀螺仪实时捕捉机体绕X、Y、Z三轴的旋转角速度。这一核心数据是飞
    的头像 发表于 07-31 15:03 617次阅读

    MEMS陀螺仪有哪些分类?

    你是否好奇,手机里的指南针、无人机稳定的飞行姿态,甚至火箭精准的导航,背后都离不开一个微型“旋转感知器”?这就是MEMS陀螺仪!它凭借小巧身材、低廉成本和优异性能,正在取代笨重的传统陀螺仪,深入我们
    的头像 发表于 07-21 15:58 581次阅读

    **无人机飞控如何靠三轴MEMS陀螺仪实现稳定飞行?**

    无人机(UAV)精密复杂的飞行控制系统(飞控)中,三轴MEMS陀螺仪扮演着不可或缺的“传感神经”角色。它的核心任务,就是实时、高精度地感知飞行器在俯仰(Pitch)、滚转(Roll)和偏航(Yaw
    的头像 发表于 07-09 17:22 692次阅读

    MEMS陀螺仪正在取代光纤陀螺仪

    一、微型科技巨匠:MEMS陀螺仪揭秘 何谓MEMS? MEMS(微机电系统)是融合了微电子与微机械的神奇技术。它能在指甲盖大小的硅芯片上集成复杂的传感器、执行器和处理电路,实现微观世界的数据感知
    的头像 发表于 07-08 16:45 633次阅读

    为什么高端无人机不会在IMU精度上妥协?

    姿态控制精度与系统集成度现已成为制约无人机性能提升的关键瓶颈。无人机通过IMU集成的陀螺仪与加速度计,实现对三维空间姿态(角速度、加速度)数据的实时测量,
    的头像 发表于 07-07 16:16 418次阅读

    适用于无人机的 IMU 有哪些要求?

    惯性测量单元(IMU)作为无人机飞行时运动感知的核心部件,它通过整合陀螺仪、加速度计,有时还包括磁力计、气压计等多种传感器的数据,全面掌握无人机的运动状态。这些信息对于飞行控制、姿态稳
    的头像 发表于 07-04 11:33 997次阅读
    适用于<b class='flag-5'>无人机</b>的 IMU 有哪些要求?

    MEMS陀螺仪如何成为无人机精准飞行的核心引擎?

    MEMS陀螺仪如何成为无人机精准飞行的核心引擎 ? 在无人机技术日新月异的今天,实现卓越的自主飞行能力、完成复杂机动任务以及适应多变环境,其基石在于对飞行姿态的 精确感知 。作为飞行控制系统(飞
    的头像 发表于 07-04 10:37 533次阅读

    振动陀螺仪传感器的工作原理

    陀螺仪传感器,也称为角速率传感器或角速度传感器,是一种感测角速度的设备。陀螺仪传感器种类繁多,比较常见的有机械陀螺仪,光学陀螺仪,流体陀螺仪
    的头像 发表于 06-16 16:29 1012次阅读
    振动<b class='flag-5'>陀螺仪</b>传感器的工作原理

    MEMS陀螺仪无人机中扮演的角色有多重要?

    无人机行业迅猛发展的当下,随着功能的不断拓展,机体挂载部分的产品分类日益丰富。当无人机执行空中探测与追踪任务时,需配备不同类型的“吊舱”,而这些“吊舱”会对无人机的转弯、翻滚及稳定飞行等性能产生一定影响。不过,借助
    的头像 发表于 01-08 11:06 1436次阅读
    MEMS<b class='flag-5'>陀螺仪</b>在<b class='flag-5'>无人机</b>中扮演的角色有多重要?